7

我正在根据来自不同运动队的推文创建一个词云。此代码成功执行大约 10 次:

handle <- 'arsenal'
txt <- searchTwitter(handle,n=1000,lang='en')
t <- sapply(txt,function(x) x$getText())
t <- gsub('http.*\\s*|RT|Retweet','',t)
t <- gsub(handle,'',t)
t_c <- Corpus(VectorSource(t))
tdm = TermDocumentMatrix(t_c,control = list(removePunctuation = TRUE,stopwords = stopwords("english"),removeNumbers = TRUE, content_transformer(tolower)))
m = as.matrix(tdm)
word_freqs = sort(rowSums(m), decreasing=TRUE) 
dm = data.frame(word=names(word_freqs), freq=word_freqs)
wordcloud(dm$word, dm$freq, random.order=FALSE, colors=brewer.pal(8, "Dark2"),rot.per=0.5)

10 次中的其他 9 次,它会引发以下错误:

Error in simple_triplet_matrix(i = i, j = j, v = as.numeric(v), nrow = length(allTerms),  : 
  'i, j, v' different lengths
In addition: Warning messages:
1: In mclapply(unname(content(x)), termFreq, control) :
  all scheduled cores encountered errors in user code
2: In simple_triplet_matrix(i = i, j = j, v = as.numeric(v), nrow = length(allTerms),  :
  NAs introduced by coercion

有什么想法吗?我用谷歌搜索过,但到目前为止还不够!请记住,我是 R 中的绝对新手!

4

3 回答 3

5

因此,经过一番尝试,以下代码行完全解决了我的问题:

t <- iconv(t,to="utf-8-mac")
于 2014-09-06T10:59:32.650 回答
2

我想您在使用DocumentTermMatrix命令之前已经在某处使用了以下代码行。

corpus = tm_map(corpus, PlainTextDocument)

这行代码将语料库中的所有文本都转换为PlainTextDocument,DocumentTermMatrix函数在其上不能正常工作。

只需重复创建语料库和预处理它的整个过程,跳过上面的命令,你就可以开始了。

于 2017-05-08T13:25:35.927 回答
0

如果您删除:

corpus = tm_map(corpus, PlainTextDocument)

您还必须删除:

t_c <- Corpus(VectorSource(t))

然后你会得到正确的输出TermDocumentMatrix

于 2018-01-29T12:37:44.863 回答