以下是我在语料库中所做的事情 -
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-我完全改变了对问题的描述,因为人们感到困惑(我的错)。 谢谢你的帮助!
答案 0 :(得分:0)
@Frank似乎正在做某事,即你似乎正在使用一个用于类TermDocumentMatrix
的对象而不是DocumentTermMatrix
的函数。 tm
包具有将文本语料库转换为两者的功能,称为TermDocumentMatrix
和DocumentTermMatrix
。
要回答你的问题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)