Python 您所在的位置:网站首页 神雕侠侣所有人物 Python

Python

2023-08-11 15:43| 来源: 网络整理| 查看: 265

最近被线段树一卡,卡的我啥也不会了,也就一个星期没写博客。 正巧女朋友学python,之前也跟着凑凑热闹,正巧最近问了我一个题:如何用jieba库统计水浒传人物出现得次数,并且输出前20名得人物。 想了想直接暴力不久完了,管他多暴力呢

文章目录 思路预先处理代码部分运行结果

思路

主要思路:其实就是用jieba库先将文章进行拆分,然后我们创建一个字典,用来统计每个人物出现得次数,当然这里可能就会出现一个问题了,有些不是人名得词语也会被统计上,那怎么办呢?我们可以先将人名输入到一个列表当中,循环记录次数得时候判断人名是否存在在列表当中(我认为很暴力)

预先处理

1. 在这里插入图片描述 什么?你要将水浒传所有人名都存在列表里面?好麻烦啊。 当然不是,我们可以先从网上把所有人名查出来用python得spilt函数将其直接输出一个列表类型,然后粘贴即可。

代码:

#coding:utf-8 names="宋江、卢俊义、吴用、公孙胜、关胜、林冲、秦明、呼延灼、花荣、柴进、 李应、朱仝、鲁智深、武松、董平、张清、杨志、徐宁、索超、戴宗、刘唐、李逵、 史进、穆弘、雷横、李俊、阮小二、张横、阮小五、张顺、阮小七、杨雄、石秀、 解珍、解宝、燕青、朱武、黄信、孙立、宣赞、郝思文、韩滔、彭玘、单廷珪、 魏定国、萧让、裴宣、欧鹏、邓飞、燕顺、杨林、凌振、蒋敬、吕方、郭盛、安道全、 皇甫端、王英、扈三娘、鲍旭、樊瑞、孔明、孔亮、项充、李衮、金大坚、马麟、 童威、童猛、孟康、侯健、陈达、杨春、郑天寿、陶宗旺、宋清、乐和、龚旺、 丁得孙、穆春、曹正、宋万、杜迁、薛永、施恩、李忠、周通、汤隆、杜兴、邹渊、 邹润、朱贵、朱富、蔡福、蔡庆、李立、李云、焦挺、石勇、孙新、顾大嫂、张青、 孙二娘、王定六、郁保四、白胜、时迁、段景住" print(names.split('、'))

2. 其次你需要有拥有一篇水浒传得小说文章,这里就不提供了 注意得是txt他的格式一定要是’utf-8’编码

代码部分 import jieba import time start = time.perf_counter() #起始时间 txt=open("1111.txt","r",encoding='utf-8').read() names=['宋江', '卢俊义', '吴用', '公孙胜', '关胜', '林冲', '秦明', '呼延灼', '花荣', '柴进', '李应', '朱仝', '鲁智深', '武松', '董平', '张清', '杨志', '徐宁', '索超', '戴宗', '刘唐', '李逵', '史进', '穆弘', '雷横', '李俊', '阮小二', '张横', '阮小五', '张顺', '阮小七', '杨雄', '石秀', '解珍', '解宝', '燕青', '朱武', '黄信', '孙立', '宣赞', '郝思文', '韩滔', '彭玘', '单廷珪', '魏定国', '萧让', '裴宣', '欧鹏', '邓飞', '燕顺', '杨林', '凌振', '蒋敬', '吕方', '郭盛', '安道全', '皇甫端', '王英', '扈三娘', '鲍旭', '樊瑞', '孔明', '孔亮', '项充', '李衮', '金大坚', '马麟', '童威', '童猛', '孟康', '侯健', '陈达', '杨春', '郑天寿', '陶宗旺', '宋清', '乐和', '龚旺', '丁得孙', '穆春', '曹正', '宋万', '杜迁', '薛永', '施恩', '李忠', '周通', '汤隆', '杜兴', '邹渊', '邹润', '朱贵', '朱富', '蔡福', '蔡庆', '李立', '李云', '焦挺', '石勇', '孙新', '顾大嫂', '张青', '孙二娘', '王定六', '郁保四', '白胜', '时迁', '段景住'] words=jieba.lcut(txt) cnt={} #用来计数 for word in words: if word not in names: #如果根本不是人名,那就不记录这个分词了 continue cnt[word]=cnt.get(word,0)+1 items=list(cnt.items()) #将其返回为列表类型 items.sort(key=lambda x:x[1],reverse=True) #排序 for i in range(20): #输出我亲爱得二维列表 name,ans=items[i] print("{0:5}".format(name,ans)) end = time.perf_counter() #结束时间 print('程序运行时间:%.4f'%(end - start)) 运行结果 "D:\Program Files (x86)\python\python.exe" C:/Users/Xiaoxiaoxiao/PycharmProjects/untitled1/123.py Building prefix dict from the default dictionary ... Loading model from cache C:\Users\XIAOXI~1\AppData\Local\Temp\jieba.cache Loading model cost 0.697 seconds. Prefix dict has been built successfully. 宋江 出现次数为: 2473 李逵 出现次数为: 1100 武松 出现次数为: 1027 林冲 出现次数为: 670 吴用 出现次数为: 648 卢俊义 出现次数为: 548 鲁智深 出现次数为: 326 柴进 出现次数为: 315 戴宗 出现次数为: 296 公孙胜 出现次数为: 275 朱仝 出现次数为: 260 花荣 出现次数为: 255 燕青 出现次数为: 253 秦明 出现次数为: 246 李俊 出现次数为: 232 史进 出现次数为: 227 杨志 出现次数为: 220 石秀 出现次数为: 195 张清 出现次数为: 191 关胜 出现次数为: 185 程序运行时间:6.3082 Process finished with exit code 0


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有