2017-03-25 54 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