使用tm包从语料库构建文档术语矩阵非常简单。 我想从文档术语矩阵构建语料库。
设M是文档集中的文档数。 设V是该文档集的词汇表中的术语数。然后,文档 - 术语 - 矩阵是M * V矩阵。
我还有一个长度为V的词汇量向量。词汇量向量中是由文档 - 术语 - 矩阵中的索引表示的词。
从dtm和词汇矢量中,我想建立一个"语料库"宾语。这是因为我想要阻止我的文档集。我手动建立了我的dtm和词汇 - 即从来没有一个"语料库"表示我的数据集的对象,所以我不能使用该函数,
tm_map(corpus, stemDocument, language="english")
我一直试图建立一个解决方法,在这里我会阻止词汇,只保留独特的单词,但是在尝试保持dtm和词汇矢量之间的对应关系时会有些复杂。
理想情况下,最终结果是我的词汇矢量被阻止并且仅包含唯一条目,并且dtm索引对应于词干词汇矢量。如果你能想到其他一些方法,我也会很感激。
如果我能够简单地建立一个语料库,那么我的麻烦就会得到解决。从我的dtm和词汇矢量,干出语料库,然后转换回dtm和词汇矢量(我已经知道如何进行这些转换)。
如果我能进一步澄清问题,请告诉我。
答案 0 :(得分:5)
在tm
包中提供我自己的minimal reproducible example(作为新用户,您可能不知道这是您的责任)的方法:
## Minimal Reproducible Example
library(tm)
data("crude")
dtm <- DocumentTermMatrix(crude,
control = list(weighting =
function(x)
weightTfIdf(x, normalize = FALSE),
stopwords = TRUE))
## Convert tdm to a list of text
dtm2list <- apply(dtm, 1, function(x) {
paste(rep(names(x), x), collapse=" ")
})
## convert to a Corpus
myCorp <- VCorpus(VectorSource(dtm2list))
inspect(myCorp)
## Stemming
myCorp <- tm_map(myCorp, stemDocument)
inspect(myCorp)