2017-07-22 31 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

嗯,當然,它的寫法並不意味着它是不可讀的。找到誤讀它的錯誤代碼。 –

相關問題