本篇文档,带大家用Python做一下词频统计

本章需要用到Python的jieba模块

jieba模块是一个经典的用于中文分词的模块

首先呢 我们需要读取文章的内容,并用jieba库的lcut进行分词

import jieba

# 读取红楼梦的文本内容

txt = open('红楼梦.txt', 'r', encoding='utf-8').read()

# 运用jieba库对文本内容进行分词

words = jieba.lcut(txt)

然后 我们去统计人名的出现次数

这里需要分析什么词语是人名,我们去创建一个文档,当做字典存储人名信息

人名还会有其他的表示,我们将它转化成一样的名字

# 初始化count字典 用于存放人名出现频率

counts = {}

# 读取红楼梦人名信息

names = open('人名.txt', 'r', encoding='utf-8').read().split('、')

# 对分词数据进行筛选 将不需要的数据跳过 只保存有效数据

for word in words:

if len(word) == 1:

continue

elif word == '贾母' or word == '老太太':

word = '贾母'

elif word in '贾珍—尤氏'.split('—'):

word = '贾珍'

elif word in '贾蓉—秦可卿'.split('-'):

word = '贾蓉'

elif word in '贾赦—邢夫人'.split('-'):

word = '贾赦'

elif word in '贾政—王夫人'.split('-'):

word = '贾政'

elif word in '袭人-蕊珠'.split('-'):

word = '袭人'

elif word in '贾琏—王熙凤'.split('-'):

word = '贾琏'

elif word in '紫鹃-鹦哥'.split('-'):

word = '紫鹃'

elif word in '翠缕-缕儿'.split('-'):

word = '翠缕'

elif word in '香菱-甄英莲'.split('-'):

word = '香菱'

elif word in '豆官-豆童'.split('-'):

word = '豆官'

elif word in '薛蝌—邢岫烟'.split('-'):

word = '薛蝌'

elif word in '薛蟠—夏金桂'.split('-'):

word = '薛蟠'

elif word in '贾宝玉-宝玉'.split('-'):

word = '贾宝玉'

elif word in '林黛玉-林姑娘-黛玉'.split('-'):

word = '林黛玉'

if word not in names:

continue

counts[word] = counts.get(word, 0)+1

最后我们将数据排序整理一下

# 将人名按照次数排序 降序

items = list(counts.items())

# 排序规则 以次数为参考进行排序

items.sort(key=lambda x: x[1], reverse=True)

完整代码如下:

import jieba

# 读取红楼梦的文本内容

txt = open('红楼梦.txt', 'r', encoding='utf-8').read()

# 运用jieba库对文本内容进行分词

words = jieba.lcut(txt)

# 初始化count字典 用于存放人名出现频率

counts = {}

# 读取红楼梦人名信息

names = open('人名.txt', 'r', encoding='utf-8').read().split('、')

# 对分词数据进行筛选 将不需要的数据跳过 只保存有效数据

for word in words:

if len(word) == 1:

continue

elif word == '贾母' or word == '老太太':

word = '贾母'

elif word in '贾珍—尤氏'.split('—'):

word = '贾珍'

elif word in '贾蓉—秦可卿'.split('-'):

word = '贾蓉'

elif word in '贾赦—邢夫人'.split('-'):

word = '贾赦'

elif word in '贾政—王夫人'.split('-'):

word = '贾政'

elif word in '袭人-蕊珠'.split('-'):

word = '袭人'

elif word in '贾琏—王熙凤'.split('-'):

word = '贾琏'

elif word in '紫鹃-鹦哥'.split('-'):

word = '紫鹃'

elif word in '翠缕-缕儿'.split('-'):

word = '翠缕'

elif word in '香菱-甄英莲'.split('-'):

word = '香菱'

elif word in '豆官-豆童'.split('-'):

word = '豆官'

elif word in '薛蝌—邢岫烟'.split('-'):

word = '薛蝌'

elif word in '薛蟠—夏金桂'.split('-'):

word = '薛蟠'

elif word in '贾宝玉-宝玉'.split('-'):

word = '贾宝玉'

elif word in '林黛玉-林姑娘-黛玉'.split('-'):

word = '林黛玉'

if word not in names:

continue

counts[word] = counts.get(word, 0)+1

# 将人名按照次数排序 降序

items = list(counts.items())

# 排序规则 以次数为参考进行排序

items.sort(key=lambda x: x[1], reverse=True)

# print(items)

print('出现次数最多的是:', items[0][0], '出现了:', items[0][1], '次')

print('出现次数最少的是:', items[-1][0], '出现了:', items[-1][1], '次')

for item in items:

print(item[0], '出现了:', item[1], '次')

效果图如下:

image.png

红楼梦人物出场顺序python_Python 中文词频分析——红楼梦人物出场次数相关推荐

  1. 第三方库实现中文词频分析和词语可视化(jieba,wordcloud库)

    jieba,wordcloud库实现中文词频分析和词语可视化 文章目录 前言: 一.实验题目: 二.实验准备: 三.实验内容 1.全部代码: 2.实验结果: 3.难点分析: 结语: 前言: 这篇文章是 ...

  2. 使用python进行“中文词频分析”学习笔记

    首先什么是"词频分析"? 词频分析,就是对某一或某些给定的词语在某文件中出现的次数进行统计分析. 那么它能做哪些事情? 比如:分析你最喜欢的作者的表达习惯是怎样的? 判断一首诗是李 ...

  3. python文本聚类 词云图_有哪些软件可以进行中文词频分析?

    在现实生活中,人想做词云,也有了关键词的数据但自己又不会做词云可怎么办,我给大家推荐几款词云制作工具,让你瞬间呈现美观.酷炫的词云可视化.我们先来看看国外的词云制作工具: 1.Wordle Wordl ...

  4. 基于python的中文词频分析

    受http://yixuan.cos.name/cn/2011/03/text-mining-of-song-poems/这篇文章的启发,觉得PYTHON来做文字处理分析应该不错,可以来做个词频分析, ...

  5. 红楼梦人物出场统计python_Python程序设计习题3——红楼梦人物出场次数统计

    统计<红楼梦>中前20位出场最多的人物 使用Python编写程序,统计书籍<红楼梦>中前20位出场次数最多的人物 #红楼梦人物出场统计 import jieba txt=ope ...

  6. 三国演义人物出场顺序统计(文本词频统计)

    1.使用jieba库 对中文文本进行分词 2.使用字典表达词频 (与hamlet案例相似) import jieba txt = open("threekingdoms.txt", ...

  7. python 对excel文件进行分词并进行词频统计_python 词频分析

    python词频分析 昨天看到几行关于用 python 进行词频分析的代码,深刻感受到了 python 的强大之处.(尤其是最近自己为了在学习 c 语言感觉被它的语法都快搞炸了,python 从来没有 ...

  8. jieba库词频统计_如何用python对《三国演义》、《红楼梦》等名著开展词云分析及字频统计、出场统计等工作。...

    以下以<红楼梦>为例进行设计. 在制作词云图及统计之前,需要下载python的几个库,wordcloud.jieba以及imageio等,我的操作系统为Windows10,IDE环境为id ...

  9. python红楼梦人物统计_Python分析红楼梦,宝玉和十二钗的人物关系

    红楼梦出场人物很多,人物关系极其复杂,这次我们用Python来分析主人公贾宝玉和他的姐妹们,金陵十二钗之间的关系,做一个简要的分析. 出场率 由于我们只统计宝玉和十二钗(正册)这些人物,因此我们需要实 ...

最新文章

  1. 如何安全存储比特币现金(BCH)?
  2. 工科学生懂艺术,魔鬼神仙挡不住
  3. linux中的五大查找命令---whereis,find,locate,which,type
  4. matlab 大于并且小于,Matlab:将大于(小于)1(-1)的元素转换为1(-1)的序列
  5. Python中查找包含它的列表元素的索引,index报错!!!
  6. Category 特性在 iOS 组件化中的应用与管控
  7. PCR之父凯利·穆利斯:有才,真的可以为所欲为
  8. 如何确定autosar的版本_从工程师的角度看AUTOSAR
  9. 一个连衣服都穿不整齐的人,代码也肯定写不整齐。
  10. 右键文件夹没有git clone命令的解决方法
  11. 翻译:如何理解K-means的缺点
  12. rollup函数 和cube函数 的区别?
  13. 嵌入式硬件-读懂原理图
  14. AI服务官上线“一网通办”:找政府办事就像逛网店
  15. [车联网安全自学篇] ATTACK安全之交互式/非交互式Shell和登录式/非登录式Shell的检测
  16. 有没有手机版_漫威定制版智能手机壳 Galaxy S10的小伙伴不容错过
  17. 疫情下,2020年大数据产业展望
  18. lamp分离部署+phpmyadmian
  19. 想要绘图效率节省储存空间?CAD内部图块该怎么创建?
  20. 11 Tornado - 使用模板

热门文章

  1. javaweb+移动端 富文本
  2. win10有信号没有网络连接到服务器,win10系统显示网络连接正常但没有网络,无法上网的办法介绍...
  3. 为什么人人都是颜值控?
  4. 前端测试 -- sinon.js
  5. 自动化缺陷检测系统01-项目总体方案设计
  6. 闲鱼项目玩法实战,做闲鱼一定要知道的卖货技巧!
  7. 2022面试Android之ThreadLocal
  8. Unity3d bounds包围盒 和collider碰撞器区别
  9. 在Debian系统下使用自带的Fcitx配置中文输入法
  10. 油气田工业控制系统现状