在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()
是正确的方法,但我一定做错了什么?如何删除所有表情符号字符以便我可以清理语料库?
编辑为了澄清,传递给函数的参数是单列数据框,其中每一行都是一个单独的文档。
答案 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
来实现。