Week 1 中文分词及其初步应用-人民的名义词云

本文灵感及主要内容来源于以下文章:

http://www.tuicool.com/wx/mqIV73E

http://blog.csdn.net/qq_21057881/article/details/69562028

————————————————————————————————————

目标:

要作出这张看起来酷炫(其实并不)的图,需要准备以下材料:

  • python
  • 《人民的名义》剧本(直接下载或者用爬虫下载,我用的python版本为3.4,tuicool里给出的爬虫并不好用)
  • jieba(最好的中文分词工具)wordcloud(词云制作工具)
  • 酷炫的中文字体(可以下载心仪的ttf)

先附上代码,毕竟本人才疏学浅,只会找些有意思又不难的东西实现,因此代码足够短。

#coding=gbk
import jieba
import jieba.analyse
from scipy.misc import imread
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import matplotlib.pyplot as plt  
file_name='people.txt'
content = open(file_name, 'rb').read()
word_jieba = jieba.cut(content)  
word_split = " ".join(word_jieba)  
my_wordclud = WordCloud(max_words=100,width = 1600,height=800,font_path='W2.ttf').generate(word_split)  
plt.imshow(my_wordclud)  
plt.axis("off")  
plt.show()  

0 安装python

其实我建议大家安装anaconda,功能强大,可以同时用conda和pip管理包。一些数据科学的常用包(如scipy)已经预安装,可以直接使用。

1 安装jieba和wordcloud

pip install ... 其中jieba的github值得一看。里面的教程简明易懂。

2 下载剧本txt

3 对剧本进行分词

jieba.cut()为默认的分词函数,可以将剧本拆分为词。当然,对于人名的分词还是有问题的,可以自己写一个词典,把剧中的人民加入词典中,这样就不会出现类似“瑞金”这样不完整的人名了。添加词典的语法为:

jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径

4 云词的制作

需要注意的是,云词的制作需要中文字体的支持。W2是我从网站上下的一个中文艺术字体(里的最不艺术的字体),ubuntu的字体放在/usr/share/fonts中,如果安装过中文字体的可以引用这个目录下的字体。

5 欣赏

原文地址:https://www.cnblogs.com/codingpenguin/p/6894410.html