from collections import defaultdict from random import choice, randrange suivants = defaultdict(list) for path in ( "fra_wikipedia_2021_10K-sentences.txt", ): with open(path, "r", encoding="utf-8") as fichier: for phrase in fichier: antepenultieme, penultieme = "", "" for word in phrase.split(): suivants[(antepenultieme, penultieme)].append(word) antepenultieme, penultieme = penultieme, word def parle(nb_phrases=1): phrases = [] for _ in range(nb_phrases): antepenultieme, penultieme = "", "" phrase = [] while mots_possibles := suivants[(antepenultieme, penultieme)]: mot_suivants = choice(mots_possibles) phrase.append(mot_suivants) antepenultieme, penultieme = penultieme, mot_suivants phrases.append(" ".join(phrase)) return "\n".join(phrases)