
R語言數(shù)據(jù)挖掘實戰(zhàn)案例:電商評論情感分析
隨著網(wǎng)上購物的流行,各大電商競爭激烈,為了提高客戶服務(wù)質(zhì)量,除了打價格戰(zhàn)外,了解客戶的需求點,傾聽客戶的心聲也越來越重要,其中重要的方式 就是對消費者的文本評論進行數(shù)據(jù)挖掘.今天通過學(xué)習(xí)《R語言數(shù)據(jù)挖掘實戰(zhàn)》之案例:電商評論與數(shù)據(jù)分析,從目標(biāo)到操作內(nèi)容分享給大家。
本文的結(jié)構(gòu)如下
1.要達到的目標(biāo)
通過對客戶的評論,進行一系列的方法進行分析,得出客戶對于某個商品的各方面的態(tài)度和情感傾向,以及客戶注重商品的哪些屬性,商品的優(yōu)點和缺點分別是什么,商品的賣點是什么,等等..
2.文本挖掘主要的思想.
由于語言數(shù)據(jù)的特殊性,我們主要是將一篇句子中的關(guān)鍵詞提取出來,從而將一個評論的關(guān)鍵詞也提取出來,然后根據(jù)關(guān)鍵詞所占的權(quán)重,這里我們用空間向量的模型,將每個特征關(guān)鍵詞轉(zhuǎn)化為數(shù)字向量,然后計算其距離,然后聚類,得到情感的三類,分別是正面的,負面的,中性的.用以代表客戶對商品的情感傾向.
3.文本挖掘的主要流程:
4.案例流程簡介與原理介紹及軟件操作
4.1數(shù)據(jù)的爬取
首先下載八爪魚軟件,鏈接是http://www.bazhuayu.com/download,下載安裝后,注冊賬號登錄, 界面如上:
點擊快速開始—新建任務(wù),輸入任務(wù)名點擊下一步,打開京東美的熱水器頁面
復(fù)制制頁面的地址到八爪魚中去如下圖:
觀察網(wǎng)頁的類型,由于包含美的熱水器的頁面不止一頁,下面有翻頁按鈕,因此我們需要建立一個循環(huán)點擊下一頁, 然后在八爪魚中的京東頁面上點擊下一頁,在彈出的對話列表中點擊循環(huán)點擊下一頁,如圖:
然后點擊一個商品,在彈出的頁面中點擊添加一個元素列表以處理一祖元素–再點擊添加到列表—繼續(xù)編輯列表,接下來我們點擊另一商品的名字,在彈出的頁面上點擊添加到列表,這樣軟件便自動識別了頁面中的其他商品,再點擊創(chuàng)建列表完成,再點擊循環(huán),這樣就創(chuàng)建了一個循環(huán)抓取頁面中商品的列表,
然后軟件自動跳轉(zhuǎn)到第一個商品的具體頁面,我們點擊評論,在彈出頁面中點擊 點擊這個元素,看到評論也有很多頁,這時我們又需要創(chuàng)建一個循環(huán)列表,同上,點擊下一頁—循環(huán)點擊.然后點擊我們需要抓取的評論文本,在彈出頁面中點擊創(chuàng)建一個元素列表以處理一組元素—-點擊添加到列表—繼續(xù)編輯列表,然后點擊第2個評論在彈出頁面中點擊添加到列表—循環(huán),再點擊評論的文本選擇抓取這個元素的文本.好了,此時軟件會循環(huán)抓取本頁面的文本,如圖:
都點擊完成成后,我們再看設(shè)計器發(fā)現(xiàn)有4個循環(huán),第一個是翻頁,第二個是循環(huán)點擊每一個商品,第三個是評論頁翻頁,第4個是循環(huán)抓取評論文本,這樣我們需要把第4個循環(huán)內(nèi)嵌在第3個循環(huán)里面去,然后再整體內(nèi)嵌到第2個循環(huán)里面去,再整體內(nèi)嵌到第1個循環(huán)里面去,這樣的意思就是,先點下一頁,再點商品,再點下一特,再抓取評論,這套動作循環(huán).那么我們在設(shè)計器中只需拖動第4個循環(huán)到第3個循環(huán)再這樣拖動下去.即可: 拖動結(jié)果如下:,再點下一步—下一步–單擊采集就OK 了.4.2文本去重
本例使用了京東平臺下對于美的熱水器的客戶評論作為分析對象,按照流程,首先我們使用八爪魚在京東網(wǎng)站上爬取了客戶對于美的熱水器的評論,部分?jǐn)?shù)據(jù)如下!
進行簡單的觀察,我們可以發(fā)現(xiàn)評論的一些特點,
文本短,基本上大量的評論就是一句話.
情感傾向明顯:明顯的詞匯 如”好” “可以”
語言不規(guī)范:會出現(xiàn)一些網(wǎng)絡(luò)用詞,符號,數(shù)字等
重復(fù)性大:一句話出現(xiàn)詞語重復(fù)
數(shù)據(jù)量大.
故我們需要對這些數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,先進行數(shù)據(jù)清洗,
編輯距離去重其實就是一種字符串之間相似度計算的方法。給定兩個字符串,將字符串A轉(zhuǎn)化為字符串B所需要的刪除、插入、替換等操作步驟的數(shù)量就叫做從A到B的編輯路徑。而最短的編輯路徑就叫字符串A、B的編輯距離。比如,“還沒正式使用,不知道怎樣,但安裝的材料費確實有點高,380”與“還沒使用,不知道質(zhì)量如何,但安裝的材料費確實貴,380”的編輯距離就是9.
首先,針對重復(fù)的評論我們要去重,即刪掉重復(fù)的評論.
另外一句話中出現(xiàn)的重復(fù)詞匯,這會影響一個評論中關(guān)鍵詞在整體中出現(xiàn)的頻率太高而影響分析結(jié)果.我們要將其壓縮.
還有一些無意義的評論,像是自動好評的,我們要識別并刪去.
4.3壓縮語句的規(guī)則:
1.若讀入與上列表相同,下為空,則放下
2.若讀入與上列表相同,下有,判斷重復(fù), 清空下表
3.若讀入與上列表相同,下有,判斷不重,清空上下
4.若讀入與上列表不同,字符>=2,判斷重復(fù),清空上下
5.若讀入與上列表不同,下為空,判斷不重,繼續(xù)放上
6.若讀入與上列表不同,下有,判斷不重,放下
7.讀完后,判斷上下,若重則壓縮.
4.4然后我們再進行中文的分詞,分詞的大致原理是:
中文分詞是指將一段漢字序列切分成獨立的詞。分詞結(jié)果的準(zhǔn)確性對文本挖掘效果至關(guān)重要。目前分詞算法主要包括四種:字符串匹配算法、基于理解的算法、基于統(tǒng)計的方法和基于機器學(xué)習(xí)的算法。
1.字符串匹配算法是將待分的文本串和詞典中的詞進行精確匹配,如果詞典中的字符串出現(xiàn)在當(dāng)前的待分的文本中,說明匹配成功。常用的匹配算法主要有正向最大匹配、逆向最大匹配、雙向最大匹配和最小切分。
2.基于理解的算法是通過模擬現(xiàn)實中人對某個句子的理解的效果進行分詞。這種方法需要進行句法結(jié)構(gòu)分析,同時需要使用大量的語言知識和信息,比較復(fù)雜。
3.基于統(tǒng)計的方法是利用統(tǒng)計的思想進行分詞。單詞由單字構(gòu)成,在文本中,相鄰字共同出現(xiàn)的次數(shù)越多,他們構(gòu)成詞的概率就越大;因此可以利用字之間的共現(xiàn)概率來反映詞的幾率,統(tǒng)計相鄰字的共現(xiàn)次數(shù),計算它們的共現(xiàn)概率。當(dāng)共現(xiàn)概率高于設(shè)定的閾值時,可以認(rèn)為它們可能構(gòu)成了詞
4.最后是基于機器學(xué)習(xí)的方法:利用機器學(xué)習(xí)進行模型構(gòu)建。構(gòu)建大量已分詞的文本作為訓(xùn)練數(shù)據(jù),利用機器學(xué)習(xí)算法進行模型訓(xùn)練,利用模型對未知文本進行分詞。
4.5得到分詞結(jié)果后,
我們知道,在句子中經(jīng)常會有一些”了””啊””但是”這些句子的語氣詞,關(guān)聯(lián)詞,介詞等等,這些詞語對于句子的特征沒有貢獻,我們可以將其去除,另外還有一些專有名詞,針對此次分析案例,評論中經(jīng)常會出現(xiàn)”熱水器”,”中國”這是我們已知的,因為我們本來就是對于熱水器的評論進行分析,故這些屬于無用信息.我們也可以刪除.那么這里就要去除這些詞.一般是通過建立的自定義詞庫來刪除.
4.6 我們處理完分詞結(jié)果后,
便可以進行統(tǒng)計,畫出詞頻云圖,來大致的了解那些關(guān)鍵詞的情況,借此對于我們下一步的分析,提供思考的材料.操作如下:
4.7 有了分詞結(jié)果后,
我們便開始著手建模分析了,在模型的選擇面前,有很多方法,但總結(jié)下來就只有兩類,分別向量空間模型和概率模型,這里分別介紹一個代表模型
模型一: TF-IDF法:
方法A:將每個詞出現(xiàn)的頻率加權(quán)后,當(dāng)做其所在維度的坐標(biāo),由此確定一特征的空間位置.
方法B:將出現(xiàn)的所有詞包含的屬性作為維度,再將詞與每個屬性的關(guān)系作為坐標(biāo),然后來定位一篇文檔在向量空間里的位置.
但是實際上,如果一個詞條在一個類的文檔中頻繁出現(xiàn),則說明該詞條能夠很好代表這個類的文本的特征,這樣的詞條應(yīng)該給它們賦予較高的權(quán)重,并選來作為該類文本的特征詞以區(qū)別與其它類文檔。這就是IDF的不足之處.
模型二:.LDA模型
傳統(tǒng)判斷兩個文檔相似性的方法是通過查看兩個文檔共同出現(xiàn)的單詞的多少,如TF-IDF等,這種方法沒有考慮到文字背后的語義關(guān)聯(lián),可能在兩個文檔共同出現(xiàn)的單詞很少甚至沒有,但兩個文檔是相似的。
舉個例子,有兩個句子分別如下:
“喬布斯離我們而去了?!?/span>
“蘋果價格會不會降?”
可以看到上面這兩個句子沒有共同出現(xiàn)的單詞,但這兩個句子是相似的,如果按傳統(tǒng)的方法判斷這兩個句子肯定不相似,所以在判斷文檔相關(guān)性的時候需要考慮到文檔的語義,而語義挖掘的利器是主題模型,LDA就是其中一種比較有效的模型。
LDA模型是一個無監(jiān)督的生成主題模型,其假設(shè):文檔集中的文檔是按照一定的概率共享隱含主題集合,隱含主題集合則由相關(guān)詞構(gòu)成。這里一共有三個集合,分別是文檔集、主題集和詞集。文檔集到主題集服從概率分布,詞集到主題集也服從概率分布?,F(xiàn)在我們已知文檔集和詞集,根據(jù)貝葉斯定理我們就有可能求出主題集。具體的算法非常復(fù)雜,這里不做多的解釋,有興趣的同學(xué)可以參看如下資料
http://www.52analysis.com/shujuwajue/2609.html
http://blog.csdn.net/huagong_a … 37616
4.8 項目總結(jié)
1.數(shù)據(jù)的復(fù)雜性更高,文本挖掘面對的非結(jié)構(gòu)性語言,且文本很復(fù)雜.
2.流程不同,文本挖掘更注重預(yù)處理階段
3.總的流程如下:
5.應(yīng)用領(lǐng)域:
1.輿情分析
2.搜索引擎優(yōu)化
3.其他各行各業(yè)的輔助應(yīng)用
6.分析工具:
ROST CM 6是武漢大學(xué)沈陽教授研發(fā)編碼的國內(nèi)目前唯一的以輔助人文社會科學(xué)研究的大型免費社會計算平臺。該軟件可以實現(xiàn)微博分析、聊天分析、全網(wǎng)分析、網(wǎng)站分析、瀏覽分析、分詞、詞頻統(tǒng)計、英文詞頻統(tǒng)計、流量分析、聚類分析等一系列文本分析,用戶量超過7000,遍布海內(nèi)外100多所大學(xué),包括劍橋大學(xué)、日本北海道大學(xué)、北京大學(xué)、清華大學(xué)、香港城市大學(xué)、澳門大學(xué)眾多高校。下載地址: http://www.121down.com/soft/softview-38078.html
RStudio是一種R語言的集成開發(fā)環(huán)境(IDE),其亮點是出色的界面設(shè)計及編程輔助工具。它可以在多種平臺上運行,包括windows,Mac,Ubuntu,以及網(wǎng)頁版。另外這個軟件是免費和開源的,可以在官方網(wǎng)頁:www.rstudio.org
上下載。
7.1 Rostcm6實現(xiàn):
打開軟件ROSTCM6
這是處理前的文本內(nèi)容,我們將爬取到的數(shù)據(jù),只去除評論這一字段,然后保存為TXT格式,打開如下,按照流程我們先去除重復(fù)和字符,英文,數(shù)字等項.
2.點 文本處理–一般性處理—處理條件選 “凡是重復(fù)的行只保留一行”與”把所有行中包含的英文字符全部刪掉” 用來去掉英文和數(shù)字等字符
這是處理后的文檔內(nèi)容,可以看到數(shù)字和英文都被刪除了.3.接下來, 再進行分詞處理. 點 功能分析 —-分詞 (這里可以選擇自定義詞庫,比如搜狗詞庫,或者其他)
得分詞處理后的結(jié)果.,簡單觀察一下,分詞后 ,有許多 “在”,”下”,”一”等等無意義的停用詞
4.接下來,我們進行專有名詞,停用詞過濾. 并統(tǒng)計詞頻.點 功能分析 —詞頻分析(中文)
在功能性分析下點情感分析,可以進行情感分析,
并可以實現(xiàn)云圖的可視化.
7.2 R的實現(xiàn)
這里需要安裝幾個必須包,因為有幾個包安裝比較復(fù)雜,這里給了鏈接http://blog.csdn.net/cl1143015 … 82731
大家可以參看這個博客安裝包.安裝完成后就可以開始R文本挖掘了
加載工作空間
library(rJava)
library(tmcn)
library(Rwordseg)
library(tm)
setwd(“F:/數(shù)據(jù)及程序/chapter15/上機實驗”)
data1=readLines(“./data/meidi_jd_pos.txt”,encoding = “UTF-8″)
head(data1)
data<-data1[1:100]
—————————————————————#Rwordseg分詞
data1_cut=segmentCN(data1,nosymbol=T,returnType=”tm”)
刪除\n,英文字母,數(shù)字
data1_cut=gsub(“\n”,””,data1_cut)
data1_cut=gsub(“[a-z]*”,””,data1_cut)
data1_cut=gsub(“\d+”,””,data1_cut)
write.table(data1_cut,’data1_cut.txt’,row.names = FALSE)
Data1=readLines(‘data1_cut.txt’)
Data1=gsub(‘\”‘,”,data1_cut)
length(Data1)
head(Data1)
———————————————————————– #加載工作空間
library(NLP)
library(tm)
library(slam)
library(topicmodels)
R語言環(huán)境下的文本可視化及主題分析
setwd(“F:/數(shù)據(jù)及程序/chapter15/上機實驗”)
data1=readLines(“./data/meidi_jd_pos_cut.txt”,encoding = “UTF-8”)
head(data1)
stopwords<- unlist (readLines(“./data/stoplist.txt”,encoding = “UTF-8”))
stopwords = stopwords[611:length(stopwords)]
刪除空格、字母
Data1=gsub(“\n”,””,Data1)
Data1=gsub(“[a~z]*”,””,Data1)
Data1=gsub(“\d+”,””,Data1)
構(gòu)建語料庫
corpus1 = Corpus(VectorSource(Data1))
corpus1 = tm_map(corpus1,FUN=removeWords,stopwordsCN(stopwords))
建立文檔-詞條矩陣
sample.dtm1 <- DocumentTermMatrix(corpus1, control = list(wordLengths = c(2, Inf)))
colnames(as.matrix(sample.dtm1))
tm::findFreqTerms(sample.dtm1,2)
unlist(tm::findAssocs(sample.dtm1,’安裝’,0.2))
—————————————————————–
#主題模型分析
Gibbs = LDA(sample.dtm1, k = 3, method = “Gibbs”,control = list(seed = 2015, burnin = 1000,thin = 100, iter = 1000))
最可能的主題文檔
Topic1 <- topics(Gibbs, 1)
table(Topic1)
每個Topic前10個Term
Terms1 <- terms(Gibbs, 10)
Terms1
——————————————————————- #用vec方法分詞
library(tmcn)
library(tm)
library(Rwordseg)
library(wordcloud)
setwd(“F:/數(shù)據(jù)及程序/chapter15/上機實驗”)
data1=readLines(“./data/meidi_jd_pos.txt”,encoding = “UTF-8”)
d.vec1 <- segmentCN(data1,returnType = “vec”)
wc1=getWordFreq(unlist(d.vec1),onlyCN = TRUE)
wordcloud(wc1$Word,wc1$Freq,col=rainbow(length(wc1$Freq)),min.freq = 1000)
#
8.結(jié)果展示與說明
這是分析的部分結(jié)果.可以看到大部分客戶的評論包含積極情緒,說明了客戶對于美的熱水器認(rèn)可度比較高滿意度也可以,當(dāng)然,我們僅憑情感分析的結(jié)果是無法看出,客戶到底對于哪些方面滿意,哪些方面不滿意,我們有什么可以保持的地方,又有哪些需要改進的地方,這就需要我們的另一項結(jié)果展示.
點可視化工具,便可得到詞頻云圖.根據(jù)云圖,我們可以看到客戶最最關(guān)心的幾個點,也就是評論中,說得比較多的幾個點,由圖我們可以看到”安裝”,”師傅””配件””加熱””快””便宜””速度””品牌””京東””送貨”“服務(wù)””價格””加熱”等等關(guān)鍵詞出現(xiàn)頻率較高,我們大致可以猜測的是26
安裝方面的問題
熱水器價格方面比較便宜
熱水器功能方面 加熱快,
京東的服務(wù)和送貨比較快.
另外值得我們注意的是,云圖里面,也有些”好”,”大”,”滿意”等等出現(xiàn)比較多的詞,我們尚且不知道這些詞背后的語義,這就需要我們?nèi)フ业较鄳?yīng)的評論,提取出這些詞相應(yīng)的主題點.再加以優(yōu)化分析的結(jié)果
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03