2017-07-22 27 views
0

我试图了解一些有关celebritites的主题。我建立了一个twitter API连接,并从他们验证的句柄中获取了几个人物的推文。我在使用tweet名人创建的wordcloud中看到'fffd'

予处理的鸣叫通过下列 -

  1. 代替图形字符由空白
    AmitText=str_replace_all(tweets.df$text,"[^[:graph:]]", " ")
  2. 转换所有字符为小写
  3. 删除标点,超链接,标签,关键字 “RT” 和blankspaces在推文的开头和结尾
  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)

这将创建一个体面的wordcloud,但问题是,我得到的wordcloud的中间有一个大大的“FFFD”,表明这是由名人最啾啾字。事实上,这是我看到所有7位名人的模式。虽然我确信这不是事实,但我也检查了他们的原始推文,发现他们的推文中没有fffd这样的词。据我所知,这是一些不能正确读取的图形字符。我不确定是什么原因和谷歌是没有太大的帮助

回答

1

让我们在你的数据预处理的开始尝试这个。

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

希望这会有所帮助!


不要忘了让我们知道是否能解决你的问题:)

+0

“ashokmistry4545印度的骄傲 srbachchan许多祝贺先生ab28million”我仍然认为这是作为推文文本之一。你是否认为像 这样的字符会被读为fffd? – Krithi07

+0

删除这些垃圾值为什么不使用'tweet $ text < - gsub(“[^ [:alnum:] ///']”,“”,tweet $ text)''。顺便说一句 - 是的,当你做tolower()时,这是fffd的原因 - 参考这个[link](https://en.wikipedia.org/wiki/Specials_(Unicode_block))以获取更多细节 – Prem

+0

太棒了!这工作。谢谢:) – Krithi07

0

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

当原件是“请付$ 1000”时,请付“pay1000”和“请付1000” - 或者是“请付1000”吗?删除 不是理想的解决方案。

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

+0

哦, 和[U + FFFD](http://www.fileformat.info/info/unicode/char/fffd/index.htm)是一样的东西。 –

+0

◎表示任何UTF格式无法读取的内容,并由U + FFFD替换。这就是为什么在wordcloud这个词中,我认为fffd是最大频率的词 – Krithi07

+0

嗯,当然,它的写法并不意味着它是不可读的。找到误读它的错误代码。 –

相关问题