如何计算python中给定单词的频率

时间:2021-02-18 14:35:29

标签: python french

我想找出 75 个文本中“je”和“nous”这两个词的出现频率。

其实我知道怎么通过导入os等一次性制作频率列表。但这一次,我需要的,只是两个词各自的频率。

我尝试更改制作频率列表的代码以实现我的目标,但失败了。

这是我的代码的一部分:

wordlist_freq={}
for word in all_words:
    if word in wordlist_freq.keys():
        wordlist_freq[word] +=1
    else:
        wordlist_freq[word] =1

freq = {}

freq['je']=wordlist_freq['je']
freq['nous']=wordlist_freq['nous']

output[name]=wordlist_freq.items()

它显示了一个 KeyError: 'je'
error

我真的无法理解,我现在的想法太愚蠢了,因为我想制作一个频率列表,然后额外添加“je”和“nous”的频率。应该有一些更简单的解决方案!!!

请帮帮我~谢谢!!!

1 个答案:

答案 0 :(得分:2)

您可以为此使用集合中的计数器

from collections import Counter

word_list = ["hi", "hi", "je", "nous", "hi", "je", "je"]
wordlist_freq = Counter(word_list)

为了得到一个词的频率,你可以使用这样的get方法

wordlist_freq.get("je", 0)

我更喜欢使用 get 而不是方括号,因为当 Counter 对象中不存在该单词时,get 可以返回一个默认值。

如果您选择不使用 Counter 并想使用您在 Q 中共享的循环,您仍然可以这样做。但请确保您在 dict 上使用 get 方法来处理该词不在 dict 中的情况。

相关问题