1、 引用的库:jieba,WordCloud,matplotlib
2、 先建立主要人物姓名的词典(包括人物的字),词典格式姓名频率词性
3、 打开三国演义txt,输出一个只有主要人物姓名和字的列表
4、 将字转换成对应的姓名,并以字符串形式输出,空格分割:这一步挺绕的,因为三国里面的人物有时候称呼对方的字号,比如关羽,也被叫成关云长,云长即是他的字。但是显示的词云要求只出现一个姓名,如此的话就需要找出列表中的字,然后将字替换成对应的姓名。我的方法是:创建一个字典,key为姓名,value为字,由于人物姓名和字很多,所以以字符串形式创建,采用了特殊格式,如:'{'曹操':'孟德','赵云':'子龙'}'。采用字典格式的好处是,用eval()函数即可将str转换成dict。然后遍历字典,将key和value添加到各自列表中,再遍历文本分词之后的列表,找出那一个元素属于value的列表,找到后append对应的key,使用index函数。然后删除列表中所有的value。(不会直接替换,只能用这种先添加后删除的笨办法了)
5、 显示词云