13

特定のドキュメントまたは単語の流れのトピックを見つけるために、単純なベイズイアン アプローチを実装しようとしています。これを調べることができるナイーブベイジアンアプローチはありますか?

また、辞書の改善にも努めています。最初に、トピックにマップする単語がたくさんあります (ハードコードされています)。すでにマップされている単語以外の単語の出現に応じて。そして、これらの単語の出現に応じて、それらをマッピングに追加したいので、トピックにマップされる新しい単語について改善および学習します。また、単語の確率を変更します。

これを行うにはどうすればよいですか?私のアプローチは正しいですか?

実装に最適なプログラミング言語はどれですか?

4

1 に答える 1

27

Naive Bayes の既存の実装

おそらく、単純ベイズを使用したドキュメント分類をサポートする既存のパッケージの 1 つを使用する方がよいでしょう。たとえば、次のようになります。

Python - Python ベースの自然言語ツールキット (NLTK)を使用してこれを行うには、無料で入手できるNLTK ブックのドキュメント分類セクションを参照してください。

Ruby - Ruby の方が好みなら、 Classifier gemを使用できます。これは、Family Guy の引用が面白いかどうかを検出するサンプル コードです。

Perl - Perl にはAlgorithm::NaiveBayesモジュールがあり、パッケージの概要に使用例のスニペットが含まれています。

C# - C# プログラマーはnBayesを使用できます。プロジェクトのホームページには、単純なスパム/非スパム分類器のサンプル コードがあります。

Java -Java 関係者はClassifier4Jを持っています。トレーニングとスコアリングのコード スニペットはこちらでご覧いただけます

キーワードからのブートストラップ分類

特定のトピックの手がかりとして知られている一連のキーワードから始めて、それらのキーワードを使用して分類子をブートストラップしたいようです。

これはかなり賢いアイデアです。McCallum と Nigam (1999) による、Keywords, EM and Shrinkage を使用した Bootstrapping によるテキストの分類という論文を参照してください。このアプローチに従うことで、ハードコーディングされたキーワードのみを使用して得た 45% から、ブートストラップされた Naive Bayes 分類器を使用して 66% に分類精度を向上させることができました。彼らのデータについては、後者は人間の同意レベルに近く、72% の確率でドキュメント ラベルについて互いに同意していました。

于 2010-05-06T18:07:51.057 に答える