1

我想阅读一个 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

好的调查,我使用了以下代码,这是 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-bit)) 上运行。

非常感谢!

4

1 回答 1

0

对于相关性分析函数cor(),您得到了 NA 值的矩阵,因为您对每个变量只有一个观察值 - 如果变量只有一个观察值,则无法进行相关性。

您可以通过查看矩阵 m 来检查它

> m
    Terms
Docs word1 word2 word3
   1     5     4     3
于 2013-04-24T07:51:54.287 回答