R語言豆瓣數(shù)據(jù)文本挖掘 神經(jīng)網(wǎng)絡(luò)、詞云可視化和交叉驗證
全文鏈接:http://tecdat.cn/?p=31544
原文出處:拓端數(shù)據(jù)部落公眾號
在網(wǎng)絡(luò)技術(shù)高速發(fā)展的背景下,信息紛亂繁雜,如何能夠獲得需要的文本信息,成了許多企業(yè)或組織關(guān)注的問題。
該項目以采集的豆瓣電影評論數(shù)據(jù)為例,使用R語言和神經(jīng)網(wǎng)絡(luò)算法,對文本挖掘進(jìn)行全流程的分析,包括對其特征及其子集進(jìn)行提取,并對文本進(jìn)行詞云可視化和分類處理,同時采用交叉驗證方法對模型進(jìn)行調(diào)整,從而預(yù)測有關(guān)評論的類型,并將其作為電影推薦的一個標(biāo)準(zhǔn)。
電影評論數(shù)據(jù)
查看數(shù)據(jù)
head(pinglun1)
文本預(yù)處理?
?#剔除通用標(biāo)題? ?res=(pattern="NIKEiD"," ",res);?? ?res=(pattern="http://t.cn/"," ",res); ?res=(pattern="com"," ",res);
中文分詞技術(shù)
不同于英文每一個單詞具有明確的劃分標(biāo)準(zhǔn),中國的漢字博大精深、歷史悠久。一個詞語或者一句話在不同的語境里有多種切分方式,并且隨著網(wǎng)絡(luò)用詞的不斷更新,許多具有現(xiàn)時意義的詞語并不能為計算機(jī)所識別。
keyword=(X=res, FUN=segmentCN)
繪制詞匯圖
詞云不僅能夠形象的將文本的主要內(nèi)容進(jìn)行呈現(xiàn),清晰明了地展示出在一個測試集里面最為重要的關(guān)鍵詞,同時也可以檢驗停用詞的處理環(huán)節(jié)是否完善,因為如果不完善,詞云中會不可避免地出現(xiàn)一些無意義的單個詞。
mycolors <- brewer.pal(8,"Dark2")#設(shè)置一個顏色系:wordcloud(d$word,d$freq,random.order=FALSE,random.color=FALSE,colors=
unique(words)
##??? [1] "通過"???????????? "親"?????????????? "父"????????????? ?
##??? [4] "養(yǎng)父"???????????? "岳父"???????????? "人物"??????????? ?
##??? [7] "關(guān)系"???????????? "構(gòu)"?????????????? "寫"????????????? ?
##?? [10] "一部"???????????? "編"?????????????? "有"
轉(zhuǎn)換成詞頻矩陣
由于計算機(jī)比較擅于處理電子表格、數(shù)據(jù)庫這樣的結(jié)構(gòu)化數(shù)據(jù),但是文本是人類的語言,所以將非結(jié)構(gòu)化的文本轉(zhuǎn)變成結(jié)構(gòu)化的數(shù)據(jù)是非常必要的。
for(i in? 1:nrow(cldata)){ ?
? for(j in? unique(d$word) ){ ?
??? if(j %in%? unlist(key ? ?
? ?##??????? 故事 電影 一個 喜歡 父親 童話 因為 這個 一部 時候 沒有 知道 生活 ?##?? [1,]??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 1??? 0??? 0??? 0??? 0 ?##?? [2,]??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0??? 0 ?## [594,]??? 0 ?## [595,]??? 0 ?## [596,]??? 0 ?## [597,]??? 0 ?## [598,]??? 0 ?## [599,]??? 0 ?## [600,]??? 0
神經(jīng)網(wǎng)絡(luò)
nn <- ?(c(label$V1)[samp]~cldata[samp,],size=10,decay=0.01,maxit=1000,l
預(yù)測分類結(jié)果
yy <- round(predict(nn, cldata))
分類混淆矩陣
table(yy,label[1:500,])
十折交叉驗證
利用for循環(huán),將參數(shù)依次賦值并對每一個結(jié)果求平均值。
k=10 ?for(kk in 1:k){ ?
? index=sample(1:length(data),floor(length(data)*(1/k)),replace=F)#得到測試樣本樣本號 ?? test=as.data.frame(cldata[index,])#提取測試集 ?? train=as.data.frame(cldata[-index,])#提取訓(xùn)練集
結(jié)論
本次項目是基于豆瓣電影評論對文本挖掘的整個流程進(jìn)行闡釋,對文本進(jìn)行了爬取、分詞、文本向量化等一系列操作。項目還需要進(jìn)一步地完善。首先因文本挖掘的技術(shù)手段不如數(shù)據(jù)挖掘成熟,其次就是在不同的項目中適用的方法和模型也是不同的,比如當(dāng)改變算法或者參數(shù)的時候,會導(dǎo)致準(zhǔn)確率發(fā)生變化,所以在處理這個項目的時候,需要注意的是,對于運用哪種方法和建立哪種模型必須進(jìn)行充分的思考和實驗,從而得出比較科學(xué)的支撐依據(jù)。當(dāng)然就本項目來說,也存在和其他文本挖掘項目相同的問題——分詞庫和停用詞庫不完善,所以文本挖掘這一領(lǐng)域仍需要大量的探索和實踐,未來的研究中應(yīng)該更加關(guān)注數(shù)據(jù)本身的質(zhì)量和真實性并完善詞典的構(gòu)建。通過這個項目可以看出文本挖掘在網(wǎng)絡(luò)評價分析方面發(fā)揮了很重要的作用,目前有很多組織或企業(yè)通過文本挖掘來提取相關(guān)產(chǎn)品的客戶反饋,并提高自身的產(chǎn)品質(zhì)量和服務(wù)水平。盡管這種方式還沒有很完善,但是當(dāng)其得到更加廣泛的推廣后,其中包含的技術(shù)也一定會越來越完善。相信當(dāng)這種方式走向成熟時,其會廣泛地應(yīng)用于更多的領(lǐng)域,例如商品貿(mào)易、新聞出版、醫(yī)療和教育等等,那么我們的生活也會獲得更多的便利。
參考文獻(xiàn):
[1] 張公讓,鮑超,王曉玉,等.基于評論數(shù)據(jù)的文本語義挖掘與情感分析 [J].情報科學(xué),2021,39(5):53-61.
[2] 王繼成,潘金貴,張福炎.Web文本挖掘技術(shù)研究 [J].計算機(jī)研究與發(fā)展,2000(5):513-520.
最受歡迎的見解
1.Python主題建模LDA模型、t-SNE 降維聚類、詞云可視化文本挖掘新聞組
2.R語言文本挖掘、情感分析和可視化哈利波特小說文本數(shù)據(jù)
3.r語言文本挖掘tf-idf主題建模,情感分析n-gram建模研究
4.游記數(shù)據(jù)感知旅游目的地形象
5.疫情下的新聞數(shù)據(jù)觀察
6.python主題lda建模和t-sne可視化
7.r語言中對文本數(shù)據(jù)進(jìn)行主題模型topic-modeling分析
8.主題模型:數(shù)據(jù)聆聽人民網(wǎng)留言板的那些“網(wǎng)事”
9.python爬蟲進(jìn)行web抓取lda主題語義數(shù)據(jù)分析