【Python】文本词频统计
时间:2020-04-11
本文章向大家介绍【Python】文本词频统计,主要包括【Python】文本词频统计使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
哈姆雷特英文
https://python123.io/resources/pye/hamlet.txt
三国演义中文
https://python123.io/resources/pye/threekingdoms.txt
哈姆雷特英文词频分析
def getText(): txt=open("hamlet.txt","r").read()#打开文本,输入具体的文本路径 txt=txt.lower()#将文本中所有的英文字符变成小写 for ch in '!"#$%&()*+,-./;:<=>?@[\\]^‘_{|}~': txt=txt.replace(ch," ") return txt #去掉特殊符号 hamletTxt=getText()#调用函数对文本进行处理 words=hamletTxt.split()#进行列表 counts={}#字典 for word in words: counts[word]=counts.get(word,0)+1#获取到的词在字典中寻找如果有的话在原来的基础上+1,如果没有就收录到字典中 items=list(counts.items())#变成列表类型 items.sort(key=lambda x:x[1],reverse=True)#对列表排序 for i in range(10):#将出现次数前10的单词输出并输出出现次数 word,count=items[i] print("{0:<10}{1:>5}".format(word,count))
三国演义人物出场次数
import jieba#引入jieba分词库 txt = open("threekingdoms.txt", "r", encoding="utf-8").read()#打开文本 words = jieba.lcut(txt)#进行分词处理并形成列表 counts = {}#构造字典,逐一遍历words中的中文单词进行处理,并用字典计数 for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word, 0) + 1 items = list(counts.items())#转换列表类型并排序 items.sort(key=lambda x:x[1], reverse=True) for i in range(15):#输出前15位单词 word, count = items[i] print("{0:<10}{1:<5}".format(word, count))
结果:
上面有不是人物的词,需要改造
import jieba txt = open("threekingdoms.txt", "r", encoding="utf-8").read() excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此", "主公",\ "军士", "商议", "如何", "左右", "军马", "引兵", "次日", "大喜",\ "天下", "东吴", "于是", "今日", "不敢", "魏兵", "陛下", "一人",\ "都督", "人马", "不知"}#排除不是人名的词汇,加到这个排除词库中 words = jieba.lcut(txt) counts = {} for word in words:#进行人名关联,防止重复 if len(word) == 1: continue elif word == "诸葛亮" or word == "孔明曰": rword = "孔明" elif word == "关公" or word == "云长": rword = "关羽" elif word == "玄德" or word == "玄德曰": rword = "刘备" elif word == "孟德" or word == "丞相": rword = "曹操" else: rword = word counts[rword] = counts.get(rword, 0) + 1 for word in excludes: del counts[word] items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(10): word, count = items[i] print("{0:<10}{1:<5}".format(word, count))
结果
不断优化。。。。
原文地址:https://www.cnblogs.com/HGNET/p/12680753.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux 查看磁盘IO并找出占用IO读写很高的进程
- Android实现简单的拨号器功能
- Android调用系统自带浏览器打开网页的实现方法
- Linux之删除带有空格的文件(不是目录)
- Android自定义AvatarImageView实现头像显示效果
- 如何使用win10内置的linux系统启动spring-boot项目
- Android 实现单线程轮循机制批量下载图片
- Android开发之项目模块化实践教程
- Linux centos7 下安装 phpMyAdmin的教程
- 简单学习Android TextView
- Android 滑动返回Activity的实现代码
- centos7搭建hadoop2.10高可用(HA)
- 在 React 中实现 keep alive(可参与文末讨论哦)
- Android仿淘宝切换商品列表布局效果的示例代码
- android 右滑返回的示例代码