<strong>接上一篇文章spiders——简书7日热门(scrapy)对简书热门文章进行爬取,现在让我们去看看大家都踢到了什么</strong>
在简书看到了很多高逼格的词云图,一直想学着制作一张,向罗罗攀请教,以及参考相关材料终于成功生成了 。
上一篇文章获取了简书七日热门文章的数据,并存入mysql数据库,现在对文章标题进行处理,看一看大家都关注什么。
-
1.对标题进行数据读取并写文件(比较简单,不作具体介绍)
-
2.对文件内容进行分词操作(使用jieba分词)
-
基于 TF-IDF 算法的关键词抽取
import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 为待提取的文本
topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight 为是否一并返回关键词权重值,默认值为 False
allowPOS 仅包括指定词性的词,默认值为空,即不筛选 关键词提取所使用停止词(Stop Words)文本语料库可以切换成自定义语料库的路径
-
用法: jieba.analyse.set_stop_words(file_name) # file_name为自定义语料库的路径
自定义语料库示例:https://github.com/fxsjy/jieba/blob/master/extra_dict/stop_words.txt
用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_stop_words.py
简单了解一些用法,开始分词
# -*- coding:utf-8 -*-
import jieba.analyse
f = open('all.txt','r')
content = f.read()
try:
jieba.analyse.set_stop_words('J:\\train\\stop.txt')
words = jieba.analyse.extract_tags(content,topK=100,withWeight=True)
for item in words:
with open('J:\\train\\result.txt','a',) as fp:
line = item[0]+'\t'+str(int(item[1]*1000))+'\n'
fp.write(line.encode('utf-8'))
finally:
f.close()
<em>程序出现错误可能是编码问题,调整编码即可</em>
-
3.使用在线生成工具TAGUL生成词云图
记得导入中文字体,调整完毕之后,点击Visualize生成词云图
<em>从此图可以看出,大家好像都挺关注白百何,除了娱乐信息之外,还对写作、旅游以及考验关注比较多。</em>
<strong> 总结</strong>
完成了第一张词云图,对分词有了简单的了解,之后会基于一些数据,做一些有趣的词云图