子集DocuementTermMatrix

时间:2015-07-28 21:33:33

标签: r tm

我创建了一个类似于这样的TermDocumentMatrix:

>inspect(tdm[1:6,1:3])   
Terms       Doc1.txt   Doc2.txt    Doc3.txt
abcd          1           0          0
abandon       0           1          1
qrd           0           0          1
abductor      1           0          0 
plo           1           1          0
man           0           1          0 

我还有一个单词列表:

>dict
abductor
abandon
man
mammoth

现在我如何对TermDocumentMatrix行进行子集化,使其看起来像

Terms       Doc1.txt   Doc2.txt    Doc3.txt
abandon       0           1          1
abductor      1           0          0 

我只能使用'dict'列表检查矩阵中的行名称,但我无法将它们分组

1 个答案:

答案 0 :(得分:2)

您可以使用单词向量进行子集化。您没有添加reproducible example,因此我只使用?TermDocumentMatrix帮助页面中的那个。

library(tm)
data("crude")
tdm <- TermDocumentMatrix(crude,
    control = list(removePunctuation = TRUE,
    stopwords = TRUE))

words<-c("world","zero")
inspect(tdm[words, 1:3])

# <<TermDocumentMatrix (terms: 2, documents: 3)>>
# Non-/sparse entries: 1/5
# Sparsity           : 83%
# Maximal term length: 5
# Weighting          : term frequency (tf)
# 
#        Docs
# Terms   127 144 191
#   world   0   1   0
#   zero    0   0   0

如果您不知道矩阵中出现哪个单词,可以使用

words <- c("world","zero", "xyyzy")
inspect(tdm[words[words %in% Terms(tdm)], 1:3])