"""
35.Fréquence d'occurrence des mots
Trouvez les mots qui apparaissent dans la phrase et leur fréquence d'apparition, et classez-les par ordre décroissant de fréquence d'apparition.
[[{'surface': '', 'base': '*', 'pos': 'BOS/EOS', 'pos1': '*'},
{'surface': 'un', 'base': 'un', 'pos': 'nom', 'pos1': 'nombre'},
{'surface': '', 'base': '*', 'pos': 'BOS/EOS', 'pos1': '*'}],
[{'surface': '', 'base': '*', 'pos': 'BOS/EOS', 'pos1': '*'},
{'surface': 'je', 'base': 'je', 'pos': 'nom', 'pos1': '代nom'},
{'surface': 'Est', 'base': 'Est', 'pos': 'Particule', 'pos1': '係Particule'},
{'surface': 'Chat', 'base': 'Chat', 'pos': 'nom', 'pos1': 'Général'},
{'surface': 'alors', 'base': 'Est', 'pos': 'Verbe auxiliaire', 'pos1': '*'},
{'surface': 'y a-t-il', 'base': 'y a-t-il', 'pos': 'Verbe auxiliaire', 'pos1': '*'},
{'surface': '。', 'base': '。', 'pos': 'symbole', 'pos1': 'Phrase'},
{'surface': '', 'base': '*', 'pos': 'BOS/EOS', 'pos1': '*'}],
"""
from collections import Counter
from typing import List
import utils
def get_tf(sentence_list: List[List[dict]]) -> dict:
words = [word["surface"] for sent in sentence_list for word in sent[1:-1]]
c = Counter(words)
return c.most_common()
data = utils.read_json("30_neko_mecab.json")
result = get_tf(data)
# [('de', 9194),
# ('。', 7486),
# ('main', 6868),
# ('、', 6772),
# ('Est', 6420),
# ('À', 6243),
# ('À', 6071),
# ('Quand', 5508),
# ('Mais', 5337),
# ('Ta', 3988)]
Recommended Posts