トピック カテゴリでタグ付けされた約 30 万のドキュメントが Postgres データベースに格納されています (合計で約 150 のカテゴリがあります)。まだカテゴリがないドキュメントが 15 万件あります。プログラムでそれらを分類する最良の方法を見つけようとしています。
私はNLTKとその Naive Bayes Classifier を調べてきました。良い出発点のように思えます (このタスクのためのより良い分類アルゴリズムを提案できるなら、私はすべて耳にします)。
私の問題は、NaiveBayesClassifier を 150 カテゴリ/300k ドキュメントすべてで一度にトレーニングするのに十分な RAM がないことです (5 つのカテゴリでトレーニングすると 8GB が使用されます)。さらに、より多くのカテゴリでトレーニングするにつれて、分類器の精度が低下するようです (2 つのカテゴリで 90% の精度、5 で 81%、10 で 61% の精度)。
一度に 5 つのカテゴリで分類器をトレーニングし、150,000 のドキュメントすべてを分類器で実行して、一致するかどうかを確認する必要がありますか? これはうまくいくように思えますが、どのカテゴリにも実際には一致しないドキュメントが、利用可能な最良の一致であるという理由だけで分類子によって押し付けられるという多くの誤検知があることを除いて... ありますか?ドキュメントがどのカテゴリにも当てはまらない場合に備えて、分類子に「上記のいずれでもない」オプションを設定する方法はありますか?
ここに私のテストクラスがあります http://gist.github.com/451880