• Python初学者,目前为止初步学完了基础语法和常用库的操作。
  • “《三国演义》词云”是近期归纳学习心得期间一时兴起做来练手的,水平极其有限,仅作记录。
  • 自学Python强推北京理工大学嵩天教授的MOOC:Python语言程序设计;课件的深度设置地很舒服,非常适合零基础入门或者有数据分析需求但是无意深挖技术的听众。
  • 以上为背景

1. 语料与外部库:

三国演义全文txt格式语料:Python123.io

Jieba分词:Github

WordCloud库:Github

2. 代码:

import jieba
import  wordcloud as wc
#三国演义.txt#文本读取
f1=open('datalib/threekingdoms.txt','r',encoding='utf-8')
t1=f1.read()
f1.close()#文本预处理(同义词合并)
t1=t1.replace('孔明曰','孔明')
t1=t1.replace('玄德曰','玄德')
t1=t1.replace('玄德','刘备')
t1=t1.replace('关公','云长')
t1=t1.replace('云长','关羽')#结巴分词+去除虚词
ls=jieba.lcut(t1)
excludes={'不可','却说','二人','不能','次日','左右','主公','于是','今日','天下','大喜','将军','引兵','商议','陛下','都督','不敢','如何','如此','众将','只见','后主','此人','不知','人马','先主','一人','丞相'}
for word in ls:if word in excludes:ls.remove(word)
txt1=" ".join(ls)#词云生成
w1=wc.WordCloud(width=1000,height=700,background_color='white',\max_words=20,font_path='msyh.ttc')
w1.generate(txt1)
w1.to_file("datalib/3KingWordCloud.png")

4. 词云生成

5. 分析

5.1 从词云看《三国演义》的角色排位

  • A级主角:刘备;关羽;孔明;曹操

词云中硕大的“刘备”二字昭示了皇叔在《演义》中的超然地位,“崇刘抑曹”的主线显露无疑。

“诸葛亮”、“关羽”在字号上略逊于“刘备”,正是读者印象中蜀汉的文武双臂无疑(张飞:那我呢.jpg)

曹孟德身为集权谋、霸略、豪气于一身的“可爱又迷人的反派角色”,虽然在小说中被刻意压制,但是仍能挤进第一梯队的行列,已足见其魅力。(孙权:好嘛,我没了)

  • B级主角:张飞、吕布、赵云

从字号不难看出,B级主角的出场频率相比A级的三位显而易见的少。

张飞作为“刘关张”组合的一员却被挤出第一梯队,实惨了。

吕布作为前期的明星角色虽然早早便当,但是仍然跻身B级主角行列,其刻画之细致可见一斑。

赵云身为三国衍生品的看板角色,论及出场频次却在B级梯队吊了车尾,不过想来小说后半似乎确实鲜见子龙身影...

  • C级主角:孙权、周瑜、袁绍、司马懿、魏延、马超

刚才吐槽了张飞被挤出“刘关张”组合,而身为三国鼎立“一代目”的孙权却只能在C级梯队中做个“鸡头”,确实是迫真实惨;不过也暗合了其“孙仲谋”“孙十万”并存的杂糅历史形象。

周瑜、司马懿身为诸葛亮前后期对线的主要角色,也都得以跻身主角行列(孔明,YYDS)

袁绍、马超、魏延现身于词云起初我还比较意外,后来想想,原来这哥仨原来分别是前中后期推动剧情演进的引子?(存疑)

5.2 从词云看《三国演义》的地理名词

  • 词云中出现的地名包括荆州、东吴、汉中
  • 荆州作为小说前中期的争夺焦点,诞生了无数耳熟能详的典故。在词云中位列C位毫不意外
  • 东吴作为唯一的国名,能够力压魏蜀现身词云,一方面可以理解为东吴搞的是团队战术,玩的是集体主义,相比之下魏蜀则是刻画个人英雄主义为底色了。另一方面,发生与东吴主场之上的赤壁之战对于小说的情节发展堪称承上启下,自兹而后,形势由乱转定,从群雄逐鹿走向三国鼎立的博弈之中。有此一节则东吴现身词云也可谓合理。
  • 汉中在词云中现身属于意料之外之事,想来是因为其是后期诸葛亮北伐的必经之地。将汉中与荆州、东吴作比,偶然发现前两个地点都有对应的电源作品(eg.荆州:《影》;东吴:《赤壁》),倒是汉中在电影中鲜有现身,在此可以期待一下。

5.3 从词云看《三国演义》的战争

在词云生成参数中将阈值设定为词频前20,上文已经侃过了16个,剩余4个词分别是:蜀兵、魏兵、军士、军马,不难看出可以分别构成两对词组。

蜀兵vs魏兵:《三国演义》的知名战役无数,然而出场频率最高的缺失魏兵与蜀兵。回顾这两个词频繁现身的章节,应当是诸葛亮北伐期间。倒也是暗合了后期魏蜀争雄的纵贯线。

军士vs军马:前者的字号远远大于后者,可见小说中塑造的能臣武将们虽个个横刀跃马,然而大头兵之间的拼杀才真实左右战局的基线。

Python文本处理:《三国演义》词云的构建与分析相关推荐

  1. 数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化...

    全文下载链接:http://tecdat.cn/?p=28877 作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活 ...

  2. 文本数据的词云可视化

    1.使用python实现文本数据的词云可视化,阐述词云原理,数据源可以自行选定: 2.实现文本数据的one-hot编码.Bag-of-word模型,将过程阐述清楚,数据源可以自行选定: 词云可视化 随 ...

  3. 接单日记(三)文本处理之词云生成

    文章目录 接单日记(三)文本处理之词云生成 一. 实验目的 二. 实验内容 三. 程序及结果 1. 运行程序 2. 运行结果 接单日记(三)文本处理之词云生成 此为一个实验报告,故遵守实验报告的格式. ...

  4. 利用python做微信聊天记录词云分析——记录美好回忆

    目录 1 概述 2 数据准备 2.1 安卓设备 2.1.1 Root手机,安装Root Explorer 2.1.2 用Root Explorer将聊天记录的数据文件导出并存入电脑 2.1.3 对En ...

  5. Python编程:实现词云生成(附详细源码)

    Python编程:实现词云生成(附详细源码) 词云是一种数据可视化的方式,它可以用来展示某个主题下的主要关键词汇.在Python中,我们可以使用 wordcloud 库来实现词云的生成.本文将带您一步 ...

  6. python程序创建词云 中国地图_就这么简单!使用Python生成漂亮的词云

    原标题:就这么简单!使用Python生成漂亮的词云 作者:Linux迷 链接:https://www.linuxmi.com 词云是一种数据可视化技术,用于表示文本数据,其中每个单词的大小表示其出现的 ...

  7. Rstudio 实现 爬虫 文本分词 个性化词云设计--我爱中国我爱党

    Rstudio 爬虫 文本分词个性化词云设计 目录 1.环境准备,加载依赖 2.rvest 爬虫,数据爬取 3.jiebaR用于分词,词频统计 4.wordcloud2 结果可视化 ========= ...

  8. NLP实现文本分词+在线词云实现工具

    实现文本分词+在线词云实现工具 词云是NLP中比较简单而且效果较好的一种表达方式,说到可视化,R语言当仍不让,可见R语言︱文本挖掘--词云wordcloud2包 当然用代码写词云还是比较费劲的,网上也 ...

  9. python学习笔记---中文词云

    python学习笔记–中文词云 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 发现词云的展示还挺有意思的,比较多的应用场景是给用户打标签,社交软件应用较多.今天随便找了一些文字电影 ...

最新文章

  1. 代码生成codegen
  2. cakephp2 框架下的 持久处理 不丢失数据库连接 后台挂起执行。
  3. RxSwift之深入解析dispose源码的实现原理
  4. 【JavaScript】如何将JS中的数据提交到Servlet服务器中
  5. 数据库:MySQL中,当update修改数据与原数据相同时会再次执行吗?
  6. D. Cut and Stick(Codeforces Round #716 (Div. 2))
  7. php 微信分享链接怎么弄,PHP实现 微信--分享朋友链接
  8. django安装与简介
  9. JSONP - 从理论到实践
  10. Delphi 2010
  11. cad补全三视图_机械制图课程中补全三视图的解题方法
  12. STM32F103C8T6之SG90舵机控制
  13. The Heads-Up Grid 让你的HTML页面具有辅助线网格功能
  14. iphone 如何运行android,iPhone成功运行Android,厉害~
  15. du与df显示结果不一致
  16. Android4.4蓝牙耳机HFP流程分析-1
  17. java适配器模式例子_java适配器模式实例解析
  18. 制作三星I9088 刷机ROM的实践(一)
  19. 微信小程序批量提交后台审核
  20. C#七层架构 ----【登录】

热门文章

  1. I^2RNet: Intra- and Inter-Human Relation Network for Multi-Person Pose Estimation 笔记
  2. 高中关于人工智能方面的课题_(完整word版)《人工智能的发展与应用》课题开题报告...
  3. oracle非共享式,Oracle专用模式(DEDICATED)和 共享模式(SHARE)
  4. consul服务注册与健康检查
  5. C语言--switch case 语句,case 后没有语句
  6. JavaScript 异步操作之回调函数
  7. 有 3 个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果
  8. Stripe支付简介和前端js调用
  9. Mybatis面试题(2022,持续更新,自用)
  10. aix usb_AIX和USB记忆棒