「単語の袋」アプローチを使用したトピック検出のための素朴なベイジアン

StackOverflow https://stackoverflow.com/questions/2781752

質問

私は、特定のドキュメントまたは単語のストリームのトピックを見つけるために、素朴なベイゼアのアプローチを実装しようとしています。これを探すことができるかもしれない素朴なベイジアンアプローチはありますか?

また、私は進むにつれて辞書を改善しようとしています。最初は、トピックにマッピングする単語がたくさんあります(ハードコーディング)。すでにマッピングされている単語以外の単語の発生に応じて。そして、これらの単語の発生に応じて、それらをマッピングに追加したいので、トピックにマッピングする新しい単語について改善し、学習します。また、単語の確率を変更します。

どうすればこれを行う必要がありますか?私のアプローチは正しいですか?

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

役に立ちましたか?

解決

ナイーブベイズの既存の実装

おそらく、素朴なベイズを使用したドキュメントの分類をサポートする既存のパッケージのいずれかを使用する方が良いでしょう。

Python -Pythonベースを使用してこれを行うには 自然言語ツールキット(NLTK), 、を参照してください ドキュメント分類 自由に利用可能なセクション NLTKブック.

ルビー - ルビーがあなたのものの方がもっとある場合、あなたは 分類器 宝石。検出するサンプルコードは次のとおりです ファミリーガイの引用が面白いのか不快であるか.

Perl -Perlにあります アルゴリズム:: naivebayes パッケージにサンプル使用スニペットを備えたモジュール 概要.

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

ジャワ -Javaの人々は持っています Classifier4J. 。トレーニングとスコアリングコードスニペットを見ることができます ここ.

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

キーワードのセットから始めたいと思っているようです 特定のトピックをキューすることが知られています そして、それらのキーワードを使用します 分類器をブートストラップします.

これはかなり賢いアイデアです。論文を見てください キーワード、em、縮小を使用したブートストラップによるテキスト古典 McCallum and Nigam(1999)。このアプローチに従うことで、ブートストラップされたナイーブベイズ分類器を使用して、ハードコーディングされたキーワードを単独で使用して66%に使用することで得た45%から分類精度を改善することができました。彼らのデータのために、後者は人間のレベルの合意に近いため、人々は72%の時間でドキュメントラベルについて互いに同意しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top