在 R 中转换表情符号文本

Transforming emoji text in R

在 R 中进行一些文本挖掘。我有一个包含 25k 文档的语料库。我目前正在清理我的语料库,作为这个过程的一部分,我正在翻译成小写字母。我的实现:

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

但是,对于任何包含表情符号的文档文本,我都会收到以下错误。请注意,我删除了 actual 文本。

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

现在,我尝试按照 this answer 中的建议在 转换为小写之前添加 str_replace_all(aCorpus$content,"[^[:graph:]]", " ") 。这会产生与上面完全相同的错误,几乎就像它实际上没有做任何事情一样。

我也按照建议 here 尝试了 tm_map(aCorpus, function(x) iconv(enc2utf8(x), sub = "byte")),但出现错误:

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

我觉得 str_replace_all() 是正确的方法,但我一定做错了什么?如何删除所有表情符号字符以便清理我的语料库?

EDIT 为了澄清起见,传递给函数的参数是单列数据框,其中每一行都是一个单独的文档。

我设法使用以下方法解决了问题:

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

代替:

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

问题是我必须直接参考语料库的内容,而不仅仅是语料库本身。通过使用 x$content 作为参数而不仅仅是 x.

来实现