《三国演义》可以说是接触最久一本小说。最早是红白机大卡带的游戏,然后有按照小说历程设计的策略游戏《三国志Ⅺ》。
并且上学时有课文《出师表》,《空城计》的学习。基本上课外拓展《三国演义》的题都考不动我。
颇有感情的一本小说,即使到现在也还是很喜欢。
现在学习python学到新技能,自然做出一番操作。
#e10.4CalThreeKingdoms.py import jieba excludes = {"将军","却说","荆州","二人","不可","不能","如此"} txt = open("三国演义.txt", "r", encoding='utf-8').read() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: continue elif word == "诸葛亮" or word == "孔明曰": rword = "孔明" elif word == "关公" or word == "云长": rword = "关羽" elif word == "玄德" or word == "玄德曰": rword = "刘备" elif word == "孟德" or word == "丞相": rword = "曹操" else: rword = word counts[rword] = counts.get(rword,0) + 1 for word in excludes: del(counts[word]) items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(5): word, count = items[i] print ("{0:<10}{1:>5}".format(word, count))
找不到正确的小说文本,所以还是与真实数据有一定的差距。
至于一些无关名词的出现,只需在第三行的代码中插入相应文字即可,依次重复即可获得正解。
#WordCloud.py import jieba import wordcloud f=open("三国演义.txt",'r',encoding='utf-8') t=f.read() f.close() ls=jieba.lcut(t) txt="".join(ls) w=wordcloud.WordCloud(\ width=1000,height=700,\ background_color='white',\ font_path='msyh.ttc',max_words=15 ) w.generate(txt) w.to_file("grwordcloud.png")
通过词云,可以得到一些结论。
1:“且听下回分解”是结尾必备,除了最后一章的“鼎足三分已成梦,后人凭吊空牢骚。”所以该语句出场频率较高
2:各式各样的曰,可以看出小说具有大量对话,说明三国演义不仅仅有让人酣畅淋漓的大场面,也有精彩绝伦的对话(个人愚见)
我们可以通过词云的方式了解更多,不仅仅限制于小文章。当然还可以某些领导人的讲话,了解他的个人风格等等。