Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def chose(mapp):
- random.seed(version=2)
- ver = random.randint(1, 100)
- mapp = dict(sorted(mapp.items(), key=lambda kv: kv[1]))
- arr = list(mapp.keys())
- sum = 0
- for i in range(len(arr)):
- sum += mapp[arr[i]]
- if ver / 100 <= sum:
- return arr[i]
- struct = dict()
- def solve(word, n, string):
- #print(word)
- if n == 0:
- return string
- return solve(chose(struct[word]), n - 1, string + word + " ")
- f = open('text.txt', 'r', encoding='utf-8')
- s = f.read()
- s = s.split()
- alp = set()
- for i in range(ord('a'), ord('z') + 1):
- alp.add(chr(i))
- for i in range(ord('A'), ord('Z') + 1):
- alp.add(chr(i))
- for i in range(ord('а'), ord('я') + 1):
- alp.add(chr(i))
- for i in range(ord('А'), ord('Я') + 1):
- alp.add(chr(i))
- alp.add('ё')
- alp.add('Ё')
- for i in range(len(s)):
- s[i] = s[i].lower()
- n = len(s)
- words = []
- end = []
- for i in range(n):
- if s[i][-1] == '.' or s[i][-1] == '?' or s[i][-1] == '!':
- end.append(s[i])
- for j in range(len(s[i])):
- if s[i][j] not in alp:
- if j + 1 < len(s[i]):
- s[i] = s[i][:j] + ' ' + s[i][j + 1:]
- else:
- s[i] = s[i][:-1]
- words += s[i].split()
- for i in range(len(end)):
- for j in range(len(end[i])):
- if end[i][j] not in alp:
- if end[i][j] == '.' or end[i][j] == '!' or end[i][j] == '?':
- continue
- else:
- if j + 1 < len(end[i]):
- end[i] = end[i][:j] + ' ' + end[i][j + 1:]
- else:
- end[i] = end[i][:-1]
- end[i] = ''.join(end[i].split())
- n = len(words)
- for i in range(n):
- if words[i] != "\n" and words[i] != "":
- struct[words[i]] = dict()
- for i in range(1, n):
- if words[i] == "" or words[i - 1] == "" or words[i] == "\n" or words[i - 1] == "\n":
- continue
- if words[i] not in struct[words[i - 1]].keys():
- struct[words[i - 1]][words[i]] = 1
- else:
- struct[words[i - 1]][words[i]] += 1
- if words[len(words) - 1] not in struct.keys():
- struct[words[len(words) - 1]] = dict()
- count = dict()
- for i in struct.keys():
- count[i] = sum(struct[i].values())
- for j in struct[i].keys():
- struct[i][j] /= count[i]
- #for i in struct.keys():
- # print(i, struct[i], sep=": ")
- x = list(struct.keys())
- random.seed(version=2)
- idx = random.randint(0, len(x) - 1)
- cnt = random.randint(7, 10)
- id = random.randint(0, len(end) - 1)
- ans = solve(x[idx], cnt, "")
- print(ans[0].upper() + ans[1:] + end[id])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement