【发布时间】:2015-03-01 15:25:42
【问题描述】:
尝试从 twitter 数据创建 wordcloud,但得到以下错误:
Error in FUN(X[[72L]], ...) :
invalid input '������������❤������������ "@xxx:bla, bla, bla... http://t.co/56Fb78aTSC"' in 'utf8towcs'
运行“mytwittersearch_corpus”后出现此错误
mytwittersearch_list <-sapply(mytwittersearch, function(x) x$getText())
mytwittersearch_corpus <-Corpus(VectorSource(mytwittersearch_corpus_list))
mytwittersearch_corpus<-tm_map(mytwittersearch_corpus, tolower)
mytwittersearch_corpus<-tm_map( mytwittersearch_corpus, removePunctuation)
mytwittersearch_corpus <-tm_map(mytwittersearch_corpus, function(x) removeWords(x, stopwords()))
我在其他页面上读到这可能是由于 R 难以处理非英语语言中的符号、表情符号和字母,但这似乎不是 R 遇到的“错误推文”的问题。我确实运行了代码:
mytwittersearch_corpus <- tm_map(mytwittersearch_corpus, function(x) iconv(enc2utf8(x), sub = "byte"))
mytwittersearch_corpus<- tm_map(mytwittersearch_corpus, content_transformer(function(x) iconv(enc2utf8(x), sub = "bytes")))
这些没有帮助。我还知道它找不到函数content_transformer,即使tm-package 已被选中并正在运行。
我在 OS X 10.6.8 上运行它并使用最新的 RStudio。
【问题讨论】:
-
也许你想试试 stringi 包中的 tolower 函数:
tm_map(mytwittersearch_corpus, content_transformer(stringi::stri_trans_tolower)). -
content_transformer相对较新。您可能需要更新软件包。packageVersion("tm")是什么? -
正如 Richard 所说,发布 R 的版本和加载的包的版本可能更重要。
sessionInfo()函数是收集和呈现该信息的最简单方法。 -
感谢您的帮助,理查德!我试图运行代码,但不幸的是我得到了同样的信息。我会尝试更新 tm 包。 content_transformer 的缺失可以解释错误吗?
-
查看使用精简版
mytwittersearch(可能是small <- head(mytwittersearch))是否会出现同样的错误。如果是这样,那么您应该发布dput(small)的输出