對神秘巨星影評製作詞雲
前段時間有朋友讓我幫他做個詞雲,第一次接觸文本分析,所以把了解到的過程再總結一遍。
- 數據獲取
看了阿米爾汗的神秘巨星有段時間了,想著爬取豆瓣上的評論做個詞雲看下大家怎麼評論這部電影,因為爬取的時候電影才剛上映,所以數據不多,只當練手使用,數據分析結果不做其他參考。
爬蟲教程:
Python爬蟲從入門到出門(一)
Python爬蟲從入門到出門(二)
Python爬蟲從入門到出門(三)
Python爬蟲從入門到出門(四)
爬取的結果如下所示:
- 文本處理
首先做準備工作,將評論文本用jieba庫進行分詞,jieba支持三種分詞模式 :
1 精確模式,試圖將句子最精確地切開,適合文本分析;
2 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;3 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞。
這裡採用精確模式分詞,代碼如下:
import jiebaimport pandas as pddata = pd.read_excel("..神秘巨星影評.xlsx")# read_excel需要先安裝xlrd第三方庫seg_list = jieba.cut("".join(data["評論內容"]), cut_all=False, HMM=True)
分詞完成後,可以輸出列印看看結果,會發現有些很奇怪的emoji符號,還有些常用詞對分析無用,例如:的、地、得。所以這裡還需要去掉停用詞。當然,想要進一步做更精確的分析,需要自己設計語料庫。停用詞的語料庫我是在網上下載的,代碼如下:
stop_words = []for word in open("..中文停用詞庫.txt", r): stop_words.append(word.strip())stayed_line = []for word in seg_list: if word not in stop_words: stayed_line.append(word)
最後將結果保存成txt文件:
file = open(data.txt, w, encoding=utf-8)for word in stayed_line: file.write(word) file.write(" ")file.close()
- 詞雲製作
詞雲製作可以用Python完成,但是這裡介紹個只需要幾分鐘完成的方法:在線的圖雲製作工具很多,這裡介紹不用翻牆就可以實現的工具,圖悅http://www.picdata.cn/indexb.php
先將上面得到的txt文件的詞複製到圖悅裡面左邊的框內,然後分析出圖就行了。如果想要定製化背景圖,設計一個要求的476*376像素的PNG圖!然後上傳到網站上就可以了。最後的詞頻統計部分結果如下:
推薦閱讀: