Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. import random
  2.  
  3. def chose(mapp):
  4. random.seed(version=2)
  5. ver = random.randint(1, 100)
  6. mapp = dict(sorted(mapp.items(), key=lambda kv: kv[1]))
  7. arr = list(mapp.keys())
  8. sum = 0
  9.  
  10. for i in range(len(arr)):
  11. sum += mapp[arr[i]]
  12. if ver / 100 <= sum:
  13. return arr[i]
  14.  
  15. struct = dict()
  16.  
  17. def solve(word, n, string):
  18. #print(word)
  19. if n == 0:
  20. return string
  21. return solve(chose(struct[word]), n - 1, string + word + " ")
  22.  
  23.  
  24. f = open('text.txt', 'r', encoding='utf-8')
  25. s = f.read()
  26. s = s.split()
  27.  
  28. alp = set()
  29. for i in range(ord('a'), ord('z') + 1):
  30. alp.add(chr(i))
  31.  
  32. for i in range(ord('A'), ord('Z') + 1):
  33. alp.add(chr(i))
  34.  
  35.  
  36. for i in range(ord('а'), ord('я') + 1):
  37. alp.add(chr(i))
  38.  
  39. for i in range(ord('А'), ord('Я') + 1):
  40. alp.add(chr(i))
  41.  
  42. alp.add('ё')
  43. alp.add('Ё')
  44.  
  45. for i in range(len(s)):
  46. s[i] = s[i].lower()
  47.  
  48. n = len(s)
  49. words = []
  50.  
  51. end = []
  52.  
  53. for i in range(n):
  54. if s[i][-1] == '.' or s[i][-1] == '?' or s[i][-1] == '!':
  55. end.append(s[i])
  56. for j in range(len(s[i])):
  57. if s[i][j] not in alp:
  58. if j + 1 < len(s[i]):
  59. s[i] = s[i][:j] + ' ' + s[i][j + 1:]
  60. else:
  61. s[i] = s[i][:-1]
  62. words += s[i].split()
  63.  
  64. for i in range(len(end)):
  65. for j in range(len(end[i])):
  66. if end[i][j] not in alp:
  67. if end[i][j] == '.' or end[i][j] == '!' or end[i][j] == '?':
  68. continue
  69. else:
  70. if j + 1 < len(end[i]):
  71. end[i] = end[i][:j] + ' ' + end[i][j + 1:]
  72. else:
  73. end[i] = end[i][:-1]
  74. end[i] = ''.join(end[i].split())
  75.  
  76. n = len(words)
  77.  
  78. for i in range(n):
  79. if words[i] != "\n" and words[i] != "":
  80. struct[words[i]] = dict()
  81.  
  82. for i in range(1, n):
  83. if words[i] == "" or words[i - 1] == "" or words[i] == "\n" or words[i - 1] == "\n":
  84. continue
  85. if words[i] not in struct[words[i - 1]].keys():
  86. struct[words[i - 1]][words[i]] = 1
  87. else:
  88. struct[words[i - 1]][words[i]] += 1
  89.  
  90. if words[len(words) - 1] not in struct.keys():
  91. struct[words[len(words) - 1]] = dict()
  92.  
  93. count = dict()
  94.  
  95. for i in struct.keys():
  96. count[i] = sum(struct[i].values())
  97. for j in struct[i].keys():
  98. struct[i][j] /= count[i]
  99.  
  100. #for i in struct.keys():
  101. # print(i, struct[i], sep=": ")
  102.  
  103. x = list(struct.keys())
  104. random.seed(version=2)
  105. idx = random.randint(0, len(x) - 1)
  106. cnt = random.randint(7, 10)
  107. id = random.randint(0, len(end) - 1)
  108. ans = solve(x[idx], cnt, "")
  109. print(ans[0].upper() + ans[1:] + end[id])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement