sin*_*wav 4 r corpus text-mining lda tm
使用tm包从语料库构建文档术语矩阵很简单.我想从文档术语矩阵构建语料库.
设M是文档集中的文档数.设V是该文档集的词汇表中的术语数.然后,文档 - 术语 - 矩阵是M*V矩阵.
我还有一个长度为V的词汇量向量.词汇量向量中是由文档 - 术语 - 矩阵中的索引表示的词.
从dtm和词汇向量,我想构建一个"语料库"对象.这是因为我想要阻止我的文档集.我手动构建了我的dtm和词汇 - 即从来没有一个tm"语料库"对象代表我的数据集,所以我不能使用该功能,
tm_map(corpus, stemDocument, language="english")
Run Code Online (Sandbox Code Playgroud)
我一直在努力构建一个解决方法,在这里我可以阻止词汇,只保留独特的单词,但是在尝试保持dtm和词汇矢量之间的对应关系时会有些复杂.
理想情况下,最终结果是我的词汇矢量被阻止并且仅包含唯一条目,并且dtm索引对应于词干词汇矢量.如果你能想到其他一些方法,我也会很感激.
如果我可以简单地从我的dtm和词汇矢量构建一个"语料库",干掉语料库,然后转换回dtm和词汇矢量(我已经知道如何进行这些转换),我的麻烦就会得到解决.
如果我能进一步澄清问题,请告诉我.
以下是从包中提供我自己的最小可重现性示例(作为新用户,您可能不知道这是您的责任)的方法tm:
## 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)
Run Code Online (Sandbox Code Playgroud)