3

私はRのテキストマイニングパッケージとその本当に素晴らしいツールを使用してきました。検索サポートが見つからないか、不足している機能がある可能性があります。Rのテキストマイニングパッケージを使用して、単純なVSMモデルをどのように実装できますか?

4

2 に答える 2

1
# Sample R commands in support of my previous answer
require(fortunes)
require(tm)
sentences <- NULL
for (i in 1:10) sentences <- c(sentences,fortune(i)$quote)
d <- data.frame(textCol =sentences )
ds <- DataframeSource(d)
dsc<-Corpus(ds)
dtm<- DocumentTermMatrix(dsc, control = list(weighting = weightTf, stopwords = TRUE))
dictC <- Dictionary(dtm)
# The query below is created from words in fortune(1) and fortune(2)
newQry <- data.frame(textCol = "lets stand up and be counted seems to work undocumented")
newQryC <- Corpus(DataframeSource(newQry))
dtmNewQry <- DocumentTermMatrix(newQryC, control = list(weighting=weightTf,stopwords=TRUE,dictionary=dict1))
dictQry <- Dictionary(dtmNewQry)
# Below does a naive similarity (number of features in common)
apply(dtm,1,function(x,y=dictQry){length(intersect(names(x)[x!= 0],y))})
于 2010-11-02T16:15:17.177 に答える
0

VSM = ベクトル空間モデルを仮定すると、次の方法で簡単な検索システムを実行できます。

  • コレクション/コーパスの文書用語マトリックスを作成します
  • 類似性測定の関数を作成します (Jaccard、Euclidean など)。これらの機能を利用できるパッケージがあります。RSiteSearch はそれらを見つけるのに役立ちます。
  • クエリを Document Term Matrix に変換します (これは 1 行になり、最初のステップで使用したものと同じ辞書を使用してマップされます)。
  • 最初のステップのクエリとマトリックスとの類似性を計算します。
  • 結果をランク付けし、上位 n を選択します。

R 以外の方法は、PostgreSQL のテーブルのテキスト列 (行はドキュメント) で GINI インデックスを使用することです。ts_vector クエリ メソッドを使用すると、非常に高速な検索システムを実現できます。

于 2010-11-01T17:11:16.183 に答える