(57)【要約】【課題】効率的かつ正確なパターンマッチによる文書解析を実行する装置および方法を実現する。【解決手段】パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。【選択図】図２
2008077512.tif 000002
【特許請求の範囲】
【請求項１】
文書解析処理を実行する文書解析装置であり、
入力文書の構文解析処理を実行する構文解析部と、
構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納した構文パターン集記憶部と、
前記構文解析部の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析部とを有し、
前記構文パターン集記憶部は、
パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集を記憶し、
前記構文パターンマッチ解析部は、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする文書解析装置。
【請求項２】
前記構文パターンマッチ解析部は、
前記構文解析部の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項３】
前記構文パターンマッチ解析部は、
ｋ番目とｋ＋１番目に適用する構文パターン集を、
ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数、
上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項４】
前記構文パターン集は、
パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、
前記構文パターンマッチ解析部は、
構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項５】
前記構文パターンマッチ解析部は、
構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力する構成であることを特徴とする請求項４に記載の文書解析装置。
【請求項６】
前記文書解析装置は、さらに、
解析対象の文書の形態素解析処理を実行する形態素解析部を有し、
前記構文解析部は、
前記形態素解析部の解析結果に基づいて構文解析を実行する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項７】
前記文書解析装置は、さらに、
解析対象の文書の意味解析処理を実行する意味解析処理部を有し、
前記構文パターンマッチ解析部は、
前記意味解析処理部の意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項８】
前記文書解析装置は、さらに、
前記構文解析部の解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束部を有し、
前記構文パターンマッチ解析部は、
前記構文収束部の処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項９】
前記構文パターン集は、
出力として属性情報を出力するルールを規定した構文パターンを有し、
前記構文パターンマッチ解析部は、
前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力する構成であることを特徴とする請求項１に記載の文書解析装置。
【請求項１０】
文書解析装置において、文書解析処理を実行する文書解析方法であり、
構文解析部において、入力文書の構文解析処理を実行する構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップは、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行し、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする文書解析方法。
【請求項１１】
前記構文パターンマッチ解析ステップは、
前記構文解析ステップにおいて生成した構文情報に、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項１０に記載の文書解析方法。
【請求項１２】
前記構文パターンマッチ解析ステップは、
ｋ番目とｋ＋１番目に適用する構文パターン集を、
ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数、
上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項１０に記載の文書解析方法。
【請求項１３】
前記構文パターン集は、
パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、
前記構文パターンマッチ解析ステップは、
構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力することを特徴とする請求項１０に記載の文書解析方法。
【請求項１４】
前記構文パターンマッチ解析ステップは、
構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力するステップであることを特徴とする請求項１３に記載の文書解析方法。
【請求項１５】
前記文書解析方法は、さらに、
形態素解析部において、解析対象の文書の形態素解析処理を実行する形態素解析ステップを有し、
前記構文解析ステップは、
前記形態素解析ステップの解析結果に基づいて構文解析を実行するステップであることを特徴とする請求項１０に記載の文書解析方法。
【請求項１６】
前記文書解析方法は、さらに、
意味解析処理部おいて、解析対象の文書の意味解析処理を実行する意味解析処理ステップを有し、
前記構文パターンマッチ解析ステップは、
前記意味解析処理ステップの意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする請求項１０に記載の文書解析方法。
【請求項１７】
前記文書解析方法は、さらに、
構文収束部において、前記構文解析ステップの解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束ステップを有し、
前記構文パターンマッチ解析ステップは、
前記構文収束ステップの処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項１０に記載の文書解析方法。
【請求項１８】
前記構文パターン集は、
出力として属性情報を出力するルールを規定した構文パターンを有し、
前記構文パターンマッチ解析ステップは、
前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力することを特徴とする請求項１０に記載の文書解析方法。
【請求項１９】
文書解析装置において、文書解析処理を実行させるコンピュータ・プログラムであり、
構文解析部において、入力文書の構文解析処理を実行させる構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行させる構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップにおいては、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行させ、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書解析装置、および文書解析方法、並びにコンピュータ・プログラムに関する。さらに詳細には、自然言語で表現されたテキストの解析を実行して、特定の意味あるいは概念が含まれているかなどの判定処理を行なう文書解析装置、および文書解析方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
文書が何をテーマにした文書であるのか、どんな内容を含む文書であるのかといった文書解析は、例えば文書データベースの検索に適用するキーワード設定等に必要となる技術である。
【０００３】
具体的には、例えばネットワークを介したデータ検索において、ユーザが必要とする情報を含む文書を提供するためには、データベースあるいはネットワーク上の各ドキュメント（文書）が何をテーマにした文書であるのか、どんな内容を含む文書であるのかを正確に分類することが必要となる。このような文書解析では、多くの場合、文書に含まれる単語の持つ意味を解析することになる。しかし、単語があいまいな表現である場合や、多様な意味を含む表現である場合、正確な解析が困難になるという問題がある。
【０００４】
このような文書分類に関する従来技術には、例えば以下のようなものがある。特許文献１（特開平５−２３３６２０）には、解析対象の文書に含まれる「振り込み」「振込」などの表記の揺れに対応して単語の解析を行なう手法を開示している。すなわち、単語ごとに意味的あるいは文法的に正しいか否かをチェックし、揺らぎが原因で正しくない場合に正しい表記に変換して解析を行なうシステムである。
【０００５】
しかしながら、この手法では、単語ごとに表記ゆれのルールを用意する必要があるという問題がある。また多くの単語が連接した複合語の表記ゆれは多数となる傾向があり、これらの表記ゆれに対応したルールを用意することは膨大な作業となるという問題がある。
【０００６】
また、特許文献２（特開平７−７３２００）は、テキストの形態素解析を実行し、あらかじめ定義した単語パターン（品詞名の正規表現）に一致する連続部分をキーワードとして出力する構成を開示している。
【０００７】
この手法は、品詞を含んだ単語パターンに基づく解析であり、上記の表記ゆれに基づく解析より、パターン数を現象させた解析が可能となることが予測されるが、複合名詞の順番の入れ替えなどに対応させるルールの構築に手間がかかるという問題がある。
【０００８】
その他、特許文献３（特開平９−２３７２７７）は、解析対象文書に含まれる複合名詞に対して構造解析手法を適用するシステムを開示している。例えば、文書の近傍に出現する単語間の関係が予め指定されたものであるか否かを判定して、予め指定されたものである場合に、関係付けを行なって解析を行なうシステムである。さらに、特許文献４（特開２００２−２９７５９２）は、解析対象文書に含まれるテキストの係り受け解析を行って文構造を取得し、事例文の文構造とマッチングをとることによる解析処理を開示している。
【特許文献１】特開平５−２３３６２０号公報
【特許文献２】特開平７−７３２００号公報
【特許文献３】特開平９−２３７２７７号公報
【特許文献４】特開２００２−２９７５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、自然言語で表現された文書の解析を行い、文書に含まれる意味や概念を判定する構成において、予め必要とするルールやデータを削減し、正確な文書解析を効率的に実行可能とした文書解析装置、および文書解析方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の側面は、
文書解析処理を実行する文書解析装置であり、
入力文書の構文解析処理を実行する構文解析部と、
構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納した構文パターン集記憶部と、
前記構文解析部の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析部とを有し、
前記構文パターン集記憶部は、
パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集を記憶し、
前記構文パターンマッチ解析部は、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする文書解析装置にある。
【００１１】
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、前記構文解析部の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する構成であることを特徴とする。
【００１２】
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、ｋ番目とｋ＋１番目に適用する構文パターン集を、ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数、上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行する構成であることを特徴とする。
【００１３】
さらに、本発明の文書解析装置の一実施態様において、前記構文パターン集は、パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、前記構文パターンマッチ解析部は、構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力する構成であることを特徴とする。
【００１４】
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力する構成であることを特徴とする。
【００１５】
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、解析対象の文書の形態素解析処理を実行する形態素解析部を有し、前記構文解析部は、前記形態素解析部の解析結果に基づいて構文解析を実行する構成であることを特徴とする。
【００１６】
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、解析対象の文書の意味解析処理を実行する意味解析処理部を有し、前記構文パターンマッチ解析部は、前記意味解析処理部の意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、前記構文解析部の解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束部を有し、前記構文パターンマッチ解析部は、前記構文収束部の処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする。
【００１８】
さらに、本発明の文書解析装置の一実施態様において、前記構文パターン集は、出力として属性情報を出力するルールを規定した構文パターンを有し、前記構文パターンマッチ解析部は、前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力する構成であることを特徴とする。
【００１９】
さらに、本発明の第２の側面は、
文書解析装置において、文書解析処理を実行する文書解析方法であり、
構文解析部において、入力文書の構文解析処理を実行する構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップは、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行し、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする文書解析方法にある。
【００２０】
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、前記構文解析ステップにおいて生成した構文情報に、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行するステップであることを特徴とする。
【００２１】
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、ｋ番目とｋ＋１番目に適用する構文パターン集を、ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数、上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行するステップであることを特徴とする。
【００２２】
さらに、本発明の文書解析方法の一実施態様において、前記構文パターン集は、パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、前記構文パターンマッチ解析ステップは、構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力することを特徴とする。
【００２３】
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力するステップであることを特徴とする。
【００２４】
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、形態素解析部において、解析対象の文書の形態素解析処理を実行する形態素解析ステップを有し、前記構文解析ステップは、前記形態素解析ステップの解析結果に基づいて構文解析を実行するステップであることを特徴とする。
【００２５】
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、意味解析処理部おいて、解析対象の文書の意味解析処理を実行する意味解析処理ステップを有し、前記構文パターンマッチ解析ステップは、前記意味解析処理ステップの意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする。
【００２６】
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、構文収束部において、前記構文解析ステップの解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束ステップを有し、前記構文パターンマッチ解析ステップは、前記構文収束ステップの処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行するステップであることを特徴とする。
【００２７】
さらに、本発明の文書解析方法の一実施態様において、前記構文パターン集は、出力として属性情報を出力するルールを規定した構文パターンを有し、前記構文パターンマッチ解析ステップは、前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力することを特徴とする。
【００２８】
さらに、本発明の第３の側面は、
文書解析装置において、文書解析処理を実行させるコンピュータ・プログラムであり、
構文解析部において、入力文書の構文解析処理を実行させる構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行させる構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップにおいては、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行させ、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行させることを特徴とするコンピュータ・プログラムにある。
【００２９】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータシステムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータシステム上でプログラムに応じた処理が実現される。
【００３０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３１】
本発明の構成によれば、構文パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する構成とした。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。また、各構文パターン集に登録するルールは、各構文パターン集毎に限定されたルール数となり、登録ルール数が削減され、ルールの生成コストも低減される。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照しながら本発明の実施形態に係る文書解析装置、および文書解析方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３３】
まず、図１を参照して、本発明の文書解析装置の実行する処理の概要について説明する。図１は、本発明の文書解析装置の実行する処理を説明する図である。本発明の文書解析装置１０は、様々な文書（ドキュメント）を入力し、文書中に含まれる自然言語で表現された単語や、複合語（複数の単語からなる語）を解析し、例えば、あらかじめ用意された登録語と対応付ける処理を実行する。
【００３４】
図１に示す例では、辞書２０は、多数の語を登録語として記録している登録語データベースである。本発明の文書解析装置１０は、様々な文書（図に示す（ａ）〜（ｅ）を入力して、入力文書に含まれるテキストの解析を実行して、辞書２０に登録された登録語に対応する内容を含む文書であると判定した場合、その登録語を、その文書対応の登録語として出力（（Ａ）〜（Ｅ））するものである。
【００３５】
例えば、
入力文書（ａ）に対する処理
入力文書（ａ）に、「急性肝炎」という語が含まれている場合、文書解析装置１０は、辞書２０の登録語とのマッチング処理を含む文書解析処理を実行して、登録語［肝炎］、［急性肝炎］をこの文書（ａ）の内容を反映する概念に対応する語として出力する。この出力が（出力Ａ）である。
【００３６】
入力文書（ｂ）に対する処理
入力文書（ｂ）は「急性Ｂ型肝炎」という語を含む文書であり、文書解析装置１０は、この文書（ｂ）の解析処理により、入力文書（ｂ）の内容を反映する登録語として、（出力Ｂ）［肝炎］、［急性肝炎］、［Ｂ型肝炎］、［急性Ｂ型肝炎］を出力する。
入力文書（ｃ）に対する処理
入力文書（ｃ）は「急性Ｃ型肝炎」という語を含む文書であり、文書解析装置１０は、この文書（ｃ）の解析処理により、入力文書（ｃ）の内容を反映する登録語として、（出力Ｃ）［肝炎］、［急性肝炎］、［Ｃ型肝炎］、［急性Ｃ型肝炎］を出力する。
【００３７】
入力文書（ｄ）に対する処理
入力文書（ｄ）は「Ｃ型急性肝炎」という語を含む文書であり、文書解析装置１０は、この文書（ｄ）の解析処理により、入力文書（ｄ）の内容を反映する登録語として、（出力Ｄ）［肝炎］、［急性肝炎］、［Ｃ型肝炎］、［急性Ｃ型肝炎］を出力する。
入力文書（ｅ）に対する処理
入力文書（ｅ）は「急性型劇症肝炎」という語を含む文書であり、文書解析装置１０は、この文書（ｅ）の解析処理により、入力文書（ｅ）の内容を反映する登録語として、（出力Ｅ）［肝炎］、［劇症肝炎］を出力する。
【００３８】
図１に示す入力文書（ａ）〜（ｅ）に対する処理をまとめて記載すると、以下のようになる。
入力文書（抽出登録語）
の形式で示す。
（ａ）急性肝炎（肝炎，急性肝炎）
（ｂ）急性Ｂ型肝炎（肝炎，急性肝炎，Ｂ型肝炎，急性Ｂ型肝炎）
（ｃ）急性Ｃ型肝炎（肝炎，急性肝炎，Ｃ型肝炎，急性Ｃ型肝炎）
（ｄ）Ｃ型急性肝炎（肝炎，急性肝炎，Ｃ型肝炎，急性Ｃ型肝炎）
（ｅ）急性型劇症肝炎（肝炎，劇症肝炎）
【００３９】
なお、図１に示す例では、入力文書の解析を実行して辞書データベース２０に登録された登録語を出力する構成例を示しているが、出力は、辞書の登録語に限らず、類似語の登録情報を持つ様々なシソーラスやオントロジーなどの登録情報を出力する構成としてもよく、あるいは、文書のカテゴリ情報や分類情報を出力とする設定としてもよい。さらに属性情報を出力する構成としてもよい。
【００４０】
本発明の文書解析処理においては、表現が異なるが意味的に等価あるいは内包している単語（特に複合語）に対して同じ見出し語（辞書上の登録データ）を対応付ける処理を行なう。
【００４１】
例えば、入力文書例（ｅ）は、「急性型劇症肝炎」という語を含む文書であるが、
「急性肝炎」と、
「劇症肝炎」とは、
医学上、異なる肝炎であると分類される。入力文書（ｅ）には、「急性型劇症肝炎」を含み、この複合語解析を行なうと、「急性肝炎」も１つの対応登録語とされる可能性があるが、本発明の処理によれば、このような誤った出力はなされず、正しい対応登録語である（出力Ｅ）［肝炎］、［劇症肝炎］を出力することができる。
【００４２】
なお、入力文書は、例えば、
「この検査結果によると、急性Ｃ型肝炎と診断できます。」
このような文書となるのが一般的であるが、文書解析装置１０は、このようなテキスト中に現れた単語や複合語を解析して、適切な対応付け、すなわち単語や複合語の出現場所、対応する辞書登録項目を出力することができる。
【００４３】
このような文書解析処理、すなわち文書中の出現語と、登録語との対応を取る一般的な手法としては、
手法１．単語出現の集合でマッチを取る
手法２．すべてのありえる表現を用意しておき、それらとのマッチをとる
これらの２つの手法が知られている。
【００４４】
手法１は、例えば、図１に示す入力文書（ｅ）の場合、
出現語：「急性型劇症肝炎」であり、
単語出現の集合は｛急性、型、劇症、肝炎｝となる。
この場合、単語出現の集合に、登録語：「急性肝炎」の単語集合｛急性、肝炎｝を含んでいるので、
登録語：「急性肝炎」も出現語：「急性型劇症肝炎」に対応する登録語として出力
されてしまう。
【００４５】
上記手法２は、すべてのありえる表現を用意することが必要であり、すべてのありえる表現を登録情報としなければならず、登録情報の生成の困難性が発生する。また、登録データベースが大きくなり、検索処理に時間を要するという問題もある。
【００４６】
例えば、図１に示す入力文書例（ａ）〜（ｄ）に、登録語「急性肝炎」の項目をマッチさせるには、それぞれに対応する４つの表現（「急性肝炎」、「急性Ｂ型肝炎」、「急性Ｃ型肝炎」、「Ｃ型急性肝炎」）を用意しなければならない。複合語の単語要素が多くなると、組み合わせの数（指数関数的）だけ表現を用意しなければならず、手間がかかる上に、計算機のリソース（計算時間、メモリ量）を多量に消費するという問題がある。
【００４７】
この手法２の改善策として、正規表現などの自由度のあるマッチ手段を取り入れることも行なわれている。例えば、この例の場合、
「急性肝炎」、
「急性＊型肝炎」、
「＊型急性肝炎」
上記パターンのように［＊］の部分を任意の語である場合にマッチすると判定する手法である。しかし、この手法においても、パターン記述の労力が多大になる上に、パターンマッチのための計算機のリソース（計算時間、メモリ量）消費が大きくなるという問題がある。
【００４８】
本発明の一実施例の文書解析処理では、構文的なパターンマッチ処理を段階的に実施することで、解析対象文書に出現する出現語と、辞書に登録された登録語とのマッチ検証を行なうためのルールの数を少なく押さえて、効率的な文書解析を行なう。
【００４９】
さらに、本発明の一実施例の文書解析処理では、構文解析を利用することで、意味的に等価な表現を汎用的に扱い、構文的なパターンマッチを段階的に実施することで、マッチ検証を行なうためのルールの数を少なく押さえて効率的な文書解析を実現する。特に日本語の場合は、同じ係り先をもつ句同士の順番を入れ替えても意味が変わらないことが多く、構文解析を利用して意味的に等価な表現を汎用的に適用することで、マッチ検証用のルール数を低減させる効果が大となる。
【００５０】
図２に本発明の一実施例に係る文書解析装置の構成を示す。図２に示すように、本発明の文書解析装置１００は、形態素解析部１０１、構文解析部１０２、構文パターン選択部１０３、構文パターンマッチ解析部１０４、構文パターン情報記憶部１１０、辞書データベース１２０を有する。辞書データベース１２０は、登録語を登録したデータベースであり、単純な登録語の辞書のみならず、類義語分類情報を含むシソーラスやオントロジーなども適用可能である。なお、図２には辞書データベース１２０を、文書解析装置１００の構成要素として示しているが、辞書データベース１２０を、文書解析装置１００内の構成要素とすることなく、例えば、ネットワーク接続されたデータベースを利用する構成としてもよい。
【００５１】
形態素解析部１０１、構文解析部１０２は、解析対象となる文書を入力し、一般的な自然言語処理に従った形態素解析、および構文解析を実行する。日本語や英語を始めとする各種の言語で記述される自然言語は、本来抽象的であいまい性が高い性質を持つが、文章を数学的に取り扱うことにより、コンピュータ処理を行なうことができる。この結果、機械翻訳や対話システム、検索システム、質問応答システムなど、自動化処理により自然言語に関するさまざまなアプリケーション／サービスが実現される。かかる自然言語処理は一般に、形態素解析、構文解析という各処理フェーズに区分される。
【００５２】
形態素解析部１０１は、解析対象となる文書を構成する文を意味的最小単位である形態素（ｍｏｒｐｈｅｍｅ）に分節して品詞の認定処理を行なう。
構文解析部１０２は、文法規則などを基に句構造などの文の構造を解析する。文法規則が木構造であることから、構文解析結果は一般に個々の形態素が係り受け関係などを基にして接合された木構造となる。構文解析は、自然言語処理の分野において、対話システム、機械翻訳、文書校正支援、文書要約などのアプリケーションを実現する上で必要不可欠の技術であるとされている。
【００５３】
構文解析では、自然言語文を受け取り、文法規則に基づいて単語（文節）間の係り受け関係を決定する処理を行なう。構文解析結果は、依存構造と呼ばれる木構造（依存木）の形態で表現することができる。
【００５４】
なお、図２に示す構成例では、形態素解析部１０１と構文解析部１０２を分離して示してあるが、形態素解析相当の機能を含んだ構文解析器を用いた構成として、形態素解析と構文解析を１つのデータ処理部において実行する構成としてもよい。
【００５５】
構文パターン選択部１０３は、構文パターン集記憶部１１０から、構文パターン集１〜ｎのいずれかを選択して、構文パターンマッチ解析部１０４に供給する。構文パターン選択部１０３は、構文パターンマッチ解析部１０４における構文パターンマッチ解析処理の処理段階に応じて、順次、構文パターン集１〜ｎを選択して提供する。
【００５６】
構文パターン集記憶部１１０には、複数の構文パターン集、すなわち、
構文パターン集１，１１０−１、
構文パターン集２，１１０−２、
：
構文パターン集ｎ，１１０−ｎ、
これらのｎ個の構文パターン集が記憶されている。これらの各々には、構文パターンマッチ解析部１０４において実行する構文パターンマッチ解析処理の処理段階に対応するパターンマッチのための異なるルールが格納されている。
【００５７】
なお、構文パターン集記憶部１１０に記憶されたｎ個の構文パターン集１１０−１〜ｎの登録ルールは、辞書データベース１２０の登録情報に基づいて生成されたルールである。すなわち、構文パターン集記憶部１１０は、構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納している。なお、辞書データベース１２０の内容、および構文パターン集１１０−１〜ｎの登録ルールの具体例については後述する。
【００５８】
構文パターン選択部１０３は、例えば、構文パターン集記憶部１１０から、
構文パターン集１→構文パターン集２→・・→構文パターン集ｎの順番で、構文パターン集を１から順に選択して、構文パターンマッチ解析部１０４に供給する。
【００５９】
構文パターンマッチ解析部１０４は、構文解析部１０２の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する。すなわち、構文情報（構文解析の結果）に構文パターン内のルールを適用し、アノテーションを付加する。ここで、アノテーションとは構文情報に対応する辞書項目などの登録情報を含む文書解析情報である。すなわち、入力文書に対する構文解析結果から得られる文書中の単語や複合語に対応する辞書データベース１２０の登録語、または登録語に対応して設定されたＩＤなどをアノテーション（文書解析情報）として設定して出力する。
【００６０】
構文パターン集記憶部１１０には、パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集が記憶され、構文パターンマッチ解析部１０４は、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する。
【００６１】
すなわち、構文パターンマッチ解析部１０４は、構文パターン選択部１０３から構文パターン集１〜ｎを順次、受領して、各構文パターン集１１０−１〜ｎを順次適用したパターンマッチ解析を実行する。例えば、
第１段階処理：構文パターン集１を適用したパターンマッチ処理、
第２段階処理：構文パターン集２を適用したパターンマッチ処理、
：
第ｎ段階処理：構文パターン集ｎを適用したパターンマッチ処理、
これらの複数の構文パターン集を適用したパターンマッチ処理を実行する。この処理によって、処理対象とする文書の構文情報にアノテーション（文書解析情報）が追加・更新されてゆく。構文パターンマッチ解析部１０４は、最終的には、辞書データベース１２０の登録語、または登録語に対応して設定されたＩＤなどをアノテーション（文書解析情報）として設定した構文情報を、入力文書に対応する構文情報として出力する。
【００６２】
以下、具体的な処理例を用いて、本発明の文書解析装置１００の実行する処理について説明する。
入力文書の例として、
入力文書：「これは急性Ｃ型肝炎です」
上記文書が入力されたとする。
【００６３】
このような自然言語で表現されたテキストが入力された場合、
まず、形態素解析部１０１は、入力文を以下のような形態素に分解する。
（１）これ    コレ        これ  名詞−代名詞−一般
（２）は      ハ          は    助詞−係助詞
（３）急性    キュウセイ  急性  名詞−一般
（４）Ｃ型    Ｃガタ      Ｃ型  名詞−一般
（５）肝炎    カンエン    肝炎  名詞−一般
（６）です    デス        です  助動詞  特殊・デス  基本形
形態素解析部１０１は、入力文書：「これは急性Ｃ型肝炎です」の形態素解析により、上記（１）〜（６）の形態素に分解する。
【００６４】
構文解析部１０２は、形態素解析部１０１の解析結果としての形態素の単語列をもとに構文解析を行なう。図３に入力文書：「これは急性Ｃ型肝炎です」の構文解析結果を示す。構文解析結果の各要素は、ラベル付けが行われ識別される。ラベルの対応要素はノードと呼ばれることもある。構文解析においては、各単語要素の係りうけ解析が実行される。図３に示す矢印が係りうけ解析結果であり、矢印によって結ばれた単語間に係りうけ関係があることを示している。矢印の発進元の語は、矢印の先の語の親（ｐａｒｅｎｔ）と呼ばれる。
【００６５】
例えば、ラベル５の［肝炎］とラベル３［急性］は係りうけ関係にあり、ラベル３［急性］はラベル５の［肝炎］の親（ｐａｒｅｎｔ）である。同様に、ラベル５の［肝炎］とラベル４［Ｃ型］は係りうけ関係にあり、ラベル４［Ｃ型］はラベル５の［肝炎］の親（ｐａｒｅｎｔ）である。
【００６６】
構文解析結果を一覧データ形式で示すと、図４のようになる。すなわち、以下のようになる。
ｌａｂｅｌ（１，"これ"），
ｌａｂｅｌ（２，"は"），
ｌａｂｅｌ（３，"急性"），
ｌａｂｅｌ（４，"Ｃ型"），
ｌａｂｅｌ（５，"肝炎"），
ｌａｂｅｌ（６，"です"），
ｐａｒｅｎｔ（２，１），
ｐａｒｅｎｔ（６，２），
ｐａｒｅｎｔ（５，３），
ｐａｒｅｎｔ（５，４），
ｐａｒｅｎｔ（６，５）．
【００６７】
上記データ表現中、ｌａｂｅｌ（ｎ，"ａｂｃ"）において、ｎ，ａｂｃは、
ｎ：ラベルナンバー（ノードナンバー）
ａｂｃ：語
を示しており、
ｐａｒｅｎｔ（ｐ，ｑ）において、ｐ，ｑは、
ｐ：係りうけ関係にある子（ｃｈｉｌｄ）のラベルナンバー（ノードナンバー）
ｑ：係りうけ関係にある親（ｐａｒｅｎｔ）のラベルナンバー（ノードナンバー）
を示している。
【００６８】
なお、上記の構文解析結果では、係りうけの順番は省略してある。
例えば、
（ａ）「これは急性Ｃ型肝炎です」
（ｂ）「これはＣ型急性肝炎です」
の２つの文書において、［肝炎］に対する親は、
（ａ）［急性］［Ｃ型］
（ｂ）［Ｃ型］［急性］
となり、係りうけの順番を考慮した構文解析を行った場合は、文書（ａ），（ｂ）とは異なった文書として認識されるが、係りうけの順番を考慮しない構文解析を行った場合は、文書（ａ），（ｂ）とは同じ構文表現として認識される。
【００６９】
構文パターンマッチ解析部１０４は、上述した構文解析結果（図４）を入力して、構文パターン選択部１０３から提供される構文パターン集１〜ｎを適用したパターンマッチ処理を実行する。
【００７０】
ここで、辞書データベース１２０の内容、および構文パターン集１１０−１〜ｎの登録ルールの具体例について説明する。図５に、辞書データベース１２０の登録データの一例を示す。図５に示す辞書は、
［見出しＩＤ］
［種類（カテゴリ）］
［単語］
これらの項目からなる辞書である。
［単語］は辞書登録語であり、
［見出しＩＤ］は、辞書登録語としての［単語］の識別子である。
［種類（カテゴリ）］は、辞書登録語としての［単語］の種類（カテゴリ）を示す。
【００７１】
文書解析装置１００の出力は、例えば、入力文書の内容に対応する意味を示す辞書登録語としての［単語］、あるいは［単語］の識別子としての［見出しＩＤ］、あるいは［単語］の種類（カテゴリ）を示す［種類（カテゴリ）］など、辞書の登録情報のいずれかを出力する構成とすることが可能である。
【００７２】
構文パターンマッチ解析部１０４は、入力文書の構文解析結果に基づいて、入力文書の対応する辞書登録項目を決定する処理を行なう。基本的には、この処理は、構文解析結果において得られた要素としての単語、および単語の組み合わせと、辞書に基づいて生成された構文パターン集の登録情報とのパターンマッチ処理によって行われる。
【００７３】
図６に構文パターン集記憶部１１０に記憶される複数の構文パターン集のデータ例を示す。
構文パターン集１は、図６に示すように、例えば、以下のデータを持つ。
（１ａ）ｌａｂｅｌ（Ｎｏｄｅ１，"肝炎"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））．
（１ｂ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｂ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，２））．
（１ｃ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｃ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，３））．
【００７４】
構文パターン集の基本構成は、
条件節→操作（出力）
であり、矢印の前が条件節であり、矢印の後が条件節を満足するパターンが、構文解析結果から検出された場合（パターンマッチ成立）の出力を意味する。ｐａｒｅｎｔやｌａｂｅｌは、構文解析結果の情報を表している。また、Ｎｏｄｅ１やＮｏｄｅ２のような大文字で始まるラベルは変数を表す。
【００７５】
例えば、
（１ａ）ｌａｂｅｌ（Ｎｏｄｅ１，"肝炎"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））．
このデータは、［肝炎］という単語の登録されたノード１が検出された場合、
出力（ａｓｓｅｒｔ）として、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））．
を出力することを意味する。
すなわち、出力は、ノード１の辞書登録情報として、
種類（カテゴリ）＝ｄｉｓｅａｓｅ
見出しＩＤ＝［１］
を出力する。
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））は、
出力（辞書登録種類（Ｎｏｄｅ１，辞書登録見出しＩＤ）を意味する。
【００７６】
条件節のｌａｂｅｌ（Ｎｏｄｅ１，"肝炎"）において、
Ｎｏｄｅ１はノードを示す変数、
"肝炎"は、ノードに含まれる単語を示している。
例えば、図３（＝図４）に示すような構文解析結果に含まれるラベル（ノード）要素から、
ｌａｂｅｌ（Ｎｏｄｅ１，"肝炎"）
にマッチするラベル（ノード）が検出された場合、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））
を出力する。
【００７７】
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１））において、
ｄｉｓｅａｓｅは、Ｎｏｄｅ１に対応する辞書登録情報としての種類（カテゴリ）、
（Ｎｏｄｅ１，１）中の［Ｎｏｄｅ１］はノードを示す変数、
（Ｎｏｄｅ１，１）中の［１］は、Ｎｏｄｅ１に対応する辞書登録情報としての見出しＩＤ［１］＝（肝炎（図５参照））
を示している。
【００７８】
すなわち、［肝炎］にマッチするノードに対応する辞書登録情報、
種類（カテゴリ）＝ｄｉｓｅａｓｅ
見出しＩＤ＝［１］＝（肝炎（図５参照））
をアノテーション（文書解析情報）として出力する。
【００７９】
構文パターン集１の２番目のエントリ、
（１ｂ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｂ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，２））．
は、
例えば、図３（＝図４）に示すような構文解析結果に含まれるラベル（ノード）要素から、
ｌａｂｅｌ（Ｎｏｄｅ１，"Ｂ型"）
にマッチするラベル（ノード）が検出された場合、そのラベル（ノード）対応の情報として、
（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，２））
を出力する。
すなわち、
種類（カテゴリ）＝ｖｉｒｕｓ＿ｔｙｐｅ
見出しＩＤ＝［２］＝（Ｂ型（図５参照））
を出力する。
【００８０】
構文パターン集１の３番目のエントリ、
（１ｃ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｃ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，３））．
は、
例えば、図３（＝図４）に示すような構文解析結果に含まれるラベル（ノード）要素から、
ｌａｂｅｌ（Ｎｏｄｅ１，"Ｃ型"）
にマッチするラベル（ノード）が検出された場合、そのラベル（ノード）対応の情報として、
（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，３））
を出力する。
すなわち、
種類（カテゴリ）＝ｖｉｒｕｓ＿ｔｙｐｅ
見出しＩＤ＝［３］＝（Ｃ型（図５参照））
を出力する。
【００８１】
このように、本処理例における構文パターン集１は、例えば構文解析結果として得られる最小要素（単語）である１つのラベル（ノード）の要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。
【００８２】
構文パターンマッチ解析部１０４は、まず、この構文パターン集１を適用したパターンマッチ解析を実行する。
入力文書：「これは急性Ｃ型肝炎です」
に対応する構文解析結果（図３，図４）
に対する構文パターン集１（図６参照）を適用したパターンマッチでは、
図６に示す構文パターン集１のエントリ（１ａ），（１ｃ）がマッチすることになり、このマッチ結果に基づいて、図７に示すように、
ラベル４（ノード４）［Ｃ型］のアノテーション（文書解析情報）として［ｖｉｒｕｓ＿ｔｙｐｅ：３］
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）として［ｄｉｓｅａｓｅ：１］
が付与される。なお、アノテーション［ａ，ｂ］は、
［辞書登録種類情報，辞書登録見出しＩＤ情報］
を示している。
【００８３】
次に、構文パターンマッチ解析部１０４は、この構文パターン集１を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を構文解析結果に含めて、次の構文パターン集を適用した構文パターンマッチ処理を実行する。構文パターン集１を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を含めた構文解析結果は図８に示すデータ構成となる。
【００８４】
図８に示すデータは、図４に示す構文解析結果に対して、構文パターン集１を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）、すなわち、
ラベル４（ノード４）［Ｃ型］のアノテーション（文書解析情報）：［ｖｉｒｕｓ＿ｔｙｐｅ（４，３）］
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）：［ｄｉｓｅａｓｅ（５，１）］
これらのアノテーション（文書解析情報）を追加したデータである。なお、構文解析結果に含めるアノテーション（文書解析情報）は、
［種類（ノードナンバー，見出しＩＤ）］
のデータ構成を持つ。
【００８５】
構文パターンマッチ解析部１０４は、この図８に示すデータに基づいて、構文パターン集２を適用したパターンマッチ処理を実行する。このように、構文パターンマッチ解析部１０４は、構文解析部１０２の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する。
【００８６】
次に、構文パターン集２について説明する。構文パターン集２は、図６に示すように、例えば以下のデータを持つ。
（２ａ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，４））．
（２ｂ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"劇症"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，５））．
（２ｃ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ２，２）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６））．
（２ｄ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ２，３）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７））．
【００８７】
本処理例における構文パターン集２は、２つのラベル（ノード）対応の２要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。例えば、構文パターン集２の最初のエントリ、
（２ａ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，４））．
これは、構文解析結果の２つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
【００８８】
構文パターン集２の最初のエントリ（２ａ）の条件節、
ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［１］のノード１
（ｂ）単語が［急性］のノード２、
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，４））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，４））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［４］＝（急性肝炎（図５参照））
を出力することを意味している。
【００８９】
構文パターン集２の第２エントリ、
（２ｂ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"劇症"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，５））． 
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［１］のノード１
（ｂ）単語が［劇症］のノード２、
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，５））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，５））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［５］＝（劇症肝炎（図５参照））
を出力することを意味している。
【００９０】
構文パターン集２の第３エントリ、
（２ｃ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ２，２）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６））．
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［１］のノード１
（ｂ）種類が［ｖｉｒｕｓ＿ｔｙｐｅ］見出しＩＤが［２］のノード２
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［６］＝（Ｂ型肝炎（図５参照））
を出力することを意味している。
【００９１】
構文パターン集２の第４エントリ、
（２ｄ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ２，３）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７））．
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［１］のノード１
（ｂ）種類が［ｖｉｒｕｓ＿ｔｙｐｅ］見出しＩＤが［３］のノード２
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［７］＝（Ｃ型肝炎（図５参照））
を出力することを意味している。
【００９２】
構文パターンマッチ解析部１０４は、このように構文パターン集２を適用したパターンマッチ解析を実行する。
入力文書：「これは急性Ｃ型肝炎です」
に対応する構文パターン集１を適用した結果（図７，図８）
に対する構文パターン集２（図６参照）を適用したパターンマッチでは、
図６に示す構文パターン集２のエントリ（２ａ），（２ｄ）がマッチすることになり、このマッチ結果に基づいて、図９に示すように、
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）として［ｄｉｓｅａｓｅ：４］
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）として［ｄｉｓｅａｓｅ：７］
が付与される。なお、アノテーション［ａ，ｂ］は、
［辞書登録種類情報，辞書登録見出しＩＤ情報］
を示している。
【００９３】
次に、構文パターンマッチ解析部１０４は、この構文パターン集２を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を構文解析結果に含めて、次の構文パターン集を適用した構文パターンマッチ処理を実行する。構文パターン集２を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を含めた構文解析結果は図１０に示すデータ構成となる。
【００９４】
図１０に示すデータは、図８に示す構文パターン集１を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を含む構文解析情報に、さらに、構文パターン集２を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）、すなわち、
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）：［ｄｉｓｅａｓｅ（５，４）］
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）：［ｄｉｓｅａｓｅ（５，７）］
これらの構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション（文書解析情報）は、
［種類（ノードナンバー，見出しＩＤ）］
のデータ構成を持つ。
【００９５】
構文パターンマッチ解析部１０４は、次に、この図１０に示すデータに基づいて、構文パターン集３を適用したパターンマッチ処理を実行する。構文パターン集３について説明する。構文パターン集３は、図６に示すように、例えば以下のデータを持つ。
（３ａ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，８））．
（３ｂ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，９））．
【００９６】
本処理例における構文パターン集３は、２つのラベル（ノード）対応の２要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。例えば、構文パターン集３の最初のエントリ、
（３ａ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，８））．
これは、構文解析結果の２つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
【００９７】
構文パターン集３の最初のエントリ（３ａ）の条件節、
ｄｉｓｅａｓｅ（Ｎｏｄｅ１，６），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［６］のノード１
（ｂ）単語が［急性］のノード２、
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，８））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，８））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［４］＝（急性Ｂ型肝炎（図５参照））
を出力することを意味している。
【００９８】
構文パターン集３の第２エントリ、
（３ｂ）ｄｉｓｅａｓｅ（Ｎｏｄｅ１，７），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｌａｂｅｌ（Ｎｏｄｅ２，"急性"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，よ））． 
これは、
（ａ）種類が［ｄｉｓｅａｓｅ］見出しＩＤが［７］のノード１
（ｂ）単語が［急性］のノード２、
（ｃ）ノード２がノード１の親（ｐａｒｅｎｔ）
これら（ａ）〜（ｃ）の条件を満足する２つのノード１，２がある場合、
出力として、
ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，９））
を出力する。すなわち、
ノード１に対して、アノテーション（文書解析情報）、
（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，９））
種類［ｄｉｓｅａｓｅ］
見出しＩＤ［９］＝（急性Ｃ型肝炎（図５参照））
を出力することを意味している。
【００９９】
構文パターンマッチ解析部１０４は、このように構文パターン集３を適用したパターンマッチ解析を実行する。
入力文書：「これは急性Ｃ型肝炎です」
に対応する構文パターン集１，２を適用した結果（図９，図１０）
に対する構文パターン集３（図６参照）を適用したパターンマッチでは、
図６に示す構文パターン集３のエントリ（３ｂ）がマッチすることになり、このマッチ結果に基づいて、図１１に示すように、
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）として［ｄｉｓｅａｓｅ：９］
が付与される。なお、アノテーション［ａ，ｂ］は、
［辞書登録種類情報，辞書登録見出しＩＤ情報］
を示している。
【０１００】
構文パターンマッチ解析部１０４は、この構文パターン集３を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を構文解析結果に含め、図１２に示す結果を得る。図１２に示すデータは、図１０に示す構文パターン集１，２を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）を含む構文解析情報に、さらに、構文パターン集３を適用したパターンマッチ解析結果としてのアノテーション（文書解析情報）、すなわち、
ラベル５（ノード５）［肝炎］のアノテーション（文書解析情報）：［ｄｉｓｅａｓｅ（５，９）］
この構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション（文書解析情報）は、
［種類（ノードナンバー，見出しＩＤ）］
のデータ構成を持つ。
【０１０１】
構文パターンマッチ解析部１０４は、この構文パターン集３を適用したパターンマッチ解析結果を含むデータに基づいて出力情報を生成して出力する。出力情報は、図１２に示す構文解析結果と、パターンマッチ結果を含むデータを出力としてもよいし、パターンマッチ結果によって得られた辞書登録情報、例えば、
「肝炎」（ＩＤ＝１）、
「急性肝炎」（ＩＤ＝４）、
「Ｃ型肝炎」（ＩＤ＝７）、
「急性Ｃ型肝炎」（ＩＤ＝９）
これらの辞書登録情報のみを出力としてもよい。
【０１０２】
このように、本発明の一実施例に係る文書解析装置では、パターンマッチ処理に適用する構文パターン集を複数適用する。
まず、
パターンマッチ対象要素（ラベル（ノード））の少ないパターンマッチルールを登録した構文パターン集から、パターンマッチ対象要素（ラベル（ノード））の多い構文パターン集を段階的に適用して、複数段のパターンマッチ処理を実行する。
【０１０３】
例えば、ｋ番目に適用する構文パターン集と、ｋ＋１番目に適用する構文パターン集におけるパターンマッチ対象要素（ラベル（ノード））数は、
ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数
の関係となる。
【０１０４】
このように構文パターン集を複数適用した構成により、効率的にかつ正確なパターンマッチが可能となる。また、各構文パターン集に登録されるルール数を少なく設定することが可能であり、登録ルール数が削減され、ルールの生成コストも低減される。
【０１０５】
次に、図１３を参照して本発明に係る文書解析装置の実行する文書解析処理シーケンスについて説明する。まず、ステップＳ１０１において、解析対象となる入力文書の形態素解析を実行する。これは、図２に示す文書解析装置１００の形態素解析部１０１において実行される。ステップＳ１０１では、解析対象となる文書を構成する文を意味的最小単位である形態素（ｍｏｒｐｈｅｍｅ）に分節して品詞の認定処理を行なう形態素解析を実行する。
【０１０６】
次に、ステップＳ１０２において、構文解析処理を実行する。これは、図２に示す文書解析装置１００の構文解析部１０２において実行される。文法規則などを基に句構造などの文の構造を解析する。具体的には、例えば図３、図４を参照して説明したような構文解析結果を生成する。
【０１０７】
ステップＳ１０３では、構文パターン集の選択を実行する。これは、図２に示す文書解析装置１００の構文パターン選択部１０３において実行される処理であり、構文パターンマッチ解析部１０４において適用する構文パターン集の選択を行なう。構文パターンマッチ解析部１０４において適用する構文パターン集の順番は、予め設定しておくか、あるいはユーザによって、適宜、選択する構成としてもよい。構文パターン集１〜ｎは、辞書の登録項目に基づいて生成される。最も単純な単語の表層のマッチを構文パターン集１とし、より複雑（多くの単語を含む）複合語は、パターンマッチの処理が後になるように、構文パターン集ｎ（ｎは複合語の複雑さに応じて大きくする）に登録する。すなわち、先に説明したように、例えば、ｋ番目に適用する構文パターン集と、ｋ＋１番目に適用する構文パターン集におけるパターンマッチ対象要素（ラベル（ノード））数は、
ｋ番目の構文パターン集のマッチ検証要素数≦ｋ＋１番目の構文パターン集のマッチ検証要素数
の関係となる。
【０１０８】
ステップＳ１０４では、ステップＳ１０３において選択した構文パターン集を適用して構文パターンマッチ解析を実行する。この処理は、図２に示す文書解析装置１００の構文パターンマッチ解析部１０４において実行される処理である。ステップＳ１０５において、全ての構文パターンのマッチ検索が終了したか否かを判定し、終了していない場合は、ステップＳ１０３に戻り、次の構文パターン集を選択して、ステップＳ１０４において、新たに選択された構文パターン集を適用した構文パターンマッチ解析を実行する。この処理を繰り返し、ステップＳ１０５において、全ての構文パターンのマッチ検索が終了したと判定した場合は、ステップＳ１０６において解析結果を出力して処理を終了する。これらの処理は、具体的には、図７〜図１２を参照して説明した処理である。
【０１０９】
このように、本発明の文書解析処理においては、パターンマッチ解析処理をより単純なパターンマッチを行なう初期段階から、複雑なパターンマッチを行なう段階に区分し、それぞれに適用する構文パターン集を変更して処理を行なう構成としたので効率的かつ正確なパターンマッチが可能となる。
【０１１０】
［辞書および構文パターン集の異なる設定例］
上述した実施例では、
辞書として図５に示すデータ構成を有する辞書
構文パターン集として、図６に示す３つの構文パターン集１〜３、
これらの辞書と構文パターン集を適用した処理例を説明した。
【０１１１】
適用する辞書や、構文パターン集は、目的に応じて変更すること駕可能である。以下、上述の実施例における辞書と構文パターン集を変更した処理例について説明する。
【０１１２】
上述の実施例においては、辞書登録語として、
Ｂ型肝炎、
Ｃ型肝炎、
これらの語を有し、解析対象文書に対応する語として上記のいずれかの語が選択される設定となっていた。しかし、医学的にはＢ型肝炎もＣ型肝炎もウイルス性肝炎（上位概念）なので、Ｂ型肝炎、またはＣ型肝炎のいずれかが対応語として選択される文書に対しては、
［ウイルス性肝炎］
この語も対応語として抽出したい場合がある。
【０１１３】
具体的には、入力文書に対応する抽出登録語として、以下のような登録語の抽出を行ないたいとする。
入力文書（抽出登録語）
の形式で示す。
（ａ）急性肝炎（肝炎，急性肝炎）
（ｂ）Ｂ型肝炎（肝炎、Ｂ型肝炎、ウイルス性肝炎）
（ｃ）Ｃ型肝炎（肝炎、Ｃ型肝炎、ウイルス性肝炎）
（ｄ）急性Ｂ型肝炎（肝炎、急性肝炎、Ｂ型肝炎、急性Ｂ型肝炎、ウイルス性肝炎、急性ウイルス性肝炎）
（ｅ）急性Ｃ型肝炎（肝炎、急性肝炎、Ｃ型肝炎、急性Ｃ型肝炎、ウイルス性肝炎、急性ウイルス性肝炎）
（ｆ）Ｃ型急性肝炎（肝炎、急性肝炎、Ｃ型肝炎、急性Ｃ型肝炎、ウイルス性肝炎、急性ウイルス性肝炎）
【０１１４】
この場合の辞書および構文パターン集の例を図１４、図１５に示す。図１４に示す辞書は、先に説明した実施例において適用した図５に示す辞書に対して、以下の２つのエントリ、すなわち、
［見出しＩＤ，種類，単語］として記述すると、
［１０，ｄｉｓｅａｓｅ，ウイルス性肝炎］
［１１，ｄｉｓｅａｓｅ，急性ウイルス性肝炎］
これらを追加したものである。
【０１１５】
この辞書を適用して、図１５に示す構文パターン集１〜３を順次、適用して、図２に示す構成における構文パターンマッチ解析部１０４においてパターンマッチング処理を実行する。
【０１１６】
図１５に示す構文パターン集１〜３を、先に説明した実施例において適用した図６に示す構文パターン集１〜３と比較すると、構文パターン集１は同じ構成を持つが、構文パターン集２，３の構成が異なっている。
【０１１７】
このように適用する辞書や構文パターン集を目的に応じて適宜変更することで、必要とする概念を持つ単語、カテゴリなどを文書に対応付けることが可能となる。前述したように、文書に対応付けるデータは、辞書に登録されたデータであればよく、単語に限らず、ＩＤや、データ分類用の識別子、カテゴリ、分野名など様々なデータが適用可能である。
【０１１８】
［その他の実施例］
次に、上述した実施例と異なるその他の実施例について説明する。
（意味解析処理を行なう実施例）
上述した実施例では、入力文書に対して形態素解析を実行してさらに構文解析を行い、この構文解析結果に基づいてパターンマッチ解析を実行する構成としたが、構文解析の代わり、あるいは構文解析に加えて意味解析処理を実行し、意味解析結果に基づいてパターンマッチを実行する構成としてもよい。日本語は、用語に助詞を使わず連結する傾向があるものの、
例えば、
「コーシーの積分公式」
のように「の」などの助詞を含む名詞句を一つの用語として扱いたい場合もある。このとき、
「コーシーによる積分公式」
も意味がほぼ等価であるので、どちらも同じ辞書登録項目が検出されるべきである。
意味解析処理結果に基づくパターンマッチを行なうことで、
「コーシーの積分公式」
「コーシーによる積分公式」
これらの異なる文書に対応する項目として同一の辞書登録項目を抽出することができる。
【０１１９】
構文解析では、前述したように、自然言語文を受け取り、文法規則に基づいて単語（文節）間の係り受け関係を決定する処理を行なう。一方、意味解析では、単語（文節）間の係り受け関係に基づいて文中の格関係を決定する処理を行なうことができる。ここで言う格関係とは、文を構成する各要素が持つ、主語（ＳＵＢＪ）、目的語（ＯＢＪ）といった文法上の役割のことを指す。また、文の時制や様相、話法などを判定する処理を意味解析が含む場合もある。
【０１２０】
構文意味解析システム例については、例えば、「増市，大熊，"Ｌｅｘｉｃａｌ  Ｆｕｎｃｔｉｏｎａｌ  Ｇｒａｍｍａｒに基づく実用的な日本語解析システムの構築"，自然言語処理，Ｖｏｌ．１０，Ｎｏ．２，ｐｐ．７９−１０９（２００３）」にＬＦＧに基づく自然言語処理システムの詳細が記述されている。
【０１２１】
図１６に、Ｌｅｘｉｃａｌ Ｆｕｎｃｔｉｏｎａｌ Ｇｒａｍｍａｒ （ＬＦＧ）ＬＦＧに基づく自然言語処理を実行する構文意味解析システム３００の構成を示す。形態素解析部３０２は、日本語など特定の言語に関する形態素ルール３０２Ａと形態素辞書３０２Ｂを持ち、入力文を意味的最小単位である形態素に分節して品詞の認定処理を行なう。例えば、「私の娘は英語を話します。」という文が入力された場合、形態素解析結果として、「私｛Ｎｏｕｎ｝ の｛ｕｐ｝ 娘｛Ｎｏｕｎ｝ は｛ｕｐ｝ 英語｛Ｎｏｕｎ｝ を｛ｕｐ｝ 話す｛Ｖｅｒｂ１｝｛ｔｒ｝ ます｛ｊｐ｝ 。｛ｐｔ｝」が出力される。
【０１２２】
このような形態素解析結果は、次いで、構文・意味解析部３０３に入力される。構文・意味解析部３０３は、文法ルール３０３Ａや結合価辞書３０３Ｂなどの辞書を持ち、文法ルールなどに基づく句構造の解析や、文中の語の語義や語と語の間の意味関係などに基づいて文が伝える意味を表現する意味構造の解析を行なう（結合価辞書は動詞と主語などの文中の他の構成要素との関係を記述したものであり、述部とそれに係る語の意味関係を抽出することができる）。そして、構文解析した結果として、単語や形態素などからなる文章の句構造を木構造として表した"ｃ−ｓｔｒｕｃｔｕｒｅ（ｃｏｎｓｔｉｔｕｅｎｔ ｓｔｒｕｃｔｕｒｅ）"と、主語、目的語などの格構造に基づいて入力文を疑問文、過去形、丁寧文など意味的・機能的に解析した結果として"ｆ−ｓｔｒｕｃｔｕｒｅ（ｆｕｎｃｔｉｏｎａｌ ｓｔｒｕｃｔｕｒｅ）"を出力する。
【０１２３】
すなわち、ｃ−ｓｔｒｕｃｔｕｒｅは、自然言語文の構造を、文の形態素を上位のフレーズへとまとめあげることによって木構造として表現するものであり、ｆ−ｓｔｒｕｃｔｕｒｅは、文法機能の概念に基づき、文の格構造、時制、様相、話法などの意味情報を属性―属性値のマトリックス構造で表現するものである。
【０１２４】
本発明の文書解析装置においても、意味解析処理手段として、このＬＦＧに基づく自然言語処理システムを適用することが可能である。ＬＦＧを用いた文書解析処理を、以下の２つの文書に対して実行した処理例について説明する。
「コーシーの積分公式」
「コーシーによる積分公式」
【０１２５】
「コーシーの積分公式」
に対するＬＦＧによる解析結果は、以下のようになる。
［ＰＲＥＤ'公式'
ＡＤＪＵＮＣＴ｛［ＰＲＥＤ'コーシー'］｝
ＭＯＤ        ｛［ＰＲＥＤ  '積分'］｝］
【０１２６】
一方、
「コーシーによる積分公式」
に対するＬＦＧによる解析結果は、以下のようになる。
［ＰＲＥＤ'公式'
ＡＤＪＵＮＣＴ  ｛［ＰＲＥＤ  'コーシー'］｝
ＭＯＤ          ｛［ＰＲＥＤ  '積分'］｝］
【０１２７】
これらは、ＬＦＧ理論に基づいてｆ−ｓｔｒｕｃｔｕｒｅとよばれる意味情報を表したものである。ここで、ＰＲＥＤはその要素の主辞であり、ＭＯＤは主辞と合わせて複合名詞を構成する要素を表す属性、ＡＤＪＵＮＣＴは文の主要な構成要素ではない修飾要素を表す属性である。ＬＦＧ理論によると表現は異なるが意味的に等価なテキストは同じあるいは類似のｆ−ｓｔｒｕｃｔｕｒｅになることが知られている。実際、これら２つの解析結果は同一である。これらの意味解析結果を適用して、構文パターンマッチを取りやすいように項の集まりで書き直すと以下のようになる。
＊意味解析結果
ＰＲＥＤ（１，'公式'），
ＡＤＪＵＮＣＴ（１，２），
ＰＲＥＤ（２，'コーシー'），
ＭＯＤ（１，３），
ＰＲＥＤ（３，'積分'）．
【０１２８】
上記データ中、
ＰＲＥＤ（ｎ，'ａｂｃ'），
は、ラベル（ノード）ナンバーｎの要素がａｂｃであること、
ＡＤＪＵＮＣＴ（１，２），
は、ラベル（ノード）ナンバー１と２の要素が修飾関係にあること、
ＭＯＤ（１，３），
は、ラベル（ノード）ナンバー１と３の複合名詞を構成する関係にあること、
を意味している。
【０１２９】
ここで、構文パターンとして、図１７に示すルールメ、すなわち、以下のようなルールを用意する。
ＰＲＥＤ（Ｎｏｄｅ１，'公式'），ＡＤＪＵＮＣＴ（Ｎｏｄｅ１，Ｎｏｄｅ２），ＰＲＥＤ（Ｎｏｄｅ２，'コーシー'），ＭＯＤ（Ｎｏｄｅ１，Ｎｏｄｅ３），ＰＲＥＤ（Ｎｏｄｅ３，'積分'）→ａｓｓｅｒｔ（ｆｏｒｍｕｌａ（Ｎｏｄｅ１，１））．
【０１３０】
矢印の前の部分が条件節であり、矢印の後が出力である。条件節の内容は、先に説明した
＊意味解析結果
ＰＲＥＤ（１，'公式'），
ＡＤＪＵＮＣＴ（１，２），
ＰＲＥＤ（２，'コーシー'），
ＭＯＤ（１，３），
ＰＲＥＤ（３，'積分'）．
に対応するものであり、出力として、
ｆｏｒｍｕｌａ（Ｎｏｄｅ１，１））．
が出力される。
これは、先の実施例と同様、
種類＝ｆｏｒｍｕｌａ、
見出しＩＤ＝１
をノード１に対応するアノテーションとして設定することを意味している。
【０１３１】
このように意味解析を行なうことで、構文上は異なる文書であっても、同一の意味を持つ文書に対しては、同一の概念、すなわち辞書登録データを対応付けることが可能となる。すなわち、意味解析処理では、同じ意味の表現は類似した解析結果になるので、意味的な類似性という意味でマッチングの精度が高くなる。例えば、上述したように、「コーシーの積分公式を用いて・・・」と「コーシーによる積分公式を用いて・・・」を同じ概念として扱うことができる。
【０１３２】
（構文収束処理を行なう処理例）
次に、構文収束処理を行なって文書解析を実行する処理例について説明する。図１８に、構文収束部を持つ文書解析装置の構成例を示す。図１８に示す構成は、先の実施例で説明した図２に示す構成に、構文収束部４０１を追加した点のみが異なる。
【０１３３】
構文収束部４０１は、構文解析部１０２の解析結果としての構文情報を入力し、入力構文情報から要素を変更する。構文収束部４０１の実行する具体的処理例について説明する。例えば、解析対象文書として、
「急性のＣ型肝炎」
が入力され解析を実行する例について説明する。
【０１３４】
この入力文書、「急性のＣ型肝炎」に対する構文解析の結果は、図１９（ａ）に示すようになる。すなわち、「急性のＣ型肝炎」を係りうけ解析した結果の構文情報は図１９（ａ）に示すようになる。
【０１３５】
ここで、構文パターンマッチの初期段階で「急性」という語に修飾語（ｑｕａｌｉｆｉｅｒ）とアノテーションをつけるとする。構文収束部４０１は、意味は同じであるが構文が異なる場合に一つの構文に収束させる。例えば、ｑｕａｌｉｆｉｅｒの直後に「の」のノードが付加されている場合にその「の」ノードを削除する機能を持つ。これは、修飾語の後ろに「の」がある場合と無い場合で意味は変わらないので、「の」の無い構文に統一していることになる。この構文収束処理後の構文情報は、図１９（ｂ）に示すようになる。
【０１３６】
図１９（ｂ）に示す構文情報は、「急性Ｃ型肝炎」の構文情報と同じである。このように、段階的な構文パターンマッチと構文収束器を組み合わせ、アノテーションを手掛かりにすることにより「佐藤の電気店」と「佐藤電気店」を同一視するといった誤り（前者は佐藤氏が経営している電気店であり、後者は店名を表す）を犯すことなく（佐藤は人名であり、ｑｕａｌｉｆｉｅｒでは無いとすると）、精度良く辞書の項目と対応を取ることができる。
【０１３７】
このように、構文収束処理を行なうことで、「急性のＣ型肝炎」のように構文情報が異なる場合でも、辞書項目と対応ができる。しかも、「佐藤の電気店」と「佐藤電気店」を区別するような、細かい制御を行なうことができる。
【０１３８】
（属性情報を出力として設定した処理例）
上述した実施例では、辞書に登録された登録語など、解析文書に対応する概念を文書対応情報として出力する構成としたが、文書の属性情報も出力情報に加えた拡張例について説明する。
【０１３９】
例えば１つの辞書登録語に属性を対応付ける。属性を格納する項目をスロットとする。例えば、
辞書登録語［自動車］に対するスロットとして、
型式属性スロット：セダン、ワゴン、トラック・・・、
色属性スロット：白、赤、青・・・、
などである。
これらの属性を構文パターンマッチ処理によって得られる辞書登録データとしての登録語に併せて出力する。
【０１４０】
具体例について説明する。例えば、
「肝炎」の概念に対応する属性を示すスロットとして、
ウィルスタイプ（ｖｉｒｕｓ＿ｔｙｐｅ）属性スロットを考える。
このとき、「Ｃ型肝炎」という概念を示す辞書登録語は、
「肝炎」
であって、さらに、この辞書登録語の
ウィルスタイプ（ｖｉｒｕｓ＿ｔｙｐｅ）属性スロットに「Ｃ型」が設定されたものとして定義されるとする。
【０１４１】
この属性出力を行なうために適用する構文パターン集の例を図２０に示す。構文パターン集１は、以下のルールを有する。
［構文パターン集１］
（１ａ）ｌａｂｅｌ（Ｎｏｄｅ１，"肝炎"）→ａｓｓｅｒｔ（ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１，［］））．
（１ｂ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｂ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，２））．
（１ｃ）ｌａｂｅｌ（Ｎｏｄｅ１，"Ｃ型"）→ａｓｓｅｒｔ（ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ１，３））．
【０１４２】
また、構文パターン集２は、以下のルールを持つ。
［構文パターン集２］
（２ａ）ｌａｂｅｌ０：ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１，Ｓｌｏｔ），ｐａｒｅｎｔ（Ｎｏｄｅ１，Ｎｏｄｅ２），ｖｉｒｕｓ＿ｔｙｐｅ（Ｎｏｄｅ２，Ｔｙｐｅ）
→ｍｏｄｉｆｙ（ｌａｂｅｌ０，ｄｉｓｅａｓｅ（Ｎｏｄｅ１，１，［ｖｉｒｕｓ＿ｔｙｐｅ（Ｔｙｐｅ）｜Ｓｌｏｔ］）．
【０１４３】
上記構文パターン集２の→の後に記載した［ｍｏｄｉｆｙ操作］は、ラベル０（ｌａｂｅｌ０）で対応付けられた項（条件節の第１項でマッチした項）を修正することを意味する。このパターンを用いることで、
「Ｃ型肝炎」というテキストが入力されると、
出力として、
ｄｉｓｅａｓｅ（ＸＸＸ，１，［ｖｉｒｕｓ＿ｔｙｐｅ（３）］）
というアノテーションを得ることができる。
これは、病気概念１（つまり肝炎）であって、ｖｉｒｕｓ＿ｔｙｐｅ属性の値が３（Ｃ型）という意味であるので、属性情報つきでオントロジー上の概念と対応を取ることができる。
【０１４４】
このように、構文パターン集を、属性出力を行なう構成として設定することで、解析対象文書に対応する属性を出力することが可能となり、オントロジーの概念について見出しラベルの一致だけではなく、属性を示すスロット（ｓｌｏｔ）値など、付加的な情報を出力させる構成が可能となる。
【０１４５】
最後に、上述した処理を実行する文書解析装置を構成する情報処理装置のハードウェア構成例について、図２１を参照して説明する。ＣＰＵ（Central Processing Unit）５０１は、ＯＳ（Operating System)に対応する処理や、上述の実施例において説明し構文解析処理、構文パターンマッチ解析処理などを実行する。これらの処理は、各情報処理装置のＲＯＭ、ハードディスクなどのデータ記憶部に格納されたコンピュータ・プログラムに従って実行される。
【０１４６】
ＲＯＭ（Read Only Memory）５０２は、ＣＰＵ５０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Random Access Memory）５０３は、ＣＰＵ５０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス５０４により相互に接続されている。
【０１４７】
ホストバス５０４は、ブリッジ５０５を介して、ＰＣＩ(Peripheral Component Interconnect/Interface)バスなどの外部バス５０６に接続されている。
【０１４８】
キーボード５０８、ポインティングデバイス５０９は、ユーザにより操作される入力デバイスである。ディスプレイ５１０は、液晶表示装置またはＣＲＴ（Cathode Ray Tube）などから成り、各種情報をテキストやイメージで表示する。
【０１４９】
ＨＤＤ（Hard Disk Drive）５１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ５０１によって実行するプログラムや情報を記録または再生させる。ハードディスクは、例えば、構文パターン集、辞書などの格納手段などに利用され、さらに、データ処理プログラム等、各種コンピュータ・プログラムが格納される。
【０１５０】
ドライブ５１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体５２１に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース５０７、外部バス５０６、ブリッジ５０５、およびホストバス５０４を介して接続されているＲＡＭ５０３に供給する。
【０１５１】
接続ポート５１４は、外部接続機器５２２を接続するポートであり、ＵＳＢ，ＩＥＥＥ１３９４等の接続部を持つ。接続ポート５１４は、インタフェース５０７、および外部バス５０６、ブリッジ５０５、ホストバス５０４等を介してＣＰＵ５０１等に接続されている。通信部５１５は、ネットワークに接続され、例えば外部の辞書データベースとの通信を実行する。
【０１５２】
なお、図２１に示す文書解析装置のハードウェア構成例は、ＰＣを適用して構成した装置の一例であり、本発明の文書解析装置は、図２１に示す構成に限らず、上述した実施例において説明した処理を実行可能な構成であればよい。
【０１５３】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１５４】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１５５】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１５６】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１５７】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１５８】
以上、説明したように、本発明の構成によれば、構文パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する構成とした。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。また、各構文パターン集に登録するルールは、各構文パターン集毎に限定されたルール数となり、登録ルール数が削減され、ルールの生成コストも低減される。
【図面の簡単な説明】
【０１５９】
【図１】本発明の文書解析装置の実行する処理の概要について説明する図である。
【図２】本発明の一実施形態に係る文書解析装置の構成について説明する図である。
【図３】本発明の一実施形態に係る文書解析装置の実行する構文解析処理例について説明する図である。
【図４】本発明の一実施形態に係る文書解析装置の実行する構文解析処理によって得られる情報ついて説明する図である。
【図５】本発明の一実施形態に係る文書解析装置の適用する辞書のデータ構成例について説明する図である。
【図６】本発明の一実施形態に係る文書解析装置の適用する構文パターン集の構成例について説明する図である。
【図７】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理例について説明する図である。
【図８】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理の処理結果データ例について説明する図である。
【図９】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理例について説明する図である。
【図１０】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理の処理結果データ例について説明する図である。
【図１１】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理例について説明する図である。
【図１２】本発明の一実施形態に係る文書解析装置の実行する構文パターンマッチ解析処理の処理結果データ例について説明する図である。
【図１３】本発明の一実施形態に係る文書解析装置の実行する処理シーケンスについて説明するフローチャートを示す図である。
【図１４】本発明の一実施形態に係る文書解析装置の適用する辞書のデータ構成例について説明する図である。
【図１５】本発明の一実施形態に係る文書解析装置の適用する構文パターン集の構成例について説明する図である。
【図１６】本発明の一実施形態に係る文書解析装置の実行する意味解析処理の処理構成例について説明する図である。
【図１７】本発明の一実施形態に係る文書解析装置の適用する構文パターンの構成例について説明する図である。
【図１８】本発明の一実施形態に係る文書解析装置の構成例について説明する図である。
【図１９】本発明の一実施形態に係る文書解析装置において実行する構文収束処理の処理例について説明する図である。
【図２０】本発明の一実施形態に係る文書解析装置の適用する構文パターンの構成例について説明する図である。
【図２１】本発明の一実施形態に係る文書解析装置のハードウェア構成例について説明する図である。
【符号の説明】
【０１６０】
１０  文書解析装置
２０  辞書データベース
１００  文書解析装置
１０１  形態素解析部
１０２  構文解析部
１０３  構文パターン選択部
１０４  構文パターンマッチ解析部
１１０  構文パターン集記憶部
１２０  辞書データベース
３００  構文意味解析システム
３０２  形態素解析部
３０２Ａ  形態素ルール
３０２Ｂ  形態素辞書
３０３  構文意味解析部
３０３Ａ  文法ルール
３０３Ｂ  結合価辞書
４０１  構文収束部
５０１  ＣＰＵ(Central Processing Unit)
５０２  ＲＯＭ（Read-Only-Memory）
５０３  ＲＡＭ（Random Access Memory）
５０４  ホストバス
５０５  ブリッジ
５０６  外部バス
５０７  インタフェース
５０８  キーボード
５０９  ポインティングデバイス
５１０  ディスプレイ
５１１  ＨＤＤ（Hard Disk Drive）
５１２  ドライブ
５１４  接続ポート
５１５  通信部
５２１  リムーバブル記録媒体
５２２  外部接続機器
【図１】
2008077512.tif 000003
【図２】
2008077512.tif 000004
【図３】
2008077512.tif 000005
【図４】
2008077512.tif 000006
【図５】
2008077512.tif 000007
【図６】
2008077512.tif 000008
【図７】
2008077512.tif 000009
【図８】
2008077512.tif 000010
【図９】
2008077512.tif 000011
【図１０】
2008077512.tif 000012
【図１１】
2008077512.tif 000013
【図１２】
2008077512.tif 000014
【図１３】
2008077512.tif 000015
【図１４】
2008077512.tif 000016
【図１５】
2008077512.tif 000017
【図１６】
2008077512.tif 000018
【図１７】
2008077512.tif 000019
【図１８】
2008077512.tif 000020
【図１９】
2008077512.tif 000021
【図２０】
2008077512.tif 000022
【図２１】
2008077512.tif 000023