3

我在处理使用 twitteR 包的 CRAN 版本提取的 twitter 数据时遇到了一些问题。特别是 tm 包的转换率较低。

我正在关注这个例子

这就是我目前正在做的事情:

#oauth handshake and so on work fine 
google_8.10<- searchTwitter("#Google", n=1500, cainfo="cacert.pem")
google_8.10_text <- sapply(google_8.10, function(x) x$getText())
google_8.10_text_corpus <- Corpus(VectorSource(google_8.10_text))
google_8.10_text_corpus <- tm_map(google_8.10_text_corpus, tolower) 
google_8.10_text_corpus <- tm_map(google_8.10_text_corpus, removePunctuation)
google_8.10_text_corpus <- tm_map(google_8.10_text_corpus,            function(x)removeWords(x,stopwords()))

其他转换完成得很好(如果 tolower 没有运行)。然而,较低的转换返回:

google_8.10_text_corpus <- tm_map(google_8.10_text_corpus, tolower)
    Warnmeldung:
In parallel::mclapply(x, FUN, ...) :
  all scheduled cores encountered errors in user code

我怀疑这可能是由其中一条推文中的某些字符引起的,但我该如何追查问题?

编辑:确实,某些字符似乎会导致这种情况,例如:

"#Google #TheInternship THE BEST MOVIE EVER @Jeennyy01 @dylanobrien    I love this part \ud83d\ude1c http://t.co/iok5vm83cP"

这里的“\ud83d\ude1c”部分会导致错误。关于如何从推文中自动删除这些短语(这个是: http: //www.charbase.com/1f61c-unicode-face-with-stuck-out-tongue-and-winking-eye )的任何想法?

4

3 回答 3

1

根据来源 tolower可以给出错误:

支持“字节”标记的编码

nzchar 和 nchar(, "bytes") 与编码无关。

nchar(, "char") nchar(, "width") 给出 NA(如果允许)或错误。substr substr<- 以字节为单位

缩写chartr make.names strtrim tolower toupper 给出错误。

这是一个使用无效 UTF 代码点引发错误的示例:

tolower("\udc80")
Error in tolower("<ed><U+00B2><U+0080>") : 
  invalid input 'í²€' in 'utf8towcs'
于 2013-10-08T13:47:46.447 回答
1

似乎问题很容易通过使用 stringi 包来解决,它带来了自己的小写转换实现: http ://cran.r-project.org/web/packages/stringi/index.html

当然,如果标准功能适用于所有角色,那就太好了。

于 2014-06-13T12:24:54.343 回答
0

再次运行 tm_map(mycorpus, tolower) 函数时,问题似乎自行解决。然后所有后续功能正常工作。虽然奇怪的错误......似乎是R的一个错误。

于 2013-11-11T21:25:26.117 回答