如何在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函数,但它将来自不同语料库的文档组合成一个语料库,该语料库的文档数量是单个语料库的两倍(或者,单个文档的总和)。

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

Corpus(VectorSource(
  mapply(function(x, y) paste(content(x), content(y)), c1, c2)
))
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]))))

最新更新