我想阅读一个txt文件并做一些文本挖掘方法。当我在R中使用tm包时,我收到了很多错误消息。例如,如果我想关联最频繁的单词,我只得到了NA。这是我到目前为止使用的代码:
library(tm)
doc <- c("word1 word1 word2 word1 word2 word3 word1 word2 word3 word4 word1 word2 word3 word4 word5")
Corpus <- Corpus(VectorSource(doc))
Corpus <- tm_map(Corpus, stripWhitespace)
Corpus <- tm_map(Corpus, tolower)
Corpus <- tm_map(Corpus, removeWords, stopwords("english"))
Corpus <- tm_map(Corpus, removePunctuation)
tdm <- TermDocumentMatrix(Corpus)
#Plotting correlation of Terms
plot(tdm, terms = findFreqTerms(tdm, lowfreq = 2, Inf)[1:3], CorThreshold = 0.1)
之后,我收到以下错误消息:
Error in if (all(from == t(from))) "undirected" else "directed":
missing value where TRUE/FALSE needed
O.k。对于调查,我使用了以下代码,这是findAssocs()的逐步方法:
terms <- findFreqTerms(tdm, lowfreq = 2)[1:3]
m <- as.matrix(t(tdm[terms,]))
m
cor(m)
但是,我得到了以下输出:
word1 word2 word3
word1 NA NA NA
word2 NA NA NA
word3 NA NA NA
从我的观点来看,文本有问题,但我没有解释这种奇怪的行为。我的问题是,如果有人能解决这个问题。 我的R(2.15.2)在Mac系统上运行(x86_64-apple-darwin9.8.0 / x86_64(64位))。
非常感谢!
答案 0 :(得分:0)
对于相关性分析函数cor()
,您得到了NA值的矩阵,因为您只对每个变量进行了一次观察 - 如果变量只有一个观察值,则无法进行相关。
您可以通过查看矩阵m来检查它
> m
Terms
Docs word1 word2 word3
1 5 4 3