概要

「拡張固有表現階層」定義

Version 9.0.0

2022年5月19日


前書き

本文書は、拡張固有表現階層の定義を記している。
拡張固有表現階層は、名前を中心とした単語の意味の人工的な分類である。より広範囲の人に使ってもらうこと、より良い物にすることを目標にしており、コメント、指摘などを広く受け入れたい。

拡張固有表現階層とは

関根の拡張固有表現階層は、米国のMUCで規定された固有表現(Grishman et. al 1996)、 および、それを基に作成されたIREXの固有表現(Sekine et. al 2000)を源流とし、 関根の150種類の拡張固有表現階層定義(Sekine et. al 2002)を経て、 より幅広い固有表現のニーズに答えるべくして作成されたものである。 目的とする応用の一部には、新聞記事など一般的な内容を対象にした質問応答システム、幅広い分野を対象とした情報抽出、機械翻訳、情報検索や要約など幅広い自然言語処理の応用が挙げられる。例えば、質問応答システムにおいて答として知りたい事柄や情報抽出において文章から抽出したい事柄の典型的なものをクラスにまとめ、階層的に表現したものが拡張固有表現階層である。ここで対象にしている質問応答システムや情報抽出システムでは、知りたいことは、基本的に名詞句の形をした 事柄の具体的な名前や数値であるという前提に基いている。つまり、単純に言うと、それは一般的な概念に対する単語や、なんらかのクラスを意味するような単語や表現ではなく、その物や考え方のそのものを指さして示せる名前である。
拡張固有表現階層は、大きく3つのクラスに分れる。 名前、時間表現、数値表現である。 (この3つのクラスは、MUC,IREXの固有表現でも同じである。) これは、人が何か具体的な事柄を知りたい時には、この3つのカテゴリに含まれる 事柄を知りたいことが多いという経験に基いている。この3つのクラスをそれぞれ頂点とした拡張固有表現階層は、質問応答システムや情報抽出システムがその対象知識として設定している新聞記事、普通の百科事典などの一般的な知識に幅広く見られる概念や単語を考慮に入れて作成された。

拡張固有表現階層の設計

固有表現クラスの設定は、基本的に一般の新聞記事を知識源とした時に、 人が質問応答システムで知りたいような主に名詞句で表現されている事柄、情報抽出システムで抽出したいような事柄の内、頻度高く表われるようなものをその意味や用法に沿ってまとめ、クラスとするという基準に基いている。 実際には以下のような手法を組み合わせて設定した。
  • MUC,IREXで使われた固有表現を、その使用経験上、問題となった部分や不足している部分を加えて、おおもとの固有表現階層を設計した。
  • 英語の新聞において、名前については、大文字で始まるもの、時間および数値表現については、数字とその周りのコンテクストを数千の単位で抽出し、それに適切と 思われる、概念クラスのラベルを付与した。その後、全体を通してみてクラスの結合、分割などの処理を行ない、最終的な拡張固有表現階層の原形となる形を作成した。
  • 既存のシソーラスやオントロジー(Wordnet homepage)を調べて、拡張固有表現階層にマッチする情報を取り出し参考にした。
  • 関連する研究(Sasaki 1998) (ISI homepage) (ACE EDT-document)で用いられている固有表現階層を参考にした。
  • 実際に新聞記事をタグ付けし、拡張固有表現の改訂を行なった。
  • 質問応答システムに対して我々が作成した3000程度の質問において、その期待されている答のタイプ を拡張固有表現によって分類し、不足しているものを補った。
  • 百科事典の見出し項目(約11万見出し)を拡張固有表現によって分類し、不足しているクラスを補った。
  • Ver.8.0.0からは森羅の基礎となる定義となり、Wikipediaに適合するよう改良されている。

どのような単語をクラスに入れるか (テスト質問文)

拡張固有表現階層を規定する際には、質問応答システムでの応用を例に取ることが便利であるので、以下ではその説明を多用することになる。また、タグ付け作業のためのマニュアルとして作成されており「○○をあるクラスの単語とする」という部分が「○○をタグ付けする」というように表現されている。ここでは、どのような単語を実際にクラスに入れるかという判断基準いついて述べる。ここで述べるテスト質問文が基本的な基準にはなるが、現実的にはそれでも判断が揺れる場合がある。そのような場合の対処のために、定義には具体例をなるべくふんだんに入れるようにしてある。

名前の場合

基本的には、「あの○○の名前を教えてください」の「○○」の部分に 固有表現階層のクラスの名前を入れた質問分を作成し、その答として満足できるような単語をその固有表現クラスの例とするという方針とする。このテストにおいて「あの○○の種類の名前を教えてください」という表現の方が「あの○○の名前を教えてください」という質問よりも、その単語を答とする質問においては自然であるという場合には、その単語はそのクラスに入れないこととした。

このような方針には2つの利点がある。 目標としている質問応答システムや情報抽出システムのためにはより最良な方法であるということ。また、データをタグする際に、より客観的で、できる限り統一した基準を与えることができるという利点がある。 具体的には以下のように、それぞれのクラスに対し後述する質問文を作成する。
人名 : 「あの人の名前を教えてください」
企業名 : 「あの企業の名前を教えてください」
海洋名 : 「あの海洋の名前を教えてください」
食べ物名 : 「あの食べ物(飲み物)の名前を教えてください」
規則名 : 「あの規則の名前を教えてください」
戦争名 : 「あの戦争の名前を教えてください」
公演名 : 「あの公演の名前を教えてください」
昆虫類名 : 「あの昆虫の名前を教えてください」

このようにした場合、例えば、昆虫類名の場合には、「くわがた」はタグ付けするが、 「寄生虫」はタグ付けしないというような基準がより明確になる。 (「くわがた」は名前を聞く質問の方が適しているが、「寄生虫」は種類を聞く「あの昆虫の種類の名前を教えてください」の質問の方が適している。) 特に、人名、組織名、地名の場合には固有名詞かどうかがタグ付けするか どうかの基準として、かなり信頼できるものであるが、例えば製品名の場合には 固有表現である必要はない。例えば、上記の食べ物名の質問に対しては、「ほうれん草」「パエリア」といった普通名詞もタグ付けする対象であることが明確に分る。もちろん、両方に判断できるものがある。例えば「日本酒」はその文脈によって名前を聞く質問の方が良い場合と、種類を聞く質問の方が良い場合がある。 このようなものに対しては、例によって判断するものとする。

詳細になるが、「食べ物」はクラスの名前として「食べ物」だけであるが、 定義を見て分るように「飲み物」も対象にしている。したがって「あの飲み物の名前を教えてください。」という質問もこのクラスに対して可能である。

時間表現の場合

時間表現の場合にも、ある表現を拡張固有表現階層のクラスとしてタグ付けするかどうかは、 その表現が単純な以下の形の質問に対する答として、満足できるものであるかどうかで判断する。
時間 : 「あれはいつでしたか」
期間 : 「あれはどのくらいの期間でしたか」

この定義によって、後述する照応による表現は大部分削除される。 つまり、「今日」「2日前」「去年」「その時」「同日」などは、それのみではいつの事か分らないでいる。ただし、この規則を厳格に当てはめると「5月22日」もいつの年の「5月22日」か 分らないということになるし、「22日」にいたっては何月の「22日」か分らないことになるが、どの日の事にでもなる可能性のある「今日」といった表現とちがって、 (31日の内の1日に)限定されているので、これはタグ付けすることとする。

数値表現の場合

数値表現の場合には、名前の場合とほぼ同様に 「あれの○○を教えてください」の「○○」の部分に 固有表現階層のクラスの名前を入れた質問分を作成し、その答として満足できるものであるような単語をその固有表現クラスの例とするという方針である。
金額 : 「あれの金額を教えてください」
順位 : 「あれの順位を教えてください」
長さ : 「あれの長さを教えてください」
温度 : 「あれの温度を教えてください」
組織数 : 「あれの組織数を教えてください」
国数 : 「あれの国数を教えてください」
製品数 : 「あれの製品数を教えてください」
このクラスは数値表現となっているが、以上のような質問の答えとして満足できるものならば 数値が表現の中に含まれなくてもよい。つまり、順位表現には「優勝」という単語も含まれる。

属性・属性値の設定

「名前」の末端ノードの階層は198あるが、そのうち182個の階層に対し属性・属性値を設定した。たとえば、人名の属性には、「職業」や「国籍」などがあり、それらの属性値は「経済学者」や「アメリカ」である。属性・属性値を設定する利点は二点ある。まず一つは、属性を設定し、その属性値に当たる表現にタグを付すことにより、「名前」の属性値を求める質問に対して、より正確な答えを導き出すことが可能になるということである。もう一つは、属性を設定することにより、各階層の特徴を明確に表すことが可能になるので、「名前」を各階層に割り当てる行為に、客観性をもたらすことが可能になるということである。
属性の設定には、以下の方法を取った。
1) 各階層の「名前」の中から、百科事典の見出し語になっているものをランダムに抜き出す。
2) その後、それらの見出し語の記述部分から共通の属性を設定する。
3) 100語程度の見出し語に対して複数の人間が実際に属性値を抽出し、属性の過不足を修正する。