優れたオープンソースのテキスト分類モデルを知っている人はいますか?スタンフォード分類器、ウェカ、マレットなどについて知っていますが、それらはすべてトレーニングが必要です。
ニュース記事をスポーツ/政治/健康/ゲームなどに分類する必要があります。事前にトレーニングされたモデルはありますか?
Alchemy、OpenCalaisなどはオプションではありません。オープンソースツール(できればJava)が必要です。
優れたオープンソースのテキスト分類モデルを知っている人はいますか?スタンフォード分類器、ウェカ、マレットなどについて知っていますが、それらはすべてトレーニングが必要です。
ニュース記事をスポーツ/政治/健康/ゲームなどに分類する必要があります。事前にトレーニングされたモデルはありますか?
Alchemy、OpenCalaisなどはオプションではありません。オープンソースツール(できればJava)が必要です。
事前にトレーニングされたモデルがあると、トレーニングに使用されたコーパスが、分類しようとしているドキュメントとまったく同じドメインからのものであると想定されます。元のコーパスがないため、通常、これでは希望する結果が得られません。機械学習は静的ではありません。分類器をトレーニングする場合、新しい機能/情報が利用可能になったときにモデルを更新する必要があります。
たとえば、スポーツ/政治/健康/ゲームなどのドメインでニュース記事を分類します。
まず、どの言語ですか?私たちは英語だけについて話しているのですか?元のコーパスはどのようにラベル付けされましたか?そして、最大の未知数は、などのカテゴリです。
独自の分類器のトレーニングは本当に簡単です。テキストを分類する場合は、MALLETが最適です。10分以内に稼働することができます。MALLETを1時間以内に独自のアプリケーションに追加できます。
ニュース記事を分類したい場合は、トレーニングを開始するためのベースとして使用できるオープンソースのコーパスがたくさんあります。私はロイター-21578またはRCV-1から始めます。
必要に応じて、分類器はたくさんあります。まず、分類子で何をしたいのかを絞り込みたいと思うかもしれません。
そして、トレーニングは分類のステップの一部です。事前にトレーニングされた分類器はそれほど多くないでしょう。その上、トレーニングはほとんどの場合、分類の簡単な部分です。
そうは言っても、実際に見ることができるリソースはたくさんあります。私はこれを信用するふりをすることはできませんが、これは例の1つです。
Weka-データマイニング用の機械学習アルゴリズムのコレクションです。これは、最も人気のあるテキスト分類フレームワークの1つです。これには、ナイーブベイズやサポートベクターマシン(SVM、SMOの下にリストされている)を含むさまざまなアルゴリズムの実装が含まれています[注:その他の一般的に使用される非Java SVM実装は、SVM-Light、LibSVM、およびSVMTorchです]。関連するプロジェクトは、テキストドキュメントからキーフレーズを抽出するためのアルゴリズムであるKea(キーフレーズ抽出アルゴリズム)です。
Apache LuceneMahout-Hadoopmap -reduceフレームワークの上に一般的な機械学習アルゴリズムの高度にスケーラブルな分散実装を作成するインキュベータープロジェクト。
出典:http ://www.searchenginecaffe.com/2007/03/java-open-source-text-mining-and.html
分類の意味は非常に重要です。
分類は教師ありタスクであり、事前にラベル付けされたコーパスが必要です。すでにラベル付けされているコーパスから移動して、いくつかの方法とアプローチを使用してモデルを作成する必要があります。最後に、そのモデルを使用して、ラベル付けされていないテストコーパスを分類できます。この場合、通常はバイナリ分類器のバイナリツリーアプリケーションであるマルチクラス分類器を使用できます。このような種類のタスクに対する最先端のアプローチは、機械学習のブランチであるSVMを使用することです。最高のSVM分類器の2つは、LibSVMとSVMlightです。。これらはオープンソースで使いやすく、マルチクラス分類ツールが含まれています。最後に、良い結果を得るために何をすべきかを理解するために文献調査を行う必要があります。これらの分類子を使用するだけでは十分ではないためです。情報を含む部分(ユニグラムなど)を抽出し、ノイズの多い部分を除外するには、コーパスを操作/前処理する必要があります。一般的に、おそらく長い道のりがありますが、NLPは非常に興味深いトピックであり、取り組む価値があります。
ただし、分類の意味がクラスタリングである場合、問題はより複雑になります。クラスタリングは監視されていないタスクです。つまり、使用しているプログラムには、どの例がどのグループ/トピック/クラスに属しているかについての情報は含まれません。ハイブリッド半教師ありアプローチに関する学術研究もありますが、それらはクラスタリング問題の本来の目的とは少し異なります。コーパスを操作するときに使用する必要のある前処理は、分類問題で行う必要があることと同様の性質を持っているため、再度言及することはしません。クラスタリングを行うには、従わなければならないいくつかのアプローチがあります。まず、 LDA(潜在的ディリクレ配分)を使用できますコーパスの次元(フィーチャスペースの次元数)を削減する方法。これにより、フィーチャからの効率と情報の取得に貢献します。LDAの横または後に、階層的クラスタリングまたはK-Meansなどの他の同様の方法を使用して、ラベルのないコーパスをクラスタリングできます。GensimまたはScikit-Learnをクラスタリングのオープンソースツールとして使用できます。どちらも強力で、十分に文書化されており、使いやすいツールです。
すべての場合において、多くの学術的な読書をして、それらのタスクと問題の下にある理論を理解するようにしてください。このようにして、NLPの問題は一般にコーパスに依存し、特定の問題に対処するのは一般的に自分自身であるため、具体的に対処しているものに対して革新的で効率的なソリューションを考え出すことができます。一般的ですぐに使用できるソリューションを見つけることは非常に困難であり、そのようなオプションにも依存することはお勧めしません。
私はあなたの質問に過剰に答えるかもしれません、無関係な部分について申し訳ありません。
頑張って=)
OpenNLP用に事前にトレーニングされたモデルの長いリストがあります