2013-03-06 6 views
6

openNLP NameFinderモジュールで使用されるアルゴリズムを指摘できますか? コードは複雑であり、まばらに文書化されていて、ブラックボックス(デフォルトのモデルが提供されている)として再生すると、ほとんどの場合ヒューリスティックな印象を受けます。 ここでは、入力と出力のためのいくつかの例は次のとおりです。openNLP(デフォルトモデル)による名前付きエンティティ認識

入力:

ジョン・スミスがイライラしています。

john smithが不満です。

バラクオバマは不満です。

ヒューゴチャベスは不満です。 (これ以上)

ジェフアトウッドはイライラしています。

Bing LiuはopenNLP NERモジュールに不満を抱いています。

ノーム・チョムスキーは世界に不満を持っています。

ジェイデン・スミスは不満です。

スミスジェイデンは不満です。

レディガガは不満です。

ガガさんはイライラしています。

Mrs. Gagaはイライラしています。

ジェイデンは不満です。

劉さんは不満です。

出力(Iブラケットを正方形にダイヤモンドを変更):

[START:人]ジョン・スミス[END]はイライラです。

john smithが不満です。

[START:人]バラクオバマ[END]が挫折しています。

ヒューゴチャベスは不満です。 (もうこれ以上)

[START:人] Jeff Atwood [END]は挫折しています。

Bing LiuはopenNLP NERモジュールに不満を抱いています。

[START:人]ノーム・チョムスキー[END]は、世界に不満を持っています。

ジェイデン[START:人]スミス[END]が挫折しています。

[START:person] Smith [END] [START:person] Jayden [END]は不満です。

レディガガは不満です。

ガガさんはイライラしています。

Mrs. Gagaはイライラしています。

ジェイデンは不満です。

劉さんは不満です。

モデルは、トレーニングデータに注釈が付けられている名前の固定リストを単に学習し、いくつかのタイリングと組み合わせを可能にするようです。 2つの注目すべき例は、

  1. です。氏名やMrs.などの強い名前のインジケータは無視されます。
  2. Jayden(2011年に米国で4番目に人気のある名前)は特定されていませんでしたが、次の「Smith」(「Jayden Smith ...」)が特定されました。私は、そのモデルが大文字のJaydenが文頭にあると思っているのは文章の始まりであり、NEであるとは思わないと思う。 "Smith Jayden"のヒント(1と仮定)を逆にして、openNLPはそれを "John Smith"のような他のフルネームとは異なり、 "Smith"が最後の名前リストにあると示唆します。

- >私は困惑していて、誰かがアルゴリズムを指すことができれば、私は感謝するでしょう。

p.s.興味深いものの、トピックではないこの微妙な違いで、StanfordとUIUCの両方のNERシステムのパフォーマンスは向上します(この問題はそのままです)

答えて

5

NameFinderMEは最大エントロピーモデルを使用しています。 Hereは私の精神的な論文です。

OpenNLPのパフォーマンスが要件を満たさず、スタンフォードまたはUIUC NERを使用できない場合は、CRFを使用してMalletを試してみることをおすすめします。 This sample codeを起動する必要があります。

+0

ありがとう!私はEMがここで貧しい仕事をしています。興味深いのは、フィーチャーセットが何であるかです。言葉?大文字?文は '。'で分割されます。だからMr.さんは役に立たない? 私は個人的にスタンフォードNERを使用しており、とても満足していますが、私はopenNLPの奇妙な結果が不思議でした。 – ScienceFriction

関連する問題