名前付きエンティティ認識(NER)は、エンティティ識別、エンティティチャンキング、エンティティ抽出とも呼ばれ、情報抽出のサブタスクであり、非構造化テキスト内で言及された名前付きエンティティを、人名(PER)、組織(ORG)、場所(LOC)、地政学的エンティティ(GPE)、車両(VEH)、医療コード、時間表現、数量、金額、パーセンテージなどの事前定義されたカテゴリに位置づけ、分類することを目的とする。NERシステムに関する研究の多くは、注釈のないテキストブロックを入力とし、「Jim bought 300 shares of Acme Corp. in 2006」を「[Jim]Person bought 300 shares of [Acme Corp.]Organization in [2006]Time」のようにエンティティの名前を強調した注釈付きブロックに変換するという構造で行われてきた。この例では、1つのトークンからなる人名、2つのトークンからなる会社名、および時間表現が検出され、分類されている。
「名前付きエンティティ」という用語は、単語やフレーズなどの1つまたは複数の文字列が、何らかの指示対象に対してかなり一貫して対応するエンティティにタスクを限定する。これは、ソール・クリプキが定義した固定指示子と密接に関連するが、実際にはNERは、哲学的に「固定」ではない多くの名前や指示対象を扱う。例えば、1903年にヘンリー・フォードが設立した自動車会社は「フォード」または「フォード・モーター・カンパニー」と呼ばれることがあるが、「フォード」は他の多くのエンティティも指すことができる。固定指示子には固有名詞のほか、特定の生物種や物質を指す用語も含まれるが、代名詞(共参照解決を参照)、その性質によって指示対象を選び出す記述、個体ではなく種類を指す名前は除外される。
問題定義
完全な名前付きエンティティ認識は、概念的にも実装においても、しばしば2つの明確な問題に分割される。すなわち、名前の検出と、名前が指すエンティティの種類(例:人、組織、場所)による名前の分類である。最初の段階は通常、セグメンテーション問題に簡略化される。名前は、ネストのない連続したトークンのスパンとして定義され、「Bank of America」は単一の名前と見なされ、この名前の内部に「America」という部分文字列自体が名前であるという事実は無視される。このセグメンテーション問題は、チャンキングと形式的に類似している。2番目の段階では、物事のカテゴリを整理するためのオントロジーを選択する必要がある。
時間表現や一部の数値表現(例:金額、パーセンテージ)も、NERタスクの文脈では名前付きエンティティと見なされる場合がある。これらの種類の一部の事例は固定指示子の良い例であるが(例:2001年)、無効な事例も多く存在する(例:「私は6月に休暇を取ります」)。最初のケースでは、2001年はグレゴリオ暦の2001年目を指す。2番目のケースでは、6月という月は、特定の年ではない月(過去の6月、次の6月、毎年6月)を指す場合がある。このような場合、実用的な理由から名前付きエンティティの定義が緩められていると主張することも可能である。したがって、名前付きエンティティという用語の定義は厳密ではなく、使用される文脈に応じて説明されることが多い。
文献では、名前付きエンティティタイプの特定の階層が提案されている。2002年に提案されたBBNカテゴリは、質問応答に使用され、29タイプと64サブタイプで構成される。同じく2002年に提案された関の拡張階層は、200のサブタイプで構成される。より最近では、2011年にリッターが、ソーシャルメディアテキストに対するNERの画期的な実験において、一般的なFreebaseエンティティタイプに基づく階層を使用した。
困難さ
NERでは、同じ名前が同じタイプの異なるエンティティを指す可能性がある、参照解決の曖昧性が発生することがある。例えば、「JFK」は、元米国大統領またはその息子を指すことがある。同じ名前が完全に異なるタイプを指すこともある。「JFK」はニューヨークの空港を指す場合があり、「IRA」は個人退職勘定、国際読書協会、またはアイルランド共和軍を指す場合がある。これは換喩によって引き起こされる可能性がある。例えば、「ホワイトハウス」は場所ではなく組織を指すことがある。
形式的評価
NERシステムの出力の品質を評価するために、いくつかの尺度が定義されている。通常の尺度は、適合率、再現率、F1スコアと呼ばれる。しかし、これらの値をどのように計算するかについては、いくつかの問題が残っている。これらの統計的尺度は、実際のエンティティを正確に見つけるか見逃すか、非エンティティを見つけるかといった明白なケースではうまく機能する。しかし、NERは他の多くの方法で失敗する可能性があり、その多くはおそらく「部分的に正しい」と見なされるべきであり、完全な成功または失敗として数えるべきではない。例えば、実際のエンティティを特定するが、必要なトークン数より少ない場合(例:「John Smith, M.D.」の最後のトークンを見逃す)、必要なトークン数より多い場合(例:「The University of MD」の最初の単語を含める)、隣接するエンティティの分割が異なる場合(例:「Smith, Jones Robinson」を2つのエンティティとして扱うか3つとして扱うか)、完全に間違ったタイプを割り当てる場合(例:個人名を組織と呼ぶ)、関連するが正確ではないタイプを割り当てる場合(例:「物質」対「薬物」、「学校」対「組織」)、またはユーザーが求めたものより小さいまたは大きいスコープのエンティティを正しく特定する場合(例:「James Madison」を個人名として特定するが、それが「James Madison University」の一部である場合)などがある。一部のNERシステムは、エンティティが重複またはネストしてはならないという制限を課しており、これは場合によっては恣意的またはタスク固有の選択を行う必要があることを意味する。
精度を測定する過度に単純な方法の1つは、テキスト内のすべてのトークンのうち、エンティティ参照の一部として(または正しいタイプのエンティティとして)正しくまたは誤って識別されたトークンの割合を単に数えることである。これには少なくとも2つの問題がある。第一に、実際のテキスト内のトークンの大部分はエンティティ名の一部ではないため、ベースライン精度(常に「エンティティではない」と予測する)は非常に高く、通常90%を超える。第二に、エンティティ名の完全なスパンを誤って予測した場合が適切にペナルティを受けない(人の姓が後に続く場合に名のみを見つけることは、半分の精度としてスコアリングされる可能性がある)。
CoNLLなどの学術会議では、F1スコアの変種が次のように定義されている。適合率は、予測されたエンティティ名スパンのうち、ゴールドスタンダード評価データ内のスパンと正確に一致するものの数である。例えば、[Person Hans] [Person Blick] が予測されたが [Person Hans Blick] が必要だった場合、予測された名前の適合率はゼロである。適合率は、すべての予測されたエンティティ名に対して平均化される。再現率も同様に、ゴールドスタンダード内の名前のうち、予測内のまったく同じ位置に現れるものの数である。F1スコアは、これら2つの調和平均である。上記の定義から、単一のトークンを見逃す予測、余分なトークンを含む予測、または間違ったタイプを持つ予測は、そのスパンに対して完全な失敗として数えられることになる。
アプローチと応用
従来のNERシステムは、手作業によるルールと、条件付きランダム場などの特徴ベースの統計モデルに依存していた。機械学習と深層学習の台頭により、現代のシステムはしばしばニューラルネットワークアーキテクチャを使用し、Transformer (architecture)ベースのモデルを含むものが最先端の性能の標準となっている。これらのモデルは、大規模なコーパスで事前学習され、NERタスクにファインチューニングされることが多く、OpenAI、Anthropic、Google DeepMindなどの組織によって開発された大規模言語モデルの進歩から恩恵を受けている。NERは、質問応答、検索、知識ベース構築のための情報抽出パイプラインで広く使用されており、多くの自然言語処理アプリケーションにおける主要なコンポーネントである。
関連項目
- 情報抽出
- 共参照解決
- チャンキング
- 条件付きランダム場
- Transformer (architecture)
- 大規模言語モデル