Python实现 文本词频统计(嵩天老师)
实例10:文本词频统计
引用文本
英文文本:Hamet
https://python123.io/resources/pye/hamlet.txt
中文文本:《三国演义》
https://python123.io/resources/pye/threekingdoms.txt
代码(哈姆雷特):
#CalHamlet1.py
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
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}".format(word,count))
#注:文本要和代码放在一个文件夹里
逐行分析:
#CalHamlet1.py
def getText():
txt=open("hamlet.txt","r").read()
打开要处理的文件,并读取它
txt=txt.lower()
把读取到的所有大写字母转换为小写
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_{|}.~’‘':
txt=txt.replace(ch," ")
return txt
把文章中的特殊字符全部转换为空格,把转换后的文章返回
hamletTxt=getText()
调用getText,将返回的txt的值赋给hamletTxt
words=hamletTxt.split()
把hamletTxt转换为列表形式,赋值给words
counts={}
定义一个字典
for word in words:
counts[word]=counts.get(word,0)+1
有word时返回其值,默认是0,+1能够累计次数;没有word时则返回0。
items=list(counts.items())
将字典类型变成列表类型,键值对则表示在列表中是元组。
items.sort(key=lambda x:x[1],reverse=True)
key是待比较的元素,lambda是匿名函数,参数的第一个x表示列表的第一个元素,在
这里表示列表中的元组,x是任意定义的形参,也可以使用任意的字母代替;x[1]表示以元组的第
二个元素排序;若sort()方法中的参数 reverse=True 表示按降序(也就是从大到小)排序,反之
reverse=False 表示升序排序。
for i in range(10):
word,count=items[i]
print("{0:<10}".format(word,count))
循环输出前十个
代码(三国演义):
# CalThreeKingdomsV1.py
import jiebatxt = open("threekingdoms.txt", "r", encoding="utf-8").read()
excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此"}
words = jieba.lcut(txt)
counts = {}
for word in words:if len(word) == 1:continueelif 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(10):word, count = items[i]print("{0:<10}{1:>5}".format(word, count))
#这段代码输出的不是最终结果,代码可进一步优化
举一反三:
-其它名著的人物出场统计
-政府工作报告、科研论文、新闻报道
-可以统计后形成词云
Python实现 文本词频统计(嵩天老师)相关推荐
- Python实例--文本词频统计
最近在MOOC跟着北京理工大学的嵩天老师学习Python(https://www.icourse163.org/learn/BIT-268001?tid=1003243006#/learn/annou ...
- python进行词频统计_如何利用Python进行文本词频统计
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 Python在自然语言处理这个方面,有其天然的优势: ...
- python统计词频 创建字典_如何利用Python进行文本词频统计
问题描述 Python在自然语言处理这个方面,有其天然的优势:简单,快捷.所以我们经常会遇到利用Python从一篇文档中,统计文本词频的问题.以<三国演义>这部名著为例,文中哪些人物的出场 ...
- python英文文本词频统计代码_Python小程序:文本词频统计(英文+中文)
在学习了组合数据类型和文件操作之后就可以做出下面的文本词频统计的小程序了: 1. 下面是英文文本的词频统计,统计了作者的一篇英文论文 #文本词频统计:英文文本 def gettext(): #从文件中 ...
- python英文文本词频统计_Python英文文章词频统计(14份剑桥真题词频统计)
Python剑桥真题词频统计 最好还是要学以致用,自主搜集了19年最近的14份剑桥真题之后,通过Python提供的jieba第三方库,对所有的文章信息进行了词频统计,并选择性地剔除了部分简易词汇,比如 ...
- python英文文本词频统计_python编程:英文小说词频统计
一.编程目的: 1.英文小说(The Myths )分词,并进行词频统计 2.绘制词频统计直方图 3.为小说情感分析做准备 二.编程环境: 1.pyhon3+pycharm 2.需安装模块:strin ...
- python英文文本词频统计_python实现简单的英文词频统计
1 __author__ = 'Oscar_Yang' 2 #-*- coding= utf-8 -*- 3 #copyRight by OSCAR 4 """ 5 本脚 ...
- python哈姆雷特词频统计_python—文本词频统计 哈姆雷特 txt 下载
原博文 2020-05-13 15:49 − 文本词频统计 -- Hamlet Hamlet下载 链接:https://pan.baidu.com/s/1Is2mBAED57i6nI38lcnXAA ...
- Python—— 组合数据类型(模块5: jieba库的使用)(实例:基本统计值计算文本词频统计)
前言 本篇主要介绍组合数据类型,以基本统计值计算为例,介绍函数使用和各种类型定义.以文本词频统计为例,介绍Jieba库的使用. (从本篇开始,出现的一些库中函数介绍以及部分简单代码都将以图片形式呈现) ...
最新文章
- 【Sql Server】DateBase-视图
- overflow:hidden;zoom:1 理解转__
- eclipse乱码解决方法
- SQLServer如何删除字段中的某个字符串,或者替换为空格?
- 数据结构与算法-- 广度优先打印二叉树
- apache2 wordpress目录权限_小白指南:WordPress中的用户角色和权限
- 还是畅通工程(HDU-1233)
- 安装SharePoint2010的准备工作-2
- Solved: RDP Disconnected – Error Code 2825 mremote
- win7计算机硬盘很慢,Win7系统电脑反应慢 win7系统反应慢的9个解决方法
- while循环python次数定义_Python学习笔记之While循环用法分析
- 初探flask debug生成pin码
- K线形态识别—K线反转形态之底部反转形态
- 天牛须算法(BAS)python实现
- 基于java的简单的(即时通讯)聊天程序
- 买电脑常识——电脑性能
- 国家2级计算机考试准考证号
- Python strip()方法
- 罗振宇、吴晓波都错了,知识是免费的
- Python字符串中提取国家名称