使用Python分析罗贯中三国演义的

罗贯中的《三国演义》这部巨著在中国来说可谓是家喻户晓,作为四大名著之一,《三国演义》中的人物数不胜数(这词可能用得不对)。但据网上统计,该部作品总共出现了人,武将人,文官人(数据来自百度知道网友准国女神的答案)。试想一下,这么多人出现,谁能记得过来?新版《三国演义》剧照小时候,大人都说这个曹操是个奸臣,很坏,他有句名言“宁可我负天下人,不可天下人负我”,又是妇孺皆知。诸葛亮是个神人,他上知天文、下知地理;他能草船借箭、又能唱空城计,技能逆天了。阿斗是个扶不起来的货,可是面对蜀汉局势,他又能如何力挽狂澜呢?……人物我们就不分析了,品三国这样的通俗历史也听了无数遍了。三国人物图今天,我们针对《三国演义》中人物的出现次数,来看一下三国中到底谁是主演?我们今天就把这个作为Python的练手项目来做一做,结果也不能说明什么问题。(俗话说:人生如戏、戏如人生,历史的车轮是靠人民大众来推动的,三国中出名的人物也只是历史代表人物而已,严格意义上来讲,也不能说谁出现次数多谁就是主角了,特此声明)准备好了吗?马上开始《三国演义》一部(网上自己找),Python安装jieba、WordCloud库,我们今天使用的Python版本是3.6.8(Python3.X都可以)我们的思路是这样的,分三步走:首先,对干扰我们统计的词语进行清洗和归一化处理(比如:清洗时,我们将一些虚词、助词等放到jieba的停用词里面;云长、关公统一命名为关羽,这个是明显的,还有类似“关、”这样的,其实也是关羽出现了一次);然后,使用jieba库对《三国演义》全篇进行分词操作,并依次统计各个人物出现的次数放在字典中;最后,我们使用collections中的Counter函数来获得人名信息数据。并生成一个词云进行显示。我们通过编码来实现上述过程,首先,我们导入相关模块,并定义一组排除列表和人物列表,如下图所示。导入相关模块并定义两个列表然后,我们定义一个函数用于获取《三国演义》文本中的数据,源代码如下图所示。将文本内容变成人名列表获得了人名列表,我们就直接使用Counter()函数进行统计即可,然后将统计信息传入函数中生成一个词云,源代码如下图所示。统计并生成词云源代码到了这里,我们基本就实现了统计人物出现次数的效果。我们来看下具体数据,如下图所示。《三国演义》中人物统计数据对于词云属性设置有疑问的朋友们可以参照我的另一篇博文(拥有这件神器,菜鸟也可以成为数据分析大师,这是一个详细介绍词云生成过程的系列内容)。我们来看一下程序运行后生成的词云吧,效果如下图所示。生成词云结果展示好了,今天的内容就到这里了。虽然我们对于很多人的字、号信息没有全部录入。但是,从这个结果可以看出来,罗贯中的《三国演义》中出现最多的人物还是曹阿瞒,其次就是刘备、关羽、张飞。诸葛亮这么聪明的人物排到了第五位(当然,出现次数不能说明什么问题)。欢迎大家留言


转载请注明:http://www.aierlanlan.com/tzrz/7540.html