程序解决问题描述如下:
使用jieba库,该语句可以分割中文语句中的词汇。同时掌握对txt文档的读写操作,对其中出现的高频词汇进行了统计。建立一个排除词库,用于排除程序对一些无意义的词的计数,使得最终结果为有更大意义的数据。
使用jieba库对《三国演义》全篇的文本文件进行分词处理,然后对分词后的文本进行处理,统计《三国演义》中各个人物的出场次数,然后将出场次数排名前五的名字和出场次数在窗口中打印。
设置排除词库,将《三国演义》中出现次数较多而不是人物姓名的词屏蔽,从而打印出的出现最多的词都是《三国演义》中的人物姓名,同时设置合并程序,将同一个人物的不同称谓进行归一化处理,然后不同的称谓同样在该人物的出场次数上计数,从而实现完整的统计人物的出场次数。
程序代码如下:
import jiebaexcludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此"}#排除词库txt = open("三国演义.txt", "r", encoding='utf-8').read()words = jieba.lcut(txt)#分词处理counts = {}for word in words:if len(word) == 1:continueelif word == "诸葛亮" or word == "孔明曰" or word == "卧龙":#合并不同称谓rword = "孔明"elif word == "关公" or word == "云长" or word == "美髯公":rword = "关羽"elif word == "玄德" or word == "玄德曰" or word == "刘皇叔":rword = "刘备"elif word == "孟德" or word == "丞相" or word == "曹贼":rword = "曹操"elif word == "翼德" or word == "猛张飞" or word == "张翼德":rword = "张飞"else:rword = wordcounts[rword] = counts.get(rword, 0) + 1for word in excludes:del (counts[word])items = list(counts.items())items.sort(key=lambda x: x[1], reverse=True)#排序print("三国人物出场次数统计:")for i in range(5):word, count = items[i]print("{0:<10}{1:>5}".format(word, count))
程序运行结果如下:
看到这里的小伙伴别忘了点个赞再走哦!
关注博主学习更多Python程序设计知识!
【jieba库】使用jieba库对《三国演义》全篇进行分词处理 统计《三国演义》中各个人物的出场次数 打印次数排名前五的人物姓名具有排除词库和合并不同称谓功能的Python程序|CSDN创作打卡
如果觉得《【jieba库】使用jieba库对《三国演义》全篇进行分词处理 统计《三国演义》中各个人物》对你有帮助,请点赞、收藏,并留下你的观点哦!