如何使用 tm 在 R 中按元素连接两个文档语料库

How to concatenate, element-wise, two document corpora in R using 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功能,但是它将来自不同语料库的文档组合成一个语料库,文档数量是文档数量的两倍(或者,个体的总和)。

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]))))

您可以遍历每个语料库并将相应的条目粘贴在一起。然后,转换回语料库:

Corpus(VectorSource(
  mapply(function(x, y) paste(content(x), content(y)), c1, c2)
))