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

您所在的位置:网站首页 三国演义小说多少字 Python文本处理:《三国演义》词云的构建与分析

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

2024-07-13 06:38| 来源: 网络整理| 查看: 265

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) ls = [word for word in ls if len(word)>1] 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军马:前者的字号远远大于后者,可见小说中塑造的能臣武将们虽个个横刀跃马,然而大头兵之间的拼杀才真实左右战局的基线。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3