私は現在、プロジェクトに取り組んでいます。これは、別々のケースで2 つと 3 つのクラスが存在するような単純なセンチメント アナライザーです。私は、ユニークな単語の手段がかなり豊富なコーパスを使用しています(約 200.000)。特徴選択には bag-of-words法を使用し、ユニークな特徴の数を減らすために、出現頻度のしきい値による除去が行われます。最終的な機能セットには約 20,000 の機能が含まれており、実際には90 % 減少していますが、十分ではありませんテスト予測の意図された正確さのために。私はLibSVMとSVM-lightをトレーニングと予測 (線形とRBF カーネルの両方) に順番に使用し、 PythonとBashも一般的に使用しています。
これまでに観察された最高の精度は約 75%で、少なくとも 90% が必要です。これは二項分類の場合です。マルチクラス トレーニングの場合、精度は~60%に低下します。両方のケースで少なくとも 90% が必要ですが、それを増やす方法がわかりません:トレーニング パラメーターの最適化または機能選択の最適化を介して?
テキスト分類における特徴選択に関する記事を読んだことがありますが、3 つの異なる方法が使用されていることがわかりました。これらの方法は、実際には相互に明確な相関関係があります。これらの方法は次のとおりです。
- bag-of-words (BOW)の頻度アプローチ
- 情報取得(IG)
- X^2 統計(CHI)
最初の方法はすでに私が使用している方法ですが、私は非常に単純に使用しており、十分に高い精度を得るためには、より適切に使用するためのガイダンスが必要です. また、 IGとCHIの実際の実装に関する知識が不足しており、そのように導くための助けを探しています。
ありがとうございました。さらに詳しい情報が必要な場合はお知らせください。
@larsmans: Frequency Threshold : 単語が異なる例で十分頻繁に発生している場合、その単語が一意の機能として機能セットに含まれるように、例で一意の単語の発生を探しています。
@TheManWithNoName: まず、文書分類の一般的な懸念事項を説明してくれてありがとう。私はあなたが提案したすべての方法と他の方法を調べて実験しました。特徴選択には比例差(PD) 法が最適であることがわかりました。特徴はユニグラムであり、重み付けには用語存在(TP) です (用語-周波数-逆-文書-周波数(TF- IDF) をインデックス作成方法として使用するのではなく、機能の重み付けアプローチ と見なします)。おっしゃったように、前処理もこのタスクの重要な側面です。データの精緻化と形態学的解析のために特定のタイプの文字列除去を使用し、ステミング。また、英語とは異なる特徴を持つトルコ語に取り組んでいることにも注意してください。最後に、バイナリ分類で最大 88% の精度(f 測定) 、マルチクラスで最大 84%の精度に到達することができました。これらの値は、私が使用したモデルの成功の確固たる証拠です。これは私がこれまで行ってきたことです。現在、クラスタリングとリダクション モデルに取り組んでおり、LDAとLSIを試し、 moVMFとおそらく球面モデルに移行しています。(LDA + moVMF) は、ニュース コーパスのような客観的な性質を持つコーパスでうまく機能するようです。これらの問題に関する情報やガイダンスがあれば、よろしくお願いします。特に、特徴空間の次元削減方法 (LDA、LSI、moVMF など) とクラスタリング方法(k-means、階層型など)の間のインターフェイス (Python 指向、オープンソース) をセットアップするための情報が必要です。