最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用R語言進(jìn)行網(wǎng)站評論文本挖掘聚類|附代碼數(shù)據(jù)

2023-09-01 16:07 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=3994

原文出處:拓端數(shù)據(jù)部落公眾號

?最近我們被客戶要求撰寫關(guān)于文本挖掘的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。

對于非結(jié)構(gòu)化的網(wǎng)站中文評論信息,r的中文詞頻包可能是用來挖掘其潛在信息的好工具,要分析文本內(nèi)容,最常見的分析方法是提取文本中的詞語,并統(tǒng)計(jì)頻率。頻率能反映詞語在文本中的重要性,一般越重要的詞語,在文本中出現(xiàn)的次數(shù)就會越多。詞語提取后,還可以做成詞云,讓詞語的頻率屬性可視化,更加直觀清晰。?

??????比如對于如下的網(wǎng)站評論信息:


通過一系列的文本處理和高頻詞匯的提取,最后結(jié)合聚類,我們可以得到如下的可視化結(jié)果。

第一類客戶:

?

第二類

第三類

這是根據(jù)某網(wǎng)站成交評論制作的可視化詞云,詞頻的統(tǒng)計(jì),分詞和詞云的制作都是用R,最后做了聚類,將不同的用戶聚成了3個(gè)類別。這個(gè)圖能很直觀看到,每個(gè)類別的客戶的特點(diǎn)。不過這張圖中的詞語還需要進(jìn)行優(yōu)化,因?yàn)橛行┬g(shù)語或詞組可能被拆分成了更小的詞語,沒有展示出來,為了演示,我就沒再花更多時(shí)間去優(yōu)化詞庫,主要介紹分析的過程與方法。

????????????????????????????????????????????????????????????????????????????????????????????????????pinglun=readLines("E:\手機(jī)評論1.txt")??????????????????????????????????????????????????????????????????????????????????????????????????????write.table(pinglun,"E:\手機(jī)評論整理.txt")??????????????????????????????????????????????????????????????????????????????????????????????????????pinglun1=read.table("E:\\手機(jī)評論整理.txt",sep="|")# ==?文本預(yù)處理??res=pinglun1[pinglun1!=" "]; ?#剔除通用標(biāo)題??res=gsub(pattern="[專賣店【未拆封順豐】||]+"," ",res); ??#剔除特殊詞??res=gsub(pattern="[我|你|的|了|是]"," ",res); ??????#清理文本里的回車!否則每個(gè)回車就會被識別成一段文本res=gsub("\n","",res)###############library(r; ?library(Rwordseg); ?# ==?分詞+頻數(shù)統(tǒng)計(jì)??words=unlist(lapply(X=res, FUN=segmentCN)); ?word=lapply(X=words, FUN=strsplit, " "); ?v=table(unlist(word)); ???#?降序排序??v=rev(sort(v)); ??d=data.frame(word=names(v), freq=v); ??#?過濾掉1個(gè)字和詞頻小于100的記錄??d=subset(d, nchar(as.character(d$word))>1 & d$freq>=100) ?# ==?輸出結(jié)果?????????????????????????????????????????????????????????????????????????????????????????????????????????write.table(d, file="E: \\worldcup_keyword.txt", row.names=FALSE) ?#############繪制詞匯圖####################3library("wordcloud")mycolors <- brewer.pal(8,"Dark2")#設(shè)置一個(gè)顏色系:wordcloud(d[1:30,]$word,d[1:30,]$freq,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")????????????????????????????????????????????????????????????????????????????????????????????????????????write.csv(d[1:30,], file="E:\\ 30個(gè)keyword.csv", row.names=FALSE) ?############kmeans聚類#######################res1=res[1:10000]#篩選500個(gè)樣本做測試words=unlist(lapply(X=res1, FUN=segmentCN)); ?word=lapply(X=words, FUN=strsplit, " "); ?v=table(unlist(word)); ???#?降序排序??v=rev(sort(v)); ??d=data.frame(word=names(v), freq=v); ??#?過濾掉1個(gè)字和詞頻小于100的記錄??d=subset(d, nchar(as.character(d$word))>1 & d$freq>=100) ?#獲得高頻詞匯rating=matrix(0,length(res1),dim(d)[1])#生成評價(jià)矩陣colnames(rating)=d[,1]#給矩陣列命名for(i in 1:length(res1)){??words=unlist(lapply(X=res1[i], FUN=segmentCN));#對每一條記錄分析獲得詞頻????word=lapply(X=words, FUN=strsplit, " "); ???v=table(unlist(word)); ?????#?降序排序????v=rev(sort(v)); ????dd=data.frame(word=names(v), freq=v);???index=intersect(dd[,1],colnames(rating))#找到每條記錄中擁有的高頻詞匯??if(length(index)==0)next;??for(j in 1:length(index)){????jj=which(dd[,1]==index[j])????rating[i,colnames(rating)==index[j]]=dd[jj,2][[1]]#高頻詞匯的數(shù)量賦值到評價(jià)矩陣??} ?}??????????????????????????????????????????????????????????????????????????????????????????????????????write.table(rating, file="E:\\?評價(jià)矩陣.txt", row.names=FALSE) ?kmeans(rating,5)#對評價(jià)矩陣進(jìn)行k均值聚類??????????????????????????????????????????????????????????????????????????????????????????????????????result=read.csv("E:\聚類結(jié)果.csv")colnames(result)=d[1:30,1]###分類別c1=result[result[,31]==1,]c2=result[result[,31]==2,]c3=result[result[,31]==3,]freq1=apply(c1,2,sum)[-31]freq2=apply(c2,2,sum)[-31]freq3=apply(c3,2,sum)[-31]library("wordcloud")mycolors <- brewer.pal(8,"Dark2")#設(shè)置一個(gè)顏色系:wordcloud(colnames(result)[-17],freq1[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")wordcloud(colnames(result)[-17],freq2[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")wordcloud(colnames(result)[-17],freq3[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")######算法比較y=rbind(matrix(rnorm(10000,mean=2,sd=0.3),ncol=10),matrix(rnorm(10000,mean=1,sd=0.7),ncol=10))#生成兩類隨機(jī)數(shù)合并colnames(y)=c(paste("y",1:10))#變量名#Kmeans算法聚類cl=kmeans(y,2)pch1=rep("1",1000)#類標(biāo)號pch2=rep("2",1000)plot(y,col=cl$cluster,pch=c(rep("1",1000),rep("2",1000)),main="kmeans算法聚類圖")#每個(gè)類樣本points(cl$centers,col=3,pch="*",cex=3)#每個(gè)類中心

最后可以得到直觀的用戶的聚類特征從而進(jìn)一步進(jìn)行研究。?

最受歡迎的見解

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ù)分析


用R語言進(jìn)行網(wǎng)站評論文本挖掘聚類|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
大安市| 葫芦岛市| 荃湾区| 安庆市| 福海县| 乌兰察布市| 寻乌县| 民县| 吴堡县| 都昌县| 青铜峡市| 镇远县| 霍山县| 咸丰县| 阿瓦提县| 武山县| 南京市| 疏附县| 冷水江市| 万源市| 东平县| 林州市| 布尔津县| 广宗县| 旬阳县| 莎车县| 西贡区| 襄汾县| 泰兴市| 乌什县| 元朗区| 望谟县| 礼泉县| 都安| 建平县| 泽库县| 定安县| 博野县| 芒康县| 桐柏县| 宁都县|