【问题标题】:Twitter Mining using R (twitteR + tm): error using tolower conversionTwitter Mining using R (twitteR + tm): error using tolower conversion
【发布时间】:2013-10-15 09:52:33
【问题描述】:

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

我关注this example

这是我目前正在做的:

#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)的任何想法?

【问题讨论】:

    标签: r twitter tm


    【解决方案1】:

    根据sourcetolower可以报错:

    支持“字节”标记的编码

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

    nchar(, "char") nchar(, "width") 给出 NA(如果允许)或错误。子串 substr

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

    这是一个使用invalid UTF code point 引发错误的示例:

    tolower("\udc80")
    Error in tolower("<ed><U+00B2><U+0080>") : 
      invalid input 'í²€' in 'utf8towcs'
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-05-01
          • 1970-01-01
          • 2017-01-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-24
          • 1970-01-01
          • 2021-08-11
          相关资源
          最近更新 更多