← Tous les exercices
BPE : fusionner puis recompter
Partie 1 · ★★★
Une fusion BPE remplace, dans chaque token, chaque occurrence de la paire (a, b) par un seul symbole « ab ». Attention : quand on fusionne, on consomme deux symboles d'un coup ; sinon on avance d'un seul. Ensuite les paires ont changé : il faut recompter.
Complète fusionner pour une suite, applique-la à « c h » partout, et lis la nouvelle paire la plus fréquente. Cours : après « ch », c'est « ch i » (487).
mots = {"chien": 110, "chiens": 377, "chat": 46, "chats": 151} symboles = {mot: list(mot) for mot in mots} def compter_paires(symboles): comptes = Counter() for mot, suite in symboles.items(): for a, b in zip(suite, suite[1:]): comptes[(a, b)] += mots[mot] return comptes def fusionner(suite, a, b): resultat, i = [], 0 while i < len(suite): if i + 1 < len(suite) and suite[i] == a and suite[i + 1] == ___: resultat.append(___) i += ___ else: resultat.append(suite[i]) i += ___ return resultat symboles_1 = {mot: fusionner(s, "c", "h") for mot, s in symboles.items()} paire_2, compte_2 = compter_paires(symboles_1).most_common(1)[0]
Ctrl/⌘+Entrée