txt文件在R包tm中生成NA(文本化)

时间:2013-04-24 07:40:42

标签: r text na mining tm

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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

> m
    Terms
Docs word1 word2 word3
   1     5     4     3