python批量评论_手把手教你 Python挖掘用户评论典型意见并自动生产报告
原標(biāo)題:手把手教你 Python挖掘用戶評論典型意見并自動生產(chǎn)報(bào)告
用戶體驗(yàn)的工作可以說是用戶需求和用戶認(rèn)知的分析。而消費(fèi)者的聲音是其中很重要的一環(huán),它包含了用戶對產(chǎn)品的評論,不管是好的壞的,都將對我們產(chǎn)品的改進(jìn)和迭代有幫助。另外任何事情都要考慮金錢成本和人力成本,因此我希望能通過機(jī)器學(xué)習(xí)的算法來輔助分析,對用戶的評論數(shù)據(jù)進(jìn)行提煉和洞察。
1
數(shù)據(jù)獲取和清洗
現(xiàn)在爬蟲泛濫,網(wǎng)絡(luò)公開數(shù)據(jù)的獲取并不再是一個難題。簡單點(diǎn)可以利用一些互聯(lián)網(wǎng)的爬蟲服務(wù)(如神箭手、八爪魚等),復(fù)雜點(diǎn)也可以自己寫爬蟲。這里我們用爬蟲來獲取京東的評論數(shù)據(jù)。相對于亞馬遜而言,京東比較坑。第一個坑是京東的反爬蟲還不錯,通過正常產(chǎn)品網(wǎng)址進(jìn)去的那個評論列表是幾乎爬不出數(shù)據(jù)來的,所有大部分網(wǎng)絡(luò)爬蟲服務(wù)都止步于此。第二個坑是一款產(chǎn)品的評論數(shù)只要超過一萬條,那么京東就只會顯示前一千條,沒有公開的數(shù)據(jù),那你爬蟲技術(shù)再厲害也沒辦法,除非開著爬蟲定時增量更新數(shù)據(jù)。
自己寫爬蟲的好處就是可以避免掉進(jìn)第一個坑,但是第二個坑沒辦法。這里我爬取了 小米MIX和 小米MIX2的評論數(shù)據(jù)(最新的幾款手機(jī)我都爬取了,需要的請戳后臺),其中 小米MIX 共1578條,小米MIX2 共3292條。
本文通過分析這些數(shù)據(jù)預(yù)期完成如下幾個目標(biāo)
1、數(shù)據(jù)清洗后的好評率
2、好/中/差評的概覽
3、典型意見分析
首先來看看MIX2的大致情況:
一共有3497條評論,其中有些評論內(nèi)容還是完全相同的。用戶大概在購買9天后后評論(可能與到貨日期有關(guān)),平均打分為4.87分,評論里面有些完全相同的,小米MIX2只有一種顏色等等。
接下來我們先做第一件事情
京東采用的是5分制,其中4-5分為好評,2-4分為中評,1分為差評。MIX2的好評率為96.63%,與京東官網(wǎng)的一致。
粗略的瀏覽以下評論,我們發(fā)現(xiàn)有這么幾種無效評論。
第一種全是標(biāo)點(diǎn)符號或者就一兩個字:
這種情況可以利用正則表達(dá)式來去除,第二種比較麻煩,如:
這種評論中它純屬湊字?jǐn)?shù)和灌水,不含任何產(chǎn)品的特征。一種想法是看看評論中涉及的名詞是否是手機(jī)領(lǐng)域中的詞語,但是實(shí)際情況會非常復(fù)雜,比如
“用的很不錯”、“太差了”...
它并沒有主語,并不知道它評價(jià)的是啥。這里我們反過來,假設(shè)每一類無效評論都有類似的關(guān)鍵詞,一個評論中的詞語只要有一些垃圾評論關(guān)鍵詞,我們就把它判定為無效評論。當(dāng)然并也不需要給定所有的無效評論詞,利用tfidf可以通過一個詞語順藤摸瓜找到其他類似的詞語。(還可以利用文本相似性算法尋找)
另外還有一種情況,雖然不屬于無效評論,但是影響好評占比。
這種情況在追評中出現(xiàn)的較多,還有就是京東默認(rèn)的好評。雖然內(nèi)容是差評,但是標(biāo)記的分值是5分。理論上也可以通過算法找出大部分。在NLP領(lǐng)域中,有一個課題叫做情感分析(sentiment analysis), 它可以判斷一句話的情感方向是正面的還是負(fù)面的(以概率大小給出,數(shù)值在0-1之間)。如果一段評論的情感方向與對應(yīng)的評分差異過大,則我們有理由相信它的評分是有誤的。當(dāng)然這里有一個條件,那就是這個情感分析算法是非常準(zhǔn)確的。
有大神專門用電商評論訓(xùn)練了一個開源的情感分析包snownlp, 我們來看看這個包效果怎樣。
嗯嗯,準(zhǔn)確率為92.63%,看上去很高,但。。。因?yàn)槲野阉性u論都判定為好評,那正確率也有96.54%。再看上圖中的ROC曲線,嗯,慘不忍睹。曲線跟x軸之間的面積(記作AUC)越大,說明模型的判別能力越好。一般情況曲線會在對角線之上(對角線相當(dāng)于隨機(jī)預(yù)測的結(jié)果),可以此時AUC=0.157,比隨機(jī)結(jié)果差多啦。
更好的情感分析估計(jì)需要利用大量手機(jī)領(lǐng)域的語料重新訓(xùn)練才行,本文就暫不討論這個啦。
2
好/中/差評的語義理解
語義理解是一個非常難的課題,本文不追求絕對精準(zhǔn),僅希望能對產(chǎn)品的評論有一個快速的理解。本文將從三個方面來闡述同類型評論語料的語義:
1、詞云。它會統(tǒng)計(jì)一段文本中各個詞語出現(xiàn)的次數(shù)(頻數(shù)),頻數(shù)越大,在詞云中對應(yīng)的字體也越大。通過觀察詞云,可以知道一段文本主要在講哪些東西
2、TextRank。 TextRank 算法是一種用于文本的基于圖的排序算法,可以給出一段文本的關(guān)鍵詞。其基本思想來源于谷歌的PageRank算法, 通過把文本分割成若干組成單元(單詞、句子)并建立圖模型, 利用投票機(jī)制對文本中的重要成分進(jìn)行排序, 僅利用單篇文檔本身的信息即可實(shí)現(xiàn)關(guān)鍵詞提取、文摘。和 LDA、HMM 等模型不同, TextRank不需要事先對多篇文檔進(jìn)行學(xué)習(xí)訓(xùn)練, 因其簡潔有效而得到廣泛應(yīng)用。
3、主題分解。 假設(shè)每一段文本都是有主題的,比如新聞里的體育類、時事類、八卦類等。通過對一系列的語料庫進(jìn)行主題分解(本文采用的是LDA),可以了解語料庫涉及了哪些主題。(本文用的LDA實(shí)際效果不怎么好,暫且僅供娛樂。更好的方法后續(xù)或許會更新)
來自:gasongjian返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的python批量评论_手把手教你 Python挖掘用户评论典型意见并自动生产报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: neil学英语
- 下一篇: 《Biology,8th》Neil Ca