统计哈姆雷特中词频为前十的单词:

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:文本词频统计分析相关推荐

  1. Python实例分析——文本词频统计

    基于中国大学mooc网嵩天老师的<Python语言程序设计>课程实例 文章目录 一.数字文本 pi 二.英文文本 *Hamlet* 三.中文文本<三国演义> 一.数字文本 pi ...

  2. 201671010457 朱石景 实验四《英文文本词频统计分析》 结对项目报告

    项目 内容 这个作业属于哪个课程 西北师范大学软件工程 作业要求 实验四 软件工程结对项目 本次实验我的GitHub地址 点击进入 课程学习目标 熟悉软件开发整体流程,提升自身能力 任务一 点评信息 ...

  3. Python_note6 组合数据类型+jieba库+文本词频统计

    集合类型和操作 集合元素不可修改,由不可变数据类型组成,元素不可重复 a = {"python",123,("python",123)}使用{}建立集合 b = ...

  4. python词频统计西游记_实例10-文本词频统计.pdf

    Python语言程序设计 实例10: 文本词频统计 嵩 天 北京理工大学 "文本词频统计"问题分析 CC BY-NC-SA 4.0 嵩天 问题分析 文本词频统计 - 需求 :一篇文 ...

  5. Python—— 组合数据类型(模块5: jieba库的使用)(实例:基本统计值计算文本词频统计)

    前言 本篇主要介绍组合数据类型,以基本统计值计算为例,介绍函数使用和各种类型定义.以文本词频统计为例,介绍Jieba库的使用. (从本篇开始,出现的一些库中函数介绍以及部分简单代码都将以图片形式呈现) ...

  6. Python实例10:文本词频统计

    Python实例10:文本词频统计 6.6.1 问题分析 在英文中文中,出现哪些词,出现多少次? 6.6.2 hamlet英文词频统计 CalHamletV1.py 6.6.3 三国演义人物出场统计 ...

  7. Python实例--文本词频统计

    最近在MOOC跟着北京理工大学的嵩天老师学习Python(https://www.icourse163.org/learn/BIT-268001?tid=1003243006#/learn/annou ...

  8. python文本txt词频统计_python实例:三国演义TXT文本词频分析

    0x00 前言 找不到要写什么东西了!今天有个潭州大牛讲师  说了个  文本词频分析 我基本上就照抄了一遍 中间遇到一些小小的问题 自我百度 填坑补全了  如下 : 效果演示 0x01   准备环境及 ...

  9. Python实现 文本词频统计(嵩天老师)

    实例10:文本词频统计 引用文本 英文文本:Hamet https://python123.io/resources/pye/hamlet.txt 中文文本:<三国演义> https:// ...

  10. Python项目实践:文本词频统计、软文的诗词风

    一.文本词频统计 # CalHamletV1.py def getText():txt = open("C:/Users/520/Desktop/Hamlet.txt", &quo ...

最新文章

  1. linux免交互登陆远程主机并执行命令(密钥对和Expect)
  2. 定义一个不能被拷贝的类
  3. python venv 复制_pythonenv的安装及迁移
  4. apktool+dex2jar+jd_gui
  5. 求二维数组中的最大值和最小值C语言,c语言 写一个子函数要求找出一个二维数组的最大值...
  6. POJ1523:SPF(无向连通图求割点)
  7. qt开发环境 - c++之结构,联合,枚举
  8. 02使用常规步骤编译NanoPiM1Plus的Android4.4.2
  9. Python编程基础19:封装、继承与多态
  10. js math保留两位小数
  11. DCMTK:wwwapp instalation
  12. JS学习:第一周——NO.1预解释
  13. 继电器设备改造需要的设备清单
  14. mysql 数据库索引命名规范_MYSQL数据库命名及设计规范
  15. Proxmark3初学:用PM3克隆M1普通门禁卡方法
  16. 基于asp.net719圆通快递物流管理系统
  17. 8,JESD204B协议介绍
  18. 注意力模型(Attention Model)
  19. 西瓜视频怎么做伪原创
  20. 一个女孩跳楼看到的(漫画)

热门文章

  1. 自己写的一个SP工具类
  2. 什么是佛、法、佛法和佛教
  3. 第十三届蓝桥杯CB组H题扫雷
  4. 将递归转化成迭代的通用技术
  5. 换季掌握3点技巧想不白都难
  6. 毕业设计论文数据采集-----高考报考指南(地图界面显示)
  7. 马踏棋盘python_Python基于回溯法子集树模板解决马踏棋盘问题示例
  8. 马踏棋盘python_马踏棋盘之贪心算法优化
  9. C语言数据类型的范围
  10. 2023年03月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试