3

Python nltk を使用してテキストマイニング目的で SVM 分類を適用し、精度を取得し、精度の異なる測定情報を呼び戻したいと考えています。これを行うために、データセットを前処理し、データセットを 2 つのテキストファイル、つまり-pos_file.txt (正のラベル) と neg_file に分割します。 .txt (ネガティブ ラベル)。そして今、データのトレーニングに 70%、テストに 30% のランダム サンプリングを使用して SVM 分類子を適用したいと考えています。scikit-learn のドキュメントをいくつか見ましたが、これをどのように適用すればよいか正確にはわかりませんか?

pos_file.txt と neg_file.txt は、どちらも単語の袋と見なすことができます。便利なリンク -

サンプル ファイル: pos_file.txt

stackoverflowerror restor default properti page string present
multiprocess invalid assert fetch process inform
folderlevel discoveri option page seen configur scope select project level

サンプル ファイル: neg_file.txt

class wizard give error enter class name alreadi exist
unabl make work linux
eclips crash
semant error highlight undeclar variabl doesnt work

さらに、ユニグラム、バイグラム、トライグラムに同じアプローチを適用することは興味深いでしょう。あなたの提案やサンプルコードを楽しみにしています。

4

1 に答える 1

8

以下は、SVM をテキスト分類に適用するための非常に大まかなガイドラインです。

  1. テキストをベクトル表現に変換します。つまり、テキストを数値化して、SVM (および他のほとんどの機械学習器) を適用できるようにします。これは sklearn.feature_extraction.CountVectorizer/TfidfVectorizer を使用して非常に簡単に行うことができ、ベクトル化中に n-gram 範囲を自由に選択でき、ストップ ワードの除去や単語ドキュメントの頻度のしきい値など、他のすべてのオプションも選択できます。
  2. SVM は機能の冗長性を適切に処理することが示されているため、通常はオプションである機能選択の実行。ただし、特徴選択は、学習空間の次元を縮小し、トレーニングを大幅に高速化するのに役立ちます。一般的な選択肢は次のとおりです: sklearn.feature_selection.chi2/SelectKBest
  3. SVC をトレーニング データに適合 (トレーニング) します。カーネルのさまざまな選択肢を自由に選択できます。C やガンマなどの学習パラメータについては、最初のプレイではデフォルトのままにしておくことができます。目標が可能な限り最高のパフォーマンスを得ることである場合は、グリッド検索 (sklearn.grid_search) を使用できます。これは、指定したパラメーターの組み合わせを徹底的に試行し、最良の結果をもたらす組み合わせを示します。グリッド検索は通常、評価データに対して実行されます
  4. 評価。評価データで学習者パラメーターを微調整した後、トレーニングおよび微調整段階で以前は見られなかったテスト データで、適合した SVM のパフォーマンスをテストできます。または、n クロス検証 (sklearn.cross_validation) を使用して SVM のパフォーマンスを推定することもできます。注釈付きテキストの量が限られている場合は、所有しているすべてのデータを利用できるため、n 交差検証をお勧めします。

次の sklearn ドキュメントは、sklearn フレームワークでテキスト分類を実行する非常に良い例であり、出発点としてお勧めします。

スパース特徴を使用したテキスト ドキュメントの分類

于 2013-10-22T00:46:31.520 に答える