2016-08-19 35 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