説明

日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラム

【課題】日本語固有表現抽出を効率よくおこなうこと。
【解決手段】日本語固有表現抽出装置は、取得部202によって対象となる日本語文書を取得し、取得された日本語文書を形態素解析して、当該日本語文書から形態素を形態素抽出部203によって抽出し、抽出された形態素を、SR法を用いて、当該形態素ごとに日本語固有表現か否かを日本語固有表現判断部204によって判断し、日本語固有表現であると判断された形態素のみを抽出部205によって抽出するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、日本語文書の中から日本語固有表現を抽出する日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【0002】
日本語固有表現抽出は、言語データから情報抽出をおこなう際の中心的な技術として知られている。日本語固有表現とは、日本語において特定の対象(物、地名、人名、組織名、一連の単語群からなる名称など)を表現する用語であり、日本語固有表現抽出は、日本語文書の中から上記の日本語固有表現を抽出する技術である。日本語固有表現抽出は、日本語固有表現抽出によって抽出された日本語固有表現を利用して、日本語固有表現の抽出元となる日本語文書の意味解析をおこなうアプリケーションの開発など、さらに高度な技術の開発に利用することが可能である。
【0003】
日本語文書は、たとえば「訪朝」における「朝」のように、1形態素よりも小さい粒度の日本語固有表現(「朝鮮」という国名)のように、単語境界が自明ではない膠着表現を含む。このため、従来、日本語文書を文字単位に切り分けて、文字単位で日本語固有表現を推定することによって、高い精度での日本語固有表現抽出を実現するようにした技術があった(たとえば、下記非特許文献1、2を参照。)。
【0004】
【非特許文献1】浅原正幸、松本裕治、日本語固有表現抽出における冗長的な形態素解析の利用、情報処理学会研究報告、第SIGNL-153巻、pp.49-56,2003.
【非特許文献2】中野桂吾、平井有三、日本語固有表現抽出における文節情報の利用、情報処理学会論文誌、Vol.45、No.3、pp.934-941,2004.
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来の技術では、日本語文書を文字単位に切り分けて文字単位で日本語固有表現を推定することにより、高い精度での日本語固有表現抽出を実現することができる一方で、日本語固有表現抽出の効率性が低下しているという問題がある。
【0006】
この発明は、上述した従来技術による問題点を解消するため、高い精度での日本語固有表現抽出を実現するとともに、日本語固有表現抽出を効率よくおこなうことができる日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる日本語固有表現抽出装置は、日本語固有表現を抽出する日本語固有表現抽出装置であって、対象となる日本語文書を取得する取得手段と、前記取得手段によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出手段と、前記形態素抽出手段によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断手段と、前記日本語固有表現判断手段によって日本語固有表現であると判断された形態素のみを抽出する抽出手段と、を備えたことを特徴とする。
【0008】
また、請求項2の発明にかかる日本語固有表現抽出装置は、請求項1に記載の発明において、前記日本語固有表現判断手段は、前記取得手段によって取得された日本語文書を第1のコンテクストに格納し、当該第1のコンテクストに格納された日本語文書を、前記形態素抽出手段によって抽出された形態素ごとに先頭から順次抽出してスタックに格納し、その後、前記スタックに格納された形態素が日本語固有表現であるか否かを判断するとともに、当該形態素を第2のコンテクストに格納することを特徴とする。
【0009】
また、請求項3の発明にかかる日本語固有表現抽出装置は、請求項2に記載の発明において、前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の最後尾要素とが一致する場合であって、前記日本語固有表現を構成する形態素が前記第2のコンテクストに存在する場合は、前記第2のコンテクストに格納された形態素を抽出して前記スタックに格納したのち、前記スタックに格納された複数の形態素からなる形態素列について判断することを特徴とする。
【0010】
この請求項1、2または3の発明によれば、1文字ごとに日本語固有表現か否かを判断する従来法と比較して、迅速に判断することができる。
【0011】
また、請求項4の発明にかかる日本語固有表現抽出装置は、請求項2または3に記載の発明において、前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の最後尾要素とが一致する場合であって、前記日本語固有表現の先頭要素と前記スタックに格納された形態素の形態素境界とが一致しない場合は、前記スタックに格納されている形態素の先頭1文字を抽出し、前記第2のコンテクストに格納したのち、前記スタックに残された文字または文字列について判断することを特徴とする。
【0012】
この請求項4の発明によれば、所定の記憶領域に記憶された日本語固有表現の先頭要素とスタックに格納された形態素の先頭要素とが一致しない場合は、スタックに格納された形態素の先頭の文字を1文字ずつ切り離し、切り離した後の文字または文字列が日本語固有表現か否かを判断することができる。
【0013】
また、請求項5の発明にかかる日本語固有表現抽出装置は、請求項2または3に記載の発明において、前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素が前記スタックに格納された形態素に含まれている場合であって、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の形態素境界とが一致しない場合は、前記スタックに格納されている形態素の最後尾1文字を抽出し、前記第1のコンテクストに格納したのち、前記スタックに残された文字または文字列について判断することを特徴とする。
【0014】
この請求項5の発明によれば、所定の記憶領域に記憶された日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致しない場合は、スタックに格納された形態素の最後尾の文字を1文字ずつ切り離し、切り離した後の文字または文字列が日本語固有表現か否かを判断することができる。
【0015】
また、請求項6の発明にかかる日本語固有表現抽出方法は、コンピュータを用いて日本語固有表現を抽出する日本語固有表現抽出方法であって、対象となる日本語文書を取得する取得工程と、前記取得工程によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出工程と、前記形態素抽出工程によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断工程と、前記日本語固有表現判断工程によって日本語固有表現であると判断された形態素のみを抽出する抽出工程と、を前記コンピュータに実行させることを特徴とする。
【0016】
この請求項6の発明によれば、1文字ごとに日本語固有表現か否かを判断する従来法と比較して、迅速に判断することができる。
【0017】
また、請求項7の発明にかかる日本語固有表現抽出プログラムは、日本語固有表現の抽出をコンピュータに実行させる日本語固有表現抽出プログラムであって、対象となる日本語文書を取得する取得工程と、前記取得工程によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出工程と、前記形態素抽出工程によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断工程と、前記日本語固有表現判断工程によって日本語固有表現であると判断された形態素のみを抽出する抽出工程と、を前記コンピュータに実行させることを特徴とする。
【0018】
この請求項7の発明によれば、1文字ごとに日本語固有表現か否かを判断する従来法と比較して、迅速に判断することができる。
【発明の効果】
【0019】
本発明にかかる日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラムによれば、高い精度での日本語固有表現抽出を実現するとともに、日本語固有表現抽出を効率よくおこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかる日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。
【0021】
(日本語固有表現抽出装置のハードウェア構成)
まず、この発明の実施の形態にかかる日本語固有表現抽出装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる日本語固有表現抽出装置のハードウェア構成の一例を示す説明図である。図1において、101は装置全体を制御するCPUを、102は基本入出力プログラムを記憶したROMを、103はCPU101のワークエリアとして使用されるRAMを、それぞれ示している。
【0022】
また、104はCPU101の制御にしたがってHD(ハードディスク)105に対するデータのリード/ライトを制御するHDD(ハードディスクドライブ)を、105はHDD104の制御にしたがって書き込まれたデータを記憶するHDを、それぞれ示している。
【0023】
また、106はCPU101の制御にしたがってFD(フレキシブルディスク)107に対するデータのリード/ライトを制御するFDD(フレキシブルディスクドライブ)を、107はFDD106の制御にしたがって書き込まれたデータを記憶する着脱自在のFDを、それぞれ示している。
【0024】
また、108はCPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御するCD−RWドライブを、109はCD−RWドライブ108の制御にしたがって書き込まれたデータを記憶する着脱自在のCD−RWを、それぞれ示している。
【0025】
また、110はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、111は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、112は各種指示の選択や実行、処理対象の選択、マウスポインタの移動などをおこなうマウスを、それぞれ示している。
【0026】
また、113は通信ケーブル114を介してLANやWANなどのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能するネットワークI/Fを、100は上記各部を接続するためのバスを、それぞれ示している。
【0027】
(日本語固有表現抽出装置の機能的構成)
つぎに、図2は、この発明の実施の形態にかかる日本語固有表現抽出装置の機能的構成を示す説明図である。この発明による日本語固有表現抽出装置は、対象となる日本語文書から日本語固有表現を抽出する。日本語固有表現とは、日本語において特定の対象(物、地名、人名など)を表現する用語である。日本語固有表現の詳細については後述する(図3を参照)。
【0028】
図2において、日本語固有表現抽出装置は、データベース(DB)201と、取得部202と、形態素抽出部203と、日本語固有表現判断部204と、抽出部205と、記憶部206と、出力部207と、を含む構成となっている。
【0029】
DB201は、特定の対象となりうる複数の日本語固有表現を記憶する。DB201には、複数の日本語固有表現を記憶する所定の記憶領域が確保されている。またDB201は、形態素解析をおこなう際に用いる複数の形態素によって構成される辞書、文法ルールもあわせて記憶する。形態素は、最小の言語単位であり、たとえば名詞であれば意味を持つ最小の言語単位である。文法ルールは、少なくとも日本語の文法ルールを含む。DB201は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107、CD−RW109などによってその機能を実現することができる。
【0030】
取得部202は、対象となる日本語文書を取得する。取得部202は、たとえば利用者がキーボード111などを操作することによって入力した日本語の文章を、当該文章が入力されるごとに日本語文書として取得する。また、所定の領域(たとえば図1に示したROM102、RAM103、HD105、FD107、CD−RW109などのメモリ)に記憶されている作成済みの日本語文書の中から、たとえば利用者がマウス112などを操作することによって指定した日本語文書を取得するようにしてもよい。また、ネットワークI/F113を介してサーバなどの外部装置に記憶された日本語文書を取得するようにしてもよい。取得部202は、具体的には、たとえば図1に示したキーボード111、マウス112、ネットワークI/F113などによってその機能を実現することができる。
【0031】
形態素抽出部203は、取得部202によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する。形態素抽出部203は、DB201に記憶された形態素解析用の辞書、文法ルールを用いて、日本語文書から形態素を抽出する。形態素抽出部203によっておこなわれる形態素解析は、既知の技術を用いておこなうことができるので、その詳細については説明を省略する。形態素抽出部203は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107、CD−RW109などのメモリに記憶されたプログラムをCPU101が実行することによってその機能を実現することができる。
【0032】
日本語固有表現判断部204は、形態素抽出部203によって抽出された形態素を、Shift−Reduce(以下、「SR」という)法を用いて、当該形態素ごとに日本語固有表現か否かを判断する。日本語固有表現判断部204は、DB201における所定の記憶領域に記憶された日本語表現に基づいて、上記形態素が日本語固有表現か否かを判断する。日本語固有表現判断部204は、日本語固有表現か否かを判断する際に、具体的には、(1)「Reduce」アクション、(2)「Shift」アクション、(3)「Cut−Left」アクション、(4)「Cut−Right」アクションの4つの手順を実行する。
【0033】
(1)「Reduce」アクションの手順
日本語固有表現判断部204は、具体的には、取得部202によって取得された日本語文書を第1のコンテクスト(後述する図5におけるRC(RightContext))に格納し、当該第1のコンテクストに格納された日本語文書を、形態素抽出部203によって抽出された形態素ごとに先頭から順次抽出(ポップ)してスタック(図5におけるStack)に格納(プッシュ)する。その後、スタックに格納(プッシュ)された形態素が日本語固有表現であるか否かを判断する。そして、スタックに格納(プッシュ)された形態素が日本語固有表現である場合には、つぎに当該形態素を第2のコンテクスト(図5におけるLC(LeftContext))に格納(プッシュ)する。これが、上記SR法における「Reduce」アクションの手順である。
【0034】
(2)「Shift」アクションの手順
その際、日本語固有表現判断部204は、DB201における所定の記憶領域に記憶された日本語固有表現とスタックに格納された形態素とを比較することによって、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致するか否かを判断する。
【0035】
そして、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致する場合には、つぎに日本語固有表現を構成する形態素が第2のコンテクストに存在するか否かを判断する。なお、日本語固有表現を構成する形態素が第2のコンテクストに存在するか否かの判断をおこない、それに引き続き、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致するか否かの判断をおこなうようにしてもよい。
【0036】
つづいて、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致する場合であって、日本語固有表現を構成する形態素が第2のコンテクストに存在する場合に、上記SR法における「Shift」アクションを実行する。具体的には、第2のコンテクスト(の最後尾)に格納された形態素を抽出(ポップ)してスタックに格納(プッシュ)する。
【0037】
このとき、日本語固有表現判断部204は、第2のコンテクストから抽出(ポップ)した形態素を、スタックの先頭に格納(プッシュ)する。これにより、スタックには複数の形態素からなる形態素列が構成される。その後、スタックに格納(プッシュ)された複数の形態素からなる形態素列について、日本語固有表現であるか否かを判断する。さらに、日本語固有表現を構成する形態素が第2のコンテクストに存在するかを判断し、存在する場合は、日本語固有表現を構成する形態素が第2のコンテクストに存在しなくなるまで、同様の手順を繰り返す。
【0038】
具体的には、たとえば「中国大陸」などのように、複数の形態素(「中国」と「大陸」)によって構成される形態素列における形態素「大陸」が、日本語固有表現判断部204による判断対象であって、上記の所定の記憶領域が「大陸」を含む日本語固有表現として「大陸」および「中国大陸」を記憶している場合について説明する。
【0039】
この場合、日本語固有表現判断部204は、スタックに格納(プッシュ)された形態素(「大陸」)と日本語固有表現とを比較した結果、「大陸」および「中国大陸」という日本語固有表現に対して最後尾要素が一致すると判断する。このとき、第2のコンテクストには、日本語固有表現(「中国大陸」)を構成する形態素(「中国」)が存在しているため、日本語固有表現判断部204は、第2のコンテクストに格納された形態素を抽出(ポップ)してスタックの先頭に格納(プッシュ)する。これにより、スタックには、「中国」および「大陸」という2つの形態素からなる「中国大陸」という形態素列が構成される。
【0040】
このようにして、上記SR法における「Shift」アクションを実行する。日本語固有表現判断部204は、「Shift」アクションによってスタックに格納された「中国大陸」という形態素列が日本語固有表現であるか否かを判断することになる。
【0041】
(3)「Cut−Left」アクションの手順
また、日本語固有表現判断部204は、DB201の所定の記憶領域に記憶された日本語固有表現とスタックに格納された形態素とを比較することによって、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致するか否かを判断する。そして両者が一致する場合には、つぎに日本語固有表現の先頭要素とスタックに格納された形態素の形態素境界とが一致するか否かを判断する。なお、日本語固有表現の先頭要素とスタックに格納された形態素の形態素境界とが一致するか否かの判断をおこない、それに引き続き、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致するか否かの判断をおこなうようにしてもよい。
【0042】
そして、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致する場合であって、日本語固有表現の先頭要素とスタックに格納された形態素の形態素境界とが一致しない場合は、スタックに格納されている形態素の先頭1文字(横書きにおける左端の1文字)を抽出(ポップ)し、第2のコンテクストに格納(プッシュ)する。
【0043】
このとき、日本語固有表現判断部204は、スタックから抽出した形態素の先頭1文字を、第2のコンテクストの最後尾に格納(プッシュ)する。これにより、スタックに格納されている形態素から先頭1文字が切り離され、スタックには文字または文字列が残される。このようにして、この発明の実施の形態にかかる日本語固有表現抽出における「Cut−Left」アクションを実行する。
【0044】
その後、日本語固有表現判断部204は、スタックに残された文字または文字列について、日本語固有表現であるか否かを判断する。さらに、日本語固有表現の最後尾要素とスタックに格納された形態素の最後尾要素とが一致するか否かを判断し、一致する場合は、文字または文字列がスタックに存在しなくなるまで、同様の手順を繰り返す。
【0045】
(4)「Cut−Right」アクションの手順
また、たとえば日本語固有表現判断部204は、DB201における所定の記憶領域に記憶された日本語固有表現とスタックに格納された形態素とを比較することによって、日本語固有表現の最後尾要素がスタックに格納された形態素に含まれているか否かを判断する。そして日本語固有表現の最後尾要素がスタックに格納された形態素に含まれている場合には、つぎに日本語固有表現の最後尾要素とスタックに格納された形態素の形態素境界とが一致するか否かを判断する。なお、日本語固有表現の最後尾要素とスタックに格納された形態素の形態素境界とが一致するか否かの判断をおこない、それに引き続き、日本語固有表現の最後尾要素がスタックに格納された形態素に含まれているか否かの判断をおこなうようにしてもよい。
【0046】
そして、日本語固有表現の最後尾要素がスタックに格納された形態素に含まれている場合であって、日本語固有表現の最後尾要素とスタックに格納された形態素の形態素境界とが一致しない場合は、スタックに格納されている形態素の最後尾1文字(横書きにおける右端の1文字)を抽出(ポップ)し、第1のコンテクストに格納(プッシュ)する。
【0047】
このとき、日本語固有表現判断部204は、スタックから抽出した形態素の最後尾1文字を、第1のコンテクストの先頭に格納(プッシュ)する。これにより、スタックに格納されている形態素から最後尾1文字が切り離され、スタックには文字または文字列が残される。このようにして、この発明の実施の形態にかかる日本語固有表現抽出における「Cut−Right」アクションを実行する。
【0048】
その後、日本語固有表現判断部204は、スタックに残された文字または文字列について、日本語固有表現であるか否かを判断する。さらに、日本語固有表現の最後尾要素がスタックに格納された形態素に含まれているか否かを判断し、含まれている場合は、文字または文字列がスタックに存在しなくなるまで、同様の手順を繰り返す。
【0049】
「Cut−Left」アクションおよび「Cut−Right」アクションは従来のSR法にはない新たな所定手順であり、本願発明の実施の形態における特徴の一つである。また、一つの形態素ついて、「Cut−Left」アクションおよび「Cut−Right」アクションの両方をおこなって、文字または文字列を形成する場合もある。日本語固有表現判断部204は、具体的には、たとえば図1に示したROM102やRAM103、HD105、FD107、CD−RW109などのメモリに記憶されたプログラムをCPU101が実行することによってその機能を実現することができる。
【0050】
抽出部205は、日本語固有表現判断部204によって日本語固有表現であると判断された形態素のみを抽出する。抽出部205は、たとえば、日本語文書中の当該形態素の位置に関する情報および日本語固有表現の種類に関する情報を含む日本語固有表現タグを関連付けして記憶することによって抽出可能な状態にするようにすればよい。抽出部205は、具体的には、たとえば図1に示したCPU101が、ROM102やRAM103に記憶されたプログラムを実行することによってその機能を実現することができる。
【0051】
また、抽出部205は、日本語固有表現判断部204によって、「Reduce」アクションまたは「Shift」アクションによって複数の形態素が組み合わされた形態素列のうち、日本語固有表現であると判断された形態素列を抽出してもよい。また、抽出部205は、「Cut−Left」アクションおよび「Cut−Right」アクションによって形態素の一部が切り離された後の文字または文字列のうち、日本語固有表現であると判断された文字または文字列を抽出してもよい。
【0052】
記憶部206は、抽出部205によって抽出された形態素、形態素列、文字または文字列を記憶する。記憶部206は、抽出された形態素、形態素列、文字または文字列に、日本語固有表現タグを関連付けて記憶する。日本語固有表現タグは、チャンクタグおよび日本語固有表現の種類に関する情報を含んでいる。チャンクタグは、日本語固有表現の開始位置や終了位置をあらわす情報である。
【0053】
記憶部206に記憶された日本語文書は、上記日本語固有表現タグが関連付けられることにより、抽出された日本語固有表現(形態素、形態素列、文字または文字列)の種類およびその日本語固有表現(形態素、形態素列、文字または文字列)が、日本語文書の中のどの位置に存在するかを特定することができる。記憶部206は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107、CD−RW109などによってその機能を実現することができる。
【0054】
また、出力部207は、記憶部206によって記憶された情報(形態素(形態素列、文字または文字列)および日本語固有表現タグ)を単独であるいは日本語文書とともに出力する。出力部207は、記憶部206によって記憶された情報を、たとえば図1に示したディスプレイ110に表示したり、ネットワークI/F113および通信ケーブル114を介して接続されたサーバなどの外部装置に出力したり、ネットワークI/F113および通信ケーブル114を介して接続された図示しないプリンタを用いてプリントアウトしたりする。このため、出力部207は、具体的には、たとえば図1に示したディスプレイ110またはネットワークI/F113によってその機能を実現することができる。
【0055】
図3は、日本語固有表現の種類および例の一例を示す説明図である。日本語固有表現の種類は、たとえばIREX(Information Retrieval and Extraction Exercise)で定義されたものを用いることができる。図3において、日本語固有表現の種類は、「ARTIFACT(固有物名)」、「DATE(日付表現)」、「LOCATION(地名)」、「MONEY(金額表現)」、「ORGANIZATION(組織名)」、「PERCENT(割合表現)」、「PERSON(人名)」および「TIME(時間表現)」の8種類に分類されている。
【0056】
「ARTIFACT(固有物名)」とは、人間の活動によって作られた具体物、抽象物を含む物の固有の名前である。「ARTIFACT(固有物名)」は、たとえば「ノーベル文学賞」などのように、各々が意味を持つ複数の単語(「ノーベル」、「文学」、「賞」)を組み合わせることによって固有の名前を表現するものであってもよいし、たとえば「皇居」などのように一つの単語によって特定の固有物を表現するものであってもよい。
【0057】
「DATE(日付表現)」とは、単位が24時間以上の、特定の時間を表現する用語である。「DATE(日付表現)」は、たとえば「五月五日」などのように、数字および日付を示す文字(または文字列)などを組み合わせることによって特定の日付をあらわす用語である。「DATE(日付表現)」は、たとえば「2007年4月21日」などのように西暦でもよく、「平成19年4月21日」などのように年号などを含んでいてもよい。
【0058】
「LOCATION(地名)」とは、固有の場所を示す名称を表現する用語である。「LOCATION(地名)」は、たとえば国名(「日本」、「韓国」など)、都道府県名(「東京(都)」、「埼玉(県)」など)、区市町村名(「世田谷区」、「川口市」など)、番地(「1丁目1番地」、「1234番地」など)などを表現する用語である。「LOCATION(地名)」は、「訪朝」、「渡米」、「来日」など一つの単語(形態素)の一部として含まれるものであってもよい。また、「LOCATION(地名)」は、河川名(「利根川」、「四万十川」など)や、山脈名(「奥羽山脈」、「日高山脈」など)などのように、地形に関する表現を含む。
【0059】
「MONEY(金額表現)」とは、たとえば「2000万ドル」などのように、任意の数値(および数値を示す漢字など(「億」、「万」、「千」))と通貨の単位(「円」、「ドル」、「ユーロ」)、または通貨を示す記号(「¥」、「$」)とを組み合わせることによってあらわされる金額を示す用語である。「MONEY(金額表現)」は、たとえば「10,000円」、「¥500,000」、「$100,000」などのように、数値の部分をあらわす数値の形態が統一されていてもよいし、「1萬円」などのように、数値の部分をあらわす数値部分にローマ数字と漢数字とが混在していてもよく、「壱萬円」などのように、数値部分も含め漢字のみで構成しているものであってもよい。
【0060】
「ORGANIZATION(組織名)」は、たとえば「社会党」などのようにそれ自体が特定の組織を表現する用語であってもよいし、「教育委員会」などのように、「教育」、「委員」、「会」という表現がそれぞれ個別の意味を持つ表現であっても、それらが組み合わされることによって、特定の組織を示す表現をなす用語であってもよい。
【0061】
「PERCENT(割合表現)」とは、たとえば「二〇%」や「三割」などのように、数値と割合を示す記号(「%」)または文字(列)(「割」、「パーセント」)とを組み合わせることにより特定の割合を表現する用語である。割合表現における数値表現は、上記の金額表現と同様に、数値の部分をあらわす数値部分にローマ数字と漢数字とが混在していてもよい。
【0062】
「PERSON(人名)」とは、たとえば「村山富市」などのように特定の人物名を表現する用語である。「PERSON(人名)」は、たとえば、各国の首相、プロスポーツ選手、歴史に登場する代表的な人物など、一般的に広く知られている人物名を表現する用語である。
【0063】
「TIME(時間表現)」とは、単位が24時間以下の、特定の時間を表現する用語である。たとえば「午前五時」などのように特定の時間(時刻)を表現する用語である。時間表現の形式は、たとえば、「午後十時」であってもよいし「22時」であってもよい。時間表現も、上記の金額表現と同様に、数値の部分をあらわす数値部分にローマ数字と漢数字とが混在していてもよい。
【0064】
図4−1および図4−2は、通常の日本語固有表現の抽出の解析例を示す説明図である。図4−1においては、一例として、たとえば『小泉首相は九日午前零時に訪朝し、・・・』という入力文の中から日本語固有表現を抽出する場合について説明する。当該入力文において、「小泉」は人名であり、「九日」は日付表現であり、「朝」は場所表現(朝鮮の略語)の日本語固有表現である。
【0065】
図4−1に示す日本語固有表現抽出法では、入力文における各日本語固有表現に対して、日本語固有表現の種類をあらわす日本語固有表現タグを関連付ける。日本語固有表現タグは、日本語固有表現の種類に加えて、該当する日本語固有表現の開始および終了位置をあらわすチャンクタグを含んでいてもよい。日本語固有表現タグは、上記の8種類の日本語固有表現のいずれかの種類をあらわす。
【0066】
図4−1に示した日本語固有表現抽出法においては、たとえば、上記日本語文書における日本語固有表現「小泉」に対しては、「小」が人名の開始文字であるため、「小」という文字に対して「B(BIGIN)−PERSON(人名)」という記号を記録し、日本語固有表現の一部である「泉」に対しては、「I(IN)−PERSON(人名)」という記号を記録する。これにより、「小泉」という日本語固有表現をPERSON(人名)として認識(推定)できたことになる。また、この日本語固有表現抽出法においては、非日本語固有表現は、「O(OTHER)」として認識(推定)する。
【0067】
日本語固有表現の開始位置は、入力文の先頭の文字を「0」とし、以降順に「1」、「2」、「3」、・・・と付番した場合に、日本語固有表現の最初の文字が何番目に該当するかによってあらわす。各日本語固有表現の終了位置は、入力文の先頭の文字を「0」とし、以降順に「1」、「2」、「3」、・・・と付番した場合に、日本語固有表現の最後の文字が何番目に該当するかによってあらわす。上記の入力文においては、「0−1」という開始終了位置として認識(推定)する。また、日本語固有表現タグの作り方には、上記の方法の他に、4種類の方法が提案されている。
【0068】
図4−2においては、『小泉首相は九日午前零時に訪朝し』という文中で、小泉:PERSON(人名)、九日:DATE(日付)、午前零時:TIME(時間)、および朝:LOCATION(地名)という4つの日本語固有表現に対して、IOB1、IOB2、IOE1、IOE2、SEそれぞれの表現法の違いをあらわしている。公知の技術であるため、ここではIOB1、IOB2、IOE1、IOE2、SEそれぞれの表現法についての説明を省略する。
【0069】
日本語固有表現に対する表現法の違いについての詳細は、たとえば以下の文献(1)、(2)を参照した。
(1)Erik F. Tjong Kim Sang and Jorn Veenstra. Representing text chunks. In Proceedings of the European Chapter of the Association for Computational Linguistics, pp. 173.179, 1999.
【0070】
(2)Kiyotaka Uchimoto, Qing Ma, Masaki Murata, Hiromi Ozaku, and Hitoshi Isahara. Named Entity Extractin Based on A Maximum Entropy Model and Transformation Rules (in Japanese). In Journal of Natural Language Processing, Vol. 7, pp. 63.90, 2000.
【0071】
図4−2においては、たとえば、「B−DATE」のような表記が日本語固有表現タグとなる。以下、本実施の形態においては、入力単語列(日本語文書における形態素、形態素列、文字または文字列)に対し日本語固有表現タグで符号化し、任意の学習手法を適用後に最適符号列に復号化する日本語固有表現抽出手法を、この発明の手法と区別するために、総称して復号化手法と呼ぶ。
【0072】
上記の復号化手法においては、固有表現の開始終了位置でその種類を同時に表す固有表現タグを推定しなければならないことが問題点の一つとして挙げられる。この問題点について、以下の例文を用いて説明する。例文において、『/』は、形態素境界を示す。
【0073】
例文(1−1)一太郎/2/0/0/7/と/記載
例文(1−2)賞味/期限/2/0/0/7/と/記載
【0074】
例文(1−1)における「2007」は固有物名である「一太郎2007」の一部であり、例文(1−2)の「2007」は日付表現として抽出すべき日本語固有表現である。前後2形態素の情報を素性として利用し、文末から順に解析して、「7」の位置において日本語固有表現タグを推定する場合の問題点について説明する。例文(1−1)、(1−2)の2つの例文で利用できる素性は完全に同一であるため、固有物名か日付表現かを正しく判別することは困難である。
【0075】
この問題に対して、中野らは文節境界を事前に推定し、その情報を用いることで「一太
郎」や「期限」などの推定に重要な情報を利用する手法を提案しているが、これは「7」の位置で固有表現の境界とその種類を同時推定しなければならないという復号化手法の本質的な問題を含んでいる。
【0076】
日本語固有表現の抽出に際しては、分割された形態素ごとに日本語固有表現タグを推定することが効率的であり望ましいが、日本語などの膠着表現においては、単語境界が自明ではない。このため、日本語固有表現の抽出に際しては、事前に前処理として形態素解析をおこない、入力文を形態素単位に分割する。これにより、各形態素の境界を明確化することができる。なお、公知の技術であるため、ここでは態素解析についての説明を省略する。
【0077】
一方で、上記の入力文における形態素「訪朝」における「朝」のように、1形態素よりも小さい粒度の日本語固有表現が存在する場合がある。このため、従来の日本語固有表現抽出法では、日本語固有表現タグ列を文字単位で推定(日本語固有表現の種類を文字単位で推定)するなどして、形態素境界に非依存な手法を採用し高精度を達成するようにしている。しかしながら、日本語固有表現の種類を文字単位で推定することにより、日本語固有表現抽出の効率性は低下している。
【0078】
上記のような日本語固有表現抽出方法のほかに、既知の句構造構文解析技術の一つである「Shift−Reduce(以下、「SR」という)法」という方法を用いて日本語固有表現抽出をおこなうことが可能である。Shift−Reduce法は、文頭から順に句を認識可能な解析手法である
【0079】
SR法は、Stackと呼ばれる変数を用いて、「Shift」および「Reduce」というアクションを順次適用していくことで解析をおこなう方法である。「Shift」アクションは、一つの形態素を、入力文の開始側から順にStackにプッシュするアクションであり、「Reduce」アクションは、Stack内を空にしてから、一つの形態素を、入力文の開始側から順にStackにプッシュするアクションである(図5を参照)。
【0080】
SR法では、「Reduce」アクションの適用に際し、Stack内に過不足なく格納された形態素が日本語固有表現であれば、名詞句に似た特殊な句としてみなすことができる。これによって、Reduceした日本語固有表現に対して、「Reduce−日本語固有表現の種類」のように、当該日本語固有表現の種類を付与することができ、なんの制限なく日本語固有表現の抽出にSR法を適用することが可能である。
【0081】
SR法については、たとえば、以下に示す参考文献(1)、(2)などに記載されているため、ここではその説明を省略する。
参考文献(1)長尾 真 編、岩波講座ソフトウェア科学15「自然言語処理」、p155−156
参考文献(2)長尾真、中川祐志、松本祐治、橋田浩一:岩波講座、言語の科学8「言語の数理」、p108−109
【0082】
図5は、この発明の実施の形態にかかる日本語固有表現抽出用SRアクションを示す説明図である。図5においては、この発明の実施の形態にかかる日本語固有表現抽出に際して適用するアクションの種類ごとに、その動作および各アクションを適用する条件を示す。
【0083】
この発明の実施の形態にかかる日本語固有表現抽出に際して適用するアクションは、「Reduce」、「Shift」、「Cut−Left」、「Cut−Right」の4種類である。すなわち、この発明においては、通常のSR法においておこなわれるSRアクション「Reduce」アクションおよび「Shift」アクションに加えて、「Cut−Left」アクションと「Cut−Right」アクションとを適用する。
【0084】
「Reduce」アクションは、Stack先頭および最後尾文字位置と日本語固有表現タグ(label)とを記録し、各形態素を順にLCの最後尾にプッシュし、その後、RC先頭形態素をポップしてStackにプッシュするアクションである。この実施の形態において、日本語固有表現タグは、図3に示したように、上記の8種類の日本語固有表現のいずれかをあらわす。
【0085】
日本語固有表現の位置は、図6に示すよう、当該日本語固有表現の開始位置および終了位置によってあらわす。各日本語固有表現の開始位置は、入力文の先頭の文字を「0」とし、以降順に「1」、「2」、「3」、・・・と付番した場合に、日本語固有表現の最初の文字が何番目に該当するかによってあらわす。各日本語固有表現の終了位置は、入力文の先頭の文字を「0」とし、以降順に「1」、「2」、「3」、・・・と付番した場合に、日本語固有表現の最後の文字が何番目に該当するかによってあらわす。
【0086】
「Reduce」アクションは、一つの日本語固有表現を構成する全ての形態素列を、Stack内に過不足なく格納したことを条件として適用する。非日本語固有表現の場合または日本語固有表現の最後尾要素がStack内にない場合は、日本語固有表現タグはOthers(その他)となる。
【0087】
「Shift」アクションは、LCの最後尾要素から1形態素をポップし、Stackの先頭にプッシュするアクションである。「Shift」アクションは、日本語固有表現の最後尾要素とStackの最後尾要素が一致し、かつ、日本語固有表現を構成する形態素がLCに存在することを条件として適用する。
【0088】
「Cut−Left」アクションは、Stack内の形態素の先頭の1文字をポップし、LCの末尾へプッシュするアクションである。「Cut−Left」アクションは、日本語固有表現の最後尾要素がStackの最後尾要素と一致し、かつ、先頭要素が形態素境界と一致しないことを条件として適用する。
【0089】
「Cut−Right」アクションは、Stack内の形態素の最後尾の1文字をポップし、RCの先頭へプッシュするアクションである。「Cut−Right」アクションは、日本語固有表現の最後尾要素がStack内に含まれており、かつ、形態素境界と一致しないことを条件として適用する。
【0090】
図6は、この発明の実施の形態にかかる日本語固有表現の解析過程の一例を示す説明図である。図6において、左端の「Step」欄には、解析過程におけるStep番号が示されている。また、「Action」欄には、日本語固有表現の解析に際して適用されるSRアクションが示されている。上記SRアクションは、図5に示した「Reduce」アクション、「Shift」アクション、「Cut」アクション(「Cut−Left」アクションまたは「Cut−Right」アクション)のうちのいずれかのアクションである。
【0091】
また、LCは、解析済みの入力文を示し、Stackは、解析中の入力文を示し、RCは、未解析の入力文を示す。「LC」欄、「Stack」欄および「RC」欄のデータは、Step番号の変化すなわち解析過程の進行に応じて変化する。日本語固有表現の解析に際しては、前処理として形態素解析を実行することで、入力文を形態素単位に分割する。
【0092】
まずStep1において、入力文における先頭の形態素をStackに格納する。図6においては、Stack内が、入力文における先頭の形態素「小泉」で過不足なく満たされている状態となる。このとき、LCには何の形態素も格納されておらず、先頭の形態素に続く形態素はすべてRCに格納された状態となる。日本語固有表現の解析は、この初期状態から開始する。
【0093】
そしてStep1においては、Stack内の形態素が一つの日本語固有表現「小泉」であるので、Stack内の日本語固有表現「小泉」に対して、「Reduce−PERSON(人名)」アクションを適用する。「Reduce−PERSON」アクションを適用することにより、当該アクションが適用された「小泉」をLCの最後尾にプッシュする。これにより、Stack内が空になる。
【0094】
「小泉」などのように、日本語固有表現となる形態素をLCの最後尾へプッシュする際には、対象となる日本語固有表現に対して日本語固有表現タグを関連付ける。この実施の形態においては、「小泉」という日本語固有表現に対して、「PERSON(人名)」という種類を割り当てる。
【0095】
上述したように、開始終了文字位置は、入力文の先頭に対する、LCへの格納対象となる形態素のはじめの1文字および最後の1文字の位置であり、具体的にはLCへの格納対象となる形態素のはじめの1文字および最後の1文字がそれぞれ入力文の先頭から何文字目に該当するかをあらわす。このことから、上記の「小泉」であれば、「0−1」が開始終了文字位置となる。なお、この場合、LCへの格納対象となる形態素のはじめの1文字の位置は「0」である。これにより、入力文における0から1文字目が、人名(PERSON)の日本語固有表現であることが認識される。
【0096】
そして、RCにおける先頭形態素(「首相」)をポップするとともに、上記のようにLCの最後尾へ該当する形態素(「小泉」)をプッシュすることによって空になったStackに、ポップした形態素(「首相」)をプッシュし、図6のStep2に示す状態とする。
【0097】
つぎにStep2においては、Stack内の形態素が非日本語固有表現「首相」であるので、Stack内の非日本語固有表現「首相」に対して、「Reduce−OTHERS(その他)」アクションを適用する。「Reduce−OTHERS」アクションを適用することにより、当該アクションが適用された形態素「首相」が、LCの最後尾にプッシュされる。これにより、Stack内が空になる。Step2における「Reduce−OTHERS」アクションの適用に際しては、文字位置などの情報は保存しない。
【0098】
そして、RCにおける先頭形態素(「が」)をポップするとともに、上記のようにLCの最後尾へ該当する形態素(「首相」)をプッシュすることによって空になったStackに、ポップした形態素(「が」)をプッシュし、図6のStep3に示す状態とする。
【0099】
Step3においては、Stack内の形態素が非日本語固有表現「が」であるので、Stack内の非日本語固有表現「首相」に対して、「Reduce−OTHERS(その他)」アクションを適用する。「Reduce−OTHERS」アクションを適用することにより、当該アクションが適用された「が」をLCの最後尾にプッシュする。これにより、Stack内が空になる。Step2と同様に、Step3における「Reduce−OTHERS」アクションの適用に際しては、文字位置などの情報は保存しない。
【0100】
そして、RCにおける先頭形態素(「九」)をポップするとともに、上記のようにLCの最後尾へ該当する形態素(「が」)をプッシュすることによって空になったStackに、ポップした形態素(「九」)をプッシュし、図6のStep4に示す状態とする。
【0101】
Step4においては、Stack内の非日本語固有表現「九」に対して、「Reduce−OTHERS(その他)」アクションを適用する。ここで、Stack内の形態素「九」は日本語固有表現「九日」の一部であるが、「九」自体は非日本語固有表現である。このため、Step4においては、Stack内の非日本語固有表現「九」に対して、「Reduce−OTHERS(その他)」アクションを適用し、「Reduce−OTHERS」アクションが適用された「九」をLCの最後尾にプッシュして、Stackを空にする。
【0102】
そして、RCにおける先頭形態素(「日」)をポップするとともに、上記のようにLCの最後尾へ該当する形態素(「九」)をプッシュすることによって空になったStackに、ポップした形態素(「日」)をプッシュし、図6のStep5に示す状態とする。
【0103】
Step5においては、「Shift」アクションを適用し、LCの最後尾の一つの形態素を、Stackの先頭にプッシュし、図6のStep6に示す状態とする。Step5にの動作により、LCの最後尾形態素(「九」)がポップされてStackの先頭にプッシュされ、「九日」という日本語固有表現が、Stack内に過不足なく格納された状態となる。
【0104】
なお、この発明の実施の形態にかかる日本語固有表現抽出の手法に際しては、Step5の段階において「Shift」アクションを適用する。この発明の実施の形態にかかる日本語固有表現抽出の手法は、Step4の段階において「Shift」アクションを適用して、「日」をStack内にプッシュする従来のSR法とは、この点で異なる。
【0105】
この発明の実施の形態にかかる方法では、従来のSR法における「Shift」アクションのように、複数の構成要素からなる句を認識するためにRCから要素を追加読み込みする用途では使用せず、日本語固有表現の最後尾要素がStackに格納されてはじめて「Shift」アクションを適用し、LCから構成形態素を一つ読み戻すという方法によって、日本語固有表現の抽出を実行している。
【0106】
Step6においては、Stack内の形態素が一つの日本語固有表現(「九日」)であるので、Stack内の日本語固有表現(「九日」)に対して、「Reduce−DATE(日付)」アクションを適用する。「Reduce−DATE」アクションを適用することにより、当該アクションが適用された日本語固有表現(「九日」)をLCの最後尾にプッシュする。これにより、Stack内が空になる。
【0107】
Step6においては、日本語固有表現(「九日」)のLCの最後尾へのプッシュに際して、対象となる形態素(日本語固有表現(「九日」))のlabelおよび当該形態素(日本語固有表現(「九日」))の開始終了文字位置に関する情報をあわせて格納(記録)する。この実施の形態においては、「DATE(日付)」というlabelを格納(記録)するとともに、開始終了文字位置である「5−6」を格納(記録)する。
【0108】
Step6の動作は、主辞(名詞句なら最後尾形態素)が重要な手掛かりとなる、日本語の入力文に対する日本語固有表現抽出に特有の動作である。主辞を認識してから日本語固有表現全体を認識することで日本語固有表現を精度よく抽出することができる。
【0109】
そして、RCにおける先頭形態素(「に」)をポップして、上記のようにLCの最後尾へ該当する形態素(日本語固有表現(「九日」))をプッシュすることによって空になったStackに、ポップした形態素(「に」)をプッシュし、図6のStep7に示す状態とする。
【0110】
Step7においては、Stack内の非日本語固有表現(「に」)に対して、「Reduce−OTHERS(その他)」アクションを適用する。「Reduce−OTHERS(その他)」アクションを適用することにより、Stack内の非日本語固有表現(「に」)をLCの最後尾にプッシュして、Stackを空にする。
【0111】
そして、RCにおける先頭形態素(「訪朝」)をポップして、上記のようにLCの最後尾へ該当する形態素(「に」)をプッシュすることによって空になったStackに、ポップした形態素をプッシュし、図6のStep8に示す状態とする。
【0112】
ここで、「訪朝」は、形態素の意味としては、「訪問」と「(北)朝鮮」という2つの意味を含んでいる。「(北)朝鮮」は、国名であるため日本語固有表現であるが、「訪朝」に含まれる場合は、形態素解析による分割によって得られる一つの形態素よりも小さな日本語固有表現となる。すなわち、単純に「Reduce」アクションを適用しても、「朝」だけを日本語固有表現として抽出することはできない。
【0113】
Step8においては、「Cut−Left」アクションを適用することにより、Stack内の最左文字(「訪」)を一つだけ取り出し、LCの最後尾に格納し、図6のStep9に示す状態とすることができる。これにより、「訪朝」の「朝」だけをStackに残し、Stack内が一つの日本語固有表現で過不足なく満たされた状態とすることができる。この発明の実施の形態にかかる日本語固有表現抽出においては、この「Cut」アクションという特殊なアクションを適用することにより、Stack内の形態素を文字単位に解析することができる。
【0114】
Step8においては、Stack内に格納されている一つの形態素における日本語固有表現の位置に応じて、「Cut−Left」アクションまたは「Cut−Right」アクションを適用する。「Cut−Left」アクションはStack内における右側に日本語固有表現が存在する場合、「Cut−Right」アクションStack内における左側に日本語固有表現が存在する場合、にそれぞれ適用する。
【0115】
具体的には、たとえば日本語固有表現「中国」と非日本語固有表現「人」とを組み合わせて構成される「中国人」という一つの形態素がStack内に格納されている場合は、「Cut−Right」アクションを適用する。この場合、「Cut−Right」アクションを適用することで「人」のみをRCにプッシュして、Stack内が一つの日本語固有表現で過不足なく満たされた状態とすることができる。
【0116】
このように、「Cut」アクションを適用することにより、一つの形態素の中に日本語固有表現と非日本語固有表現とが混在する場合にも、入力文のほとんどの部分を形態素単位に解析し、必要な部分のみを文字単位に解析することが可能となる。この「Cut」アクションは、従来のSR法にはなく、この発明の実施の形態にかかる日本語固有表現抽出において特徴的な拡張アクションである。この拡張アクションにより、一つの形態素の中に日本語固有表現と非日本語固有表現とが混在するという日本語に特有の表現に対しても、入力文の構成を形態素単位で解析することができる。
【0117】
Step9においては、Stack内に格納された一つの日本語固有表現(「朝」)に対して、「Reduce−LOCATION(場所)」アクションを適用する。「Reduce−LOCATION」アクションを適用することにより、当該アクションが適用された日本語固有表現(「朝」)をLCの最後尾にプッシュする。これにより、Stack内が空になる。
【0118】
日本語固有表現(「朝」)のLCの最後尾へのプッシュに際しては、対象となる日本語固有表現(「朝」)の種類(label)および対象となる形態素の開始終了文字位置に関する情報(日本語固有表現タグ)をあわせて格納(記録)する。この実施の形態においては、「LOCATION(場所)」というlabelを格納(記録)するとともに、開始終了文字位置である「9−9」を格納(記録)する。そして、RCにおける先頭形態素(「し」)をポップして、ポップした形態素(「し」)を空になったStackにプッシュして、図6のStep10に示す状態とする。
【0119】
Step10においては、Stack内の形態素(「し」:非日本語固有表現)に対して、「Reduce−OTHERS(その他)」アクションを適用する。「Reduce−OTHERS」アクションを適用することにより、当該アクションが適用された「し」をLCの最後尾にプッシュして、Stackを空にする。
【0120】
なお、形態素「し」に続く入力文がある場合には、上記Step1〜Step9と同様にして、RCにおける先頭形態素をポップして、ポップした形態素を空になったStackにプッシュする。これにより、入力文「小泉首相が九日に訪朝し、」に続く入力文の解析が開始される。Step11においては、入力文すべてがLCに格納され、StackおよびRCが空の状態になったことをもって解析終了とする。
【0121】
図7は、日本語固有表現抽出アルゴリズムを示す説明図である。日本語固有表現抽出の対象となる入力文が未知の入力文である場合、当該未知の入力文を構成する各形態素に対して、上記の3種類のアクションのうちどのアクションを適用するかは、任意の機械学習アルゴリズムを用いて適用規則(条件)を学習することができる。
【0122】
適用規則(条件)は、たとえば、正解日本語固有表現情報が対応付けられた訓練用の入力文(訓練データ)を、この発明の実施の形態にかかる手法にしたがって解析し、その過程で得られる正しいアクションとそのアクション適用時の周辺文脈(LC、Stack、RCの状態)を手掛かりとして学習することができる。訓練用の入力文(訓練データ)には、正解日本語固有表現情報が関連付けられている。
【0123】
図7において、m1,m2,・・・,mnは、入力文に対して形態素解析をおこなうことにより変換された形態素列である。日本語固有表現抽出アルゴリズムは、上述のように、LC(LContext)を空にし、入力文のはじめの形態素(「m1」)をStack内に格納し、残りの形態素(「m2,m3,・・・,mn」)をRC(RContext)に格納した状態から開始する。
【0124】
get_featuresは、周辺文脈から素性を抽出する関数をあらわし、その素性ベクトルはxであらわす(素性の詳細は後述する)。素性ベクトルxとは、ある解析単位(形態素)を中心とする前後2つの解析単位の文脈を考え、その解析単位とそれに付属する情報(品詞情報、文字種など)をベクトルにしたものである。
【0125】
訓練時$modelは、訓練デ−タに付与された正解日本語固有表現情報を用いて、図6に示した適用条件にしたがって、正しいSRアクションyを返す。この時の素性ベクトルxと正しいSRアクションyとのペア(x、y)が一つの訓練事例となり、当該訓練事例を用いて任意の学習アルゴリズムを実行することにより解析モデルを学習し、学習した解析モデル$modelを構築する。
【0126】
テスト時は、学習した解析モデル$modelを使用して、周辺文脈素性ベクトルxから適切なアクションyを推定する。その後apply_actionにより、3種類の変数をyに応じて適切に変化させ解析を進める。
【0127】
図8は、基本素性の一例を示す説明図である。上記の学習においては、従来研究で標準的に使用されている周辺文脈(解析位置から前後n形態素)に含まれる表層文字列、品詞細分類情報(上位三階層まで)を基本素性(素性)として用いた。素性は、形態素の属性および属性値をあらわす。この発明の実施の形態にかかる手法を用いた日本語固有表現抽出における周辺文脈とは、LCの最後尾からn形態素、Stack内の全ての形態素、およびRCの先頭要素からn形態素である。
【0128】
Stack内の情報は、適切なアクションを推定するためにさらに特殊な情報を使用する。Stackには複数の形態素列が格納され得るため、その状態を表現するために基本素性で位置をあらわす部分にSE(Start−End)法と同じ表記を用いた。Stack内が5形態素以上になる場合は、素性ベクトルが過大となるため、Stack内は、先頭および末尾の2形態素のみを基本素性として使用する。その上でさらに、Stack内の特別な素性を使用する(図9を参照)。
【0129】
図9は、Stack内の素性の一例を示す説明図である。図9においては、「特別審査委員会」という形態素が、Stack内に格納されている場合を例示する。図9に示した例においては、「Cut」アクションの推定のため、1または2文字の接頭・接尾文字列を素性として使用した。名詞句以外の日本語固有表現のためにStack内の最右内容語も素性として区別して使用した。
【0130】
学習に際しては、形態素境界と異なる境界をもつ日本語固有表現のために境界情報を使用する(一致していればBE、先頭が不一致ならIE、末尾が不一致ならBI)。さらに、特殊な日本語固有表現については、文字列全体を考慮する必要があるため、Stack内の文字列を一つにした全体文字列素性を使用した。
【0131】
上記の学習に際して、テストデータ解析時は、未知の文脈に対しアクションを推定するため、訓練時では起り得ないアクションが推定される場合がある。一例として、文頭から順に日本語固有表現を抽出していくと、後方の推定結果がそれ以前の推定結果と矛盾する場合が挙げられる。以下に、「中国大陸を横断する」という例文を用いて具体的に説明する。
【0132】
例文「中国大陸を横断する」に対して形態素解析をおこなうことにより、当該例文は、「中国/大陸/を/横断/する」という5つの形態素に分割される。このような例文に対して、図5において説明したような日本語固有表現抽出をおこなった場合、形態素「中国」がStack内に格納された時点で、「Reduce−LOCATION」アクションを適用する。これにより、形態素「中国」という日本語固有表現の種類は、LOCATION(地名)であるとされる。
【0133】
つづいて、形態素「大陸」がStack内に格納された時点で、「Shift」アクションを推定し、Stack内に2つの形態素「中国大陸」が格納された時点で、再び「Reduce−LOCATION」アクションを適用する。これにより、「中国大陸」という日本語固有表現の種類は、LOCATION(地名)であるとされる。
【0134】
このように、入力文の文頭から順に日本語固有表現を抽出する方法では、形態素「中国」のみがLOCATION(地名)であるとする以前の推定結果と、「中国大陸」がLOCATION(地名)であるとする最新の推定結果とに矛盾を来たす場合がある。直感的には、より有用な文脈情報を利用できる後方の結果を優先するほうが自然である。
【0135】
日本語固有表現抽出に際しては、このような矛盾の発生に対処する必要がある。以下に、以前の推定結果を保守する場合と、後方の推定結果を優先し決定的ではあるが自身の推定結果を訂正していく方法と、の違いを比較した実験結果を示す。
【0136】
図10は、SR法による抽出精度を示す説明図である。図10において、「前向きShift」は、上記のShift動作を従来のSR法同様におこなった場合の精度を示す。すなわち、日本語固有表現の開始位置から順にStack最後尾にプッシュする方法で学習および解析した場合の精度を示す。
【0137】
「前方優先」は、各形態素の前方部分で推定した結果が当該形態素の後方部分から推定される推定結果と矛盾した場合に、各形態素の前方部分で推定した結果を優先し、各形態素の前方部分で推定した結果の訂正をおこなわない方法で、日本語固有表現抽出をおこなった場合の精度をあらわす。
【0138】
「後方優先」は、上記の「前方優先」とは逆に、各形態素の後方部分で推定した結果が当該形態素の前方部分から推定される推定結果と矛盾した場合に、各形態素の後方部分で推定した結果を優先して前方の推定結果を訂正した場合の精度をあらわす。
【0139】
「文節素性」は、中野らが提案した文節素性と同等な素性を追加して学習し後方優先で解析した場合の精度を示す。より詳細に、「文節素性」は、中野らが提案した文節素性におけるmodel Bと同等であって、文節境界推定にはCaboCha[11]を使用した。なお、中野らが提案した文節素性については、「中野桂吾、平井有三 日本語固有表現抽出における文節情報の利用 情報処理学会論文誌、Vol.45,No.3,pp.934.941、2004.」などに記載されており、ここでは説明を省略する。
【0140】
図10において、SR法元来の「Shift」アクションと解析方向が同じ「前向きShift」は、主辞を認識してから逆向きにShiftする他の3手法に比べ精度が低い。この結果は、主辞要素の認識が日本語固有表現の推定に重要であるという過去の研究結果の知見と一致する。また、中野らの提案した文節素性は、提案手法においても「MONEY(金額表現)」を除く全ての日本語固有表現においてF値を向上させている。このことから、中野らの提案した文節素性は、日本語固有表現か非日本語固有表現かの推定に貢献していると考えられる。
【0141】
図11は、関連する従来研究との比較を示す説明図である。図11においては、本手法の有効性を検証するため、この発明の実施の形態にかかる日本語固有表現抽出と、近年高い精度を報告したいくつかの関連研究と、の比較結果および各手法の特徴概要を示す。なお、図11に示した各値のうち、「浅原」は上述した非特許文献1、「福岡」は「Semi-Markov Conditional Random Fieldsを用いた固有表現抽出に関する研究.奈良先端科学技術大学院大学情報科学研究科修士論文.2003.」、「中野ら」は上述した非特許文献2、にそれぞれ基づいている。図11において「浅原」、「福岡」、「中野ら」と記載された各文献については、ここでは説明を省略する。
【0142】
図11において、文節素性の使用有無で精度の変化はあるが、この発明の実施の形態にかかる日本語固有表現抽出手法は、SVMs(Support Vector Machines)を使った文字単位復号化手法である浅原ら中野らの手法と同等の精度を達成している。従来研究においては、主辞を認識するためには文末から解析する必要があるのに対し、提案手法は文頭から解析しても主辞を認識して解析することができる。これによって、より人間の直感に近い、直感的で自然な順序で解析をおこなった場合にも、解析精度が劣化しないというSR法の特徴を生かしていることがわかる。
【0143】
図12は、解析計算コストの比較結果を示す説明図である。中野らや浅原らの手法は、形態素境界と日本語固有表現境界の不一致に、文字単位解析で対応している。この場合解析時も文字数がそのまま分類事例数(解析コスト)となる。これに対して、提案手法では適用したSRアクション数が分類事例数となる。図12に交差検定の一つのテストセットを解析するのに必要となった事例数と分類するラベル数の違いをまとめた。
【0144】
図12において、提案手法の事例数は、文字単位復号化手法の約3分の2に縮小しており、入力文すべてを文字単位で解析しない部分がそのまま効率化に寄与している。
【0145】
図12において、文字単位復号化手法の推定ラベル数は17で提案SR法は12となり約3分の2に縮小している。復号化手法は固有表現1種類につき開始及び終了位置を明示的に区別して推定する必要があるため推定すべきラベル数全体は多くなる。SR法は固有表現の開始終了位置はStackが暗黙的に保持しているため明示的な推定が不要であり、推定ラベル数自身を縮小でき効率化に寄与している。
【0146】
上記の実験結果によれば、SR法に基づく日本語固有表現抽出法を提案し、IREX日本語固有表現抽出タスクを用いてその有効性を検証することができた。また、SR法の適用によって、日本語固有表現の境界推定後その種類を推定する自然な解析手法を実現することができた。
【0147】
また、形態素境界と日本語固有表現境界が一致しない問題も、簡単な拡張アクション(「Cut」アクション)を追加することによって対応することができ、これによって任意の長さの日本語固有表現を解析することができる。また、従来の復号化手法と比較して、推定の対象となるラベル数が少なくて済み、より簡潔な推定をおこなうことができ、部分的な文字単位解析でも同程度の精度が実現できることから、入力文の解析効率の向上を図ることができる。
【0148】
上述したように、この発明にかかる実施の形態によれば、形態素単位で日本語固有表現か否かを判断することにより、高い精度での日本語固有表現抽出を実現するとともに、従来法のように1文字ごとに日本語固有表現か否かを判断する場合と比較して、日本語固有表現抽出を効率よくおこなうことができる。
【0149】
また、この発明にかかる実施の形態によれば、「Cut−Left」アクションや「Cut−Right」アクションを適用することによって、形態素境界に左右されることなく、日本語固有表現を抽出することができる。
【0150】
以上説明したように、本実施の形態によれば、高い精度での日本語固有表現抽出を実現するとともに、日本語固有表現抽出を効率よくおこなうことができる。
【0151】
なお、本実施の形態で説明した日本語固有表現抽出方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0152】
以上のように、本発明にかかる日本語固有表現抽出装置、日本語固有表現抽出方法、およびその方法をコンピュータに実行させるプログラムは、言語解析に有用であり、特に、日本語などのように単語境界が自明ではない膠着表現を含む文書からの固有表現の抽出に適している。
【図面の簡単な説明】
【0153】
【図1】この発明の実施の形態にかかる日本語固有表現抽出装置のハードウェア構成の一例を示す説明図である。
【図2】この発明の実施の形態にかかる日本語固有表現抽出装置の機能的構成を示す説明図である。
【図3】日本語固有表現の種類および例の一例を示す説明図である。
【図4−1】通常の日本語固有表現の抽出の解析例(その1)を示す説明図である。
【図4−2】通常の日本語固有表現の抽出の解析例(その2)を示す説明図である。
【図5】この発明の実施の形態にかかる日本語固有表現抽出用SRアクションを示す説明図である。
【図6】この発明の実施の形態にかかる日本語固有表現の解析過程の一例を示す説明図である。
【図7】日本語固有表現抽出アルゴリズムを示す説明図である。
【図8】基本素性の一例を示す説明図である。
【図9】Stack内の素性の一例を示す説明図である。
【図10】SR法による抽出精度を示す説明図である。
【図11】関連する従来研究との比較を示す説明図である。
【図12】解析計算コストの比較結果を示す説明図である。
【符号の説明】
【0154】
201 データベース(DB)
202 取得部
203 形態素抽出部
204 日本語固有表現判断部
205 抽出部
206 記憶部
207 出力部

【特許請求の範囲】
【請求項1】
日本語固有表現を抽出する日本語固有表現抽出装置であって、
対象となる日本語文書を取得する取得手段と、
前記取得手段によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出手段と、
前記形態素抽出手段によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断手段と、
前記日本語固有表現判断手段によって日本語固有表現であると判断された形態素のみを抽出する抽出手段と、
を備えたことを特徴とする日本語固有表現抽出装置。
【請求項2】
前記日本語固有表現判断手段は、前記取得手段によって取得された日本語文書を第1のコンテクストに格納し、当該第1のコンテクストに格納された日本語文書を、前記形態素抽出手段によって抽出された形態素ごとに先頭から順次抽出してスタックに格納し、その後、前記スタックに格納された形態素が日本語固有表現であるか否かを判断するとともに、当該形態素を第2のコンテクストに格納することを特徴とする請求項1に記載の日本語固有表現抽出装置。
【請求項3】
前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の最後尾要素とが一致する場合であって、前記日本語固有表現を構成する形態素が前記第2のコンテクストに存在する場合は、前記第2のコンテクストに格納された形態素を抽出して前記スタックに格納したのち、前記スタックに格納された複数の形態素からなる形態素列について判断することを特徴とする請求項2に記載の日本語固有表現抽出装置。
【請求項4】
前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の最後尾要素とが一致する場合であって、前記日本語固有表現の先頭要素と前記スタックに格納された形態素の形態素境界とが一致しない場合は、前記スタックに格納されている形態素の先頭1文字を抽出し、前記第2のコンテクストに格納したのち、前記スタックに残された文字または文字列について判断することを特徴とする請求項2または3に記載の日本語固有表現抽出装置。
【請求項5】
前記日本語固有表現判断手段は、所定の記憶領域に記憶された日本語固有表現と前記スタックに格納された形態素とを比較し、前記日本語固有表現の最後尾要素が前記スタックに格納された形態素に含まれている場合であって、前記日本語固有表現の最後尾要素と前記スタックに格納された形態素の形態素境界とが一致しない場合は、前記スタックに格納されている形態素の最後尾1文字を抽出し、前記第1のコンテクストに格納したのち、前記スタックに残された文字または文字列について判断することを特徴とする請求項2または3に記載の日本語固有表現抽出装置。
【請求項6】
コンピュータを用いて日本語固有表現を抽出する日本語固有表現抽出方法であって、
対象となる日本語文書を取得する取得工程と、
前記取得工程によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出工程と、
前記形態素抽出工程によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断工程と、
前記日本語固有表現判断工程によって日本語固有表現であると判断された形態素のみを抽出する抽出工程と、
を前記コンピュータに実行させることを特徴とする日本語固有表現抽出方法。
【請求項7】
日本語固有表現の抽出をコンピュータに実行させる日本語固有表現抽出プログラムであって、
対象となる日本語文書を取得する取得工程と、
前記取得工程によって取得された日本語文書を形態素解析して、当該日本語文書から形態素を抽出する形態素抽出工程と、
前記形態素抽出工程によって抽出された形態素を、Shift−Reduce法を用いて、当該形態素ごとに日本語固有表現か否かを判断する日本語固有表現判断工程と、
前記日本語固有表現判断工程によって日本語固有表現であると判断された形態素のみを抽出する抽出工程と、
を前記コンピュータに実行させることを特徴とする日本語固有表現抽出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−276418(P2008−276418A)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願番号】特願2007−117677(P2007−117677)
【出願日】平成19年4月26日(2007.4.26)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】