2017-02-03 20 views
0

は、私はいくつかのチャットユーザーデータを持ち、様々なカテゴリーに分類、問題は、以下の例を参照してください、アルゴリズム生成カテゴリが多いです本質的にフレーズ)がテキスト自体から抽出されます。 私のデータに基づいて、およそ4,500のユニークなカテゴリーを持つ10,000のメッセージがあります。 このような場合に適切な予測精度が得られるアルゴリズムはありますか?NLP&MLテキスト抽出

+0

そのようなすべての例がありますか? (つまり、カテゴリは大部分が「抽出された」、またはメッセージに含まれています)。 –

+0

はい、テキスト自体から抽出されます。 –

答えて

1

さて、私は常習的にOpenNLPのDocumentCategorizerをこのようなタスクに使用していますが、StanfordNLPのコアはいくつか似たようなことをすると思います。 OpenNLPはこのために最大エントロピーを使いますが、それを行う方法はたくさんあります。

最初に、ユニークなラベルの量について考えてみましょう。基本的には、クラスごとにいくつかのサンプルしかありません。それは一般的には悪いことです。重複や不一致のためにあなたが意味するようにしようとすると、あなたのクラシファイアはそれが何であっても魅力的な結果を出すでしょう。それでは、これまで私が似たような状況で行ってきたことです:別々の概念を別々の主題分類器に分け、それぞれに最高のスコアを組み立てます。たとえば、上記で書いた内容に基づいて、1つの分類モデルで外部または内部を検出し、別の分類モデルでCRICKETとCRAYKETを比較することができます。その後、実行時に、両方の分類子にテキストを渡して、それぞれに最適なヒットを取り、単一のカテゴリを組み立てます。擬似コード:

DoccatModel outOrIn = new DoccatModel(modelThatDetectsOutsideOrInside); 
DoccatModel cricketMode = new DoccatModel(modelThatDetectsPlayingOrWatchingCricket) 
String stringToDetectClassOf = "Some dude is playing cricket outside, he sucks"; 
String outOrInCat = outOrIn.classify(stringToDetectClassOf); 
String cricketModeCat = cricketMode .classify(stringToDetectClassOf); 
String best = outOrInCat + " " + cricketModeCat ; 

私は考えています。 その他のランダムな考え: - テキストインデックスを使用して、戻ってくるデータの量を調べて、カテゴリを分割する方法を見つけ出します。 - あなたがしたい各モデル

のための数百基の例あなたはJavaでこれをやっている場合は、私はあなたにOpenNLPからいくつかのコード例を与えたい場合は私に知らせて

関連する問題