这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822
1. 下载一长篇中文小说。
本文将下载《天龙八部》小说第一章并将其为例,展示生成中文词云和词频统计的完整过程。
2. 从文件读取待分析文本。
f = open(u'.txt',encoding='UTF-8').read()
3. 安装并使用jieba进行中文分词。
4. 生成词频统计
在第425行,进行分词,然后将结果进行遍历(426-433行),遍历中,剔除单个字符,每个词语和它所出现的次数写入字典,第434、435行将字典转化为元组所组成的列表,并依据出现次数进行排序,然后遍历列表,取出前10名。
第二段代码(441-445行)是依据权重取出了关键词,可以看出,这章小说,主要讲的就是段誉的事情了,不论是权重还是词频都是他最高。。。
5. 生成词云
#coding:utf-8 import jieba from wordcloud import WordCloud f = open(u'天龙八部.txt','r').read() s = {} f = jieba.cut(f) for w in f: if len(w) > 1: previous_count = s.get(w,0) s[w] = previous_count+1 word = sorted(s.items(),key=lambda (word,count):count, reverse = True) word = word[1:100] #print word[:100] wordcloud = WordCloud(font_path = 'MSYH.TTF').fit_words(word) import matplotlib.pyplot as plt plt.imshow(wordcloud) plt.axis("off") plt.show()
运行结果如下: