JP2008077512A - 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム - Google Patents
文書解析装置、および文書解析方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2008077512A JP2008077512A JP2006257915A JP2006257915A JP2008077512A JP 2008077512 A JP2008077512 A JP 2008077512A JP 2006257915 A JP2006257915 A JP 2006257915A JP 2006257915 A JP2006257915 A JP 2006257915A JP 2008077512 A JP2008077512 A JP 2008077512A
- Authority
- JP
- Japan
- Prior art keywords
- analysis
- syntax
- document
- syntax pattern
- collection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】効率的かつ正確なパターンマッチによる文書解析を実行する装置および方法を実現する。
【解決手段】パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。
【選択図】図2
【解決手段】パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。
【選択図】図2
Description
本発明は、文書解析装置、および文書解析方法、並びにコンピュータ・プログラムに関する。さらに詳細には、自然言語で表現されたテキストの解析を実行して、特定の意味あるいは概念が含まれているかなどの判定処理を行なう文書解析装置、および文書解析方法、並びにコンピュータ・プログラムに関する。
文書が何をテーマにした文書であるのか、どんな内容を含む文書であるのかといった文書解析は、例えば文書データベースの検索に適用するキーワード設定等に必要となる技術である。
具体的には、例えばネットワークを介したデータ検索において、ユーザが必要とする情報を含む文書を提供するためには、データベースあるいはネットワーク上の各ドキュメント(文書)が何をテーマにした文書であるのか、どんな内容を含む文書であるのかを正確に分類することが必要となる。このような文書解析では、多くの場合、文書に含まれる単語の持つ意味を解析することになる。しかし、単語があいまいな表現である場合や、多様な意味を含む表現である場合、正確な解析が困難になるという問題がある。
このような文書分類に関する従来技術には、例えば以下のようなものがある。特許文献1(特開平5−233620)には、解析対象の文書に含まれる「振り込み」「振込」などの表記の揺れに対応して単語の解析を行なう手法を開示している。すなわち、単語ごとに意味的あるいは文法的に正しいか否かをチェックし、揺らぎが原因で正しくない場合に正しい表記に変換して解析を行なうシステムである。
しかしながら、この手法では、単語ごとに表記ゆれのルールを用意する必要があるという問題がある。また多くの単語が連接した複合語の表記ゆれは多数となる傾向があり、これらの表記ゆれに対応したルールを用意することは膨大な作業となるという問題がある。
また、特許文献2(特開平7−73200)は、テキストの形態素解析を実行し、あらかじめ定義した単語パターン(品詞名の正規表現)に一致する連続部分をキーワードとして出力する構成を開示している。
この手法は、品詞を含んだ単語パターンに基づく解析であり、上記の表記ゆれに基づく解析より、パターン数を現象させた解析が可能となることが予測されるが、複合名詞の順番の入れ替えなどに対応させるルールの構築に手間がかかるという問題がある。
その他、特許文献3(特開平9−237277)は、解析対象文書に含まれる複合名詞に対して構造解析手法を適用するシステムを開示している。例えば、文書の近傍に出現する単語間の関係が予め指定されたものであるか否かを判定して、予め指定されたものである場合に、関係付けを行なって解析を行なうシステムである。さらに、特許文献4(特開2002−297592)は、解析対象文書に含まれるテキストの係り受け解析を行って文構造を取得し、事例文の文構造とマッチングをとることによる解析処理を開示している。
特開平5−233620号公報
特開平7−73200号公報
特開平9−237277号公報
特開2002−297592号公報
本発明は、自然言語で表現された文書の解析を行い、文書に含まれる意味や概念を判定する構成において、予め必要とするルールやデータを削減し、正確な文書解析を効率的に実行可能とした文書解析装置、および文書解析方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
文書解析処理を実行する文書解析装置であり、
入力文書の構文解析処理を実行する構文解析部と、
構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納した構文パターン集記憶部と、
前記構文解析部の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析部とを有し、
前記構文パターン集記憶部は、
パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集を記憶し、
前記構文パターンマッチ解析部は、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする文書解析装置にある。
文書解析処理を実行する文書解析装置であり、
入力文書の構文解析処理を実行する構文解析部と、
構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納した構文パターン集記憶部と、
前記構文解析部の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析部とを有し、
前記構文パターン集記憶部は、
パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集を記憶し、
前記構文パターンマッチ解析部は、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする文書解析装置にある。
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、前記構文解析部の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、k番目とk+1番目に適用する構文パターン集を、k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数、上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記構文パターン集は、パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、前記構文パターンマッチ解析部は、構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記構文パターンマッチ解析部は、構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、解析対象の文書の形態素解析処理を実行する形態素解析部を有し、前記構文解析部は、前記形態素解析部の解析結果に基づいて構文解析を実行する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、解析対象の文書の意味解析処理を実行する意味解析処理部を有し、前記構文パターンマッチ解析部は、前記意味解析処理部の意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記文書解析装置は、さらに、前記構文解析部の解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束部を有し、前記構文パターンマッチ解析部は、前記構文収束部の処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする。
さらに、本発明の文書解析装置の一実施態様において、前記構文パターン集は、出力として属性情報を出力するルールを規定した構文パターンを有し、前記構文パターンマッチ解析部は、前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力する構成であることを特徴とする。
さらに、本発明の第2の側面は、
文書解析装置において、文書解析処理を実行する文書解析方法であり、
構文解析部において、入力文書の構文解析処理を実行する構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップは、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行し、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする文書解析方法にある。
文書解析装置において、文書解析処理を実行する文書解析方法であり、
構文解析部において、入力文書の構文解析処理を実行する構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップは、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行し、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする文書解析方法にある。
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、前記構文解析ステップにおいて生成した構文情報に、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行するステップであることを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、k番目とk+1番目に適用する構文パターン集を、k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数、上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行するステップであることを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記構文パターン集は、パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、前記構文パターンマッチ解析ステップは、構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力することを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記構文パターンマッチ解析ステップは、構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力するステップであることを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、形態素解析部において、解析対象の文書の形態素解析処理を実行する形態素解析ステップを有し、前記構文解析ステップは、前記形態素解析ステップの解析結果に基づいて構文解析を実行するステップであることを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、意味解析処理部おいて、解析対象の文書の意味解析処理を実行する意味解析処理ステップを有し、前記構文パターンマッチ解析ステップは、前記意味解析処理ステップの意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記文書解析方法は、さらに、構文収束部において、前記構文解析ステップの解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束ステップを有し、前記構文パターンマッチ解析ステップは、前記構文収束ステップの処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行するステップであることを特徴とする。
さらに、本発明の文書解析方法の一実施態様において、前記構文パターン集は、出力として属性情報を出力するルールを規定した構文パターンを有し、前記構文パターンマッチ解析ステップは、前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力することを特徴とする。
さらに、本発明の第3の側面は、
文書解析装置において、文書解析処理を実行させるコンピュータ・プログラムであり、
構文解析部において、入力文書の構文解析処理を実行させる構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行させる構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップにおいては、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行させ、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行させることを特徴とするコンピュータ・プログラムにある。
文書解析装置において、文書解析処理を実行させるコンピュータ・プログラムであり、
構文解析部において、入力文書の構文解析処理を実行させる構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行させる構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップにおいては、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行させ、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行させることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータシステムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータシステム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、構文パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する構成とした。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。また、各構文パターン集に登録するルールは、各構文パターン集毎に限定されたルール数となり、登録ルール数が削減され、ルールの生成コストも低減される。
以下、図面を参照しながら本発明の実施形態に係る文書解析装置、および文書解析方法、並びにコンピュータ・プログラムの詳細について説明する。
まず、図1を参照して、本発明の文書解析装置の実行する処理の概要について説明する。図1は、本発明の文書解析装置の実行する処理を説明する図である。本発明の文書解析装置10は、様々な文書(ドキュメント)を入力し、文書中に含まれる自然言語で表現された単語や、複合語(複数の単語からなる語)を解析し、例えば、あらかじめ用意された登録語と対応付ける処理を実行する。
図1に示す例では、辞書20は、多数の語を登録語として記録している登録語データベースである。本発明の文書解析装置10は、様々な文書(図に示す(a)〜(e)を入力して、入力文書に含まれるテキストの解析を実行して、辞書20に登録された登録語に対応する内容を含む文書であると判定した場合、その登録語を、その文書対応の登録語として出力((A)〜(E))するものである。
例えば、
入力文書(a)に対する処理
入力文書(a)に、「急性肝炎」という語が含まれている場合、文書解析装置10は、辞書20の登録語とのマッチング処理を含む文書解析処理を実行して、登録語[肝炎]、[急性肝炎]をこの文書(a)の内容を反映する概念に対応する語として出力する。この出力が(出力A)である。
入力文書(a)に対する処理
入力文書(a)に、「急性肝炎」という語が含まれている場合、文書解析装置10は、辞書20の登録語とのマッチング処理を含む文書解析処理を実行して、登録語[肝炎]、[急性肝炎]をこの文書(a)の内容を反映する概念に対応する語として出力する。この出力が(出力A)である。
入力文書(b)に対する処理
入力文書(b)は「急性B型肝炎」という語を含む文書であり、文書解析装置10は、この文書(b)の解析処理により、入力文書(b)の内容を反映する登録語として、(出力B)[肝炎]、[急性肝炎]、[B型肝炎]、[急性B型肝炎]を出力する。
入力文書(c)に対する処理
入力文書(c)は「急性C型肝炎」という語を含む文書であり、文書解析装置10は、この文書(c)の解析処理により、入力文書(c)の内容を反映する登録語として、(出力C)[肝炎]、[急性肝炎]、[C型肝炎]、[急性C型肝炎]を出力する。
入力文書(b)は「急性B型肝炎」という語を含む文書であり、文書解析装置10は、この文書(b)の解析処理により、入力文書(b)の内容を反映する登録語として、(出力B)[肝炎]、[急性肝炎]、[B型肝炎]、[急性B型肝炎]を出力する。
入力文書(c)に対する処理
入力文書(c)は「急性C型肝炎」という語を含む文書であり、文書解析装置10は、この文書(c)の解析処理により、入力文書(c)の内容を反映する登録語として、(出力C)[肝炎]、[急性肝炎]、[C型肝炎]、[急性C型肝炎]を出力する。
入力文書(d)に対する処理
入力文書(d)は「C型急性肝炎」という語を含む文書であり、文書解析装置10は、この文書(d)の解析処理により、入力文書(d)の内容を反映する登録語として、(出力D)[肝炎]、[急性肝炎]、[C型肝炎]、[急性C型肝炎]を出力する。
入力文書(e)に対する処理
入力文書(e)は「急性型劇症肝炎」という語を含む文書であり、文書解析装置10は、この文書(e)の解析処理により、入力文書(e)の内容を反映する登録語として、(出力E)[肝炎]、[劇症肝炎]を出力する。
入力文書(d)は「C型急性肝炎」という語を含む文書であり、文書解析装置10は、この文書(d)の解析処理により、入力文書(d)の内容を反映する登録語として、(出力D)[肝炎]、[急性肝炎]、[C型肝炎]、[急性C型肝炎]を出力する。
入力文書(e)に対する処理
入力文書(e)は「急性型劇症肝炎」という語を含む文書であり、文書解析装置10は、この文書(e)の解析処理により、入力文書(e)の内容を反映する登録語として、(出力E)[肝炎]、[劇症肝炎]を出力する。
図1に示す入力文書(a)〜(e)に対する処理をまとめて記載すると、以下のようになる。
入力文書(抽出登録語)
の形式で示す。
(a)急性肝炎(肝炎,急性肝炎)
(b)急性B型肝炎(肝炎,急性肝炎,B型肝炎,急性B型肝炎)
(c)急性C型肝炎(肝炎,急性肝炎,C型肝炎,急性C型肝炎)
(d)C型急性肝炎(肝炎,急性肝炎,C型肝炎,急性C型肝炎)
(e)急性型劇症肝炎(肝炎,劇症肝炎)
入力文書(抽出登録語)
の形式で示す。
(a)急性肝炎(肝炎,急性肝炎)
(b)急性B型肝炎(肝炎,急性肝炎,B型肝炎,急性B型肝炎)
(c)急性C型肝炎(肝炎,急性肝炎,C型肝炎,急性C型肝炎)
(d)C型急性肝炎(肝炎,急性肝炎,C型肝炎,急性C型肝炎)
(e)急性型劇症肝炎(肝炎,劇症肝炎)
なお、図1に示す例では、入力文書の解析を実行して辞書データベース20に登録された登録語を出力する構成例を示しているが、出力は、辞書の登録語に限らず、類似語の登録情報を持つ様々なシソーラスやオントロジーなどの登録情報を出力する構成としてもよく、あるいは、文書のカテゴリ情報や分類情報を出力とする設定としてもよい。さらに属性情報を出力する構成としてもよい。
本発明の文書解析処理においては、表現が異なるが意味的に等価あるいは内包している単語(特に複合語)に対して同じ見出し語(辞書上の登録データ)を対応付ける処理を行なう。
例えば、入力文書例(e)は、「急性型劇症肝炎」という語を含む文書であるが、
「急性肝炎」と、
「劇症肝炎」とは、
医学上、異なる肝炎であると分類される。入力文書(e)には、「急性型劇症肝炎」を含み、この複合語解析を行なうと、「急性肝炎」も1つの対応登録語とされる可能性があるが、本発明の処理によれば、このような誤った出力はなされず、正しい対応登録語である(出力E)[肝炎]、[劇症肝炎]を出力することができる。
「急性肝炎」と、
「劇症肝炎」とは、
医学上、異なる肝炎であると分類される。入力文書(e)には、「急性型劇症肝炎」を含み、この複合語解析を行なうと、「急性肝炎」も1つの対応登録語とされる可能性があるが、本発明の処理によれば、このような誤った出力はなされず、正しい対応登録語である(出力E)[肝炎]、[劇症肝炎]を出力することができる。
なお、入力文書は、例えば、
「この検査結果によると、急性C型肝炎と診断できます。」
このような文書となるのが一般的であるが、文書解析装置10は、このようなテキスト中に現れた単語や複合語を解析して、適切な対応付け、すなわち単語や複合語の出現場所、対応する辞書登録項目を出力することができる。
「この検査結果によると、急性C型肝炎と診断できます。」
このような文書となるのが一般的であるが、文書解析装置10は、このようなテキスト中に現れた単語や複合語を解析して、適切な対応付け、すなわち単語や複合語の出現場所、対応する辞書登録項目を出力することができる。
このような文書解析処理、すなわち文書中の出現語と、登録語との対応を取る一般的な手法としては、
手法1.単語出現の集合でマッチを取る
手法2.すべてのありえる表現を用意しておき、それらとのマッチをとる
これらの2つの手法が知られている。
手法1.単語出現の集合でマッチを取る
手法2.すべてのありえる表現を用意しておき、それらとのマッチをとる
これらの2つの手法が知られている。
手法1は、例えば、図1に示す入力文書(e)の場合、
出現語:「急性型劇症肝炎」であり、
単語出現の集合は{急性、型、劇症、肝炎}となる。
この場合、単語出現の集合に、登録語:「急性肝炎」の単語集合{急性、肝炎}を含んでいるので、
登録語:「急性肝炎」も出現語:「急性型劇症肝炎」に対応する登録語として出力
されてしまう。
出現語:「急性型劇症肝炎」であり、
単語出現の集合は{急性、型、劇症、肝炎}となる。
この場合、単語出現の集合に、登録語:「急性肝炎」の単語集合{急性、肝炎}を含んでいるので、
登録語:「急性肝炎」も出現語:「急性型劇症肝炎」に対応する登録語として出力
されてしまう。
上記手法2は、すべてのありえる表現を用意することが必要であり、すべてのありえる表現を登録情報としなければならず、登録情報の生成の困難性が発生する。また、登録データベースが大きくなり、検索処理に時間を要するという問題もある。
例えば、図1に示す入力文書例(a)〜(d)に、登録語「急性肝炎」の項目をマッチさせるには、それぞれに対応する4つの表現(「急性肝炎」、「急性B型肝炎」、「急性C型肝炎」、「C型急性肝炎」)を用意しなければならない。複合語の単語要素が多くなると、組み合わせの数(指数関数的)だけ表現を用意しなければならず、手間がかかる上に、計算機のリソース(計算時間、メモリ量)を多量に消費するという問題がある。
この手法2の改善策として、正規表現などの自由度のあるマッチ手段を取り入れることも行なわれている。例えば、この例の場合、
「急性肝炎」、
「急性*型肝炎」、
「*型急性肝炎」
上記パターンのように[*]の部分を任意の語である場合にマッチすると判定する手法である。しかし、この手法においても、パターン記述の労力が多大になる上に、パターンマッチのための計算機のリソース(計算時間、メモリ量)消費が大きくなるという問題がある。
「急性肝炎」、
「急性*型肝炎」、
「*型急性肝炎」
上記パターンのように[*]の部分を任意の語である場合にマッチすると判定する手法である。しかし、この手法においても、パターン記述の労力が多大になる上に、パターンマッチのための計算機のリソース(計算時間、メモリ量)消費が大きくなるという問題がある。
本発明の一実施例の文書解析処理では、構文的なパターンマッチ処理を段階的に実施することで、解析対象文書に出現する出現語と、辞書に登録された登録語とのマッチ検証を行なうためのルールの数を少なく押さえて、効率的な文書解析を行なう。
さらに、本発明の一実施例の文書解析処理では、構文解析を利用することで、意味的に等価な表現を汎用的に扱い、構文的なパターンマッチを段階的に実施することで、マッチ検証を行なうためのルールの数を少なく押さえて効率的な文書解析を実現する。特に日本語の場合は、同じ係り先をもつ句同士の順番を入れ替えても意味が変わらないことが多く、構文解析を利用して意味的に等価な表現を汎用的に適用することで、マッチ検証用のルール数を低減させる効果が大となる。
図2に本発明の一実施例に係る文書解析装置の構成を示す。図2に示すように、本発明の文書解析装置100は、形態素解析部101、構文解析部102、構文パターン選択部103、構文パターンマッチ解析部104、構文パターン情報記憶部110、辞書データベース120を有する。辞書データベース120は、登録語を登録したデータベースであり、単純な登録語の辞書のみならず、類義語分類情報を含むシソーラスやオントロジーなども適用可能である。なお、図2には辞書データベース120を、文書解析装置100の構成要素として示しているが、辞書データベース120を、文書解析装置100内の構成要素とすることなく、例えば、ネットワーク接続されたデータベースを利用する構成としてもよい。
形態素解析部101、構文解析部102は、解析対象となる文書を入力し、一般的な自然言語処理に従った形態素解析、および構文解析を実行する。日本語や英語を始めとする各種の言語で記述される自然言語は、本来抽象的であいまい性が高い性質を持つが、文章を数学的に取り扱うことにより、コンピュータ処理を行なうことができる。この結果、機械翻訳や対話システム、検索システム、質問応答システムなど、自動化処理により自然言語に関するさまざまなアプリケーション/サービスが実現される。かかる自然言語処理は一般に、形態素解析、構文解析という各処理フェーズに区分される。
形態素解析部101は、解析対象となる文書を構成する文を意味的最小単位である形態素(morpheme)に分節して品詞の認定処理を行なう。
構文解析部102は、文法規則などを基に句構造などの文の構造を解析する。文法規則が木構造であることから、構文解析結果は一般に個々の形態素が係り受け関係などを基にして接合された木構造となる。構文解析は、自然言語処理の分野において、対話システム、機械翻訳、文書校正支援、文書要約などのアプリケーションを実現する上で必要不可欠の技術であるとされている。
構文解析部102は、文法規則などを基に句構造などの文の構造を解析する。文法規則が木構造であることから、構文解析結果は一般に個々の形態素が係り受け関係などを基にして接合された木構造となる。構文解析は、自然言語処理の分野において、対話システム、機械翻訳、文書校正支援、文書要約などのアプリケーションを実現する上で必要不可欠の技術であるとされている。
構文解析では、自然言語文を受け取り、文法規則に基づいて単語(文節)間の係り受け関係を決定する処理を行なう。構文解析結果は、依存構造と呼ばれる木構造(依存木)の形態で表現することができる。
なお、図2に示す構成例では、形態素解析部101と構文解析部102を分離して示してあるが、形態素解析相当の機能を含んだ構文解析器を用いた構成として、形態素解析と構文解析を1つのデータ処理部において実行する構成としてもよい。
構文パターン選択部103は、構文パターン集記憶部110から、構文パターン集1〜nのいずれかを選択して、構文パターンマッチ解析部104に供給する。構文パターン選択部103は、構文パターンマッチ解析部104における構文パターンマッチ解析処理の処理段階に応じて、順次、構文パターン集1〜nを選択して提供する。
構文パターン集記憶部110には、複数の構文パターン集、すなわち、
構文パターン集1,110−1、
構文パターン集2,110−2、
:
構文パターン集n,110−n、
これらのn個の構文パターン集が記憶されている。これらの各々には、構文パターンマッチ解析部104において実行する構文パターンマッチ解析処理の処理段階に対応するパターンマッチのための異なるルールが格納されている。
構文パターン集1,110−1、
構文パターン集2,110−2、
:
構文パターン集n,110−n、
これらのn個の構文パターン集が記憶されている。これらの各々には、構文パターンマッチ解析部104において実行する構文パターンマッチ解析処理の処理段階に対応するパターンマッチのための異なるルールが格納されている。
なお、構文パターン集記憶部110に記憶されたn個の構文パターン集110−1〜nの登録ルールは、辞書データベース120の登録情報に基づいて生成されたルールである。すなわち、構文パターン集記憶部110は、構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納している。なお、辞書データベース120の内容、および構文パターン集110−1〜nの登録ルールの具体例については後述する。
構文パターン選択部103は、例えば、構文パターン集記憶部110から、
構文パターン集1→構文パターン集2→・・→構文パターン集nの順番で、構文パターン集を1から順に選択して、構文パターンマッチ解析部104に供給する。
構文パターン集1→構文パターン集2→・・→構文パターン集nの順番で、構文パターン集を1から順に選択して、構文パターンマッチ解析部104に供給する。
構文パターンマッチ解析部104は、構文解析部102の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する。すなわち、構文情報(構文解析の結果)に構文パターン内のルールを適用し、アノテーションを付加する。ここで、アノテーションとは構文情報に対応する辞書項目などの登録情報を含む文書解析情報である。すなわち、入力文書に対する構文解析結果から得られる文書中の単語や複合語に対応する辞書データベース120の登録語、または登録語に対応して設定されたIDなどをアノテーション(文書解析情報)として設定して出力する。
構文パターン集記憶部110には、パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集が記憶され、構文パターンマッチ解析部104は、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する。
すなわち、構文パターンマッチ解析部104は、構文パターン選択部103から構文パターン集1〜nを順次、受領して、各構文パターン集110−1〜nを順次適用したパターンマッチ解析を実行する。例えば、
第1段階処理:構文パターン集1を適用したパターンマッチ処理、
第2段階処理:構文パターン集2を適用したパターンマッチ処理、
:
第n段階処理:構文パターン集nを適用したパターンマッチ処理、
これらの複数の構文パターン集を適用したパターンマッチ処理を実行する。この処理によって、処理対象とする文書の構文情報にアノテーション(文書解析情報)が追加・更新されてゆく。構文パターンマッチ解析部104は、最終的には、辞書データベース120の登録語、または登録語に対応して設定されたIDなどをアノテーション(文書解析情報)として設定した構文情報を、入力文書に対応する構文情報として出力する。
第1段階処理:構文パターン集1を適用したパターンマッチ処理、
第2段階処理:構文パターン集2を適用したパターンマッチ処理、
:
第n段階処理:構文パターン集nを適用したパターンマッチ処理、
これらの複数の構文パターン集を適用したパターンマッチ処理を実行する。この処理によって、処理対象とする文書の構文情報にアノテーション(文書解析情報)が追加・更新されてゆく。構文パターンマッチ解析部104は、最終的には、辞書データベース120の登録語、または登録語に対応して設定されたIDなどをアノテーション(文書解析情報)として設定した構文情報を、入力文書に対応する構文情報として出力する。
以下、具体的な処理例を用いて、本発明の文書解析装置100の実行する処理について説明する。
入力文書の例として、
入力文書:「これは急性C型肝炎です」
上記文書が入力されたとする。
入力文書の例として、
入力文書:「これは急性C型肝炎です」
上記文書が入力されたとする。
このような自然言語で表現されたテキストが入力された場合、
まず、形態素解析部101は、入力文を以下のような形態素に分解する。
(1)これ コレ これ 名詞−代名詞−一般
(2)は ハ は 助詞−係助詞
(3)急性 キュウセイ 急性 名詞−一般
(4)C型 Cガタ C型 名詞−一般
(5)肝炎 カンエン 肝炎 名詞−一般
(6)です デス です 助動詞 特殊・デス 基本形
形態素解析部101は、入力文書:「これは急性C型肝炎です」の形態素解析により、上記(1)〜(6)の形態素に分解する。
まず、形態素解析部101は、入力文を以下のような形態素に分解する。
(1)これ コレ これ 名詞−代名詞−一般
(2)は ハ は 助詞−係助詞
(3)急性 キュウセイ 急性 名詞−一般
(4)C型 Cガタ C型 名詞−一般
(5)肝炎 カンエン 肝炎 名詞−一般
(6)です デス です 助動詞 特殊・デス 基本形
形態素解析部101は、入力文書:「これは急性C型肝炎です」の形態素解析により、上記(1)〜(6)の形態素に分解する。
構文解析部102は、形態素解析部101の解析結果としての形態素の単語列をもとに構文解析を行なう。図3に入力文書:「これは急性C型肝炎です」の構文解析結果を示す。構文解析結果の各要素は、ラベル付けが行われ識別される。ラベルの対応要素はノードと呼ばれることもある。構文解析においては、各単語要素の係りうけ解析が実行される。図3に示す矢印が係りうけ解析結果であり、矢印によって結ばれた単語間に係りうけ関係があることを示している。矢印の発進元の語は、矢印の先の語の親(parent)と呼ばれる。
例えば、ラベル5の[肝炎]とラベル3[急性]は係りうけ関係にあり、ラベル3[急性]はラベル5の[肝炎]の親(parent)である。同様に、ラベル5の[肝炎]とラベル4[C型]は係りうけ関係にあり、ラベル4[C型]はラベル5の[肝炎]の親(parent)である。
構文解析結果を一覧データ形式で示すと、図4のようになる。すなわち、以下のようになる。
label(1,"これ"),
label(2,"は"),
label(3,"急性"),
label(4,"C型"),
label(5,"肝炎"),
label(6,"です"),
parent(2,1),
parent(6,2),
parent(5,3),
parent(5,4),
parent(6,5).
label(1,"これ"),
label(2,"は"),
label(3,"急性"),
label(4,"C型"),
label(5,"肝炎"),
label(6,"です"),
parent(2,1),
parent(6,2),
parent(5,3),
parent(5,4),
parent(6,5).
上記データ表現中、label(n,"abc")において、n,abcは、
n:ラベルナンバー(ノードナンバー)
abc:語
を示しており、
parent(p,q)において、p,qは、
p:係りうけ関係にある子(child)のラベルナンバー(ノードナンバー)
q:係りうけ関係にある親(parent)のラベルナンバー(ノードナンバー)
を示している。
n:ラベルナンバー(ノードナンバー)
abc:語
を示しており、
parent(p,q)において、p,qは、
p:係りうけ関係にある子(child)のラベルナンバー(ノードナンバー)
q:係りうけ関係にある親(parent)のラベルナンバー(ノードナンバー)
を示している。
なお、上記の構文解析結果では、係りうけの順番は省略してある。
例えば、
(a)「これは急性C型肝炎です」
(b)「これはC型急性肝炎です」
の2つの文書において、[肝炎]に対する親は、
(a)[急性][C型]
(b)[C型][急性]
となり、係りうけの順番を考慮した構文解析を行った場合は、文書(a),(b)とは異なった文書として認識されるが、係りうけの順番を考慮しない構文解析を行った場合は、文書(a),(b)とは同じ構文表現として認識される。
例えば、
(a)「これは急性C型肝炎です」
(b)「これはC型急性肝炎です」
の2つの文書において、[肝炎]に対する親は、
(a)[急性][C型]
(b)[C型][急性]
となり、係りうけの順番を考慮した構文解析を行った場合は、文書(a),(b)とは異なった文書として認識されるが、係りうけの順番を考慮しない構文解析を行った場合は、文書(a),(b)とは同じ構文表現として認識される。
構文パターンマッチ解析部104は、上述した構文解析結果(図4)を入力して、構文パターン選択部103から提供される構文パターン集1〜nを適用したパターンマッチ処理を実行する。
ここで、辞書データベース120の内容、および構文パターン集110−1〜nの登録ルールの具体例について説明する。図5に、辞書データベース120の登録データの一例を示す。図5に示す辞書は、
[見出しID]
[種類(カテゴリ)]
[単語]
これらの項目からなる辞書である。
[単語]は辞書登録語であり、
[見出しID]は、辞書登録語としての[単語]の識別子である。
[種類(カテゴリ)]は、辞書登録語としての[単語]の種類(カテゴリ)を示す。
[見出しID]
[種類(カテゴリ)]
[単語]
これらの項目からなる辞書である。
[単語]は辞書登録語であり、
[見出しID]は、辞書登録語としての[単語]の識別子である。
[種類(カテゴリ)]は、辞書登録語としての[単語]の種類(カテゴリ)を示す。
文書解析装置100の出力は、例えば、入力文書の内容に対応する意味を示す辞書登録語としての[単語]、あるいは[単語]の識別子としての[見出しID]、あるいは[単語]の種類(カテゴリ)を示す[種類(カテゴリ)]など、辞書の登録情報のいずれかを出力する構成とすることが可能である。
構文パターンマッチ解析部104は、入力文書の構文解析結果に基づいて、入力文書の対応する辞書登録項目を決定する処理を行なう。基本的には、この処理は、構文解析結果において得られた要素としての単語、および単語の組み合わせと、辞書に基づいて生成された構文パターン集の登録情報とのパターンマッチ処理によって行われる。
図6に構文パターン集記憶部110に記憶される複数の構文パターン集のデータ例を示す。
構文パターン集1は、図6に示すように、例えば、以下のデータを持つ。
(1a)label(Node1,"肝炎")→assert(disease(Node1,1)).
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
構文パターン集1は、図6に示すように、例えば、以下のデータを持つ。
(1a)label(Node1,"肝炎")→assert(disease(Node1,1)).
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
構文パターン集の基本構成は、
条件節→操作(出力)
であり、矢印の前が条件節であり、矢印の後が条件節を満足するパターンが、構文解析結果から検出された場合(パターンマッチ成立)の出力を意味する。parentやlabelは、構文解析結果の情報を表している。また、Node1やNode2のような大文字で始まるラベルは変数を表す。
条件節→操作(出力)
であり、矢印の前が条件節であり、矢印の後が条件節を満足するパターンが、構文解析結果から検出された場合(パターンマッチ成立)の出力を意味する。parentやlabelは、構文解析結果の情報を表している。また、Node1やNode2のような大文字で始まるラベルは変数を表す。
例えば、
(1a)label(Node1,"肝炎")→assert(disease(Node1,1)).
このデータは、[肝炎]という単語の登録されたノード1が検出された場合、
出力(assert)として、
(disease(Node1,1)).
を出力することを意味する。
すなわち、出力は、ノード1の辞書登録情報として、
種類(カテゴリ)=disease
見出しID=[1]
を出力する。
assert(disease(Node1,1))は、
出力(辞書登録種類(Node1,辞書登録見出しID)を意味する。
(1a)label(Node1,"肝炎")→assert(disease(Node1,1)).
このデータは、[肝炎]という単語の登録されたノード1が検出された場合、
出力(assert)として、
(disease(Node1,1)).
を出力することを意味する。
すなわち、出力は、ノード1の辞書登録情報として、
種類(カテゴリ)=disease
見出しID=[1]
を出力する。
assert(disease(Node1,1))は、
出力(辞書登録種類(Node1,辞書登録見出しID)を意味する。
条件節のlabel(Node1,"肝炎")において、
Node1はノードを示す変数、
"肝炎"は、ノードに含まれる単語を示している。
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"肝炎")
にマッチするラベル(ノード)が検出された場合、
(disease(Node1,1))
を出力する。
Node1はノードを示す変数、
"肝炎"は、ノードに含まれる単語を示している。
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"肝炎")
にマッチするラベル(ノード)が検出された場合、
(disease(Node1,1))
を出力する。
(disease(Node1,1))において、
diseaseは、Node1に対応する辞書登録情報としての種類(カテゴリ)、
(Node1,1)中の[Node1]はノードを示す変数、
(Node1,1)中の[1]は、Node1に対応する辞書登録情報としての見出しID[1]=(肝炎(図5参照))
を示している。
diseaseは、Node1に対応する辞書登録情報としての種類(カテゴリ)、
(Node1,1)中の[Node1]はノードを示す変数、
(Node1,1)中の[1]は、Node1に対応する辞書登録情報としての見出しID[1]=(肝炎(図5参照))
を示している。
すなわち、[肝炎]にマッチするノードに対応する辞書登録情報、
種類(カテゴリ)=disease
見出しID=[1]=(肝炎(図5参照))
をアノテーション(文書解析情報)として出力する。
種類(カテゴリ)=disease
見出しID=[1]=(肝炎(図5参照))
をアノテーション(文書解析情報)として出力する。
構文パターン集1の2番目のエントリ、
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
は、
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"B型")
にマッチするラベル(ノード)が検出された場合、そのラベル(ノード)対応の情報として、
(virus_type(Node1,2))
を出力する。
すなわち、
種類(カテゴリ)=virus_type
見出しID=[2]=(B型(図5参照))
を出力する。
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
は、
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"B型")
にマッチするラベル(ノード)が検出された場合、そのラベル(ノード)対応の情報として、
(virus_type(Node1,2))
を出力する。
すなわち、
種類(カテゴリ)=virus_type
見出しID=[2]=(B型(図5参照))
を出力する。
構文パターン集1の3番目のエントリ、
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
は、
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"C型")
にマッチするラベル(ノード)が検出された場合、そのラベル(ノード)対応の情報として、
(virus_type(Node1,3))
を出力する。
すなわち、
種類(カテゴリ)=virus_type
見出しID=[3]=(C型(図5参照))
を出力する。
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
は、
例えば、図3(=図4)に示すような構文解析結果に含まれるラベル(ノード)要素から、
label(Node1,"C型")
にマッチするラベル(ノード)が検出された場合、そのラベル(ノード)対応の情報として、
(virus_type(Node1,3))
を出力する。
すなわち、
種類(カテゴリ)=virus_type
見出しID=[3]=(C型(図5参照))
を出力する。
このように、本処理例における構文パターン集1は、例えば構文解析結果として得られる最小要素(単語)である1つのラベル(ノード)の要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。
構文パターンマッチ解析部104は、まず、この構文パターン集1を適用したパターンマッチ解析を実行する。
入力文書:「これは急性C型肝炎です」
に対応する構文解析結果(図3,図4)
に対する構文パターン集1(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集1のエントリ(1a),(1c)がマッチすることになり、このマッチ結果に基づいて、図7に示すように、
ラベル4(ノード4)[C型]のアノテーション(文書解析情報)として[virus_type:3]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:1]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
入力文書:「これは急性C型肝炎です」
に対応する構文解析結果(図3,図4)
に対する構文パターン集1(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集1のエントリ(1a),(1c)がマッチすることになり、このマッチ結果に基づいて、図7に示すように、
ラベル4(ノード4)[C型]のアノテーション(文書解析情報)として[virus_type:3]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:1]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
次に、構文パターンマッチ解析部104は、この構文パターン集1を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を構文解析結果に含めて、次の構文パターン集を適用した構文パターンマッチ処理を実行する。構文パターン集1を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を含めた構文解析結果は図8に示すデータ構成となる。
図8に示すデータは、図4に示す構文解析結果に対して、構文パターン集1を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)、すなわち、
ラベル4(ノード4)[C型]のアノテーション(文書解析情報):[virus_type(4,3)]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,1)]
これらのアノテーション(文書解析情報)を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
ラベル4(ノード4)[C型]のアノテーション(文書解析情報):[virus_type(4,3)]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,1)]
これらのアノテーション(文書解析情報)を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
構文パターンマッチ解析部104は、この図8に示すデータに基づいて、構文パターン集2を適用したパターンマッチ処理を実行する。このように、構文パターンマッチ解析部104は、構文解析部102の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する。
次に、構文パターン集2について説明する。構文パターン集2は、図6に示すように、例えば以下のデータを持つ。
(2a)disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,4)).
(2b)disease(Node1,1),parent(Node1,Node2),label(Node2,"劇症")→assert(disease(Node1,5)).
(2c)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,2)→assert(disease(Node1,6)).
(2d)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,3)→assert(disease(Node1,7)).
(2a)disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,4)).
(2b)disease(Node1,1),parent(Node1,Node2),label(Node2,"劇症")→assert(disease(Node1,5)).
(2c)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,2)→assert(disease(Node1,6)).
(2d)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,3)→assert(disease(Node1,7)).
本処理例における構文パターン集2は、2つのラベル(ノード)対応の2要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。例えば、構文パターン集2の最初のエントリ、
(2a)disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,4)).
これは、構文解析結果の2つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
(2a)disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,4)).
これは、構文解析結果の2つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
構文パターン集2の最初のエントリ(2a)の条件節、
disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,4))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,4))
種類[disease]
見出しID[4]=(急性肝炎(図5参照))
を出力することを意味している。
disease(Node1,1),parent(Node1,Node2),label(Node2,"急性")
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,4))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,4))
種類[disease]
見出しID[4]=(急性肝炎(図5参照))
を出力することを意味している。
構文パターン集2の第2エントリ、
(2b)disease(Node1,1),parent(Node1,Node2),label(Node2,"劇症")→assert(disease(Node1,5)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)単語が[劇症]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,5))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,5))
種類[disease]
見出しID[5]=(劇症肝炎(図5参照))
を出力することを意味している。
(2b)disease(Node1,1),parent(Node1,Node2),label(Node2,"劇症")→assert(disease(Node1,5)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)単語が[劇症]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,5))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,5))
種類[disease]
見出しID[5]=(劇症肝炎(図5参照))
を出力することを意味している。
構文パターン集2の第3エントリ、
(2c)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,2)→assert(disease(Node1,6)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)種類が[virus_type]見出しIDが[2]のノード2
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,6))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,6))
種類[disease]
見出しID[6]=(B型肝炎(図5参照))
を出力することを意味している。
(2c)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,2)→assert(disease(Node1,6)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)種類が[virus_type]見出しIDが[2]のノード2
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,6))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,6))
種類[disease]
見出しID[6]=(B型肝炎(図5参照))
を出力することを意味している。
構文パターン集2の第4エントリ、
(2d)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,3)→assert(disease(Node1,7)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)種類が[virus_type]見出しIDが[3]のノード2
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,7))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,7))
種類[disease]
見出しID[7]=(C型肝炎(図5参照))
を出力することを意味している。
(2d)disease(Node1,1),parent(Node1,Node2),virus_type(Node2,3)→assert(disease(Node1,7)).
これは、
(a)種類が[disease]見出しIDが[1]のノード1
(b)種類が[virus_type]見出しIDが[3]のノード2
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,7))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,7))
種類[disease]
見出しID[7]=(C型肝炎(図5参照))
を出力することを意味している。
構文パターンマッチ解析部104は、このように構文パターン集2を適用したパターンマッチ解析を実行する。
入力文書:「これは急性C型肝炎です」
に対応する構文パターン集1を適用した結果(図7,図8)
に対する構文パターン集2(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集2のエントリ(2a),(2d)がマッチすることになり、このマッチ結果に基づいて、図9に示すように、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:4]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:7]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
入力文書:「これは急性C型肝炎です」
に対応する構文パターン集1を適用した結果(図7,図8)
に対する構文パターン集2(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集2のエントリ(2a),(2d)がマッチすることになり、このマッチ結果に基づいて、図9に示すように、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:4]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:7]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
次に、構文パターンマッチ解析部104は、この構文パターン集2を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を構文解析結果に含めて、次の構文パターン集を適用した構文パターンマッチ処理を実行する。構文パターン集2を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を含めた構文解析結果は図10に示すデータ構成となる。
図10に示すデータは、図8に示す構文パターン集1を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を含む構文解析情報に、さらに、構文パターン集2を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)、すなわち、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,4)]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,7)]
これらの構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,4)]
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,7)]
これらの構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
構文パターンマッチ解析部104は、次に、この図10に示すデータに基づいて、構文パターン集3を適用したパターンマッチ処理を実行する。構文パターン集3について説明する。構文パターン集3は、図6に示すように、例えば以下のデータを持つ。
(3a)disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,8)).
(3b)disease(Node1,7),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,9)).
(3a)disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,8)).
(3b)disease(Node1,7),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,9)).
本処理例における構文パターン集3は、2つのラベル(ノード)対応の2要素と辞書登録情報とのパターンマッチを行なうためのルールを記録した構文パターン集である。例えば、構文パターン集3の最初のエントリ、
(3a)disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,8)).
これは、構文解析結果の2つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
(3a)disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,8)).
これは、構文解析結果の2つの要素の係りうけ関係を含めたパターンマッチに基づいて出力を得るルールである。
構文パターン集3の最初のエントリ(3a)の条件節、
disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")
これは、
(a)種類が[disease]見出しIDが[6]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,8))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,8))
種類[disease]
見出しID[4]=(急性B型肝炎(図5参照))
を出力することを意味している。
disease(Node1,6),parent(Node1,Node2),label(Node2,"急性")
これは、
(a)種類が[disease]見出しIDが[6]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,8))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,8))
種類[disease]
見出しID[4]=(急性B型肝炎(図5参照))
を出力することを意味している。
構文パターン集3の第2エントリ、
(3b)disease(Node1,7),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,よ)).
これは、
(a)種類が[disease]見出しIDが[7]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,9))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,9))
種類[disease]
見出しID[9]=(急性C型肝炎(図5参照))
を出力することを意味している。
(3b)disease(Node1,7),parent(Node1,Node2),label(Node2,"急性")→assert(disease(Node1,よ)).
これは、
(a)種類が[disease]見出しIDが[7]のノード1
(b)単語が[急性]のノード2、
(c)ノード2がノード1の親(parent)
これら(a)〜(c)の条件を満足する2つのノード1,2がある場合、
出力として、
assert(disease(Node1,9))
を出力する。すなわち、
ノード1に対して、アノテーション(文書解析情報)、
(disease(Node1,9))
種類[disease]
見出しID[9]=(急性C型肝炎(図5参照))
を出力することを意味している。
構文パターンマッチ解析部104は、このように構文パターン集3を適用したパターンマッチ解析を実行する。
入力文書:「これは急性C型肝炎です」
に対応する構文パターン集1,2を適用した結果(図9,図10)
に対する構文パターン集3(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集3のエントリ(3b)がマッチすることになり、このマッチ結果に基づいて、図11に示すように、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:9]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
入力文書:「これは急性C型肝炎です」
に対応する構文パターン集1,2を適用した結果(図9,図10)
に対する構文パターン集3(図6参照)を適用したパターンマッチでは、
図6に示す構文パターン集3のエントリ(3b)がマッチすることになり、このマッチ結果に基づいて、図11に示すように、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報)として[disease:9]
が付与される。なお、アノテーション[a,b]は、
[辞書登録種類情報,辞書登録見出しID情報]
を示している。
構文パターンマッチ解析部104は、この構文パターン集3を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を構文解析結果に含め、図12に示す結果を得る。図12に示すデータは、図10に示す構文パターン集1,2を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)を含む構文解析情報に、さらに、構文パターン集3を適用したパターンマッチ解析結果としてのアノテーション(文書解析情報)、すなわち、
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,9)]
この構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
ラベル5(ノード5)[肝炎]のアノテーション(文書解析情報):[disease(5,9)]
この構文解析情報を追加したデータである。なお、構文解析結果に含めるアノテーション(文書解析情報)は、
[種類(ノードナンバー,見出しID)]
のデータ構成を持つ。
構文パターンマッチ解析部104は、この構文パターン集3を適用したパターンマッチ解析結果を含むデータに基づいて出力情報を生成して出力する。出力情報は、図12に示す構文解析結果と、パターンマッチ結果を含むデータを出力としてもよいし、パターンマッチ結果によって得られた辞書登録情報、例えば、
「肝炎」(ID=1)、
「急性肝炎」(ID=4)、
「C型肝炎」(ID=7)、
「急性C型肝炎」(ID=9)
これらの辞書登録情報のみを出力としてもよい。
「肝炎」(ID=1)、
「急性肝炎」(ID=4)、
「C型肝炎」(ID=7)、
「急性C型肝炎」(ID=9)
これらの辞書登録情報のみを出力としてもよい。
このように、本発明の一実施例に係る文書解析装置では、パターンマッチ処理に適用する構文パターン集を複数適用する。
まず、
パターンマッチ対象要素(ラベル(ノード))の少ないパターンマッチルールを登録した構文パターン集から、パターンマッチ対象要素(ラベル(ノード))の多い構文パターン集を段階的に適用して、複数段のパターンマッチ処理を実行する。
まず、
パターンマッチ対象要素(ラベル(ノード))の少ないパターンマッチルールを登録した構文パターン集から、パターンマッチ対象要素(ラベル(ノード))の多い構文パターン集を段階的に適用して、複数段のパターンマッチ処理を実行する。
例えば、k番目に適用する構文パターン集と、k+1番目に適用する構文パターン集におけるパターンマッチ対象要素(ラベル(ノード))数は、
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数
の関係となる。
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数
の関係となる。
このように構文パターン集を複数適用した構成により、効率的にかつ正確なパターンマッチが可能となる。また、各構文パターン集に登録されるルール数を少なく設定することが可能であり、登録ルール数が削減され、ルールの生成コストも低減される。
次に、図13を参照して本発明に係る文書解析装置の実行する文書解析処理シーケンスについて説明する。まず、ステップS101において、解析対象となる入力文書の形態素解析を実行する。これは、図2に示す文書解析装置100の形態素解析部101において実行される。ステップS101では、解析対象となる文書を構成する文を意味的最小単位である形態素(morpheme)に分節して品詞の認定処理を行なう形態素解析を実行する。
次に、ステップS102において、構文解析処理を実行する。これは、図2に示す文書解析装置100の構文解析部102において実行される。文法規則などを基に句構造などの文の構造を解析する。具体的には、例えば図3、図4を参照して説明したような構文解析結果を生成する。
ステップS103では、構文パターン集の選択を実行する。これは、図2に示す文書解析装置100の構文パターン選択部103において実行される処理であり、構文パターンマッチ解析部104において適用する構文パターン集の選択を行なう。構文パターンマッチ解析部104において適用する構文パターン集の順番は、予め設定しておくか、あるいはユーザによって、適宜、選択する構成としてもよい。構文パターン集1〜nは、辞書の登録項目に基づいて生成される。最も単純な単語の表層のマッチを構文パターン集1とし、より複雑(多くの単語を含む)複合語は、パターンマッチの処理が後になるように、構文パターン集n(nは複合語の複雑さに応じて大きくする)に登録する。すなわち、先に説明したように、例えば、k番目に適用する構文パターン集と、k+1番目に適用する構文パターン集におけるパターンマッチ対象要素(ラベル(ノード))数は、
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数
の関係となる。
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数
の関係となる。
ステップS104では、ステップS103において選択した構文パターン集を適用して構文パターンマッチ解析を実行する。この処理は、図2に示す文書解析装置100の構文パターンマッチ解析部104において実行される処理である。ステップS105において、全ての構文パターンのマッチ検索が終了したか否かを判定し、終了していない場合は、ステップS103に戻り、次の構文パターン集を選択して、ステップS104において、新たに選択された構文パターン集を適用した構文パターンマッチ解析を実行する。この処理を繰り返し、ステップS105において、全ての構文パターンのマッチ検索が終了したと判定した場合は、ステップS106において解析結果を出力して処理を終了する。これらの処理は、具体的には、図7〜図12を参照して説明した処理である。
このように、本発明の文書解析処理においては、パターンマッチ解析処理をより単純なパターンマッチを行なう初期段階から、複雑なパターンマッチを行なう段階に区分し、それぞれに適用する構文パターン集を変更して処理を行なう構成としたので効率的かつ正確なパターンマッチが可能となる。
[辞書および構文パターン集の異なる設定例]
上述した実施例では、
辞書として図5に示すデータ構成を有する辞書
構文パターン集として、図6に示す3つの構文パターン集1〜3、
これらの辞書と構文パターン集を適用した処理例を説明した。
上述した実施例では、
辞書として図5に示すデータ構成を有する辞書
構文パターン集として、図6に示す3つの構文パターン集1〜3、
これらの辞書と構文パターン集を適用した処理例を説明した。
適用する辞書や、構文パターン集は、目的に応じて変更すること駕可能である。以下、上述の実施例における辞書と構文パターン集を変更した処理例について説明する。
上述の実施例においては、辞書登録語として、
B型肝炎、
C型肝炎、
これらの語を有し、解析対象文書に対応する語として上記のいずれかの語が選択される設定となっていた。しかし、医学的にはB型肝炎もC型肝炎もウイルス性肝炎(上位概念)なので、B型肝炎、またはC型肝炎のいずれかが対応語として選択される文書に対しては、
[ウイルス性肝炎]
この語も対応語として抽出したい場合がある。
B型肝炎、
C型肝炎、
これらの語を有し、解析対象文書に対応する語として上記のいずれかの語が選択される設定となっていた。しかし、医学的にはB型肝炎もC型肝炎もウイルス性肝炎(上位概念)なので、B型肝炎、またはC型肝炎のいずれかが対応語として選択される文書に対しては、
[ウイルス性肝炎]
この語も対応語として抽出したい場合がある。
具体的には、入力文書に対応する抽出登録語として、以下のような登録語の抽出を行ないたいとする。
入力文書(抽出登録語)
の形式で示す。
(a)急性肝炎(肝炎,急性肝炎)
(b)B型肝炎(肝炎、B型肝炎、ウイルス性肝炎)
(c)C型肝炎(肝炎、C型肝炎、ウイルス性肝炎)
(d)急性B型肝炎(肝炎、急性肝炎、B型肝炎、急性B型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
(e)急性C型肝炎(肝炎、急性肝炎、C型肝炎、急性C型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
(f)C型急性肝炎(肝炎、急性肝炎、C型肝炎、急性C型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
入力文書(抽出登録語)
の形式で示す。
(a)急性肝炎(肝炎,急性肝炎)
(b)B型肝炎(肝炎、B型肝炎、ウイルス性肝炎)
(c)C型肝炎(肝炎、C型肝炎、ウイルス性肝炎)
(d)急性B型肝炎(肝炎、急性肝炎、B型肝炎、急性B型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
(e)急性C型肝炎(肝炎、急性肝炎、C型肝炎、急性C型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
(f)C型急性肝炎(肝炎、急性肝炎、C型肝炎、急性C型肝炎、ウイルス性肝炎、急性ウイルス性肝炎)
この場合の辞書および構文パターン集の例を図14、図15に示す。図14に示す辞書は、先に説明した実施例において適用した図5に示す辞書に対して、以下の2つのエントリ、すなわち、
[見出しID,種類,単語]として記述すると、
[10,disease,ウイルス性肝炎]
[11,disease,急性ウイルス性肝炎]
これらを追加したものである。
[見出しID,種類,単語]として記述すると、
[10,disease,ウイルス性肝炎]
[11,disease,急性ウイルス性肝炎]
これらを追加したものである。
この辞書を適用して、図15に示す構文パターン集1〜3を順次、適用して、図2に示す構成における構文パターンマッチ解析部104においてパターンマッチング処理を実行する。
図15に示す構文パターン集1〜3を、先に説明した実施例において適用した図6に示す構文パターン集1〜3と比較すると、構文パターン集1は同じ構成を持つが、構文パターン集2,3の構成が異なっている。
このように適用する辞書や構文パターン集を目的に応じて適宜変更することで、必要とする概念を持つ単語、カテゴリなどを文書に対応付けることが可能となる。前述したように、文書に対応付けるデータは、辞書に登録されたデータであればよく、単語に限らず、IDや、データ分類用の識別子、カテゴリ、分野名など様々なデータが適用可能である。
[その他の実施例]
次に、上述した実施例と異なるその他の実施例について説明する。
(意味解析処理を行なう実施例)
上述した実施例では、入力文書に対して形態素解析を実行してさらに構文解析を行い、この構文解析結果に基づいてパターンマッチ解析を実行する構成としたが、構文解析の代わり、あるいは構文解析に加えて意味解析処理を実行し、意味解析結果に基づいてパターンマッチを実行する構成としてもよい。日本語は、用語に助詞を使わず連結する傾向があるものの、
例えば、
「コーシーの積分公式」
のように「の」などの助詞を含む名詞句を一つの用語として扱いたい場合もある。このとき、
「コーシーによる積分公式」
も意味がほぼ等価であるので、どちらも同じ辞書登録項目が検出されるべきである。
意味解析処理結果に基づくパターンマッチを行なうことで、
「コーシーの積分公式」
「コーシーによる積分公式」
これらの異なる文書に対応する項目として同一の辞書登録項目を抽出することができる。
次に、上述した実施例と異なるその他の実施例について説明する。
(意味解析処理を行なう実施例)
上述した実施例では、入力文書に対して形態素解析を実行してさらに構文解析を行い、この構文解析結果に基づいてパターンマッチ解析を実行する構成としたが、構文解析の代わり、あるいは構文解析に加えて意味解析処理を実行し、意味解析結果に基づいてパターンマッチを実行する構成としてもよい。日本語は、用語に助詞を使わず連結する傾向があるものの、
例えば、
「コーシーの積分公式」
のように「の」などの助詞を含む名詞句を一つの用語として扱いたい場合もある。このとき、
「コーシーによる積分公式」
も意味がほぼ等価であるので、どちらも同じ辞書登録項目が検出されるべきである。
意味解析処理結果に基づくパターンマッチを行なうことで、
「コーシーの積分公式」
「コーシーによる積分公式」
これらの異なる文書に対応する項目として同一の辞書登録項目を抽出することができる。
構文解析では、前述したように、自然言語文を受け取り、文法規則に基づいて単語(文節)間の係り受け関係を決定する処理を行なう。一方、意味解析では、単語(文節)間の係り受け関係に基づいて文中の格関係を決定する処理を行なうことができる。ここで言う格関係とは、文を構成する各要素が持つ、主語(SUBJ)、目的語(OBJ)といった文法上の役割のことを指す。また、文の時制や様相、話法などを判定する処理を意味解析が含む場合もある。
構文意味解析システム例については、例えば、「増市,大熊,"Lexical Functional Grammarに基づく実用的な日本語解析システムの構築",自然言語処理,Vol.10,No.2,pp.79−109(2003)」にLFGに基づく自然言語処理システムの詳細が記述されている。
図16に、Lexical Functional Grammar (LFG)LFGに基づく自然言語処理を実行する構文意味解析システム300の構成を示す。形態素解析部302は、日本語など特定の言語に関する形態素ルール302Aと形態素辞書302Bを持ち、入力文を意味的最小単位である形態素に分節して品詞の認定処理を行なう。例えば、「私の娘は英語を話します。」という文が入力された場合、形態素解析結果として、「私{Noun} の{up} 娘{Noun} は{up} 英語{Noun} を{up} 話す{Verb1}{tr} ます{jp} 。{pt}」が出力される。
このような形態素解析結果は、次いで、構文・意味解析部303に入力される。構文・意味解析部303は、文法ルール303Aや結合価辞書303Bなどの辞書を持ち、文法ルールなどに基づく句構造の解析や、文中の語の語義や語と語の間の意味関係などに基づいて文が伝える意味を表現する意味構造の解析を行なう(結合価辞書は動詞と主語などの文中の他の構成要素との関係を記述したものであり、述部とそれに係る語の意味関係を抽出することができる)。そして、構文解析した結果として、単語や形態素などからなる文章の句構造を木構造として表した"c−structure(constituent structure)"と、主語、目的語などの格構造に基づいて入力文を疑問文、過去形、丁寧文など意味的・機能的に解析した結果として"f−structure(functional structure)"を出力する。
すなわち、c−structureは、自然言語文の構造を、文の形態素を上位のフレーズへとまとめあげることによって木構造として表現するものであり、f−structureは、文法機能の概念に基づき、文の格構造、時制、様相、話法などの意味情報を属性―属性値のマトリックス構造で表現するものである。
本発明の文書解析装置においても、意味解析処理手段として、このLFGに基づく自然言語処理システムを適用することが可能である。LFGを用いた文書解析処理を、以下の2つの文書に対して実行した処理例について説明する。
「コーシーの積分公式」
「コーシーによる積分公式」
「コーシーの積分公式」
「コーシーによる積分公式」
「コーシーの積分公式」
に対するLFGによる解析結果は、以下のようになる。
[PRED'公式'
ADJUNCT{[PRED'コーシー']}
MOD {[PRED '積分']}]
に対するLFGによる解析結果は、以下のようになる。
[PRED'公式'
ADJUNCT{[PRED'コーシー']}
MOD {[PRED '積分']}]
一方、
「コーシーによる積分公式」
に対するLFGによる解析結果は、以下のようになる。
[PRED'公式'
ADJUNCT {[PRED 'コーシー']}
MOD {[PRED '積分']}]
「コーシーによる積分公式」
に対するLFGによる解析結果は、以下のようになる。
[PRED'公式'
ADJUNCT {[PRED 'コーシー']}
MOD {[PRED '積分']}]
これらは、LFG理論に基づいてf−structureとよばれる意味情報を表したものである。ここで、PREDはその要素の主辞であり、MODは主辞と合わせて複合名詞を構成する要素を表す属性、ADJUNCTは文の主要な構成要素ではない修飾要素を表す属性である。LFG理論によると表現は異なるが意味的に等価なテキストは同じあるいは類似のf−structureになることが知られている。実際、これら2つの解析結果は同一である。これらの意味解析結果を適用して、構文パターンマッチを取りやすいように項の集まりで書き直すと以下のようになる。
*意味解析結果
PRED(1,'公式'),
ADJUNCT(1,2),
PRED(2,'コーシー'),
MOD(1,3),
PRED(3,'積分').
*意味解析結果
PRED(1,'公式'),
ADJUNCT(1,2),
PRED(2,'コーシー'),
MOD(1,3),
PRED(3,'積分').
上記データ中、
PRED(n,'abc'),
は、ラベル(ノード)ナンバーnの要素がabcであること、
ADJUNCT(1,2),
は、ラベル(ノード)ナンバー1と2の要素が修飾関係にあること、
MOD(1,3),
は、ラベル(ノード)ナンバー1と3の複合名詞を構成する関係にあること、
を意味している。
PRED(n,'abc'),
は、ラベル(ノード)ナンバーnの要素がabcであること、
ADJUNCT(1,2),
は、ラベル(ノード)ナンバー1と2の要素が修飾関係にあること、
MOD(1,3),
は、ラベル(ノード)ナンバー1と3の複合名詞を構成する関係にあること、
を意味している。
ここで、構文パターンとして、図17に示すルールメ、すなわち、以下のようなルールを用意する。
PRED(Node1,'公式'),ADJUNCT(Node1,Node2),PRED(Node2,'コーシー'),MOD(Node1,Node3),PRED(Node3,'積分')→assert(formula(Node1,1)).
PRED(Node1,'公式'),ADJUNCT(Node1,Node2),PRED(Node2,'コーシー'),MOD(Node1,Node3),PRED(Node3,'積分')→assert(formula(Node1,1)).
矢印の前の部分が条件節であり、矢印の後が出力である。条件節の内容は、先に説明した
*意味解析結果
PRED(1,'公式'),
ADJUNCT(1,2),
PRED(2,'コーシー'),
MOD(1,3),
PRED(3,'積分').
に対応するものであり、出力として、
formula(Node1,1)).
が出力される。
これは、先の実施例と同様、
種類=formula、
見出しID=1
をノード1に対応するアノテーションとして設定することを意味している。
*意味解析結果
PRED(1,'公式'),
ADJUNCT(1,2),
PRED(2,'コーシー'),
MOD(1,3),
PRED(3,'積分').
に対応するものであり、出力として、
formula(Node1,1)).
が出力される。
これは、先の実施例と同様、
種類=formula、
見出しID=1
をノード1に対応するアノテーションとして設定することを意味している。
このように意味解析を行なうことで、構文上は異なる文書であっても、同一の意味を持つ文書に対しては、同一の概念、すなわち辞書登録データを対応付けることが可能となる。すなわち、意味解析処理では、同じ意味の表現は類似した解析結果になるので、意味的な類似性という意味でマッチングの精度が高くなる。例えば、上述したように、「コーシーの積分公式を用いて・・・」と「コーシーによる積分公式を用いて・・・」を同じ概念として扱うことができる。
(構文収束処理を行なう処理例)
次に、構文収束処理を行なって文書解析を実行する処理例について説明する。図18に、構文収束部を持つ文書解析装置の構成例を示す。図18に示す構成は、先の実施例で説明した図2に示す構成に、構文収束部401を追加した点のみが異なる。
次に、構文収束処理を行なって文書解析を実行する処理例について説明する。図18に、構文収束部を持つ文書解析装置の構成例を示す。図18に示す構成は、先の実施例で説明した図2に示す構成に、構文収束部401を追加した点のみが異なる。
構文収束部401は、構文解析部102の解析結果としての構文情報を入力し、入力構文情報から要素を変更する。構文収束部401の実行する具体的処理例について説明する。例えば、解析対象文書として、
「急性のC型肝炎」
が入力され解析を実行する例について説明する。
「急性のC型肝炎」
が入力され解析を実行する例について説明する。
この入力文書、「急性のC型肝炎」に対する構文解析の結果は、図19(a)に示すようになる。すなわち、「急性のC型肝炎」を係りうけ解析した結果の構文情報は図19(a)に示すようになる。
ここで、構文パターンマッチの初期段階で「急性」という語に修飾語(qualifier)とアノテーションをつけるとする。構文収束部401は、意味は同じであるが構文が異なる場合に一つの構文に収束させる。例えば、qualifierの直後に「の」のノードが付加されている場合にその「の」ノードを削除する機能を持つ。これは、修飾語の後ろに「の」がある場合と無い場合で意味は変わらないので、「の」の無い構文に統一していることになる。この構文収束処理後の構文情報は、図19(b)に示すようになる。
図19(b)に示す構文情報は、「急性C型肝炎」の構文情報と同じである。このように、段階的な構文パターンマッチと構文収束器を組み合わせ、アノテーションを手掛かりにすることにより「佐藤の電気店」と「佐藤電気店」を同一視するといった誤り(前者は佐藤氏が経営している電気店であり、後者は店名を表す)を犯すことなく(佐藤は人名であり、qualifierでは無いとすると)、精度良く辞書の項目と対応を取ることができる。
このように、構文収束処理を行なうことで、「急性のC型肝炎」のように構文情報が異なる場合でも、辞書項目と対応ができる。しかも、「佐藤の電気店」と「佐藤電気店」を区別するような、細かい制御を行なうことができる。
(属性情報を出力として設定した処理例)
上述した実施例では、辞書に登録された登録語など、解析文書に対応する概念を文書対応情報として出力する構成としたが、文書の属性情報も出力情報に加えた拡張例について説明する。
上述した実施例では、辞書に登録された登録語など、解析文書に対応する概念を文書対応情報として出力する構成としたが、文書の属性情報も出力情報に加えた拡張例について説明する。
例えば1つの辞書登録語に属性を対応付ける。属性を格納する項目をスロットとする。例えば、
辞書登録語[自動車]に対するスロットとして、
型式属性スロット:セダン、ワゴン、トラック・・・、
色属性スロット:白、赤、青・・・、
などである。
これらの属性を構文パターンマッチ処理によって得られる辞書登録データとしての登録語に併せて出力する。
辞書登録語[自動車]に対するスロットとして、
型式属性スロット:セダン、ワゴン、トラック・・・、
色属性スロット:白、赤、青・・・、
などである。
これらの属性を構文パターンマッチ処理によって得られる辞書登録データとしての登録語に併せて出力する。
具体例について説明する。例えば、
「肝炎」の概念に対応する属性を示すスロットとして、
ウィルスタイプ(virus_type)属性スロットを考える。
このとき、「C型肝炎」という概念を示す辞書登録語は、
「肝炎」
であって、さらに、この辞書登録語の
ウィルスタイプ(virus_type)属性スロットに「C型」が設定されたものとして定義されるとする。
「肝炎」の概念に対応する属性を示すスロットとして、
ウィルスタイプ(virus_type)属性スロットを考える。
このとき、「C型肝炎」という概念を示す辞書登録語は、
「肝炎」
であって、さらに、この辞書登録語の
ウィルスタイプ(virus_type)属性スロットに「C型」が設定されたものとして定義されるとする。
この属性出力を行なうために適用する構文パターン集の例を図20に示す。構文パターン集1は、以下のルールを有する。
[構文パターン集1]
(1a)label(Node1,"肝炎")→assert(disease(Node1,1,[])).
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
[構文パターン集1]
(1a)label(Node1,"肝炎")→assert(disease(Node1,1,[])).
(1b)label(Node1,"B型")→assert(virus_type(Node1,2)).
(1c)label(Node1,"C型")→assert(virus_type(Node1,3)).
また、構文パターン集2は、以下のルールを持つ。
[構文パターン集2]
(2a)label0:disease(Node1,1,Slot),parent(Node1,Node2),virus_type(Node2,Type)
→modify(label0,disease(Node1,1,[virus_type(Type)|Slot]).
[構文パターン集2]
(2a)label0:disease(Node1,1,Slot),parent(Node1,Node2),virus_type(Node2,Type)
→modify(label0,disease(Node1,1,[virus_type(Type)|Slot]).
上記構文パターン集2の→の後に記載した[modify操作]は、ラベル0(label0)で対応付けられた項(条件節の第1項でマッチした項)を修正することを意味する。このパターンを用いることで、
「C型肝炎」というテキストが入力されると、
出力として、
disease(XXX,1,[virus_type(3)])
というアノテーションを得ることができる。
これは、病気概念1(つまり肝炎)であって、virus_type属性の値が3(C型)という意味であるので、属性情報つきでオントロジー上の概念と対応を取ることができる。
「C型肝炎」というテキストが入力されると、
出力として、
disease(XXX,1,[virus_type(3)])
というアノテーションを得ることができる。
これは、病気概念1(つまり肝炎)であって、virus_type属性の値が3(C型)という意味であるので、属性情報つきでオントロジー上の概念と対応を取ることができる。
このように、構文パターン集を、属性出力を行なう構成として設定することで、解析対象文書に対応する属性を出力することが可能となり、オントロジーの概念について見出しラベルの一致だけではなく、属性を示すスロット(slot)値など、付加的な情報を出力させる構成が可能となる。
最後に、上述した処理を実行する文書解析装置を構成する情報処理装置のハードウェア構成例について、図21を参照して説明する。CPU(Central Processing Unit)501は、OS(Operating System)に対応する処理や、上述の実施例において説明し構文解析処理、構文パターンマッチ解析処理などを実行する。これらの処理は、各情報処理装置のROM、ハードディスクなどのデータ記憶部に格納されたコンピュータ・プログラムに従って実行される。
ROM(Read Only Memory)502は、CPU501が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)503は、CPU501の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス504により相互に接続されている。
ホストバス504は、ブリッジ505を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス506に接続されている。
キーボード508、ポインティングデバイス509は、ユーザにより操作される入力デバイスである。ディスプレイ510は、液晶表示装置またはCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージで表示する。
HDD(Hard Disk Drive)511は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU501によって実行するプログラムや情報を記録または再生させる。ハードディスクは、例えば、構文パターン集、辞書などの格納手段などに利用され、さらに、データ処理プログラム等、各種コンピュータ・プログラムが格納される。
ドライブ512は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体521に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース507、外部バス506、ブリッジ505、およびホストバス504を介して接続されているRAM503に供給する。
接続ポート514は、外部接続機器522を接続するポートであり、USB,IEEE1394等の接続部を持つ。接続ポート514は、インタフェース507、および外部バス506、ブリッジ505、ホストバス504等を介してCPU501等に接続されている。通信部515は、ネットワークに接続され、例えば外部の辞書データベースとの通信を実行する。
なお、図21に示す文書解析装置のハードウェア構成例は、PCを適用して構成した装置の一例であり、本発明の文書解析装置は、図21に示す構成に限らず、上述した実施例において説明した処理を実行可能な構成であればよい。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成によれば、構文パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集をルールの複雑度に応じて区分して、複数の構文パターン集として設定し、ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を、順次適用して構文パターンマッチ解析処理を実行する構成とした。本構成により効率的かつ正確なパターンマッチによる文書解析が実現される。また、各構文パターン集に登録するルールは、各構文パターン集毎に限定されたルール数となり、登録ルール数が削減され、ルールの生成コストも低減される。
10 文書解析装置
20 辞書データベース
100 文書解析装置
101 形態素解析部
102 構文解析部
103 構文パターン選択部
104 構文パターンマッチ解析部
110 構文パターン集記憶部
120 辞書データベース
300 構文意味解析システム
302 形態素解析部
302A 形態素ルール
302B 形態素辞書
303 構文意味解析部
303A 文法ルール
303B 結合価辞書
401 構文収束部
501 CPU(Central Processing Unit)
502 ROM(Read-Only-Memory)
503 RAM(Random Access Memory)
504 ホストバス
505 ブリッジ
506 外部バス
507 インタフェース
508 キーボード
509 ポインティングデバイス
510 ディスプレイ
511 HDD(Hard Disk Drive)
512 ドライブ
514 接続ポート
515 通信部
521 リムーバブル記録媒体
522 外部接続機器
20 辞書データベース
100 文書解析装置
101 形態素解析部
102 構文解析部
103 構文パターン選択部
104 構文パターンマッチ解析部
110 構文パターン集記憶部
120 辞書データベース
300 構文意味解析システム
302 形態素解析部
302A 形態素ルール
302B 形態素辞書
303 構文意味解析部
303A 文法ルール
303B 結合価辞書
401 構文収束部
501 CPU(Central Processing Unit)
502 ROM(Read-Only-Memory)
503 RAM(Random Access Memory)
504 ホストバス
505 ブリッジ
506 外部バス
507 インタフェース
508 キーボード
509 ポインティングデバイス
510 ディスプレイ
511 HDD(Hard Disk Drive)
512 ドライブ
514 接続ポート
515 通信部
521 リムーバブル記録媒体
522 外部接続機器
Claims (19)
- 文書解析処理を実行する文書解析装置であり、
入力文書の構文解析処理を実行する構文解析部と、
構文パターンマッチ解析に適用するルールであり、パターンマッチ条件に基づき登録データの出力を行なうルールから構成される構文パターン集を格納した構文パターン集記憶部と、
前記構文解析部の解析結果情報を入力し、前記構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析部とを有し、
前記構文パターン集記憶部は、
パターンマッチ処理に適用するルールを、ルールの複雑度に応じて区分された複数の構文パターン集を記憶し、
前記構文パターンマッチ解析部は、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする文書解析装置。 - 前記構文パターンマッチ解析部は、
前記構文解析部の生成した構文情報に対して、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記構文パターンマッチ解析部は、
k番目とk+1番目に適用する構文パターン集を、
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数、
上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記構文パターン集は、
パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、
前記構文パターンマッチ解析部は、
構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記構文パターンマッチ解析部は、
構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力する構成であることを特徴とする請求項4に記載の文書解析装置。 - 前記文書解析装置は、さらに、
解析対象の文書の形態素解析処理を実行する形態素解析部を有し、
前記構文解析部は、
前記形態素解析部の解析結果に基づいて構文解析を実行する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記文書解析装置は、さらに、
解析対象の文書の意味解析処理を実行する意味解析処理部を有し、
前記構文パターンマッチ解析部は、
前記意味解析処理部の意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記文書解析装置は、さらに、
前記構文解析部の解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束部を有し、
前記構文パターンマッチ解析部は、
前記構文収束部の処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行する構成であることを特徴とする請求項1に記載の文書解析装置。 - 前記構文パターン集は、
出力として属性情報を出力するルールを規定した構文パターンを有し、
前記構文パターンマッチ解析部は、
前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力する構成であることを特徴とする請求項1に記載の文書解析装置。 - 文書解析装置において、文書解析処理を実行する文書解析方法であり、
構文解析部において、入力文書の構文解析処理を実行する構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行する構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップは、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行し、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする文書解析方法。 - 前記構文パターンマッチ解析ステップは、
前記構文解析ステップにおいて生成した構文情報に、構文パターン集を適用した構文パターンマッチ解析結果を追加し、解析結果を追加した構文情報を適用して、次の構文パターン集を適用した構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項10に記載の文書解析方法。 - 前記構文パターンマッチ解析ステップは、
k番目とk+1番目に適用する構文パターン集を、
k番目の構文パターン集のマッチ検証要素数≦k+1番目の構文パターン集のマッチ検証要素数、
上記の関係となる構文パターン集を順次適用して、構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項10に記載の文書解析方法。 - 前記構文パターン集は、
パターンマッチ条件に基づいて、辞書の登録データの出力を行なうルールから構成され、
前記構文パターンマッチ解析ステップは、
構文パターンマッチ解析処理結果として解析対象文書に対応する辞書登録データを出力することを特徴とする請求項10に記載の文書解析方法。 - 前記構文パターンマッチ解析ステップは、
構文パターンマッチ解析処理結果として解析対象文書に対応する概念情報、または単語情報、または識別子情報、またはカテゴリ情報の少なくともいずれかの辞書登録データを出力するステップであることを特徴とする請求項13に記載の文書解析方法。 - 前記文書解析方法は、さらに、
形態素解析部において、解析対象の文書の形態素解析処理を実行する形態素解析ステップを有し、
前記構文解析ステップは、
前記形態素解析ステップの解析結果に基づいて構文解析を実行するステップであることを特徴とする請求項10に記載の文書解析方法。 - 前記文書解析方法は、さらに、
意味解析処理部おいて、解析対象の文書の意味解析処理を実行する意味解析処理ステップを有し、
前記構文パターンマッチ解析ステップは、
前記意味解析処理ステップの意味解析処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行することを特徴とする請求項10に記載の文書解析方法。 - 前記文書解析方法は、さらに、
構文収束部において、前記構文解析ステップの解析結果としての構文情報を入力し、入力構文情報から要素を変更する構文収束ステップを有し、
前記構文パターンマッチ解析ステップは、
前記構文収束ステップの処理結果に基づいて、前記構文パターン集を順次、適用して構文パターンマッチ解析処理を実行するステップであることを特徴とする請求項10に記載の文書解析方法。 - 前記構文パターン集は、
出力として属性情報を出力するルールを規定した構文パターンを有し、
前記構文パターンマッチ解析ステップは、
前記構文パターン集を適用した構文パターンマッチ解析処理の結果として、解析対象文書に対応する属性情報を出力することを特徴とする請求項10に記載の文書解析方法。 - 文書解析装置において、文書解析処理を実行させるコンピュータ・プログラムであり、
構文解析部において、入力文書の構文解析処理を実行させる構文解析ステップと、
構文パターンマッチ解析部において、前記構文解析ステップの解析結果を入力して、構文パターン集を適用した構文パターンマッチ解析処理を実行させる構文パターンマッチ解析ステップを有し、
前記構文パターンマッチ解析ステップにおいては、
パターンマッチに基づいて登録データ出力を行なうルールから構成される構文パターン集を複数適用した構文パターンマッチ解析処理を実行させ、
ルールの複雑度の低い構文パターン集から、ルールの複雑度の高い構文パターン集を順次、適用して構文パターンマッチ解析処理を実行させることを特徴とするコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006257915A JP2008077512A (ja) | 2006-09-22 | 2006-09-22 | 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006257915A JP2008077512A (ja) | 2006-09-22 | 2006-09-22 | 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008077512A true JP2008077512A (ja) | 2008-04-03 |
Family
ID=39349479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006257915A Pending JP2008077512A (ja) | 2006-09-22 | 2006-09-22 | 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008077512A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543999A (ja) * | 2010-10-08 | 2013-12-09 | エムモーダル アイピー エルエルシー | 動的構造化文書コーパスの構造化探索 |
US9659055B2 (en) | 2010-10-08 | 2017-05-23 | Mmodal Ip Llc | Structured searching of dynamic structured document corpuses |
CN107491484A (zh) * | 2017-07-17 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种数据匹配方法、装置及设备 |
JP2022088540A (ja) * | 2021-04-27 | 2022-06-14 | バイドゥ・インターナショナル・テクノロジー・(シェンチェン)・カンパニー・リミテッド | ユーザ興味画像の生成方法、装置、電子機器及び記憶媒体 |
-
2006
- 2006-09-22 JP JP2006257915A patent/JP2008077512A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543999A (ja) * | 2010-10-08 | 2013-12-09 | エムモーダル アイピー エルエルシー | 動的構造化文書コーパスの構造化探索 |
US9659055B2 (en) | 2010-10-08 | 2017-05-23 | Mmodal Ip Llc | Structured searching of dynamic structured document corpuses |
CN107491484A (zh) * | 2017-07-17 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种数据匹配方法、装置及设备 |
CN107491484B (zh) * | 2017-07-17 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 一种数据匹配方法、装置及设备 |
JP2022088540A (ja) * | 2021-04-27 | 2022-06-14 | バイドゥ・インターナショナル・テクノロジー・(シェンチェン)・カンパニー・リミテッド | ユーザ興味画像の生成方法、装置、電子機器及び記憶媒体 |
JP7369228B2 (ja) | 2021-04-27 | 2023-10-25 | バイドゥ・インターナショナル・テクノロジー・(シェンチェン)・カンパニー・リミテッド | ユーザ興味画像の生成方法、装置、電子機器及び記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9098489B2 (en) | Method and system for semantic searching | |
US7565281B2 (en) | Machine translation | |
Altinok | Mastering spaCy: An end-to-end practical guide to implementing NLP applications using the Python ecosystem | |
US20050171757A1 (en) | Machine translation | |
US20050137853A1 (en) | Machine translation | |
US20040254781A1 (en) | Machine translation | |
WO2003056450A1 (fr) | Procede et appareil d'analyse syntaxique | |
JPWO2017163346A1 (ja) | 文章解析システム及びプログラム | |
JP2004246440A (ja) | 形態素解析装置、自然言語処理装置、形態素解析方法及びプログラム | |
JP2008077512A (ja) | 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム | |
JP2004272352A (ja) | 類似度計算方法、装置、プログラムおよび該プログラムを格納した記録媒体 | |
JP4007413B2 (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム | |
JP4869281B2 (ja) | 機械翻訳装置、プログラム及び方法 | |
JP5245291B2 (ja) | 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム | |
JP4033093B2 (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム | |
JP2632806B2 (ja) | 言語解析装置 | |
JP2005025555A (ja) | シソーラス構築システム、シソーラス構築方法、この方法を実行するプログラム、およびこのプログラムを記憶した記憶媒体 | |
JP4039282B2 (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム | |
WO2020026229A2 (en) | Proposition identification in natural language and usage thereof | |
JP4033089B2 (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム | |
JP3972697B2 (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム | |
Vagelatos et al. | Implementing the NLP infrastructure for Greek Biomedical Data Mining | |
JPH07334504A (ja) | 日本語処理システム | |
JP2001125898A (ja) | 言語解析処理の方法、システム | |
JP2004287680A (ja) | 自然言語処理システム及び自然言語処理方法、並びにコンピュータ・プログラム |