Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 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. n = len(s)
  46. words = []
  47. for i in range(n):
  48. for j in range(len(s[i])):
  49. if s[i][j] not in alp:
  50. if j + 1 < len(s[i]):
  51. s[i] = s[i][:j] + ' ' + s[i][j + 1:]
  52. else:
  53. s[i] = s[i][:-1]
  54. words += s[i].split()
  55.  
  56. n = len(words)
  57.  
  58. for i in range(n):
  59. if words[i] != "\n" and words[i] != "":
  60. struct[words[i]] = dict()
  61.  
  62. for i in range(1, n):
  63. if words[i] == "" or words[i - 1] == "" or words[i] == "\n" or words[i - 1] == "\n":
  64. continue
  65. if words[i] not in struct[words[i - 1]].keys():
  66. struct[words[i - 1]][words[i]] = 1
  67. else:
  68. struct[words[i - 1]][words[i]] += 1
  69.  
  70. if words[len(words) - 1] not in struct.keys():
  71. struct[words[len(words) - 1]] = dict()
  72.  
  73. count = dict()
  74.  
  75. for i in struct.keys():
  76. count[i] = sum(struct[i].values())
  77. for j in struct[i].keys():
  78. struct[i][j] /= count[i]
  79.  
  80. #for i in struct.keys():
  81. # print(i, struct[i], sep=": ")
  82.  
  83. x = list(struct.keys())
  84. random.seed(version=2)
  85. idx = random.randint(0, len(x) - 1)
  86. cnt = random.randint(7, 10)
  87. print(solve(x[idx], cnt, ""))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement