openNLP NameFinderモジュールで使用されているアルゴリズムを誰かが指摘できますか?コードは複雑で、文書化がまばらで、ブラックボックスとして(デフォルトのモデルが提供されている場合)遊んでいるだけで、ほとんどヒューリスティックであるという印象を与えます。入力と出力の例を次に示します。
入力:
ジョン・スミスはイライラしています。
ジョン・スミスはイライラしています。
バラク・オバマはイライラしています。
ウゴチャベスはイライラしています。(もういや)
ジェフ・アトウッドはイライラしています。
Bing Liuは、openNLPNERモジュールに不満を感じています。
ノーム・チョムスキーは世界に不満を持っています。
ジェイデン・スミスはイライラしています。
スミスジェイデンはイライラしています。
レディー・ガガはイライラしています。
ガガさんはイライラしています。
ガガ夫人はイライラしています。
ジェイデンはイライラしています。
劉さんはイライラしています。
出力(ひし形を角かっこに変更しました):
[START:person]ジョンスミス[END]はイライラしています。
ジョン・スミスはイライラしています。
[START:person]バラクオバマ[END]はイライラしています。
ウゴチャベスはイライラしています。(もういや)
[START:person] JeffAtwood[END]はイライラしています。
Bing Liuは、openNLPNERモジュールに不満を感じています。
[START:person]ノーム・チョムスキー[END]は世界に不満を持っています。
ジェイデン[START:person]スミス[END]はイライラしています。
[START:person]スミス[END] [START:person]ジェイデン[END]はイライラしています。
レディー・ガガはイライラしています。
ガガさんはイライラしています。
ガガ夫人はイライラしています。
ジェイデンはイライラしています。
劉さんはイライラしています。
モデルは、トレーニングデータで注釈が付けられた名前の固定リストを学習し、いくつかのタイリングと組み合わせを許可しているようです。2つの注目すべき(FN)例は次のとおりです。
- Mr.やMrs.などの強い名前の指標は無視されます。
- ジェイデン(2011年に米国で最も人気のある4番目の名前)は特定されませんでしたが、次の「スミス」(「ジェイデンスミス...」)が特定されました。モデルは、文の先頭にある大文字のジェイデンが、NEであるためではなく、文の先頭が原因であると「考えている」と思います。「SmithJayden」という順序をヒントとして逆にすると(1と仮定)、openNLPは、「John Smith」などの他のフルネームとは異なり、2つの特徴的なNEとして識別し、「Smith」が姓のリストに含まれていることを示唆している可能性があります。 。
->私は戸惑い、イライラしています。誰かが私にアルゴリズムを教えてくれる(またはそれがうまくいかないことを確認する)ことができれば、私は感謝するでしょう。
psスタンフォードシステムとUIUCNERシステムはどちらも、興味深いがトピックから外れた微妙な違いがあり、パフォーマンスがはるかに優れています(この質問は長すぎます)