2016-08-19 70 views
0

開始與文件兩個語料庫,每個都有相同數量的文檔元素方面,兩個語料庫:如何連接,R中使用TM

library(tm) 
c1 <- Corpus(VectorSource(c("document 1 corpus 1 text", "document 2 corpus 1 text"))) 
c2 <- Corpus(VectorSource(c("document 1 corpus 2 text", "document 2 corpus 2 text"))) 

我想相同數量的單個語料庫聯合逐元素,以形成一個單一的文件,相當於該術語的文檔:

c3 <- Corpus(VectorSource(c("document 1 corpus 1 text document 1 corpus 2 text", 
          "document 2 corpus 1 text document 2 corpus 2 text")) 

搜索已經轉向了tm_combine功能,但組合來自不同語料庫的文檔轉換成一個單一的語料庫具有兩倍(或,個人的總和)文件的數量秒。

+0

@Jota這看起來像一個很好的答案 –

+0

@Jota是的!這是完美的。我不知道「內容」功能。 Upvoted評論,但作爲答案,我會接受。 – Sealander

回答

2

您可以遍歷每個語料庫並將相應的條目粘貼在一起。然後,轉換回一個語料庫:

Corpus(VectorSource(
    mapply(function(x, y) paste(content(x), content(y)), c1, c2) 
)) 
2
c4 <- 
    Corpus(VectorSource(c( 
    paste(data.frame(text=unlist(sapply(c1, `[`, "content")), stringsAsFactors=F)$text[1], 
     data.frame(text=unlist(sapply(c1, `[`, "content")), stringsAsFactors=F)$text[2]), 
    paste(data.frame(text=unlist(sapply(c2, `[`, "content")), stringsAsFactors=F)$text[1], 
     data.frame(text=unlist(sapply(c2, `[`, "content")), stringsAsFactors=F)$text[2])))) 
+0

Upvoted,但會接受@ Jota的簡潔。謝謝。 – Sealander