实例10:文本词频统计分析
统计哈姆雷特中词频为前十的单词:
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#获取word当前有几个,如果word不存在则为0
items=list(counts.items())#counts.items()按键值对的方式返回字典
#d={"China":"Beijing","USA":"Washington DC","Franch":"Pairs"}
#d.items()
#上两行的运行结果:dict_items([('China', 'Beijing'), ('USA', 'Washington DC'), ('Franch', 'Pairs')])
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))
#<10左对齐宽度为10,>5右对齐宽度为5运行结果:
the 1137
and 963
to 736
of 669
you 546
i 540
a 527
my 513
hamlet 459
in 435
字典中get(key,default=None)方法,参考:https://blog.csdn.net/mjj_1094/article/details/70176146
统计三国演义中的词频:
import jieba
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
words=jieba.lcut(txt)#对文本进行分词处理
counts={}#构造字典
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):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))运行结果:
曹操 953
孔明 836
将军 772
却说 656
玄德 585
关公 510
丞相 491
二人 469
不可 440
荆州 425
玄德曰 390
孔明曰 390
不能 384
如此 378
张飞 358
上述代码中:孔明和孔明曰,其实是一个人,但是在分词的时候出现了问题,就给搞成了两个人,下面对代码进行修改。
三国演义中的人物出场统计:
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=wordcounts[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(15):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))运行结果:
曹操 1451
孔明 1383
刘备 1252
关羽 784
张飞 358
商议 344
如何 338
主公 331
军士 317
吕布 300
左右 294
军马 293
赵云 278
引兵 276
次日 271
实例10:文本词频统计分析相关推荐
- Python实例分析——文本词频统计
基于中国大学mooc网嵩天老师的<Python语言程序设计>课程实例 文章目录 一.数字文本 pi 二.英文文本 *Hamlet* 三.中文文本<三国演义> 一.数字文本 pi ...
- 201671010457 朱石景 实验四《英文文本词频统计分析》 结对项目报告
项目 内容 这个作业属于哪个课程 西北师范大学软件工程 作业要求 实验四 软件工程结对项目 本次实验我的GitHub地址 点击进入 课程学习目标 熟悉软件开发整体流程,提升自身能力 任务一 点评信息 ...
- Python_note6 组合数据类型+jieba库+文本词频统计
集合类型和操作 集合元素不可修改,由不可变数据类型组成,元素不可重复 a = {"python",123,("python",123)}使用{}建立集合 b = ...
- python词频统计西游记_实例10-文本词频统计.pdf
Python语言程序设计 实例10: 文本词频统计 嵩 天 北京理工大学 "文本词频统计"问题分析 CC BY-NC-SA 4.0 嵩天 问题分析 文本词频统计 - 需求 :一篇文 ...
- Python—— 组合数据类型(模块5: jieba库的使用)(实例:基本统计值计算文本词频统计)
前言 本篇主要介绍组合数据类型,以基本统计值计算为例,介绍函数使用和各种类型定义.以文本词频统计为例,介绍Jieba库的使用. (从本篇开始,出现的一些库中函数介绍以及部分简单代码都将以图片形式呈现) ...
- Python实例10:文本词频统计
Python实例10:文本词频统计 6.6.1 问题分析 在英文中文中,出现哪些词,出现多少次? 6.6.2 hamlet英文词频统计 CalHamletV1.py 6.6.3 三国演义人物出场统计 ...
- Python实例--文本词频统计
最近在MOOC跟着北京理工大学的嵩天老师学习Python(https://www.icourse163.org/learn/BIT-268001?tid=1003243006#/learn/annou ...
- python文本txt词频统计_python实例:三国演义TXT文本词频分析
0x00 前言 找不到要写什么东西了!今天有个潭州大牛讲师 说了个 文本词频分析 我基本上就照抄了一遍 中间遇到一些小小的问题 自我百度 填坑补全了 如下 : 效果演示 0x01 准备环境及 ...
- Python实现 文本词频统计(嵩天老师)
实例10:文本词频统计 引用文本 英文文本:Hamet https://python123.io/resources/pye/hamlet.txt 中文文本:<三国演义> https:// ...
- Python项目实践:文本词频统计、软文的诗词风
一.文本词频统计 # CalHamletV1.py def getText():txt = open("C:/Users/520/Desktop/Hamlet.txt", &quo ...
最新文章
- linux免交互登陆远程主机并执行命令(密钥对和Expect)
- 定义一个不能被拷贝的类
- python venv 复制_pythonenv的安装及迁移
- apktool+dex2jar+jd_gui
- 求二维数组中的最大值和最小值C语言,c语言 写一个子函数要求找出一个二维数组的最大值...
- POJ1523:SPF(无向连通图求割点)
- qt开发环境 - c++之结构,联合,枚举
- 02使用常规步骤编译NanoPiM1Plus的Android4.4.2
- Python编程基础19:封装、继承与多态
- js math保留两位小数
- DCMTK:wwwapp instalation
- JS学习:第一周——NO.1预解释
- 继电器设备改造需要的设备清单
- mysql 数据库索引命名规范_MYSQL数据库命名及设计规范
- Proxmark3初学:用PM3克隆M1普通门禁卡方法
- 基于asp.net719圆通快递物流管理系统
- 8,JESD204B协议介绍
- 注意力模型(Attention Model)
- 西瓜视频怎么做伪原创
- 一个女孩跳楼看到的(漫画)