2017-07-28 12 views
0

テキストをベクトル化して指定された単語リストのみでdtmを達成する構文は何ですか?保存された単語リストからのみtext2vectorで文書用語行列を生成する方法

指定されたフィーチャに対してのみドキュメント用語行列をベクトル化して生成する方法はありますか?また、機能がテキストに表示されない場合、変数は空のままでなければなりません。

私はモデリングを実行するdtmとまったく同じ列を持つ用語文書行列を生成する必要があります。そうでなければ、新しい文書にランダムなフォレストモデルを使用できません。 - それが良い動作しません2)を実行私は1にはお勧めしません。しかし

v = create_vocabulary(c("word1", "word2")) 
vectorizer = vocab_vectorizer(v) 
dtm_test = create_dtm(it, vectorizer) 

)は、このようなスパースデータのランダムフォレストを使用します。

+0

** quantuma **で作成された 'fcm'で直接text2vecを実行することで、** quanteda **のすべての機能選択ツールを使用できます。 ** text2vec **の出力から項目を選択する方法について質問がある場合は、質問のこの部分をより明確に表現する必要があります。一般的に良いSOの質問は最初に質問を明確にし、質問に答えるために必要な場合にのみ、後の文脈を提供します。あなたが答えが必要な部分が何であるかわからないので、ここで尋ねることの多くがそれから気をそらす。 –

+1

申し訳ありません。私はそれをsuccintにしました。私はそれが受け入れられることを願っています、私の英語はネイティブではありません。 –

+0

@KenBenoit私は非常に興味深いことに、quantedaとtext2vecオブジェクトを同じ意味で使うことができます。一方で、標準のdmパッケージにテキストマイニングパッケージを適合させる方法の簡単で明確な例は見つかりませんでした。それらは、学習セットの特徴に正確に適合する特徴を有するデータを生成することを伴う。 –

答えて

1

あなただけの機能の特定のセットからドキュメントの用語行列を作成することができますあなたが説明した機能の選択方法 - あなたはおそらくオーバーフィットです。

+0

ストップワードを削除した後はそれほど悪くはありません。私は、データセット全体で1回または2回しか出現しない言葉を削除することを夢見ています(まれな出現)。私はまた、ドキュメント全体の小さな分散のすべての機能を削除する方法を考えています。だから、rf(?)の前であっても機能の数を減らすことができます。次に、ランダムフォレストからのFeature Importanceを見て、n個の重要な機能だけを取ります。その後、これらの機能だけでRFを再実行します。 –

+0

チュートリアルhttp://text2vec.org/vectorization.htmlをご確認ください。これは、与えられたベクトル空間における別のDTMの作成に関するトピックを扱っています。まれな言葉を刈ることについての話題も扱っています。 –

+1

ありがとう、私は週末にそれを読むでしょう。私はまた、実際にRFが疎な行列のための良いアイデアではないことを読んでいます。それについてのあなたの発言に感謝します。今のところ私はRFでプレイし、より良いものに変わります。 –

2

私はモデリングを実行するdtmとまったく同じ列を持つ用語文書行列を生成する必要があります。そうでなければ、新しい文書にランダムなフォレストモデルを使用できません。 quanteda

あなたはdfm_select()を使用してトレーニングセットのものと同一のテストセットの機能を設定することができます。機能コンテキストマトリックスについては

txts <- c("a b c d", "a a b b", "b c c d e f") 

(dfm1 <- dfm(txts[1:2])) 
## Document-feature matrix of: 2 documents, 4 features (25% sparse). 
## 2 x 4 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d 
## text1 1 1 1 1 
## text2 2 2 0 0 
(dfm2 <- dfm(txts[2:3])) 
## Document-feature matrix of: 2 documents, 6 features (41.7% sparse). 
## 2 x 6 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d e f 
## text1 2 2 0 0 0 0 
## text2 0 1 2 1 1 1 

dfm_select(dfm1, dfm2, valuetype = "fixed", verbose = TRUE) 
## kept 4 features, padded 2 features 
## Document-feature matrix of: 2 documents, 6 features (50% sparse). 
## 2 x 6 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d e f 
## text1 1 1 1 1 0 0 
## text2 2 2 0 0 0 0 

をしかし、これは共起(少なくともそれらのために動作しません(何text2vec入力用ニーズ):たとえば、以下のdfm1dfm2と同一の機能を持たせますドキュメントコンテキストではなくウィンドウで計算される)は、フィーチャ間で相互依存しているため、同じ方法で単純に追加および削除することはできません。

+1

あなたの答えをありがとう。私はtext2vecとquantedaの両方を試してみましょう。私はテキストマイニングの初心者で、一般的な用語を理解し、より複雑に潜んでみるために、読んでいる明白な答えを見落とすことができます。ドリー魚です。 –

関連する問題