2017-03-25 55 views
0

我是R以及tm包中的新成员。我的工作是使用决策树来执行文本文档分类。我正在关注某人的project.在第14页有完整的代码。有两种类型的文档,我使用DirSource加载时没有任何问题。我的下一步是将这两个corpuses合并为集合tm_map方法中的错误

# Merge corpora into one collection 
docs <- c(wheat.train , crude.train , wheat.test , crude.test) ; 

然后我想做一些预处理。

​​

但我得到了这样的错误

Error in UseMethod("tm_map", x) : 
    no applicable method for 'tm_map' applied to an object of class "list" 

我明白,这家伙用的tm's以前的版本之一,目前tm_map需要作为参数语料库,语料库不是一个集合。我的问题是如何创建这样的语料库集合,以便可以对它进行预处理?

回答

1

它对我使用list而不是c而不是lapply

ex1 <- "bla bla blah " 
ex2 <- "dunno what else to say " 

wheat <- Corpus(VectorSource(ex1)) 
crude <- Corpus(VectorSource(ex2)) 

docs <- list(wheat, crude) 
docs.p <- lapply(docs, tm_map, stripWhitespace) 
+0

它的工作对我来说太:)我按照您的建议和nextly: 'dtm.mx < - lapply(docs.p,DocumentTermMatrix,控制=名单(权重= weightTf)); ' 它的工作,但我已经注意到'长度(文档)'使用'列表'等于4,但使用'C'它等于12?你能告诉我什么是差异?遵循提供的源代码,在按照您的建议使用'list'之后,我又遇到了另一个问题。 'dtm < - as.data.frame(inspect(dtm.mx))'returns'UseMethod(“inspect”,x)中的错误: 没有适用于应用于类“list”对象的'inspect'的方法' – Taldakus

+0

我猜你爱上了R,所以我非常感谢你的帮助:) – Taldakus

+0

在我的例子中'length(docs)'返回2,如预期的那样,不确定你的结果来自哪里。你需要提供一个可重复的例子。我不确定'dtm'应该是什么样子,如果你给我具体的指导,我可能会提供帮助。 'dtm < - as.data.frame(lapply(dtm.mx,inspect))'不会通过错误,但是我不知道结果是否是您要查找的内容。 – jess