词云图
上次在网上看到别人制作的词云图,感觉很有意思,就在网上搜了一下教程,自己动手尝试了一下,下面简单说一下步骤:
目的:制作词云图
步骤:
1)利用python爬虫把要制作的信息抓取下来
2)有的时候可能会用到分词。这里使用的是python里边的jieba模块,对抓取的内容进行分词。
3)由以上2步得到的信息来制作词云图,这里工具用的是TAGUL。
下面以抓取微信好友的个性签名为例,制作词云图。
一、爬取微信好友个性签名
import itchat
import jieba
import re
itchat.auto_login(True)
friends = itchat.get_friends(update=True)[0:]
listOfFriends = []
for friend in friends:
listOfFriends.append(friend["Signature"])
class Tool: #把是数字的签名删除
removeNumber = re.compile("[0-9]")
removeAddr = re.compile('<span class=".*?"></span>.*?<span class=".*?"></span>')
def replace(self,x):
x = re.sub(self.removeNumber,"",x)
x = re.sub(self.removeAddr,"",x)
return x.strip()
for i in range(len(listOfFriends)):
tool = Tool()
listOfFriends[i] = tool.replace(listOfFriends[i])
print listOfFriends[i]
我的本意是把签名保存下来,生成一个txt文件,但是试了几次都没成功,python2.7里边的中文编码真是令我很头疼,也在网上查了很多方法,但有的方法在这个程序里边好用,到了别的程序里边就不好使了(比如上次写的爬取百度贴吧的帖子),我也搞不懂为什么???
二、用jieba进行分词
for item in listOfFriends:
seg_list = jieba.cut(item)
print "\n".join(seg_list)
三、制作词云图
工具:TAGUL 这是一款在线词云图制作工具,非常方便。下面说一下制作过程中需要注意的问题
1)点击word页面,点击import words,添加要制作的文本,文本数据包括关键词和size(频率),size越大,则生成的字就会越大。Add是人为追加关键词和size。
2)shapes,选择形状。这里是一些模板图形,左边是分类主题。你如果想添加图片作为模板的话,点击左上角的ADD IMAGE,就可以把电脑里的图片添加进去。
3)Fonts是字体模块。TAGUL提供的字体都是英文模式,如果要添加中文字体,点击上方的Add font,把C:\Windows\Fonts里边的字体添加一些进去就可(我的电脑添加不进去Fonts里边的字体,所以我只要把里边的一些字体复制出来,再添加进TAGUL中)
4)Layout 选择文字排列方向
最后,点击右边的Visualize就能生成词云图了,这时点击左边框的Download and Share,选择Download PNG image里的PNG图片,就能把生成的词云图保存成PNG格式了。
这是未进行分词的词云图
这是进行分词后的词云图
这是京东上一款电子商品评论人群的分类:
间书首页文章标题
好了,是不是很有趣,自己试一下吧。