利用簡書首頁文章標(biāo)題數(shù)據(jù)生成詞云

1.詞云圖

詞云圖,也叫文字云,是對(duì)文本中出現(xiàn)頻率較高的“關(guān)鍵詞”予以視覺化的展現(xiàn),詞云圖過濾掉大量的低頻低質(zhì)的文本信息,使得瀏覽者只要一眼掃過文本就可領(lǐng)略文本的主旨。

  • 先看幾個(gè)詞云圖


    簡書簽約作者標(biāo)簽詞云
全國政協(xié)常委會(huì)工作報(bào)告詞云圖

2.推薦幾個(gè)不錯(cuò)的詞云圖工具

Tagul云可以自定義字體、詞云的形狀(有愛心、BUS、雪人、人像、UFO等),顏色等,做出來的詞云圖很酷炫,為網(wǎng)站訪問者提供良好的用戶體驗(yàn)。用戶可以在網(wǎng)站做好詞云圖,然后印在衣服、杯子、鼠標(biāo)墊等地方,自己設(shè)計(jì)身邊的物件,感覺很有成就感,很實(shí)用的網(wǎng)站。
這款國內(nèi)的在線詞頻分析工具,在長文本自動(dòng)分詞并制作詞云方面還是很出眾的,而且也容易上手,還可以自定義定制圖形模板:標(biāo)準(zhǔn)、微信、地圖等,切換自如,用起來體驗(yàn)很不錯(cuò)。
這是一款數(shù)據(jù)可視化工具,除了詞云,還有很多其他酷炫的圖表,如GIS地圖、漏斗圖、瀑布圖、?;鶊D等,來了解它們的詞云。工具很容易上手,直接把詞語這個(gè)數(shù)據(jù)拉到維度欄,再選擇詞云就瞬間呈現(xiàn)詞云圖表,BDP會(huì)自動(dòng)算好詞頻,你可以設(shè)置顏色,快速實(shí)現(xiàn)詞云可視化,特別簡單。
  • Python的擴(kuò)展包wordcloud也可構(gòu)建詞云。
    • 安裝命令
#安裝詞云
pip install wordcloud

#安裝jieba分詞
pip install jieba

1、引入模塊

from wordcloud import WordCloud
import matplotlib.pyplot as plt

2、實(shí)例化一個(gè)詞云

wc = WordCloud()

3、導(dǎo)入文本

text = open(r"222.txt",encoding='utf-8').read()

4、生成詞云

wc.generate(text)

5、顯示詞云

plt.imshow(wc)
#導(dǎo)入python畫圖的庫,詞云生成庫和jieba的分詞庫
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba

#讀取txt格式的文本內(nèi)容
text_from_file_with_apath = open('JsIndex.txt').read()

#使用jieba進(jìn)行分詞,并對(duì)分詞的結(jié)果以空格隔開
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)

#對(duì)分詞后的文本生成詞云
my_wordcloud = WordCloud().generate(wl_space_split)

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

入門可以參考博客python詞云 wordcloud 入門,安裝的時(shí)候建議使用依賴包安裝,我用命令安裝了幾次一直超時(shí)失敗。

3.爬取數(shù)據(jù),制作詞云圖

1.爬取簡書首頁推薦文章標(biāo)題

  • 分析網(wǎng)頁結(jié)構(gòu)通過Xpath篩選我們想要的數(shù)據(jù)有兩種方法
    通過谷歌商店的Xpath工具分析結(jié)構(gòu)得到我們想要的數(shù)據(jù)
直接復(fù)制title的xpath,不過我們只能得到這一條數(shù)據(jù),所以還要修改
  • 編寫代碼
#-*- coding:utf-8 -*-

#creater 簡書-_知幾 2017.8.26

import urllib,urllib2,re
from lxml import etree

class CrawlJs:
    #定義函數(shù),爬取對(duì)應(yīng)的數(shù)據(jù)
    def getArticle(self,url):
        print '█████████████◣開始爬取數(shù)據(jù)'
        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

    #定義函數(shù),篩選和保存爬取到的數(shù)據(jù)
    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.itdecent.cn/'
    js = CrawlJs()
    content = js.getArticle(url)
    js.save(content)
得到我們的數(shù)據(jù)

2.制作詞云圖

  • 工具 我使用的是TAGUL 一款在線詞云制作工具,簡單易上手,缺點(diǎn)只能分詞英文,需要導(dǎo)入中文字體。

操作:

  • Import words , 可以直接粘貼導(dǎo)入文本數(shù)據(jù),或者以web url的方式導(dǎo)入。文本數(shù)據(jù)包括關(guān)鍵詞和size。
  • 選擇形狀shapes -- 也可自定義形狀圖片
    TAGUL提供了一些模板圖形,左邊是分類主題。
  • 分詞技術(shù)
    推薦兩個(gè)分詞工具,一個(gè)是在線分詞工具 基于深度學(xué)習(xí)的中文在線抽詞-PullWord,另一個(gè)是結(jié)巴分詞(jieba)。
簡書首頁推薦文章標(biāo)題詞云圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容