1.下载地址:
2.安装Python第三方库:jieba、wordcloud
Anaconda 安装完毕后,进入Anaconda Prompt(命令提示符)下,键入pip install jieba、pip install wordcloud完成如上两包的安装。
Spyder是Anaconda提供的一种Python编辑器。
1. 资源准备
《西游记》文本: ftp://202.196.225.60:2222/xiyou.txt
《水浒传》文本:ftp://202.196.225.60:2222/shuihu.txt
《三国演义》文本:ftp://202.196.225.60:2222/3g.txt
《金瓶梅》文本:ftp://202.196.225.60:2222/jinpingmei.txt
《红楼梦》文本:ftp://202.196.225.60:2222/stone.txt
《西游记》词云底图:
ftp://202.196.225.60:2222/monkey2.png
《水浒传》词云底图:ftp://202.196.225.60:2222/sh2.png
《三国演义》词云底图:ftp://202.196.225.60:2222/sg.png
《金瓶梅》词云底图:
ftp://202.196.225.60:2222/jinpingmei.png
《红楼梦》词云底图:ftp://202.196.225.60:2222/stone.png
注意:上述文本文件需用Notepad++()统一设置编码格式,本文文本文件采用的是“UTF-8”。
通过Sypder可新建扩展名为.py的Python文件。为节约代码,如上资源文件和Python文件置于同一文件夹下。
注意:为了不影响正常生成词云,不要把Python文件命名为“wordcloud”。
若下文直接拷贝运行出现了“invalid character in identifier”的错误,为非可见字符导致,请自行敲代码再运行。
#开始写啦ヾ(o′▽`o)ノ°°谢谢# Anaconda默认提供,该库是进行科学计算的基础包,可以用作通用数据的高效多维容器。import numpy as np# Anaconda默认提供,该库支持多种文件格式,并提供强大的图像处理和图形功能。from PIL import Image# 该库内置最佳Python中文分词模块,支持三种分词模式。import jieba# 该库为Python的一个小词云生成器。from wordcloud import WordCloud# pyplot主要用于交互式图和程序化图的生成,提供了类似MATLAB的绘图方式。import matplotlib.pyplot as plt# 读取《西游记》文本xy_txt = open('xiyou.txt','r',encoding='utf-8').read()# 读取《水浒传》文本sh_txt = open('shuihu.txt','r',encoding='utf-8').read()# 读取《三国演义》文本sg_txt = open('3g.txt','r',encoding='utf-8').read()# 读取《金瓶梅》文本jpm_txt = open('jinpingmei.txt',encoding='utf-8').read()# 读取《红楼梦》文本stone_txt = open('stone.txt','r',encoding='utf-8').read()# 统计词频开始...(仅以《水浒传》为例,其它类似)# 使用jieba进行中文分词,返回列表words = jieba.lcut(sh_txt) # 定义一个字典,存储分词结果counts = {}# 遍历分词列表,单字忽略,只累计多字的出现次数for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word, 0) + 1# 把字典转为列表items = list(counts.items())# 列表按词频降序排序items.sort(key = lambda x:x[1], reverse = True)# 输出词频统计(限前100)for i in range(100): word, count = items[i] print('{0:<20}{1:>5}'.format(word,count))# 词频统计结束...# 词云生成开始...# 设置词云遮罩(图片)sh_mask = np.array(Image.open('sh2.png'))# 设置词云参数,要指定中文字体,否则会出现乱码# 方正细珊瑚简体,词频前2000的词,背景为白wc = WordCloud(font=r'c:\windows\fonts\FZXSHJW.ttf',background_color='white',max_words=2000,mask=sh_mask)# 生成词云wc.generate(sh_txt)# 当前目录(Python文件所在的文件夹下)生成图云图片wc.to_file('sh.png')# 在Sypder编辑器下显示词云图plt.imshow(wc,interpolation='bilinear')plt.axis('off')plt.figure()
1、《水浒传》
(1)词频
及时雨同志绝对主角哈~
一帮嘴货!
两个库的处理结果不太一样哪~
2、《西游记》
(1)词频
行者武松是也~
(2)词云
3、《三国演义》
(1)词频
(2)词云
曰货s。。。
4、《金瓶梅》
(1)词频
(2)词云
鄙人不擅长看金瓶梅,伯爵这厮是谁?
5、《红楼梦》
(1)词频
(2)词云
菇凉可曾读书?
1、大师兄,不好啦!林妹妹和瓶儿被曹贼抓走啦,生辰纲也不见啦!
2、李逵三声大喝,当阳桥断,曹军统帅贾母吓得自马上跌落,伏地大呼:快去请如来佛祖~~
3、孟德葬花,观音卖刀。
4、“大圣,要下及时雨了,快去虎牢关扒灰呀。”
5、妹妹可曾读书?须知天下大势,分久必合,合久必分,你若有心,吃我这半盏儿残酒,好留与你些圣水。
6、兀那汉子这等眼熟,却不知是卧龙还是凤雏,便问道:你是猴子请来的救兵吗?
7、大观园孔明借箭 景阳冈悟空打虎。
8、大师兄,嫂嫂被董卓掠到大观园啦。
9、“宝玉,军师说此景阳冈有一只来自狮驼国的虎妖,为非作歹。还当尽早寻一家酒馆安营扎寨才是。”宝玉口中答应,眼前已现一张酒旗迎风展开,上书五个大字:一人一口酥。
10、宝钗杀嫂,皇叔晒经。
11、“主公,是林妹妹约俺老猪到王干娘家吃酒的。”
12、黛玉看着这个细皮嫩肉的俊和尚不禁想起那风流的燕青,忖道:还好他不是皇叔。
13、孙尚香:圣僧,你还记得阳谷县的林妹妹吗?
14、女娲补天剩下灵石无数.一块化为悟空,一块被僧道带去.一块镇压了天罡地煞.剩下的被孔明堆成了八阵图。
15、关云长单刀会金莲,贾宝玉三打白骨精。
16、就是唐僧勾搭潘金莲逼着刘关张上了梁山的故事嘛!
17、黛玉,你那棒子可是泼猴所给?快借老黑一用,待我与翼德兄快活一番!
18、悟空救我!二弟救我!!宝玉救我!!!兄弟们救我!!!!