例として、 corpus に対して 2 つのドキュメント用語マトリックス (1 つはユニグラム用、もう 1 つはバイグラム用) を作成しますacq
。
library(tm)
data(acq)
tokenize_bigrams <- function(x) {
rownames(as.data.frame(unclass(tau::textcnt(x$content, method="string", n=2))))
}
m1 <- DocumentTermMatrix(acq)
m2 <- DocumentTermMatrix(acq, control=list(tokenize=tokenize_bigrams))
dim(m1)
# [1] 50 2103
dim(m2)
# [1] 50 5100
を使用してそれらを結合しますcbind
。これは、単純なトリプレット行列のメソッドを提供するtm
package に依存しているため機能します。slam
cbind
m <- cbind(m1, m2)
dim(m)
# [1] 50 7203
予想どおり、結果の行列m
には 50 行 ( の 50 ドキュメントの場合acq
) と 7203 列 (ユニグラムの場合は 2103 + バイグラムの場合は 5100) があります。
m
は単純なトリプレット行列であることに注意してください。
m
# A 50x7203 simple triplet matrix.
これを文書用語マトリックスとして使用する場合は、次のようにします。
attributes(m) <- attributes(m1)
それで:
m
# <<DocumentTermMatrix (documents: 50, terms: 7203)>>
# Non-/sparse entries: 10706/349444
# Sparsity : 97%
# Maximal term length: 29
# Weighting : term frequency (tf)