import jieba标签:jieba,word,list,counts,txt,分词 From: https://www.cnblogs.com/lin--/p/17909054.html
with open('红楼梦.txt','r',encoding='utf-8')as f: # 打开文件
txt = f.read() # 读取为txt
words = jieba.lcut(txt) # 利用jieba库的lcut分词
counts={} # 创建字典
for word in words: # 逐个遍历
if len(word) == 1: # 对于一些分词之后只有一个词的,还有一些只有单个的符号的,如。,!~,直接选择舍弃,只统计词组类型的
continue
else:
# 创建字典,对应的值会进行累加
counts[word]=counts.get(word,0)+1 # 此时词语出现次数累加 ,对每一个键对应的值
list = list(counts.items()) # 字典中items()方法见下 ,函数返回列表类型,列表里面每一个元素是一个(键, 值) 元组数组。
# 从大到小进行排列 ,key对应的值为字典的[1]索引 = value,此时列表里面每一个元素是一个元组的形式
list.sort(key=lambda x:x[1],reverse=True)
for i in range(20):
print("红楼梦出现第{}多的词语是{},出现的次数为{}".format(i+1,list[i][0],list[i][1]))