日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言 文本挖掘 tm包 使用

發(fā)布時間:2025/3/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言 文本挖掘 tm包 使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

#清除內(nèi)存空間
rm(list=ls())?
#導(dǎo)入tm包
library(tm)
library(SnowballC)
#查看tm包的文檔
#vignette("tm")


##1.Data Import ?導(dǎo)入自帶的路透社的20篇xml文檔
#找到/texts/crude的目錄,作為DirSource的輸入,讀取20篇xml文檔
reut21578 <- system.file("texts", "crude", package = "tm")?
reuters <- Corpus(DirSource(reut21578), readerControl = list(reader = readReut21578XML))

##2.Data Export ?將生成的語料庫在磁盤上保存成多個純文本文件
writeCorpus(reuters)

##3.Inspecting Corpora 查看語料庫?
#can use inspect(),print(),summary()
#由于是從xml讀取過來,所以現(xiàn)在的corpus還是非常雜亂
inspect(reuters)
print(reuters)?
summary(reuters)


##4.Transformations?
#對于xml格式的文檔用tm_map命令對語料庫文件進(jìn)行預(yù)處理,將其轉(zhuǎn)為純文本并去除多余空格,
#轉(zhuǎn)換小寫,去除常用詞匯、合并異形同意詞匯,如此才能得到類似txt文件的效果
#可以用inspect(reuters)查看此時的效果,明顯好很多
reuters <- tm_map(reuters, as.PlainTextDocument)#將reuters轉(zhuǎn)化為純文本文件,去除標(biāo)簽
reuters <- tm_map(reuters, stripWhitespace)#去掉空白
reuters <- tm_map(reuters, tolower)#轉(zhuǎn)換為小寫
reuters <- tm_map(reuters, removeWords, stopwords("english"))#去停用詞
#采用Porter's stemming 算法 提取詞干
#Stem words in a text document using Porter's stemming algorithm
#install.packages("SnowballC")
tm_map(reuters, stemDocument)


##5.Creating Term-Document Matrices
#將處理后的語料庫進(jìn)行斷字處理,生成詞頻權(quán)重矩陣(稀疏矩陣)也叫詞匯文檔矩陣
dtm <- DocumentTermMatrix(reuters)
#查看詞匯文檔矩陣
inspect(dtm[1:5, 100:105])
#Non-/sparse entries: 1990/22390 ? ? ---非0/是0?
#Sparsity ? ? ? ? ? : 92% ? ? ? ? ? ?---稀疏性 ?稀疏元素占全部元素的比例
#Maximal term length: 17 ? ? ? ? ? ? ---切詞結(jié)果的字符最長那個的長度
#Weighting ? ? ? ? ?: term frequency (tf)
#如果需要考察多個文檔中特有詞匯的出現(xiàn)頻率,可以手工生成字典,
#并將它作為生成矩陣的參數(shù)
d<-c("price","crude","oil","use")
inspect(DocumentTermMatrix(reuters,control=list(dictionary=d)))


##6.Operations on Term-Document Matrices
#找出次數(shù)超過5的詞
findFreqTerms(dtm, 5)
#找出與‘opec’單詞相關(guān)系數(shù)在0.8以上的詞
findAssocs(dtm,"opec",0.8)


#因?yàn)樯傻木仃囀且粋€稀疏矩陣,再進(jìn)行降維處理,之后轉(zhuǎn)為標(biāo)準(zhǔn)數(shù)據(jù)框格式
#我們可以去掉某些出現(xiàn)頻次太低的詞。
dtm1<- removeSparseTerms(dtm, sparse=0.6)
inspect(dtm1)
data <- as.data.frame(inspect(dtm1))


#再之后就可以利用R語言中任何工具加以研究了,下面用層次聚類試試看
#先進(jìn)行標(biāo)準(zhǔn)化處理,再生成距離矩陣,再用層次聚類
data.scale <- scale(data)
d <- dist(data.scale, method = "euclidean")
fit <- hclust(d, method="ward.D")
#繪制聚類圖
#可以看到在20個文檔中,489號和502號聚成一類,與其它文檔區(qū)別較大。
plot(fit,main ="文件聚類分析")


#主成分分析
ozMat <- TermDocumentMatrix(makeChunks(reuters, 50),
? ? ? ? ? ? ? ? ? ? ? ? ? ? list(weighting = weightBin))
k <- princomp(as.matrix(ozMat), features = 2)
screeplot(k,npcs=6,type='lines')
windows()
biplot(k)

轉(zhuǎn)載于:https://my.oschina.net/bysu/blog/909509

總結(jié)

以上是生活随笔為你收集整理的R语言 文本挖掘 tm包 使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。