如何使用tm连接R中的两个文档语料库

时间:2016-08-19 02:54:59

标签: r nlp 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功能,但它将来自不同语料库的文档合并为一个语料库,其中包含两倍(或个人总和)文档数量。

2 个答案:

答案 0 :(得分: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]))))

答案 1 :(得分:2)

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

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