用jieba分词提取关键词做漂亮的词云

用jieba分词提取关键词做漂亮的词云_第1张图片

早上看到简友@向右奔跑 的文章 超简单:快速制作一款高逼格词云图,试了一下介绍的工具真心好用,近期刚好想爬些数据做词云,就尝试了一下jieba分词提取txt关键词生成词云。
先上效果图:

用jieba分词提取关键词做漂亮的词云_第2张图片

用到的工具

  1. 原始数据:《白夜行》小说,txt格式(我是用calibre把原来mobi格式的书转成txt的)。后期可以用爬虫爬点网页数据做原始数据。为简单就先用txt练手好了。
  2. 提取关键词:jieba分词、停用词表
  3. 在线词云生成工具:TAGUL

简单分析一下

生成词云最关键的问题是中文分词,统计分析各个词的权重(权重较高的字体显示较大)。这些问题jieba分词已经帮我们解决了。我们只需要import jieba.analyse,使用jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())方法即可,当然只是提取关键词还是不够的,因为有些没有意义的常用词诸如“我的”、“或者”、“一个”等词,会出现在结果里面,还需要一个“停用词表”来帮我们过滤结果。
我们的目标是提取关键词,并得到“关键词+制表符+权重”的文本,这里关键词和权重用制表符隔开是为了在用在线工具的时候,能顺利导入权重的值,决定词的大小(size)。

用jieba分词提取关键词做漂亮的词云_第3张图片

关键词和size中间用制表符分开


用jieba分词提取关键词做漂亮的词云_第4张图片

步骤:

  1. 安装jieba pip install jieba
  2. 准备好txt文件和停用词表(网上可以下载到,txt格式即可)
  3. 编写代码
import jieba.analyse

path = '你的txt文件路径'
file_in = open(path, 'r')
content = file_in.read()

try:
    jieba.analyse.set_stop_words('你的停用词表路径')
    tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
    for v, n in tags:
        #权重是小数,为了凑整,乘了一万
        print v + '\t' + str(int(n * 10000))

finally:
    file_in.close()

运行结果如下:


用jieba分词提取关键词做漂亮的词云_第5张图片

4.打开TAGUL,开始制作词云,把结果贴进import words里

用jieba分词提取关键词做漂亮的词云_第6张图片

5.选个shape(词云轮廓)
用jieba分词提取关键词做漂亮的词云_第7张图片

6.在fonts中,导入一个中文字体,我用的微软雅黑:
用jieba分词提取关键词做漂亮的词云_第8张图片

7.点击visualize即可生成
用jieba分词提取关键词做漂亮的词云_第9张图片

8.Download and Share里面可以下载需要的格式。

参考文章:

1.TF-IDF与余弦相似性的应用(一):自动提取关键词
2.超简单:快速制作一款高逼格词云图
3.jieba的github

你可能感兴趣的:(用jieba分词提取关键词做漂亮的词云)