2017-08-10 66 views
1

在R中做一些文本挖掘我在25k文檔的區域中有一個語料庫。我目前正在清理我的語料庫,並將其作爲我翻譯成小寫字母的過程的一部分。我的執行:在R中轉換表情文本

createCorpus <- function(corpusData){ 
    aCorpus <- Corpus(DataframeSource(corpusData)) 
    ... 
    aCorpus <- tm_map(aCorpus,content_transformer(tolower)) 
} 

但是,對於包含表情符號的任何文檔文本,我收到以下錯誤。請注意,我已刪除實際的文字。

Error in FUN(content(x), ...) : invalid input '...' in 'utf8towcs'

現在,我已經嘗試添加str_replace_all(aCorpus$content,"[^[:graph:]]", " ")之前,把在this answer建議小寫。這產生與上述完全相同的錯誤,就好像它沒有實際做任何事情一樣。

我也曾嘗試tm_map(aCorpus, function(x) iconv(enc2utf8(x), sub = "byte"))的建議here,這將產生錯誤:

Error in enc2utf8(x) : argument is not a character vector

我覺得str_replace_all()是正確的做法,但我一定是做錯了什麼?如何刪除所有表情符號,以便我可以清理我的語料庫?

編輯爲了說明起見,傳遞給函數的參數是單列數據框,其中每行是一個單獨的文檔。

回答

2

我設法使用來解決這個問題:

tm_map(aCorpus, function(x) iconv(enc2utf8(x$content), sub = "byte")) 

在地方:

tm_map(aCorpus, function(x) iconv(enc2utf8(x), sub = "byte")) 

的問題是,我不得不直接引用語料的內容,而不僅僅是語料庫本身。通過使用x$content作爲參數而非僅僅使用x來實現。