如何从R中的文本中删除像002ÿþÃ||||““¥”这样的疯狂字符?

时间:2016-05-19 15:48:14

标签: r text-mining text-processing

以下是我在语料库中所做的事情 -

CorpusX = tm_map(CorpusX, content_transformer(tolower))
CorpusX = tm_map(CorpusX, removeWords, c("X", stopwords("english")))
CorpusX = tm_map(CorpusX, removePunctuation)
CorpusX = tm_map(CorpusX, stripWhitespace)
CorpusX = tm_map(CorpusX, removeNumbers)
CorpusX = tm_map(CorpusX, stemDocument)

CorpusX = tm_map(CorpusX, PlainTextDocument)

在此之后,我制作了一个Document-Term-Matrix,然后是word-cloud。 如果我遵循这个流程并且不尝试删除问题中提到的字符,那么一切正常。 但是当我尝试删除这些字符时,我会收到如下错误 -

>Error in UseMethod("TermDocumentMatrix", x) :    no applicable method
> for 'TermDocumentMatrix' applied to an object of class
> "c('DocumentTermMatrix', 'simple_triplet_matrix')"

我正在寻找一种有效的方法来处理这些角色。

PS-我完全改变了对问题的描述,因为人们感到困惑(我的错)。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

@Frank似乎正在做某事,即你似乎正在使用一个用于类TermDocumentMatrix的对象而不是DocumentTermMatrix的函数。 tm包具有将文本语料库转换为两者的功能,称为TermDocumentMatrixDocumentTermMatrix

要回答你的问题R is generally not great at handling Unicode。我经常转向Python来解决这些问题,但链接似乎有一些解决方案。

答案 1 :(得分:0)

处理文本时,您是否使用删除任何非英文字符?

如果你没有,这是一个如何做的例子。在这里,我们删除了数字,Puncutation和非英文字符。

removeNumPunct <- function(x) gsub("[^[:alpha:][:space:]]*","",x)
myCorpus <- tm_map(myCorpus, content_transformer(removeNumPunct), lazy = TRUE)