我在使用名人推文创建的wordcloud中看到'fffd'

时间:2017-07-22 09:27:57

标签: r character-encoding text-mining

我试图了解一些名人的话题。我建立了一个Twitter API连接,并从他们经过验证的句柄中获得了一些个性的推文。

我通过以下方式处理推文 -

  1. 用空白替换图形字符
    AmitText=str_replace_all(tweets.df$text,"[^[:graph:]]", " ")
  2. 将所有字符转换为小写
  3. 在推文的开头和结尾删除了标点符号,超链接,标签,关键字“rt”和空格
  4. 创建语料库,删除了停用词并创建了一个wordcloud
    AmitText.corpus <- Corpus(VectorSource(AmitText))
    AmitText.corpus <- tm_map(AmitText.corpus, removeWords, stopwords("en"))
    wordcloud(AmitText.corpus,min.freq = 2, scale=c(7,0.5),colors=brewer.pal(8, "Dark2"),random.color= FALSE, random.order = FALSE, max.words = 150)
  5. 这创造了一个体面的wordcloud,但问题是,我在wordcloud的中间得到了一个很大的'fffd',这表明这是由名人推文最多的词。事实上,这是我看到的所有7位名人的模式。虽然我确信情况并非如此,但我也检查了他们的原始推文,并在他们的推文中找不到像fffd这样的词。据我所知,这是一些无法正确阅读的图形字符。我不确定是什么原因,谷歌没有多大帮助

2 个答案:

答案 0 :(得分:1)

让我们在数据预处理开始时尝试这一点。

iconv(tweet$text, from="UTF-8", to="ASCII", sub="")

希望这有帮助!


如果它解决了您的问题,请不要告诉我们。)

答案 1 :(得分:0)

他们是不是垃圾字符。它们旨在告诉您和您的用户由于错误处理 他们的文本而导致某些数据丢失

当原件是“请支付₹1000”时,“请支付 1000”和“请支付1000”之间有很大的区别 - 或者是“请支付₿1000”?删除 不是理想的解决方案。

某些程序使用不同于编写或发送的字符编码来读取文本文件或流。就那么简单。希望你可以在上游修复它。