词频统计就是输入一段句子或者一篇文章,然后统计句子中每个单词出现的次数。那在python中怎样怎样统计词频出现的次数呢?
之前学习过python字典的使用方法:
Python熟练使用字典和了解元组与列表的区别
字典的get()函数
字典的get()函数返回指定键对应的值。
get()函数使用格式
字典名.get(key) //字典中存在键key 返回键对应的值
字典名.get(key, value) //字典中不存在键key 返回设定的值value
info = {'苹果':1, '梨':2}
a = info.get('苹果')
print(a)
输出
1
info = {'苹果':1, '梨':2}
a = info.get('草莓',3)
print(a)
输出
3
‘草莓’不是字典info中的键,则get()函数返回,第2个参数设定的值,即3。
词频统计
词频
使用字典存储词语: 词频 这一组数据。
遍历存储词语的列表,如果词语在字典中,就在之前出现的次数上增加1。否则,就把词语添加到字典中。
counts = {}
for w in words:
if w in counts: //如果w在字典counts中
counts[w] = counts[w] + 1 //在之前的次数加1
else:
counts[w] = 1 //把词语添加到字典中,并计数1次
print(counts)
words是存储被统计的词语列表。
counts是用于存储统计结果的字典,键是词语,值是词频。
词频统计的简化
使用字典的get()函数,当w键不存在时,返回设定的值0,存在时返回w键对应的值。
counts = {}
for w in words:
c= counts.get(w,0) //w不在counts中,返回0; 存在,返回w对应的值。
counts[w] = c + 1
print(counts)
字典中的最大值
遍历字典,判断键对应的值和m的大小,如果值比m大,就让m等于当前值,循环结束,m存储的就是字典的最大值了。
m = 0
k = 0
for c in counts:
if counts[c] > m:
m = counts[c]
k = c
print(k, counts[k])
求字典的最大值和列表的最大值的思路是一样的,都是循环比较。
不过字典遍历的是键,需要由键访问值再进行比较。