使用jieba(中文分词)库统计词频

一、 基本框架

以统计水浒传人物出场次数为例,列出出场次数最高的前三名。

import jieba #引用中文分词库
txt = open("shuihu.txt","r",encoding="gb18030").read() #读取文件,注意编码
excludes = {"两个","一个"} #通过不断优化排除结果中的无用词
words = jieba.lcut(txt) #中文分词
counts = {} #用于保存结果的字典

for word in words:  #遍历方法统计词频
    if len(word) == 1:
        continue
    else:
        counts[word]=counts.get(word,0) + 1  #巧用get

for word in excludes:  #排除无用词
    del counts[word]

items = list(counts.items()) #将结果转为列表形式
items.sort(key=lambda x:x[1],reverse=True) #以词频从高到低排序
print("{:<10}{:^5}".format("人物","次数")) #打印表头

for i in range(3):     #打印出场次数前三名
    word,count = items[i]
    print("{0:<10}{1:>5}".format(word,count))

输入:

输出:

在这里插入图片描述

二、 优化

以三国演义为例,将同一人物的不同称呼进行合并统计,使用if…elif…else

输入:

在这里插入图片描述
输出:
在这里插入图片描述


版权声明:本文为aieraisiji原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。