目的:一部のキーワードとして複合語 (バイグラム) を含む辞書を使用して、用語とドキュメントのマトリックスを 作成したいと考えています。
Web 検索: テキスト マイニングと のtm
パッケージは初めてなR
ので、これを行う方法を理解するために Web にアクセスしました。以下は、私が見つけた関連リンクです。
背景: これらのうち、NGramTokenizer
のRWeka
パッケージでR
使用するソリューションを好みましたが、問題が発生しました。以下のサンプル コードでは、3 つのドキュメントを作成し、コーパスに配置します。Docs 1
and に2
はそれぞれ 2 つの単語が含まれ ていることに注意してください。Doc 3
は 1 つの単語のみを含みます。私の辞書のキーワードは、2 つのバイグラムと 1 つのユニグラムです。
問題:上記のリンクのNGramTokenizer
解決策では、 の unigram キーワードが正しくカウントされませんDoc 3
。
library(tm)
library(RWeka)
my.docs = c('jedi master', 'jedi grandmaster', 'jedi')
my.corpus = Corpus(VectorSource(my.docs))
my.dict = c('jedi master', 'jedi grandmaster', 'jedi')
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 2))
inspect(DocumentTermMatrix(my.corpus, control=list(tokenize=BigramTokenizer,
dictionary=my.dict)))
# <<DocumentTermMatrix (documents: 3, terms: 3)>>
# ...
# Docs jedi jedi grandmaster jedi master
# 1 1 0 1
# 2 1 1 0
# 3 0 0 0
私は、他の2人のために、ギブDoc 3
する1
ための行を期待していました。私が誤解していることはありますか?jedi
0