2017-08-10 31 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来实现。