目标
统计三国演义中出现次数前100,并绘制云图
准备
分析工具:jieba,pandas,matplotlib,wordcloud
数据文档:三国演义.txt(原著),三国人物.txt(三国人名,大约1000多个),三国字.txt(一些常见人名及字,约800)
这些文档,放到了后面
说明
1、并不是严格的人物出场次数,有时可能只是提到,也算进去了
2、可能有jieba分词不准确的地方,并且由于是古典小说,更可能存在不准确情况,分词中明显看到了“刘备之”的词
3、一些情况没有考虑:如一些人物的特殊称呼(官职,尊称,蔑称等),小霸王,曹阿瞒,曹丞相,刘皇叔,刘使君,寿亭侯,大都督等,一些简写也没统计,如刘关张三人这样的情况。
4、可能出现重名情况,发现那些重名的基本都是打酱油的,所以不考虑。还发现有个人叫许昌,因为许昌作为地名在三国中比较重要,而许昌这个人是打酱油人物,所以直接删掉了
效果
分析
1、人名几乎是单字,据说是王莽的原因
2、频次最多的是诸葛亮,一是人物重要,诸葛亮确实起着承前启后的作用,初出茅庐承接末年乱世,一举就助刘备三分天下,之后三国鼎力,又是诸葛亮六出祁山,最后病史五丈原,司马在魏独大,三家归晋。二也是三国演义对诸葛亮的多智近妖的形象的着重刻画。虚构的借东风,空城计,甚至本是周瑜人生高光的赤壁之战也分给了诸葛亮。
出场势力最多的就是曹魏和蜀汉方面,毕竟三国采取尊刘贬曹的思想,同时对这两个势力描写也较多
3、令人惊讶的是一是吕布排名很靠前,虽然只是前期人物,却有如此高的排名,确实给人留下深刻印象,毕竟“人中吕布,马中赤兔”。二是孟获,只是边地小首领,估计借着七擒孟获刷高了排名。
4、同时可看出家族的延续,一般不过三代,父子能一同进入前100的有关羽关兴关平,张飞张苞,曹操曹丕,袁绍袁尚袁熙,曹真曹爽,孙坚孙权孙策,司马懿司马师司马昭(当然司马家例外),刘备刘封,马腾马超等
5、人物在前中期的较多,小说确实后期出彩的没有前期多,难道乱世出英雄?
程序及数据文档
绘制云图所使用罩图
程序
import jieba as jb
import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 打开三国字文件,该文件包含三国人物名字及对应字,开始只想统计名字,后来发现,前20中竟然没有关羽,关羽只出现了9次,而云长高达300多次,所以加入此文件,将字也对应成名
f3 = open(r'C:\Users\Desktop\三国字.txt', encoding='utf8')
namezi = f3.read().split(')') # 文件中对应形如刘备(玄德)关羽(云长),所以用)将每个人分开
namezi.pop() # 因为最后一个会出现空,所以去掉
n = []
z = []
for i in namezi: # 再将每个刘备(玄德通过(分成名和字
j = i.split('(')
n.append(j[0]) # n列表存名
z.append(j[1]) # z列表存字
zn = dict(zip(z, n)) # 打包,变为字典,字为键名,名为键值
# 打开三国人物文件,读取人名文件,将其转化为列表
f1 = open(r"C:\Users\Desktop\三国人物.txt", encoding='utf8')
name = f1.read().split('、')
# 打开三国演义文件,读取内容
f2 = open(r'C:\Users\Desktop\三国演义.txt', encoding='utf8')
text = f2.read()
# 数据清洗一
delchar = ",。?、!“”‘’:;《》——-,:." # 清除标点字符
for ch in delchar:
text = text.replace(ch, '')
# jieba分词,默认精确模式
words = jb.lcut(text)
# 数据清洗二
character = []
for word in words:
if word in name: # 找出名,加入列表
character.append(word)
if word in z: # 找出字,并将其对应名加入列表
character.append(zn[word])
# 用panda库进行统计
name_count = pd.Series(character)
# 词云图的生成
c_mask = plt.imread(r'C:\Users\Desktop\0.jpg') # 添加罩图
wc = WordCloud(font_path="simhei.ttf", # 设置中文字体
mask=c_mask, # 设置罩图
background_color="white", # 设置背景色
max_font_size=100) # 设置最大字体大小
wc.generate_from_frequencies(name_count.value_counts()[:100]) # 将数据的前100名产生词云
wc.to_file(r'C:\Users\Desktop\sanguo.jpg') # 保存图片
文档数据
三国演义随处可下载,其它文档如下
三国人物
阿会喃、爰青、爰邵、鲍信、鲍忠、鲍隆、边让、边洪、卞喜、卞夫人、步陟、邴原、卑衍、毕轨、陈蕃、陈耽、陈宫、陈翔、陈生、陈登、陈武、陈横、陈兰、陈圭、陈纪、陈琳、陈震、陈孙、陈就、陈矫、陈应、陈群、陈式、陈泰、陈骞、陈俊、蔡邕、蔡瑁、蔡阳、蔡和、蔡中、蔡勋、蔡琰、蔡林、曹节、曹操、曹嵩、曹仁、曹洪、曹德、曹豹、曹性、曹安民、曹昂、曹丕、曹纯、曹休、曹永、曹彰、曹植、曹熊、曹睿、曹真、曹遵、曹宇、曹芳、曹爽、曹羲、曹训、曹彦、曹据、曹髦、曹霖、曹奂、程旷、程远志、程普、程咨、程秉、程昱、程银、程畿、程武、崔烈、崔毅、崔勇、崔琰、崔州平、崔禹、崔谅、淳于琼、淳于导、淳于丹、岑蛭、岑壁、岑威、岑昏、成廉、成宜、成何、成济、成淬、昌希、昌奇、车胄、常雕、彻里吉、窦武、段圭、段煨、邓茂、邓龙、邓义、邓贤、邓芝、邓飑、邓艾、邓忠、邓程、邓敦、邓良、董卓、董太后、董重、董旻、董璜、董承、董昭、董袭、董和、董祀、董衡、董超、董允、董厥、董荼那、董禧、董朝、督邮、丁原、丁管、丁奉、丁斐、丁仪、丁廙、丁咸、丁谧、丁封、貂婵、典韦、典满、杜远、杜袭、杜琼、杜路、杜义、杜祺、杜预、戴员、戴陵、朵思大王、带来洞主、党均、鄂焕、俄何烧弋、封胥、樊稠、樊能、樊氏、樊建、樊岐、范康、范滂、范成、范疆、逢纪、伏完、伏德、伏皇后、冯礼、冯习、冯沈、傅婴、傅巽、傅干、傅士仁、傅彤、傅嘏、傅佥、法正、费观、费祎、费诗、费耀、郭胜、郭汜、郭图、郭常、郭嘉、郭恩、郭淮、郭永、郭女王、郭攸之、公孙瓒、公孙越、公孙续、公孙康、公孙度、公孙恭、公孙渊、公孙晃、公孙修、关羽、关纯、关定、关宁、关平、关兴、关索、关彝、高顺、高览、高干、高沛、高定、高翔、高柔、耿武、耿纪、管亥、管宁、管辂、官习、甘夫人、甘宁、眭固、眭元进、龚都、龚起、顾雍、巩志、弋定、谷利、官邕隹、苟安、葛雍、干休、候览、候成、候选、何进、何禺页、何皇后、何苗、何仪、何曼、何宗、何晏、何曾、何植、皇甫嵩、皇甫郦、皇甫凯、韩忠、韩馥、韩当、韩遂、韩暹、韩融、韩胤、韩嵩、韩福、韩猛、韩莒子、韩珩、韩浩、韩玄、韩德、韩瑛、韩瑶、韩琼、韩琪、韩祯、韩综、华雄、华佗、华歆、胡轸、胡赤儿、胡邈、胡才、胡车儿、胡华、胡班、胡济、胡遵、胡奋、胡烈、胡渊、黄盖、黄琬、黄祖、黄劭、黄彦承、黄忠、黄奎、黄权、黄皓、黄崇、桓阶、桓范、桓嘉、桓彝、郝萌、郝昭、阚泽、霍峻、霍弋、和洽、花永、沮授、沮鹄、贾诩、贾华、贾逵、贾范、贾充纪灵、蒋钦、蒋奇、蒋干、蒋琬、蒋济、蒋延、蒋班、蒋舒、蒋斌、蒋显、金尚、金旋、金祎、金环三结、简雍、吉太、吉邈、吉穆、焦触、焦炳、焦彝、焦伯、姜叙、姜维、靳祥、句安、孔岫、孔融、孔昱、孔秀、蒯良、蒯越、轲比能、卢植、卢逊、刘焉、刘备、刘元起、刘陶、刘虞、刘恢、刘辩、刘协、刘岱、刘表、刘范、刘晔、刘繇、刘艾、刘安、刘辟、刘延、刘勋、刘琬、刘子杨、刘禅、刘琦、刘琮、刘泌、刘封、刘璋、刘先、刘馥、刘熙、刘度、刘贤、刘磐、刘贵、刘巴、刘循、刘俊、刘分、刘永、刘理、刘瑁、刘廙、刘豹、刘宁、刘琰、刘敏、刘劭、刘放、刘达、刘是、刘谌、刘睿、刘瑶、刘瓒、刘恂、刘璩、李儒、李肃、李典、李蒙、李膺、李封、李暹、李乐、李丰、李通、李孚、李圭、李春香、李堪、李恢、李严、李伏、李意、李异、李巽、李辅、李福、李胜、李歆、李鹏、李崇、李球、李虎、吕布、吕伯奢、吕公、吕虔、吕范、吕威璜、吕旷、吕翔、吕蒙、吕义、吕建、吕霸、吕凯、吕岱、吕据、鲁馗、鲁肃、鲁芝、陆康、陆绩、陆逊、陆抗、陆凯、陆景、凌操、凌统、雷薄、雷叙、雷铜、梁刚、梁兴、梁宽、梁绪、梁虔、梁畿、路昭、廖化、廖淳、廖立、骆统、娄子伯、楼玄、冷苞、赖恭、来敏、伦直、柳甫、留赞、留略、留平、马元义、马腾、马日蝉、马宇、马超、马融、马延、马良、马谡、马岱、马休、马铁、马玩、马汉、马忠、马遵、马钧、马邈、闵贡、马忠、满宠、毛介、糜竺、糜夫人、糜芳、祢衡、孟坦、孟公威、孟达、孟获、孟优、孟节、孟光、孟宗、冒顿、苗泽、慕容烈、忙牙长、木鹿大王、母丘俭、母丘旬、迷当、南华老仙牛辅、牛金、区星、潘隐、潘凤、潘璋、潘睿、潘举、庞舒、庞德公、庞统、庞德、庞义、庞柔、庞会、普净、裴元绍、裴绪、裴景、裴秀、彭安、彭永、彭和、濮阳兴、桥玄、桥瑁、桥至、曲义、秦庆童、秦琪、秦密、秦良、秦朗、大乔、小乔、乔国老、谯周、全琮、全端、全怿、全祎、全纪、全尚、仇连、丘建、丘本、牵弘、任峻、任夔、苏双、苏由、苏飞、苏越、苏禺页、孙仲、孙坚、孙策、孙权、孙翊、孙匡、孙朗、孙仁、孙韶、孙静、孙瑞、孙乾、孙观、孙高、孙蛟、孙桓、孙礼、孙资、孙谦、孙登、孙和、孙亮、孙峻、孙恭、孙綝、孙据、孙恩、孙干、孙凯、孙楷、孙休、孙皓、孙异、孙冀、孙歆、宋宪、宋果、宋忠、宋谦、宋白、审配、审荣、尚弘、尚广、史涣、史迹、司马徽、司马懿、司马俊、司马防、司马朗、司马师、司马昭、司马孚、司马望、司马炎、司马攸、司马岫、石广元、石苞、单子春、申耽、申仪、沙摩柯、盛勃、司蕃、师篡、施朔、邵悌、山涛沈莹、唐周、唐妃、唐咨、唐彬、陶谦、陶睿、檀敷、田丰、田楷、田氏、田畴、田豫、田续、田章、太史慈、太史亨、谭雄、土安、滕胤、滕循、舞阳君、吴匡、吴景、吴敦、吴硕、吴子兰、吴懿、吴兰、吴班、吴质、吴押狱、吴纲、吴太后、吴太后、王允、王匡、王方、王颀、王昌、王立、王朗、王则、王楷、王子服、王忠、王植、王修、王琰、王威、王粲、王累、王基、王必、王平、王甫、王谋、王双、王伉、王连、王肃、王建、王昶、王观、王韬、王经、王敦、王真、王含、王沈、王业、王灌、王买、王祥、王睿、王浑、王戎、伍孚、伍琼、伍习、伍延、卫弘、卫凯、卫仲道 、卫演、卫灌、武安国、文丑、文聘、文钦、文鸯、文虎、魏续、魏延、魏邈、汪昭、乌桓触、吾粲、韦康、韦晃、兀突骨、万政、万彧、夏恽、夏恂、许劭、许攸、许褚、许汜、许贡、许靖、许芝、许允、许晏、许仪、荀攸、荀爽、荀谌、荀正、荀彧、荀绲、荀恽、荀凯、荀勖、荀恺、夏候墩、夏候渊、夏候兰、夏候恩、夏候杰、夏候尚、夏候德、夏候存、夏候懋、夏候霸、夏候威、夏候惠、夏候和、夏候玄、夏候咸、徐荣、徐晃、徐戮、徐庶、徐盛、徐商、徐质、辛评、辛毗、辛敞、辛宪英、薛兰、薛礼、薛综、薛悌、薛则、薛羽、郗虑、邢道荣、邢贞、向朗、向举、向宠、谢旌、谢雄、奚泥、袁逢、袁隗、袁绍、袁术、袁遗、袁胤、袁谭、袁熙、袁尚、袁綝、杨彪、杨琦、杨奉、杨大将、杨丑、杨龄、杨秋、杨阜、杨修、杨怀、杨松、杨柏、杨洪、杨昂、杨任、杨锋、杨仪、杨陵、杨暨、杨祚、杨琮、杨欣、杨济、乐进、乐就、乐綝、俞涉、颜良、严纲、严白虎、严兴、严氏、严竣、严颜、于禁、于糜、于吉、于诠、应劭、虞翻、虞松、阎象、阎圃、阎晏、阎宇、尹礼、尹楷、尹奉、尹默、尹赏、尹大目、云英、阴夔、伊籍、晏明、殷纯、雍凯、欲正、雅丹、越吉、羊祜、张让、张角、张宝、张梁、张飞、张世平、张钧、张举、张纯、张济、张邈、张超、张杨、张虎、张温、张恺、张燕、张辽、张昭、张弘、张英、张勋、张绣、张先、张合、张凯、张南、张武、张鲁、张允、张横、张既、张陵、张衡、张卫、张松、张任、张肃、张翼、张著、张音、张爽、张裔、张达、张苞、张嶷、张韬、张普、张休、张承、张球、张茂、张弥、张当、张特、张约、张辑、张明、张布、张遵、张绍、张峻、张华、张悌、张尚、张象、赵忠、赵弘、赵萌、赵岑、赵云、赵彦、赵睿、赵范、赵韪、赵衢、赵昂、赵月、赵颜、赵累、赵祚、赵融、赵咨、赵统、赵广、赵直、朱俊、朱治、朱然、朱灵、朱桓、朱光、朱褒、朱赞、朱恩、朱芳、朱异、邹靖、邹氏、郑玄、郑泰、郑宝、郑宝、郑文、郑袤、郑伦、左丰、左贤王、左慈、左咸、祖茂、祖朗、祖弼、周毖、周奂、周瑜、周泰、周仓、周循、周胤、周善、周群、周鲂、周旨、周平、种拂、种邵、种辑、宗宝、宗预、臧霸、笮融、诸葛瑾、诸葛亮、诸葛均、诸葛原、诸葛虔、诸葛属、诸葛诞、诸葛靓、诸葛绪、诸葛瞻、诸葛尚、甄氏、脂习、钟晋、钟绅、钟繇、钟进、钟会、钟毓、卓膺、翟元、祝融夫人、州泰、曾宣、妫览
三国字
丁仪(正礼)丁奉(承渊)丁原(建阳)丁谧(彦靖)丁廙(敬礼)于禁(文则)士孙瑞(君荣)山涛(巨源)卫瓘(伯玉)马磾(翁叔)马良(季常)马忠(德信)马超(孟起)马谡(幼常)马腾(寿成)王允(子师)王双(子全)王平(子均)王匡(公节)王戎(睿冲)王观(伟台)王甫(国山)王连(文仪)王沈(处道)王肃(子雍)王修(叔治)王浑(玄冲)王路(文舒)王颀(孔硕)王祥(休徵)王朗(景兴)王基(伯舆)王谋(元泰)王粲(仲宣)王睿(土治)韦康(元将)太史慈(子义)毛玠(孝先)公孙度(升济)公孙瓒(伯圭)文钦(仲若)文聘(仲业)尹奉(次曾)邓艾(土载)邓芝(伯苗)邓止飏(玄茂)孔伷(公绪)孔昱(世元)孔融(文举)母丘甸(子邦)母丘俭(仲恭)甘宁(兴霸)左慈(元放)卢植(子干)申耽(义举)田丰(元皓)田畴(子泰)田豫(国让)史涣(公刘)乐进(文谦)冯习(休元)司马师(子元)司马防(建公)司马炎(安世)司马昭(子尚)司马儁(元异)司马朗(伯达)司马望(子初)司马徽(德操)司马懿(仲达)边让(文礼)吉穆(思然)吉邈(文然)毕轨(昭先)吕布(奉先)吕范(子衡)吕凯(季平)吕岱(定公)吕虔(子恪)吕据(世议)吕蒙(子明)朱隽(公伟)朱然(义封)伍孚(德瑜)伍琼(德瑜)任峻(伯达)华陀(元化)华歆(子鱼)华核(永先)伊籍(机伯)向朗(巨达)全琮(子璜)刘巴(子初)刘永(公寿)刘协(伯和)刘先(始宗)刘邠(令元)刘劭(孔才)刘表(景升)刘岱(公山)刘备(玄德)刘放(子弃)刘宠(祖荣)刘勋(子台)刘晔(子扬)刘陶(子奇)刘理(奉孝)刘焉(君郎)刘琰(威硕)刘禅(公嗣)刘虞(伯安)刘廙(恭嗣)刘璋(季玉)刘繇(正礼)刘瑢(文衡)刘馥(元颖)羊祜(叔子)关羽(云长)许允(土宗)许攸(子远)许劭(子将)许靖(文休)许褚(仲康)许慈(仁笃)孙礼(德达)孙匡(季佐)孙权(仲谋)孙休(子烈)孙观(仲台)孙坚(文台)孙和(子孝)孙河(伯海)孙亮(子明)孙桓(叔武)孙峻(子远)孙资(彦龙)孙乾(公祜)孙皓(亢宗)孙皎(叔明)孙翊(叔弼)孙綝(子通)孙策(伯符)孙登(子高)孙瑜(仲异)刘静(幼台)孙韶(公礼)邯郸淳(子叔)严畯(曼才)社预(元凯)社袭(子绪)杜琼(伯瑜)杜微(国辅)杨仪(威公)唐阜(义山)杨修(德祖)杨洪(季休)杨彪(文先)杨暨(休先)李严(正方)李典(曼成)李胜(公昭)李恢(德昂)孝通(文达)李福(孙德)李撰(钦仲)吾粲(孔休)邴原(根矩)来敏(敬达)步骘(子山)吴质(季重)岑晊(公孝)何进(遂高)何宗(彦英)何晏(平叔)何曾(颖老)何颙(伯求)应劭(仲远)辛毗(佐治)辛敞(泰雍)宋忠(仲子)张飞(翼德)张辽(文选)张休(叔嗣)张华(茂先)张纮(子纲)张茂(彦林)张松(永年)张郃(隽乂)张承(仲嗣)张南(文进)张昭(子布)张津(子云)张特(子产)张悌(巨先)张既(德容)张鲁(公祺)张温(惠恕)张缉(敬仲)张裔(君嗣)张嶷(伯歧)张邈(孟卓)张翼(伯恭)陆纡(叔盘)陆抗(幼节)陆凯(敬风)陆逊(伯言)陆骏(季才)陆康(季宁)陆绩(公纪)陈武(子烈)陈宫(公台)陈泰(玄伯)陈矫(季弼)陈琳(孔璋)陈翔(仲麟)陈登(元龙)陈骞(休渊)陈群(长文)陈震(孝起)邵悌(元伯)苑康(仲真)范滂(孟溥)和洽(阳土)金尚(元休)金袆(德伟)金旋(元机)周奂(文明)周昕(大明)周毖(仲远)周泰(幼平)周鲂(子鱼)周瑜(公瑾)周群(仲直)庞统(土元)庞德(令明)庞德公(山民)郑泰(公业)郑袤(林叔)法正(孝直)宗预(德艳)审配(正南)孟达(子度)孟光(孝裕)孟宗(恭武)孟建(公威)赵云(子龙)赵歧(邠卿)赵昂(伟章)赵咨(德度)荀攸(公达)荀恽(长倩)荀彧(文若)荀爽(慈明)荀勖(公曾)荀谌(友若)荀顗(景倩)胡奋(玄威)胡质(文德)胡济(伟度)胡烈(玄武)胡渊(世元)胡邈(敬才)种会(士季)钟毓(稚叔)钟繇(元常)种劭(申甫)钟拂(颖伯)皇甫嵩(义真)郗虑(鸿豫)郤正(令先)姜叙(伯奕)姜维(伯约)娄圭(子伯)祖茂(大荣)祢衡(正平)费观(宾伯)费祎(文伟)骆统(公绪)秦宓(子敕)秦朗(元明)袁术(公路)袁尚(显甫)袁绍(本初)袁逢(周扬)袁隗(次阳)袁遗(伯业)袁熙(显奕)袁谭(显思)耿纪(季行)桓阶(伯绪)桓范(元则)桥玄(公祖)贾充(公闾)贾诩(文和)贾逵(梁道)夏侯玄(大初)夏侯尚(伯仁)夏侯和(义权)夏侯威(季权)夏侯敦(元让)夏侯渊(妙才)夏侯惠(稚权)夏侯琳(子林)夏侯霸(仲权)顾雍(元叹)徐晃(公明)徐盛(文向)徐庶(元直)徐璆(孟玉)脂习(元升)留赞(正明)凌统(公绩)高干(元才)高柔(文惠)郭攸之(演长)郭奕(伯益)郭恩(义博)郭淮(伯济)郭嘉(奉孝)诸葛诞(公休)诸葛亮(孔明)诸葛恪(元逊)诸葛珪(子贡)诸葛原(景春)诸葛靓(仲思)诸葛瑾(子瑜)诸葛瞻(思远)陶谦(恭祖)黄权(公衡)黄忠(汉升)黄盖(公覆)曹仁(子孝)曹丕(子桓)曹休(文烈)曹宇(彭祖)曹芳(兰卿)曹奂(景明)曹纯(子和)曹昂(子修)曹洪(子廉)曹真(子丹)曹爽(昭伯)曹植(子建)曹嵩(巨高)曹髦(彦士)曹睿(元仲)曹彰(子文)曹操(孟德)眭固(白兔)崔琰(季珪)淳于琼(仲简)彭羕(永年)董允(休昭)董卓(仲颖)董和(幼宰)董昭(公仁)董袭(元代)董厥(龚袭)蒋干(子翼)蒋钦(公奕)蒋济(子通)蒋琬(公琰)韩当(义公)韩珩(子佩)韩浩(元嗣)韩遂(文约)韩嵩(德高)韩暨(公至)韩馥(文节)程秉(德枢)程昱(仲德)程普(德谋)程畿(季然)傅干(彦材)傅巽(公悌)傅嘏(兰石)鲁肃(子敬)蒯良(子柔)蒯越(异度)楼玄(承先)虞翻(仲翔)路粹(文蔚)简雍(宪和)满宠(伯宁)蔡邕(伯喈)蔡琰(文姬)臧霸(宣高)裴秀(季彦)管宁(幼安)管恪(公明)廖化(元俭)廖立(公渊)谯周(允南)樊建(长元)滕胤(承嗣)圆泽(德润)潘璋(文圭)潘浚(承明)薛悌(孝威)薛综(敬文)霍峻(仲邈)檀敷(文友)魏延(文长)糜芳(子方)糜竺(子仲)濮阳兴(子元)