前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用简书首页文章标题数据生成词云1.词云图2.推荐几个不错的词云图工具3.爬取数据,制作词云图

利用简书首页文章标题数据生成词云1.词云图2.推荐几个不错的词云图工具3.爬取数据,制作词云图

作者头像
Python攻城狮
发布2018-08-23 11:55:24
1.6K0
发布2018-08-23 11:55:24
举报
文章被收录于专栏:Python攻城狮Python攻城狮

1.词云图

词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

  • 先看几个词云图

简书签约作者标签词云

全国政协常委会工作报告词云图

2.推荐几个不错的词云图工具

Tagul云可以自定义字体、词云的形状(有爱心、BUS、雪人、人像、UFO等),颜色等,做出来的词云图很酷炫,为网站访问者提供良好的用户体验。用户可以在网站做好词云图,然后印在衣服、杯子、鼠标垫等地方,自己设计身边的物件,感觉很有成就感,很实用的网站。

这款国内的在线词频分析工具,在长文本自动分词并制作词云方面还是很出众的,而且也容易上手,还可以自定义定制图形模板:标准、微信、地图等,切换自如,用起来体验很不错。

这是一款数据可视化工具,除了词云,还有很多其他酷炫的图表,如GIS地图、漏斗图、瀑布图、桑基图等,来了解它们的词云。工具很容易上手,直接把词语这个数据拉到维度栏,再选择词云就瞬间呈现词云图表,BDP会自动算好词频,你可以设置颜色,快速实现词云可视化,特别简单。

  • Python的扩展包wordcloud也可构建词云。
    • 安装命令
代码语言:javascript
复制
#安装词云
pip install wordcloud

#安装jieba分词
pip install jieba

1、引入模块

代码语言:javascript
复制
from wordcloud import WordCloud
import matplotlib.pyplot as plt

2、实例化一个词云

代码语言:javascript
复制
wc = WordCloud()

3、导入文本

代码语言:javascript
复制
text = open(r"222.txt",encoding='utf-8').read()

4、生成词云

代码语言:javascript
复制
wc.generate(text)

5、显示词云

代码语言:javascript
复制
plt.imshow(wc)
代码语言:javascript
复制
#导入python画图的库,词云生成库和jieba的分词库
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba

#读取txt格式的文本内容
text_from_file_with_apath = open('JsIndex.txt').read()

#使用jieba进行分词,并对分词的结果以空格隔开
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)

#对分词后的文本生成词云
my_wordcloud = WordCloud().generate(wl_space_split)

#用pyplot展示词云图。
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

入门可以参考博客python词云 wordcloud 入门,安装的时候建议使用依赖包安装,我用命令安装了几次一直超时失败。

3.爬取数据,制作词云图

1.爬取简书首页推荐文章标题

  • 分析网页结构通过Xpath筛选我们想要的数据有两种方法

通过谷歌商店的Xpath工具分析结构得到我们想要的数据

直接复制title的xpath,不过我们只能得到这一条数据,所以还要修改

  • 编写代码
代码语言:javascript
复制
#-*- coding:utf-8 -*-

#creater 简书-_知几 2017.8.26

import urllib,urllib2,re
from lxml import etree

class CrawlJs:
    #定义函数,爬取对应的数据
    def getArticle(self,url):
        print '█████████████◣开始爬取数据'
        my_headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36',
        }
        request = urllib2.Request(url,headers=my_headers)
        content = urllib2.urlopen(request).read()
        return content

    #定义函数,筛选和保存爬取到的数据
    def save(self,content):
        xml = etree.HTML(content)
        datas = xml.xpath('//div[@class="content"]/a/text()')
        print datas
        for data in datas:
            print data
            with open('JsIndex.txt','a+') as f:
                f.write(data.encode('utf-8')+ '\n')
        print '█████████████◣爬取完成!'

#定义主程序接口
if __name__ == '__main__':
    url = 'http://www.jianshu.com/'
    js = CrawlJs()
    content = js.getArticle(url)
    js.save(content)

得到我们的数据

2.制作词云图

  • 工具 我使用的是TAGUL 一款在线词云制作工具,简单易上手,缺点只能分词英文,需要导入中文字体。

操作:

  • Import words , 可以直接粘贴导入文本数据,或者以web url的方式导入。文本数据包括关键词和size。
  • 选择形状shapes -- 也可自定义形状图片 TAGUL提供了一些模板图形,左边是分类主题。
  • 分词技术 推荐两个分词工具,一个是在线分词工具 基于深度学习的中文在线抽词-PullWord,另一个是结巴分词(jieba)。

简书首页推荐文章标题词云图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.词云图
  • 2.推荐几个不错的词云图工具
  • 3.爬取数据,制作词云图
    • 1.爬取简书首页推荐文章标题
      • 2.制作词云图
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档