在R中转换表情符号文本

时间:2017-08-10 11:40:58

标签: r emoji corpus

在R中进行一些文本挖掘。我在25k文档区域内有一个语料库。我目前正在清理我的语料库,作为整个过程的一部分,我将翻译成小写。我的实施:

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

但是,对于包含表情符号的任何文档文本,我收到以下错误。请注意,我已删除实际文字。

  

FUN错误(内容(x),...):输入无效&#39; ...&#39;在   &#39; utf8towcs&#39;

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

我也按照建议的here尝试tm_map(aCorpus, function(x) iconv(enc2utf8(x), sub = "byte")),这会产生错误:

  

enc2utf8(x)出错:参数不是字符向量

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

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

1 个答案:

答案 0 :(得分:4)

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

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

取代:

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

问题在于我必须直接引用语料库的内容,而不仅仅是语料库本身。使用x$content作为参数而不仅仅是x来实现。