入力文の細部意味を表示する文作成支援自然文処理法。
【課題】入力自然文の意味を表現する意味構造を構築し、その意味構造を細分化し、その細分化した意味構造から自然文を生成し、自然文の細部の意味を提示する。
【解決手段】
入力自然文に形態素解析や構文解析を行い、その解析結果に意味構築処理を行って、部分的な意味構造を構築し、部分的な意味構造を意味根で結合しながら、入力自然文の全体の意味構造を構築する。その意味構造を意味根で細分化して、細分化した当該意味構造から自然文を生成して明示すると入力自然文の意味が細部にまで検証できる。
書き手は、文法と知識を用いて文を作成するが、読み手も書き手と同じ知識を共有するとはかぎらない。本発明では、知識を持たない読み手の立場に立ち、主に文法情報だけで意味解析する。それによって、知識を持たない読み手でも精確に理解できる文を書き手が作成できるように支援する。そのような文作成支援自然文処理法。
【解決手段】
入力自然文に形態素解析や構文解析を行い、その解析結果に意味構築処理を行って、部分的な意味構造を構築し、部分的な意味構造を意味根で結合しながら、入力自然文の全体の意味構造を構築する。その意味構造を意味根で細分化して、細分化した当該意味構造から自然文を生成して明示すると入力自然文の意味が細部にまで検証できる。
書き手は、文法と知識を用いて文を作成するが、読み手も書き手と同じ知識を共有するとはかぎらない。本発明では、知識を持たない読み手の立場に立ち、主に文法情報だけで意味解析する。それによって、知識を持たない読み手でも精確に理解できる文を書き手が作成できるように支援する。そのような文作成支援自然文処理法。
【発明の詳細な説明】
【技術分野】
【0001】
ワープロなどで入力された自然文に形態素解析及び構文解析を行うと、形態素解析結果や構文解析結果が得られる。その形態素解析結果や構文解析結果に意味構築規則を適用することによって、部分意味構造を構築することができる。それらの部分意味構造を意味根で結合していけば、入力自然文の全体意味構造を構築することができる。その全体意味構造に自然文生成経路を形成すれば、意味構造から全体自然文が生成できる。意味構造は意味根で結合されているので、意味根で意味構造を分割し、その分割した部分意味構造に自然文生成経路を形成すれば、その部分意味構造の意味を表出する部分自然文が生成できる。全体自然文及び部分自然文で、入力自然文の意味を細部にわたって検証できる。これを参照することによって、書き手が精確な意味を表現する自然文を作成することを支援する自然文処理法を提供する。
【背景技術】
【0002】
意味解析を行う前には、まず形態素解析と構文解析を行う。形態素解析はかなり難しい技術であるが、ほぼ確立していて、無料で公開されている。本発明では無料で公開されている形態素解析プログラムJUMAN(非特許文献3)を用いている。構文解析はまだ問題はあるといわれているが、質の高い構文解析プログラムがすでに無料で公開されている。本発明では多くの研究者に利用されている構文解析プログラムKNP(非特許文献4)を用いている。本発明では、構文解析結果を直接用いずに、その途中で得られる文節解析結果を用いている。形態素解析と文節解析については周知の技術であるので、詳しく説明しない。
【0003】
本発明の意味構造は、既に日本(特許文献1)、米国(特許文献2)、欧州(特許文献3)で特許として認可されている。特許第3811902号で示した意味フレームをベースに意味構造を構築している。この意味構造をベースにして、世界共通語の普遍的な言語として、意味語を提案している。意味語を日本語と英語について、普遍文法的な役割を分かりやすく解説した本をすでに 「知能からみた日本語と英語の普遍文法(非特許文献1)」 として出版している。
【0004】
世界共通の自然言語を記述するための意味構造は、自然言語処理関係の分野でまだ問題にされていないので、参考になる文献はない。しかし、自然言語処理研究者で広く引用されている文献は長尾真編「自然言語処理」(非特許文献2)である。形態素解析プログラムや構文解析プログラムを無料で提供している人たちが、執筆しているので、形態素解析や構文解析に関して参考になる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3811902号
【特許文献2】United States Patent 6126306
【特許文献3】European Patent No.0532338 14.08.02
【非特許文献】
【0006】
【非特許文献1】安藤司文 「知能からみた日本語と英語の普遍文法」スクリーンプレイ社1995年3月28日発行
【非特許文献2】長尾真編 「自然言語処理」 岩波書店 2003年9月25日発行
【非特許文献3】日本語形態素解析システムJUMAN 京都大学大学院 情報学研究科メディア研究室
【非特許文献4】日本語構文解析システムKNP 京都大学大学院 情報学研究科 メディア研究室
【発明の概要】
【発明が解決しようとする課題】
【0007】
文の書き手は、読み手も書き手と同じ知識を共有していることを前提にして、文を作成している。しかし、読み手が書き手と同じ知識を共有しているとはかぎらない。そのときには、読み間違えることがある。例えば、「流れる雲や野鳥のさえずりに心を留める。」という文では、普通の人は、「雲が流れる」や「野鳥はさえずる」という知識を持っているので、解釈1:「雲が流れる。野鳥がさえずる。その雲やそのさえずりに心を留める。」と解釈する。しかし、「雲」や、「野鳥」や「さえずり」の意味が分からない次の文「流れるAやBのCにDを留める。」では、次のような解釈2も成り立つ。解釈2:「A(雲)やB(野鳥)が流れる。そのA(雲や)やそのB(野鳥)がC(さえずる)する。そのC(さえずり)にD(心)を留める。」 しかし、「野鳥が流れる」や「雲がさえずる。」 ことは考え難いので、解釈2は成立しないことがわかる。解釈1が成り立つのは、一般に人は上述のような知識を持っているからである。
【0008】
しかし、次のような文「支援していたA社やB社のC社にD負債を引き受けさせる。」 となると、2つの解釈が成り立つ。即ち、解釈1:「A社やC社にD負債を引き受けさせる。」 解釈2:「C社にD負債を引き受けさせる。」。 「B社のC社」という句を先に意味として結合させるのか、「A社やB社」を先に意味として結合させるかだけの問題である。しかし、負債を負うのが、「A社とC社」なのか、「C社だけ」であるのかはA社にとっては重大な問題である。「支援していたのは、A社だけで、C社はB社の関連会社である」という知識があれば、解釈1であるが、「支援していたのがA社とB社であり、C社はA社とB社の関連会社である」という知識があれば、解釈2が成り立つ。
【0009】
また、長文の中には、本文と直接関係がない引用文が挿入される場合がある。さらに、日本語では 「私は、………と思う。」 のように、主語が一番後ろの動詞に係ることがある。それには、文脈が理解できるかどうかや、文の内容に関する知識があるかないかによって解釈が変わる。
【0010】
「ニュージーランドのキー首相は15日の定例記者会見で、南極海での反捕鯨団体シー・シェパードのメンバーのニュージーランド人が日本の調査捕鯨船に侵入したことについて「このような行為は捕鯨を終わらせる助けにはならない。公海での彼らの活動はとても危険であり、冷静になることを求める」と批判。」
【0011】
文脈から、キー首相がずっと後ろの「批判」に係ることはすぐ分かる。つまり、「キー首相は……批判。」となる。しかし、文脈が読み取れない場合は、主語が直近の動詞の「侵入した」に係ると考えるので、 「キー首相は……調査捕鯨船に侵入した。」となる。
【0012】
また、「その際に転職、再就職者が不利になる。」という文では、多くの人は、自分の知識で文字を適当に付け加えて、「その際に転職者や、再就職者が不利になる。」 と理解すると思われるが、「その際に転職して、再就職者が不利になる。」という意味にも解釈することもできる。このように書き手が気付かない曖昧な表現の文や、読み手に入力自然文に関する知識があるかないかによって、意味解釈の違いが生じる文は沢山ある。しかも書き手は全く気付かないことが多い。このようことは、公的な文書では許されない。損害賠償などか絡む文章では、誤解を生まない文章を作成する事が大切である。本発明は、入力文の意味を細部まで精確に提示して、書き手が意図した意味が正確に表現されているかどうかを考えることができる情報を提供する。これによって書き手が意図した意味が精確に表現されている文を作成させることを助ける。そのための自然文処理方法を提供することである。
【課題を解決するための手段】
【0013】
読み手は、提示され文に関する知識が全くない場合に、隣同士の単語を結びつけて解読しようとする。また、複合語は一つの単語として解釈されるが、句も複合語に次いで優先的に解釈される傾向がある。このような傾向を意味解析規則の中に取り入れて意味構築を行う。A社、B社、C社の社は組織名として、負債は金銭的な名詞として、ある程度文法的な知識として加味することはできるが、本格的な意味情報にはならない。
【0014】
意味解析では、まず文法情報をベースで進める。基本的にはごくふつうの人が持っている程度の意味解釈を意味構築規則として、これをベースにして、意味構造を構築する。即ち、解釈1のように、「雲や野鳥」 より、「野鳥のさえずりに」 や「B社のC社」のような句を優先させて意味構造を構築する。また、主語となる名詞は、最初の用言(動詞)に係るのが一般的であるので、「キー首相は……調査捕鯨船に侵入した。」という意味に解析する。「その際に転職、再就職者が不利になる。」 では一切、単語や文を追加しないので、「その際に転職し、そして再就職者が不利になる。」という意味に解析する。書き手に、「このような意味に解釈される可能性がありますが、それでいいのですか」と問うことになる。もし、そのような解釈を防ぎたいならば、書き手が別な表現方法を探すことになる。本発明では、書き手に注意を喚起するだけである。本発明では、入力自然文を一旦意味構造に変換し、その意味構造をいろいろな部分に分解して、その分解した意味構造から自然文を表出させて、入力文の細部の意味を自然文で表示させるので、読み手が誤解されやすい箇所を見つけることができる。しかし、どうしても、入力文には、本文の意味と関係のない引用文を挿入せざるをえないことがある。そのときの為に独立に意味解析を行うことを指定する機能をもたせる。つまり、((……))や<<……>>、「「………」」などの二重括弧で指定したり、 、。―――。、 のように句点と読点を組み合わせて、その部分を独立させて意味解析する意味範囲を指定する。また、文中で意味解析範囲の境界を指定するために 、、 や 。。のように、二重に読点や句点を打って、前後の意味関係を遮断する機能も持たせている。 「キー首相は15日の定例記者会見で、<<……と>>批判。」 のように、<<……>>の範囲で独立して意味解析させれば、「キー首相は…批判。」のようにキー首相は“批判”に係ることになる。また<<< >>>などの三重括弧で、入力文から削除して、意味解析の対象から外すなどを行う。
【発明の効果】
【0015】
「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空株に売り注文が殺到し、取引が成立しないまま、週末比30円安の37円まで気配値が下落している。」という文においては、主旨は何か。知識として提示したい根幹意味はどれで、その背景となる背景情報はどれか、誤解されやすい表現はどれか、文を簡略化するには、どの部分を検討すればよいか。或いは、精確に情報として提示しなければならないものはどれかが分かり難い。本発明は、入力自然文の意味構造を細かく分割して、細かく分割した意味構造から部分意味自然文を生成して、部分意味自然文の意味を細部に分けて表示する。意味構造から生成された文に意味構造を示す意味構造記号を付加して、自然文の意味構造を明示している。また、枝葉を取り払った根幹意味や根幹意味の背景となる枝葉意味を分けて示しているので、文全体の意味、部分的な意味を含めて意味構造が理解できる。機械翻訳を行う場合、書き手の意図した正確な文が作成されていることが前提である。悪文を翻訳しても、悪文は悪文である。まず、翻訳する前に、日本語なら日本語で正しい文を作成することが重要である。また賠償責任などが発生する公的な文章では、正確な意味を表現している文を作成することが大切である。また、文章を作成しながら、知的なトレーニングを行うのに利用できる。
【図面の簡単な説明】
【0016】
【図1】本発明を実現するための装置全体の構成を示す図である。
【図2】プログラムの全体の流れを示すブロック図である。
【図3】MW要素30の結合手の構成を示す図である。
【図4】PS要素31がもっている結合手を示す図である。
【図5】MW要素30とPS要素31と意味根収集要素32のデータ構造を示す図である。
【図6】三種の基本単文即ち、PS_EXとPS_ISとPS-DOの意味フレーム40を示す図である。
【図7】「太郎が花を水に浮かべる」の意味構造を示す図である。
【図8】「太郎が水に浮かべる花」の意味構造を示す図である。
【図9】「秋の一日、スピードと騒音を断ち、しばし立ち止まって、流れる雲と野鳥のさえずりに心を留めたい」という文の形態素解析結果を示す図である。
【図10】図9の形態素解析結果に構文解析を行って得られ結果のうち文節解析結果を示す図である。
【図11】「秋の一日、スピードと騒音を断ち、…」という文の意味構造を意味根で上下に並べて階層的に表示し、この意味構造から自然文を生成するための自然文生成経路56を示す図である。
【図12】「秋の一日、スピードと騒音を断ち、…」という文が表現する細部の意味を示した図である。
【図13】「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空に売り注文が殺到し、取引が成立しないまま、同日の日航株の値幅制限となる週末比30円安の37円まで気配値が下落している。」の意味構造を意味根で上下に並べて表示し、この意味構造から自然文を生成するための自然文生成経路56を示す図である。
【図14】入力文「12日の東京株式市場では、…」の意味構造で自然文生成経路を遮断して、枝葉意味を削除して、簡略化した細部の簡略意味を示す図である。
【図15】入力文「12日の東京株式市場では、…」の意味構造で自然文生成経路を遮断せず、枝葉意味を残して表示した詳細意味を示す図である。
【図16】自然文生成の基本的なプログラムの流れを示すプログラムリスト図である。
【図17】「流れる雲や野鳥のさえずりに心を留めたい。」という文の意味構造と単文や横結合語の関係を示す図である。
【発明を実施するための形態】
【0017】
装置全体の構成を図1に示す。中央制御装置1と、内部メモリー2、表示装置3、外部記憶装置4、入力装置5は互いにメモリーハブ6とIOハブ7を中継装置として、バス8で接続されている。外部記憶装置4には、日本語辞書や形態素解析規則、構文解析規則、形態素意味構築規則、文節意味構築規則などの規則類や、辞書検索プログラム、形態素解析プログラム、構文解析プログラム、形態素意味構築プログラム、文節意味構築プログラム、自然文生成プログラムなどのプログラムが格納されている。中央制御装置1によって、外部記憶装置4からプログラムが内部メモリー2に取り出され、プログラムの指示に従って、各種の処理が行われる。
【0018】
処理の全体の流れを図2に示す。入力自然文は必ずしも分割する必要はないが、文中に挿入された引用文の意味を独立に解析したり、指定された意味範囲を独立して、優先的に解析するなどの機能を持たせるために、入力文をいくつかの部分に分割する。そのために自然文分割20を行う。その分割された入力自然文について、形態素解析21を行うが、形態素解析21は、入力自然文の文字列の文頭から、全ての文字列を辞書検索する。検索された文字列について、前後の文字列の関係を規定する形態素解析規則によって形態素解析21を実行して、関連性がある形態素だけを選別して、図9のような形態素解析結果を得る。この結果で得られた形態素解析結果に構文解析規則により構文解析22を実行して、構文解析結果を得る。本発明では構文解析結果の一部である図10のような文節解析結果のみを用いる。先の形態素解析結果に形態素意味構築規則を適用して、形態素意味構築24を行い、入力自然文の部分的な意味構造を得る。形態素意味構築24で得られる意味構造が、既に構築された意味構造と結合可能であれば、意味根41で相互に結合させる。次に文節解析結果に文節意味構築規則を適用して文節意味構築23を行い意味構造を得る。すでに、形態素意味構築24で得られた意味構造や、文節意味構築23によって構築された意味構造などと結合可能であれば、これらの意味構造を意味根41で結合する。このような意味構築を繰り返して、入力自然文が表現する図11のような全体意味構造58を得る。また、意味構造を構築するときには、意味構造の結合の基点になる意味根41を収集して、意味根収集要素32のBun_ixrtに格納する。これらの意味根41で意味構造を任意に分割する。その分割された意味構造に自然文生成経路56作成すれば、部分意味構造57の意味を表現する自然文がえられる。意味解析のプログラムの詳細については、改めて自然文生成を中心にして後ほど説明する。
【0019】
自然言語で表現される意味構造を次の二つの要素で記述する。即ち、図3のMW(Meta Word)要素30と図4のPS(Primitive Sentence)要素31である。そのデータ構造を図5に示す。MWには主に単語に関する意味情報を格納する。これを( )で示す。 MWは基本的に、U(上Upper)、L(下 Lower)、 B( 前 Before)、N(次Next)の四本の結合手をもっている。これらのMW要素30の結合情報はMW結合要素50に次のようにして、格納される。すなわち、これらの結合相手の要素番号をPrc_mw[mw_num].N、 Prc_mw[mw_num].B、 Prc_mw[mw_num].U、 Prc_mw[mw_num].Lに格納する。上に結合する要素は基本的には一つだけであるが、複雑な文では、複数の要素と上に結合させることがある。そのために、補助的に、Prc_mw[mw_num].amwを設けている。さらに多くの要素と上に結合する必要があれば、Prc_mw[mw_num].bmw、Prc_mw[mw_num].cmwなどを設けることもできる。mw_numはMW要素30の番号である。MWやPSなどの結合相手の種類などもMW結合要素50として、Prc_mw[ ].FLGに格納する。表現禁止の有無などは、MW表現可否要素52として、また自然文生成経路の遮断などはMW経路遮断要素53として、Prc_mw[ ].KAKに格納される。FLGと KAKは16進数の8桁で表現する。
【0020】
単語の文字列は、次のMW文字列要素51に格納される。すなわち、単語の見出し語の文字列は主に、Prc_mw[ ].mojiに、冠詞や接頭辞は主にPrc_mw[ ].moji_jar、助詞は主にPrc_mw[ ].moji_jcsに、“→”なのどの論理記号は主にPrc_mw[ ].moji_ronriに分けて格納される。PS要素は図4で示すように、基本的に、主格(Agent case)、時間格(Time case)、 空間格(Space case)、対象格(Object case)、回数格(V case)、理由格(Why case)、述語格(Predicate case)などの七つの格で構成されている。これを[ ]で示す。PS要素31は、このA格、 T格、 S格、V格、 W格、 O格、 P格と、下のMWと結合するための結合手L( 下 Lower)の合計8本の結合手を持っている。PS要素のPS結合の情報はPS結合要素55に格納される。図5に示すデータ構造として格納される。たとえば、A格の結合情報はPrc_mw[ ].Aに格納される。PS要素31が図6で示すように、MW要素と結合すると、意味フレーム40となる。図6に示す意味フレーム40は、これ以上分解できない意味の最小単位となるので、これを基本意味単位と呼んでいる。この基本意味単位は一つの文を表現しているので、基本単文とも呼ぶ。本発明では、入力自然文の意味構造をこのような意味フレームを結合させて、入力自然文が表現する複雑な意味構造を構築する。その上に日本語の文字列を格納していくが、その意味構造を部分に分割して、その部分意味構造上に自然文生成経路を作成して、それに対応する意味を日本語で表示させる。意味語を用いて、自然文質問応答や多言語間機械翻訳などを行う場合は、意味構造内の細部について正確に記述しなければならないが、本発明では、意味構造の上に日本語をのせるだけであるから、意味構造の内部構造について詳細に規定する必要がない。
【0021】
動詞の意味フレームとして、図7で示す意味フレームを辞書に格納しておき、必要な時に取り出して用いる。取り出した時には、動詞の文字列をP2格に書き込む。動詞以外の文字列は、格の種類を指定する必要がない。むしろ、意味構造から生成された日本語の文字列と入力文の文字列の順序を同じにするために、意味フレームには、入力自然文の語順で、意味フレームのスロットに書き込んでいる。名詞の複合語を格納する意味フレームには、図6(a)に示すPS_EXを用いている。最初の単語をS格に、次の単語を意味根に書き込む。しかし、それ以外は格納する格を指定する必要がない。意味フレームに書き込む単語の数を最大10程度と見込んで、図7のような意味フレームを汎用意味フレームとして用いているが、図7に示す格を指定する必要はない。この場合、10個のスロットを確保するだけでよい。
【0022】
入力自然文を一旦意味構造に変換する。意味構造はかなり複雑な構造になることもあるが、まずは簡単な意味構造から構築していく。簡単な意味構造を意味根で結合させて、次第に複雑な意味構造を構築する。意味構築プロセスで、結合基点になる意味根41を幾つかの種類に分類して、収集する。これらの意味根を格納する要素が意味根収集要素32で、次のようにBun_ixrtに格納する。そのデータ構造を図5に示す。主旨を構成する単文の基点となる意味根41は Bun_ixrt[Bun_num].syu_shi[ ]に格納する。Bun_numは入力自然文の番号である。入力自然文のなかで、単文で表現される単文の意味根41はBun_ixrt[].tan_bun[]に集める。スロットへの書込み語は節ごとにまとめるので、Bun_ixrt[ ].setu[Setu_num].slot[ ]に書き込む。Setu_numは節の番号である。このほかに、縦に結合される縦結合複合語はBun_ixrt[].setu[Setu_num].goh_tate_kon[]に、横に結合された横結合語はBun_ixrt[].setu[Setu_num].goh_yoko_kon[]に、句はBun_ixrt[ ].setu[Setu_num].phrase_kon[ ]に、文から取り出される単語、すなわち、根単語はBun_ixrt[ ].bun_tate_kon[ ]に書き込む。
【0023】
意味は世界共通である。それをコンピュータ上で実現するために考案されたのが意味語である。意味語が世界共通語として、利用されるためには、世界各国の言語がコンピュータ上で正確に同じ意味構造で、また同じ意味で記述されなければならない。本発明は意味語のごく初歩的な技術の応用である。ごく基本的な考えを簡単に説明する。
【0024】
これ以上分解することができない基本単文には、PS_EX「EXist 〜ある;存在」と、状態を表すPS_IS「IS 〜である;状態」と、行為を表すPS_DO「DO〜する;行為」の三種がある。これを分かりやすく示すと、図6のようになる。すなわち、PS_EXのP格には、存在を意味する 「ある」、PS_ISのP格には状態を意味する「である」、PS_DOのP格には行為を意味する「する」 を書き込み、他のMW要素30には、暗黙値として、A格には「だれか」や「なにか」(WHO WHAT)、T格には 「いつか」(WHEN)、S格には 「どこか」(WHERE)、O格には 「なにか」(WHAT)、V格には 「なん回か」、W格には 「なぜか」(WHY)が書き込まれている。基本意味単位は基本的には1H5Wで構成されている。この三つの基本単文のほかに、「移動」、「変化」、「経過」、「発生」、「消滅」などの意味を表現する五つの準基本単文を設定している。動詞、助動詞、形容詞、接尾辞、判定詞などの用言が表現する意味構造は、これら合計8個の基本単文と準基本単文を縦、横に結合して構成される。これであらゆる複雑な意味構造を表現することができる。
【0025】
「動詞、助動詞、形容詞、判定詞、接尾辞」などは用言である。複数の用言が組み合わされた用言を複合用言と呼ぶ。ここでは、一つの用言や複合用言で表現される文を単文としている。例として「太郎が花を水に浮かべる」の意味構造を示すと、図7のようになる。即ち、基本意味フレーム40のPS_EX(存在)を基本意味フレーム40のPS_DO(行為)のO2格で縦に結合し、PS_EXのP1格には、「ある」が、PS_DOのP2格には「浮かべる」が書き込まれている。残りの格はスロットと呼ばれ、単語の文字列などが書き込まれる。この場合、A2格のスロットに「太郎が」、A1格に「花を」、S1格に「水に」などの文字列や意味情報が書き込まれている。「太郎が花を水に浮かべる」という意味は、「花が」、「水に」、「ある」という状態に「太郎がする」という意味であると考える。そのような状態に「する」を「浮かべる」という動詞(用言)で表現したことになる。同図において小さい文字で示したものが、人間の頭脳の中には暗黙値でとして存在していると考えられるが、自然文では文字列として表現されない。コンピュータでもこれを表現しないように、表現禁止にしている。これを自然文で示すときには、マーク(*)を付けた。
【0026】
最下層にあるMW要素は特別な役割を持ったMW要素である。意味構造の根っこにあるので、これを意味根41と呼ぶ。意味根に書き込まれた単語が根単語と呼んでいる。すべての意味構造はこれを連結点として結合する。この意味フレーム40からプログラムで自然文を生成するには、意味根を基点として、自然文生成経路を生成する。それに沿って表現可の文字列だけを集めれば、自然文が簡単に生成できる。次のようにしても、簡単に自然文が生成できる。上のPS_EXを下のPS_DOのO2格に埋め込むだけでよい。図7の格要素だけを示すと次のようになる。
([A2 T2 S2 V2 W2 ([A1 T1 S1 V1 W1 O1 P1])O2 P2])
このうち、「太郎が」、「花を」、「水に」、「浮かべる」などの文字列を持つMW要素30だけを並べると、次のようになる。A2格を示す記号A2をサフィックスとして示した。
([(太郎が)A2 (花を)A1 (水に)S1(浮かべる)P2])
本発明では、意味構造を自然文の中で表現するために上述のように、MW要素30の記号 ( ) やPS要素31の記号 [ ] を用いている。PS要素31の内側にあるMW要素30の記号を削除すると次のようになる。
([太郎が花を水に浮かべる])
さらに、PS要素の記号[ ]を省略すると、次のようになる。
(太郎が花を水に浮かべる)
内部にある意味構造記号42は省略しているが、これが「太郎が花を水に浮かべる」という文の意味構造である。このMW要素を省略すると、
太郎が花を水に浮かべる
となる。自然文の中で意味構造を示唆するために、文字列と違和感がない記号を用いている。ここで、「浮かべる」という意味フレーム40を紹介したが、意味フレーム40には多種類の意味フレーム40がある。本発明では、意味フレーム40の内部構造については問題にしないので、本発明の説明には、この意味フレーム40を汎用的な意味フレーム40として用いている。
【0027】
次に、「太郎が水に浮かべる花」という文の意味構造について説明する。これは
「太郎が花を水に浮かべる。その花」
という意味である。それを意味フレーム40で示すと図8のようになる。図7に示す ように「太郎が花を水に浮かべる」と同じ意味構造であるが、意味フレーム40のA1格に書き込まれた「花が」が表現禁止となり、それが一番下にある意味根41に書き込まれた状態になる。単語の文字列が書きこまれていないスロットを省略すると表1のような意味構造になる。
【0028】
表1
[(太郎が)(*花を)(水に)(浮かべる)]
↑↓
( 花 )意味根
意味根41の上にある意味構造を意味根41の前に埋め込むと、
([(太郎が)(*花を)(水に)(浮かべる)]↑↓花)
このようになる。 意味根41の後に埋め込むと、英語の語順になる。↑↓は [(太郎が)(*花を)(水に)(浮かべる)]というPS要素と(花)というMW要素が縦に結合されたことをしめすマークである。これを意味構造記号42の縦結合記号とする。自然文の中に意味構造を示す記号を書き込んで自然文の中の意味構造を浮かび上がらせることを試みている。なるべく文字列となじみのある記号を用いるために、「↑↓」の代わりに「::」 を用いることにした。従って
([(太郎が)(*花を)(水に)(浮かべる)]::花)
このように記述する。表現禁止の文字列を削除し、意味構造としてMW要素30を強調する必要がなければ、外の( )の中のMW記号を削除して、次のように
([太郎が水に浮かべる]::花)
と記述する。 意味フレーム40 の [ ] も特に強調する必要がなければ、それを削除するすると次のようになる。
(太郎が水に浮かべる::花)
これは 「太郎が花を水に浮かべる」 から「花」を取り出して意味根41の要素MWに書き込まれたものである。 記号 :: によって、文と縦に結合された意味構造であることを示す。
【0029】
「太郎が花を水に浮かべた理由」 の「理由」や「太郎が花を水に浮かべたという理由」の「という理由」などは、前文から取り出されたものではない。もう少し複雑な意味構造をもっている。しかし、その程度の違いは、読み手も自然に理解できる内容であるので、若干の違いは無視して、その差異を示さない。
【0030】
複合語の意味構造について説明する。「経営再建」のように「経営」と「再建」という単語が合成された語を複合語と呼ぶ。本発明では、このような複合語を一つの単語としてみるのではなく、次のような文、すなわち、「経営には、再建がある。その再建」として取り扱う。これを意味構造として表現するには、存在を表すPS_EX、を用いる。この意味構造を文字列にすると、表2のようになる。
【0031】
表2
([(スロット)A1(書込禁)T1(スロット)S1(書込禁)V1(書込禁)W1(書込禁)O1(ある)P1]::( ))
スロットS1に「経営」を、スロットA1に「再建」を書き込む。これが取り出されて、意味根41に書き込まれるので、意味構造は表3のようになる。スロットA1を表現禁止にする。
【0032】
表3
([(*再建が)A1 (経営に)S1(*ある)]::(再建))
ここで、助詞の「に」や動詞の「ある」を表現禁止にして、必要のない記号と文字列を削除すると、次のようになる。 (経営::再建) すなわち、「経営には、再建がある。」という文と 「その再建」 という単語が縦に結合した意味構造である。つまり、「再建」は単なる「再建」でなく、「経営に関する再建」の意味になる。
【0033】
ところで、「延べ300キロ」は複合語であるが、その意味は「300キロは延べである。その300キロ」という意味である。そこで、表4のように意味構造として記述する。
【0034】
表4
([(*300キロは) (延べ) (*である)] :: (300キロ) )
表現禁止の文字列を削除すると、次のようになる。(延べ :: 300キロ)。 この場合は「〜は〜である」という意味であるからPS_ISという基本単文を用いるべきであるが、PS_EXを用いている。この程度の差異は無視する。
【0035】
次に句の意味構造について説明する。句の「野鳥のさえずり」は「野鳥にはさえずりがある。」という意味構造と「そのさえずり」という意味構造が縦に結合していると考える。これは、「さえずりは単なるさえずり ではなく、[野鳥に関するさえずり」という意味になる。表5のような意味構造として表現する。「野鳥に」の助詞「に」を「の」に変更して、表現禁止の文字列を削除した。
【0036】
表5
(野鳥の::さえずり)
【0037】
「経済再建」も「経済の再建」もほとんど同じ意味であるように、複合語と句は殆ど同じ意味構造である。しかし、単語間の結合力に若干の違いがある。単語同志の結合の方が強い。従って、先に単語同士を左から右に結合させて、意味を構築する。例えば、「12日の東京株式市場では」の場合、「東京」と「株式」がまず結合して、(東京::株式) となり、次に 「株式」と「市場では」が結合して、(株式::市場では)となり、その後に「12日の」と「東京株式市場では」が結合して、(12日の::東京株式市場では)となる。前述の意味構築結果を反映させて、意味構造の内部構造も示せば、表6のようになる。
【0038】
表6
(12日の::((東京::株式)::市場では))
つまり、複合語の方が結合力が強いので、先に結合される。その後に句の意味構造が構築される。
【0039】
文と、複合語や句との違いは、意味構造のスロットに文字列などの意味情報が自由に書き込めるかどうかである。複合語や句を記述した意味フレーム40には、意味情報を書き手が自由に書き込むことができるスロットがないので、限定的な意味しか表現できない。それに対して、意味情報を自由に書き込めるスロットがある動詞、形容詞、判定詞などの用言を用いると、複雑な意味を自由にしかも精確に表現できる。一般に、背景としての意味情報は複合語と句を用いて表現することが多い。しかも、読み手が当然知識として持っていることが前提となるが、その意味は正確でなくてもよいことが多い。少なくとも、背景知識情報として示しておきたいという程度のものであると考えられる。明確に提示したい情報は用言を用いて表現し、それ以外の背景知識は複合語か句で表現すること基本である。本発明はこのようなことができる自然文作成支援方法を提供しようとするものである。
【0040】
本発明の基本になっている意味言語では、文章の意味は、基本的に単文の意味構造が縦横に結合されて構成されるとしている。「一日、騒音を断って、しばし立ち止まって、さえずりに心を留めたい。」 という文の意味構造は表7で示すように、「一日、騒音を断ち、」という文と、「しばし立ち止まって、」という文102と「さえずりに心を留めたい。」という文という三つの単文が横に結合されている。
【0041】
表7
(一日、騒音を断ち、)→(しばし立ち止まって、)→(さえずりに心を留める)
↑
( )意味根
もし〜ならば、〜する。 は if_then の関係であるが、「もし、騒音を断って、しばし立ち止まれば、さえずりが心に留まる。」という意味を示している。三つの文が論理関係によって結合された意味構造である。しかし、ここではとりあえず、横結合として扱うことにする。それを「→」で示す。「スピードや」、「騒音を」、「雲や」、「さえずり、」は単語であるが、単語が横に結合されたものであるので、次の表8ように記述する。
【0042】
表8
(スピードと)→and(*騒音を) (野鳥や)→or(*さえずりに)
↑ ↑
(騒音を)意味根 (さえずりに)意味根
意味言語では、文も単語も同じように取り扱っている。単語は意味としてと固定しているので、意味フレームを持たないが、文は用言のスロットにいろいろな単語を書きこむことによって、多様な意味を表現することができる。「スピードと騒音を」の「スピード」と「騒音」は論理積の関係にあり、「野鳥やさえずりに」の「野鳥」と「さえずり」は論理和の関係にある。ここでは、論理関係であることだけを示唆し、文の場合と同じように、単に横に結合されたものとする。このように、幾つかの意味を横結合させたときには、必ず、最下層に意味根41を設置して、横結合された意味構造の代表とする。これで別の意味構造と結合させる。横に結合された最終語を代表として意味根41に書き込むが、二重表現を禁止にするために、終点の単語を表現禁止にしている。
【0043】
次に意味根について説明する。既に説明したように、意味根に書き込まれた単語は根単語であるが、一つの単語はそれ自体根単語である。意味フレーム40やMW要素30が幾つか横に結合された意味構造には、意味構造の代表として、意味根41をもうけることはすでに述べた。この意味根41だけが他の意味構造と結合する。このように結合点を制限したので意味構造の構築が簡単になった。この意味根41に、自然文生成基点や自然文生成経路の遮断の可否の機能を与えることによって、自然文の意味構造を意味根41で分割できる。意味根を設けたことが本発明のキーポイントとなる。
【0044】
意味範囲の設定について説明する。「秋の一日、スピードと騒音を断ち、しばし立ち止まって、流れる雲や野鳥のさえずりに心を留めたい。」を例文として意味解析を説明する。本発明では、入力文を幾つかの部分に分割して、各部分で独立して意味解析を行う。従来の自然文解析方法では、ある単語が別の単語とどのような関係があるかどうかという、係り受け関係を中心に構文解析22などを進めている。その係り受けを入力自然文全域にわたって行っている。係り受けの関係があるかどうかは、人間は書き手が当然持っていると考えられる知識をベースにしていることが多い。ところが、本発明では、人が当然持っていると考えられる知識を殆ど持っていないことを前提に、意味解析をおこなう。知識がないと、単語はごく近くにある単語としか関連しなくなる。逆にこのことを利用して、意味解析を行い、知識が無い読み手がどのように入力文を解釈するかを示し、書き手の注意を喚起することが目的である。コンピュータによる自然文処理では、統計的な処理で、係り受けの可能性を決めている。賠償責任が伴う大切な文章の意味を統計的な処理では決められない。むしろ、誤解しやすい箇所を書き手に示すことが重要である。
【0045】
入力文の意味範囲分割は、文節解析結果に意味範囲分割規則(Bsyori_irange.rule) を適用する。どのように、意味範囲を分割しても良いが、ここでは、動詞の活用形が基本連用形か又は、タ系連用テ形で終わり、読点が付いていることを条件にしている。これらの各単文の意味が独立し、横に結合して読み手に知識を提示していると思われるからである。これは表9のようなルールとなる。例示した規則は一つだけである。図10に示した文節解析結果に意味範囲分割規則を適用する。図9で示すように、形態素解析結果で、mrph_no=9の([動詞 * * 基本連用形])とmrph_no=12の([動詞 * * タ系連用テ形])は、文節解析結果では、bmst_n=4、 と、bnst_n=6で、用言:動 係:連用 読点などの特長が示されている。”*“は条件を無視する記号である。このような規則を多数作成して、Bsyori_irange.rule に登録する。
【0046】
表9
意味範囲分割規則 Bsyori_irange.rule
(( )mae(用言:動 係:連用 読点)hon( )ato prog_no:8000 rule_no:8020 )
このような規則を図10の文節解析結果に適用する。mae(前)、hon(本)、ato(後)は ( ) のサフィックスで、参考のために示したもので、実際のルールには記述しない。hon=bnst_noで、mae=bnst_no−1、ato=bnst_no+1である。即ち、bnst_noを始から辿って、検索するが、maeはその前、atoは後を意味する。つまり、図10において、bnst_no=0から、意味範囲分割規則と文節解析結果をマッチングさせるが、bnst_noの前と後でもマッチングするかどうかを調べる。上で示した規則では、maeもatoの条件が指定されていないので、honだけがマッチングすればよい。prog_noの8000はプログラム番号で、関数prog_8000( )を実行する。rule_no:8020はルールの識別番号である。図10の文節解析結果で、bnst_noを辿って、どのルールがマッチするかを調べる。上述の規則の場合、bnst_no=4の「断ち、」 とbnst_no=6の「立ち止まり、」で、文節解析結果の特長“用言:動 係:連用 読点”にマッチする。従って、意味解析範囲をbnst_no = 0〜4と5〜6と7〜12の三つの範囲に分割する。これを意味範囲0(imi_range_0)、 意味範囲1(imi_range_1)、 意味範囲2(imi_range_2)とする。この三つの意味範囲に分割して意味解析を行う。
【0047】
次に形態素解析結果を用いた意味構築について説明する。(秋の)や(スピードや)(騒音を)などのように、名詞に助詞がついてものは、意味構造として極めて簡単である。本発明では意味構造が簡単で確実なものから意味構築を始める。意味構築は、図10に示す文節解析結果に基づいて解析を進める。図10の文節に対応する形態素は図10のmrph_fromとmrph_toに示されている。例えば、bnst_no=0の「秋の」に対応する形態素は「秋」のmrph_from=0と、「の」のmrph_to=1である。この範囲に形態素意味構築規則Msyori.ruleを適用する。本発明の説明で使用する形態素意味構築規則Msyori.ruleを表10に示す。
【0048】
表10
形態素意味構築規 Msyori.rule
(( )mae ([名詞 (普通名詞 時相名詞)])hon ([助詞 (格助詞 接続助詞)])ato prog_no:2000 rule_no:1900 )
(([名詞 数詞])mae([接尾辞 名詞性名詞助数辞])hon( )ato prog_no:1400 rule_no:1400)
(([接尾辞 名詞性名詞助数辞])mae([特殊 (句点 読点])hon()ato prog_no:2400 rule_no:2405)
(([動詞 * * (基本連用形 タ系連用テ形)])mae([特殊 (句点 読点)])hon( )ato prog_no:2002 rule_no:2414)
(([動詞 * * 基本連用形])mae([接尾辞 形容詞性述語接尾辞])hon()ato prog_no:4600 rule_no:4413)
(( )mae([動詞 * * 基本形])hon( )ato prog_no:2000 rule_no:2400)
(( )mae( 副詞 )hon( )ato prog_no:2001 rule_no:2401)
【0049】
検索条件を [品詞 細分類 活用型 活用形 文字列] の順に記述する。もし、活用型と活用形を指定しない場合は、“*”で、次のように記述する。 [品詞 細分類 * * 文字列] 、( )のように検索条件が記述されていないものは、検索条件なし。 [ ] の中で(普通名詞 時相 名詞)のように括弧で示したものは、普通名詞でも時相名詞でもよいという意味である。細分類のあとにマッチング条件がない場合は、[名詞 細分類]のように条件を記述しなくてもよい。意味範囲0(imi_range_0)では、マッチングは、図9のmrph_no=0から始める。[秋]の品詞は名詞で細分類が時相名詞であり、mrph_no=1の品詞が助詞、細分類が接続助詞であるので、honがmrph_no=0のときに規則番号rule_no:1900がマッチングし、関数prog_2000( )を実行する。MW要素30一個をメモリーから取り出し、mw_1とし、MW要素30のPrc_mw[1].moji に見出し語である文字列「秋」を、助詞の「の」をPrc_mw[1].moji_jcsに書き込む。名詞の「秋」は今後の意味解析で使用しないので、処理済として、形態素解析結果から削除する。図11は、入力文との関係が直感的に理解できるように意味構造を階層的に示したものであるが、同図で mw_1 (秋の) のようにしてMW要素30を示す。
rule_no:1900の規則は「スピードと」、「騒音を」 にも一致するので、図11に示すように、mw_3(スピードと)とmw_4(騒音を)のMW要素30を作成する。「一日、」は2つの規則で意味を構築する。規則番号 rule_no: 1400でmw_2(一日)を作成し、さらに、規則番号rule_no:2405で、mw_2(一日、)のように、読点を追加する。
【0050】
「断つ、」はrule_no:2414にマッチするので、関数prog_2002( )で、意味フレーム辞書から意味フレームps_2を取り出し、P格のmw_22( ) の要素moji、すなわち、Prc_mw[mw_22].mojiに文字列の 「断つ」を書き込む。そして、その意味根41であるmw_23の要素moji_jcs即ち、Prc_mw[mw_23].moji_jcsに読点「、」を書き込むなどの処理を行い、表11と図11に示すような意味構造を構築する。
表11
ps_2[ mw_22(断ち) ]
↑
mw_23( 、)
これで意味範囲0(imi_range_0)の意味構造の構築は終わる。つぎに、同様のことを意味範囲1(imi_range_1)について意味構築をおこなう。図11でも示すようにmw_24(しばし)を作成する。文字列の 「立ち止まり、」は、mrph_no=12で、規則番号rule_no:2414にマッチするので、関数prog_2002( )を実行し、意味フレーム(ps_4)を意味フレーム辞書から取り込んでメモリー上に設定する。前述の 「断つ、」と同じ方法である。この意味構造を表12に示す。
【0051】
表12
ps_4[ mw_38(立ち止まり) ]
↑
mw_39( 、)
次に意味範囲2(imi_range_2)について、「雲や」、「野鳥の」、「さえずりに」、「心を」などの意味構築を行う。形態素意味構築規則Msyori.ruleをこの範囲に適用する。mw_5(雲や)、mw_6(野鳥の)、mw_7(さえずりに)、mw_8(心を)などは、形態素意味構築規則rule_no:1900で構築できる。これを図11に示す。
【0052】
mrph_no=14の「流れる」は、形態素意味構築規則 rule_no:2400にマッチして、関数prog_2000( )を実行して、意味フレームps_6をメモリー上に取り込む。これを図11に示す。「留める」の意味フレーム40は、図11に示すように、前述と同じようにメモリー上に取り出す。「留めたい」は動詞の「留める」という意味フレーム40と接尾辞の「たい」という意味フレーム40を縦に結合した複合意味フレーム40であるが、本発明では、自然文の全体の意味構造を分かりややすく説明することが目的で、意味フレーム内部の意味構造については詳しく論じない。そのために「留め_たい」という仮想的な意味フレーム40を作って、それを用いる。「留め」と「たい」とは、形態素意味構築規則rule_no:4413がmrph_no=25でマッチするので、関数prog_4600( )を実行する。即ち、基本連用形の「留め」と接尾辞の形容詞性述語接尾辞である「たい」を「_」で結んだ文字列「留め_たい」をps_8の意味フレーム40のP2格のMW要素30(mw_68)の要素、即ち、Prc_mw[mw_68].mojiに書き込む。それを表13に示す。
【0053】
表13
ps_8[ mw_68(留め_たい) ]
↑
mw_69( 。)
次に文節解析結果を用いて意味構築をおこなう。
【0054】
構文解析22では、文節がどのような役割を持つかを示すために幾つかの特長featureが与えられている。その特長を用いて意味構築を行う。例えば、図10で示すように、bnst_no=0の[秋の]についてみると、特長2では[体言]、特長4では、[係:ノ格]が与えられ、bnst_no=1の[一日、]では特長1で[体言]、特長2では[数量]などが与えられている。これらを組み合わせて、表14のような文節意味構築規則Bsyori.ruleを設ける。
【0055】
表14
文節意味構築規則 Bsyori.rule
((体言 係:ノ格)mae (体言 数量) hon ( ) ato prog_no:6100 rule_no:6220)
((体言 係:ノ格)mae (体言 助詞 格要素 連用要素) hon ( ) ato prog_no:6100 rule_no:6221)
((体言 助詞 係:ト格)mae (体言 助詞 格要素 連用要素)hon ( )ato prog_no:6200 rule_no:7044)
((体言 助詞 係:連体)mae (体言 助詞 格要素 連用要素)hon ( )ato prog_no:6200 rule_no:6460)
((用言:動 係:連格 連体修飾 連体並列条件) mae (体言 助詞 )hon ( )ato prog_no:6000 rule_no:6060)
【0056】
文節意味構築規則の規則番号rule_no:6220が、bnst_no = 1 でマッチするので、関数prog_6100( )が実行される。即ち、図11に示すように、意味フレーム ps_10 が作成されて、その意味フレーム40のS格のmw_83に「秋の」という文字列を、mw_2の文字列「一日、」の意味情報などをA格のmw_81のスロットと、意味根41のmw_88にコピーする。A格の「一日、」は表現禁止になるので、図11では省略している。この意味根41をphrase(句)_kon(根)として、次のようにBun_ixrt[Bun_num].setu[Setu_num].phrase_kon[i] =mw_88;に格納する。ここで、Bun_numは文番号、Setu_numは節番号で、iは既に登録された意味根41の数である。即ち、文番号と節番号ごとに分類して格納する。bnst_no=0の「秋の」はこの段階で今後意味構造に関与するする事がなくなるので、図10の文節解析結果から処理済として削除する。bnst_no=2の「スピードと」とbnst_no=3の「騒音を」とは、文節意味構築規則のrule_no:7044とマッチするので、関数prog_6200( )で次に示すような意味を構築する。mw_3とmw_4を横に結合する。そして、mw_4の下に、新たにもう一つのmw_70を設けて、それをmw_4と上下に結合する。その様子を表15にしめす。
【0057】
表15
mw_3(スピードと) → mw_4(*騒音を)
↑
mw_70(騒音を)
これが他の意味構造との結合点になるので、語が横に結合する意味根41としてgoh語)_yoko(横)_kon(根)、即ち、Bun_ixrt[Bun_num].setu[Setu_num].goh_yoko_kon[i]=mw_70;に格納する。ここで、上のような結合情報を格納するために次にように、mw_3と mw_4、 mw_70が結合相手の要素番号を格納する。Prc_mw[mw_3].N = mw_4;Prc_mw[mw_4].B = mw_3;Prc_mw[mw_4].L= mw_70;Prc_mw[mw_70].U = mw_4; ここでmw_4はMW要素mw_4の要素番号である。その他に、結合相手の要素の種類、即ち、PSかMWかなどの情報をPrc_mw[mw_num].FLGに格納する。bnst_no=2の「スピードと」は今後意味構造の構築に関与しないので、図10の文節解析結果から処理済として削除する。
【0058】
次に、imi_range_0で、「一日、」と「騒音を」の文字列は「断つ、」という意味フレーム40のスロットのMW要素30に書き込む。意味フレーム40の空いているスロットを見つけて、その順番に空きスロットに文字列などの意味情報をコピーする。これは簡単なプログラムで実現できる。すでに作成された意味フレームps_2の空きスロットmw_17にmw_88(一日、)の意味情報をコピーし、スロットmw_17のMW結合要素50とps_10のPS結合要素55に結合相手の要素番号を格納することによって、結合情報を格納する。この場合、入力自然文の語順が出力時に変わらないように、入力文の語順に従って、空きスロットに文字列を書き込む。このようにして、「一日、」という意味構造は「断つ、」という意味フレーム40と結合する。意味言語では、指定された意味の単語を指定された意味を持つスロットに書き込むことになっているが、これを厳密に行うと、書き手の語順と、意味構造から生成される自然文の語順が微妙に変わり、書き手に心理的な負担をあたえるので、ここでは、書き手の語順どおりに出力するために、入力文の語順どおりにスロットに書き込んでいる。(スピードと)→(騒音を)の意味根mw_70の意味情報を空きスロットmw_18にコーピして、さらに、mw_18とmw_4に結合相手の要素番号を持たせて結合情報を格納する。この場合も、(スピードと騒音を)は、mw_70とスロットのmw_18との2つの意味連結MWを持つことになる。スロットのmw_17とmw_18で、自然文表現の可否や自然文生成経路の遮断の可否の制御は、MW表現可否要素52やMW経路遮断要素53であるPrc_mw[mw_num].KAKで行う。KAKは16進数の8桁で、上から一桁目で表現可否、上から4桁目で遮断可否を指定する。意味根41は既に収集されて、Bun_ixrt[Bun_num]に分類して格納されているので、いつでも制御することができる。経路遮断可とすれば、「一日、騒音を断ち、」 となり、遮断しなければ、「秋の一日、スピードと騒音を断ち、」 という文が得られる。
【0059】
文節意味構築規則によるimi_range_1の意味構築は簡単である。図11に示すように、mw_24(しばし)を、意味フレームps_4[mw_33(スロット)mw_38(立ち止まり、)])の空きスロットmw_33に意味情報と結合情報を書き込むだけである。imi_range_2の意味構築は次のように行う。図10のbnst_no=10で、文節意味構築規則rule_no:6221とマッチして、関数prog_6100( )が実行され、表16のような意味構造が得られる。
【0060】
表16
mw_73 mw_79
(野鳥の::さえずり)
この段階で、「野鳥の」は今後意味構築に関与しないので、図10から処理済として削除する。「流れる雲や」はbnst_no=8で文節意味構築規則rule_no:6060がマッチし、関数prog_6000( )によって、図11に示すように、「流れる」の意味フレームps_6の意味根mw_54にmw_5(雲や)の意味情報を書き込む。「雲や」は「流れる」という用言と縦接合されているので、Bun_ixrt[Bun_num].setu[Setu_num].bun_tate_kon[ ]に格納する。これを基点して、「流れる雲」という文字列が生成できる。この段階で「流れる」の意味解析が終わるので、処理済として、図10から「流れる」の項目を削除する。
【0061】
前の処理で、bnst_no=9の「野鳥の」が処理対象から除去されているので、bnst_no=8の「雲や」とbnst_no=10の「さえずりに」とが隣り合わせとなり、文節意味構築規則のrule_no:6460とマッチする。そこで、関数prog_6200( )で、表17と図11に示すように、意味構造が構築される。
【0062】
表17
mw_71(雲や) → mw_79(*さえずりに)
↑
mw_80(さえずりに)
【0063】
「留め_たい」の意味フレーム40の空きスロットmw_63に、mw_80(さえずりに)の意味情報をコピーして、上の意味構造と結合させる。この場合も、意味情報をスロットに書き込むだけで、mw_80を削除するわけではない。mw_8(心を)をスロットmw_64に書き込めむと、これでimi_range_2の意味構築が終わる。スロットmw_63で自然文生成経路を遮断すれば、mw_69を基点をした自然文「さえずりに心を留め_たい。」という文が得られる。遮断しなければ、「流れる雲や野鳥のさえずりに心を留め_たい。」という自然文が得られる。
【0064】
自然文生成処理については、図16で示すプログラムで詳しく説明する。関数は 文作支援( );のように、文字列の後に括弧( )と ; をつけて示した。プログラムはmain( ) ;で始まる。形態素解析( );と構文解析( );、規則類の読み込み( );を実行し、次いで文作支援( );を実行する。文作支援( );は入力自然文の意味範囲分割( );で、入力文を幾つかに分割する。その後、入力自然文の意味構築( );で自然文の意味を構築し、次いで指定された意味根mw_rootを基点として、自然文生成(mw_root);を実行する。入力自然文の意味構築( );では、形態素解析結果による意味構築( );で、形態素解析結果に形態素意味構築規則を適用して、意味構造を構築する。その後、文節解析結果による意味構築( );では、文節解析結果に文節意味構築規則を適用して、意味構造を構築する。
自然文生成(mw_root);では、意味構造の自然文生成経路を辿って、自然文を作成するための文字列を収集するが、上に結合される要素がPSやMWかによって、経路作成が異なる。最初はmw_rootを起点として、MWの生成経路作成と文字列収集(mw_root)を実行する。MWの生成経路作成と文字列収集( );で示すように、上に結合された要素がMW要素の場合は、MWの生成経路作成と文字列収集( );で、PS要素の場合が、PSの生成経路作成と文字列収集( );で生成経路を作成して、その経路で表現可の文字列を収集する。PSの生成経路と文字列収集( );では、A格、T格、S格、V格、W格、O格、P格の7つの格に分岐する。生成経路の作成順序は、格順テーブルで指定するkakuで決められる。同図では、日本語の格順を示したが、格順が言語ごとに異なる。基本的な格順は、英語はAPOST、中国語のATSPOである。どのような格順でも格順テーブルで指示できる。MWの生成経路生成と文字列収集( );は、表現可でしかも経路遮断否のMW要素と、もしバイパス経路のamwが指定されている場合には、バイパス経路での生成経路作成と文字列収集();によって、それらの要素を辿って、指定された意味根41を基点として、自然文生成経路が形成され、表現可の文字列を収集する。MW要素が表現不可や経路遮断の場合は、MW要素の文字列を取り込まないで、MW要素のNで指定されるMW要素を経由して、自然文生成25を行う。
【0065】
MW要素番号mw_numの文字列は次のようにして収集される。即ち、
冠詞、前置詞、接頭辞などの文字列は
strcat(語の文字列[moji_num][1]、Prc_mw[mw_num].moji_jar);
見出し語の文字列は
strcat(語の文字列[moji_num][2]、Prc_mw[mw_num].moji);
助詞の文字列、
strcat(語の文字列[moji_num][3]、Prc_mw[mw_num].moji_jcs);
論理関係の記号などは
strcat(語の文字列[moji_num][4]、Prc_mw[mw_num].moji_ronri);
によって、語の文字列[moji_num]に書き込まれる。これらの文字列は、収集文字列からの自然文生成( );によって、語順テーブルで指定された順で出力する。図16で示した語順は、日本語の場合で、接頭辞、見出し語、接尾辞、論理記号の順で示したが、その順序は、自由に語順テーブルで変更できる。従って、各国語の語順で生成できる。MWの生成経路作成と文字列収集( );や、PS要素の場合がPSの生成経路作成と文字列収集( );で文字列を収集し、その後バイパス経路での生成経路作成と文字列収集( )で収集し、最後に、Prc_mw[ ].Nで示された経路の文字列を収集する。
これらの文字列の出力順序は、MWの生成経路作成と文字列収集( );内でプログラムの位置によって容易に変更可能である。英語では、関係代名詞は、節より先に表現される。これはを実現させるためには、「 strcat(語の文字列[moji_num][2]、Prc_mw[mw_num].moji) 」を、プログラムのMWの生成経路作成と文字列収集( )の中にある 「 if(上に結合する要素がPSの場合) 」の上に移動させればよい。このように、本発明では、格順、語順、単文の順序、関係代名詞と節の順序を、日本語だけでなく、いろいろな国の言語の語順でも、表現できる。
【0066】
意味構造と自然文について説明する。本発明では、入力自然文を一旦意味構造に変換する。その意味構造のいろいろな部分を指定して、各部分の意味構造から部分意味自然文を表出させる。その部分意味自然文によって、書き手が意図している意味が精確に表現されているかどうか細部にわたって検証できる。図11の( a )に意味構造を, ( b )に入力文100を示した。図11では、意味構造を結合する意味根41の文字列を上下に並べて階層的に示したので、文の意味がどのような構造になっているかが一目でわかる。意味構造をこのように表示することは、コンピュータでも行えるが、複雑な長文になると、かえって分かり難くなる。そのために、通常は、図12に示すように自然文を出力させている。ここでは、図11に示す意味構造を参照しながら、部分的な意味構造からどのように、部分意味自然文を生成するかを説明する。
【0067】
この意味構造から生成される自然文を二種類に分類して示す。一つは意味構造を幹や枝や葉の部分にばらばらに切り分けて、その部分的な意味構造の意味を自然文で表示する。これらは、意味根で自然文生成経路を遮断すれば、簡単に生成できる。このようにして生成された文や語や句に「簡略」という枕詞をつけている。もう一つは、意味根で自然文生成経路を遮断しないで生成した自然文で、これに「詳細」という枕詞をつけて区別している。図12では、前半に簡略意味表現と後半に詳細意味表現を示している。簡略表現では、自然文生成経路を遮断して、必要最小限の文字列しか表示させていないので、基本的な意味表現を見るには、便利である。大抵は、簡略表現で十分であるが、もっと細かく検証したいときには、詳細意味表現を見ることになる。
【0068】
図12に入力自然文の主旨を示したが、簡潔で分かりやすい。これはmw_17(一日、)とmw_18(騒音を)とmw_63(さえずりに)で自然文生成経路を遮断して、表現可の文字列を集めたものである。この場合の自然文生成は簡単である。意味根41のmw_23、 mw_39、mw_69の上にある意味フレーム40で、左から右に表現可の文字列をならべると自然文が得られる。主旨には、横結合記号の → を付記したが、これによって、主旨は三つの単文が横に結合された意味構造であることが分かる。図12の簡略単文には、文末に 横結合記号の「→」を持つ文と、文末記号の「。」 を持つ文と、他の文と縦結合する文がある。縦に結合する文には、意味の連結語となる根単語の前に縦結合記号「::」持っている。簡略単文では、単文のスロットに書き込まれた文字だけを示したので、木から枝葉を払ったような状態になり、意味構造が分かりやすい。簡略書込語は意味フレーム40のスロットに書き込まれた単語を枝葉を取り去った状態で示したものである。上の簡略単文の意味フレーム40のスロットに書き込まれた単語であるが、参考のために表示した。その他に簡略横結合語と簡略句を表示している。横結合語は単語が→で横に結合された意味構造を持つ。簡略横結合語1は 「スピードと→騒音を」であり、簡略横結合語2は「雲や→さえずりに」などである。簡略句1は「秋の::一日、」 、簡略句2は 「野鳥の::さえずり」 である。句では、助詞「の」がついているが、複合語と同じ意味構造である。縦結合語は自然文形成経路を遮断しない詳細縦結合語で示す。この文100では、縦結合語はないが、後で説明する図14で、詳細縦結合語を示す。
【0069】
同図の「詳細意味表現」の文字列は、自然文生成経路を遮断しない場合に生成される文字列である。詳細単文1では意味根mw_23を、詳細単文2では意味根mw_39を、詳細単文3ではmw_71を、詳細単文4はmw_69を基点として、生成した自然文である。図11で、プログラムで生成した自然文生成経路を点線で示したが、上の意味構造を下の意味構造に埋め込んで、それを一列に並べるだけで、そのような自然文分が得られる。
【0070】
意味言語の原理は単純明快であるので、詳細単文から簡単に階層的な意味構造が次のように構築できる。一つの単語は根単語として扱われる。二つの単語で構成される複合語や句では、後の単語が根単語である。単語が横に結合される場合は、最後の単語が根単語である。単文の場合は、意味フレームと根単語で構成される。縦結合記号の::の後にある単語が根単語である。これらの根単語を文中で指示され結合記号に従って、その順序で結合させると自動的に図17に示すような階層的な意味構造になる。詳細単文4を例にして説明する。図11や図12の詳細単文4では、MW要素記号( )を省略したが、図17の詳細単文4では、どの単語がどの単語と結合をしているかを明示するために、自然文の中に「( )」、や「::」や「→」などの意味構造記号を付記した。詳細単文4から(流れる::雲や)を取り出して、下位に書き出す。(野鳥の::さえずりに)も下位に書き出す。(流れる::雲や)の「雲や」と(野鳥の::さえずりに)の「さえずりに」を同列に並べると、簡略横結合語2の(雲や→さえずりに)になる。これによって、「雲や」と「さえずりに」が横に結合された意味構造を構築していることが分かる。それより下位に(留め_たい。)という意味フレームを置き、その意味フレームに(雲や→さえずりに)の根単語の「さえずりに」と「心を」を書き込めば、簡略文4になる。これによって、「流れる雲や野鳥のさえずりに心を留めたい。」の「雲や」は「雲が流れる」の「雲」で、それが「野鳥のさえずりに」の「さえずりに」と横に結合し、(雲や→さえずりに)となり、その「さえずりに」が(さえずりに心を留めたい。)の「さえずりに」になっていることが一目瞭然に分かる。すなわち、「雲」は、「簡略文3」と関わり、簡略横結語2を通して、簡略文4と結合していることがわかる。この意味構造から「雲や」は「野鳥の」には、意味として全く関係がないことがわかる。このように、入力文を意味構造の上で表現すると、ある単語がどの単語と関わっていることがはっきりする。もう少し複雑な入力文で、意味構造と自然文との関係を説明する。
【0071】
入力文200は「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空株に売り注文が殺到し、取引が成立しないまま、同日の日航株の値幅制限の下限となる前週末比30円安の37円まで気配値が下落している。」 の意味構造とその自然文生成経路を図13に示す。図13において、最下層に簡略単文2と簡略単文3と簡略単文5が横に並び、次のように→で結合されている。すなわち、
(株に注文が殺到し、)→(取引が成立しない:まま)→(37円まで値が下落して_いる。)
となるが、これらの簡略単文は、mw_83、 mw_84、 mw_24、 mw_25で自然文生成経路を遮断して、生成された単文である。これが本入力文の主旨になる。
【0072】
本発明では、このように主旨が簡単に得られる。まずこの文から、入力文は書き手の意図を正確に反映した文かどうかが判断できる。簡略単文の項では、このように横に結合した文だけでなく、簡略単文1と簡略単文4などのように、縦に結合した簡略単文も示した。簡略単文1と簡略単文2は根単語の「株に」で縦に結合されるので、図13にも示されているが、意味構造は表18のようになる。
表18
(市場では、行方に注目が集まっている::*株に)ps_18
(株に注文が殺到し、)ps_11
同じように、簡略単文4は簡略単文5と「37円まで」で縦に結合されているので、意味構造は表19のようになる。
表19
(下限となる::*37円まで)ps_22
(37円まで値が下落している。)ps_4
根単語の「株に」と「37円まで」は自然文を生成するときに重複するので、上にある意味根の文字列に「*」をつけて表現禁止にすると、表20のような文になる。
表20
「市場では、行方に注目が集まっている::株に注文が殺到し、」
「下限となる::37円まで値が下落している。」
「::」の後ろにある根単語で二つの文が縦に結合されていることがわかる。簡略単文は、単文と直接関係がない文字列が削除されているので、詳細単文より分かり易くなる。図14では、簡略単文のスロットに書き込まれた文字列を簡略書込語と簡略句として示した。図14の詳細書込語1の「12日の::東京::株式::市場では」の意味構造は、図13のmw_144から上に伸びている自然文生成経路をたどると、分かる。「東京」は「株式」に係り、「株式」は「市場では」に係り、「12日の」は「市場では」に係っていることが分かる。つまり、「12日の」は「東京」に係らずに、「市場では」に係っていることが明確である。詳細書込語8の(同日の::日航::株の::値::幅::制限の::下限となる::前週末::比::30::円安の::37円まで)の意味構造は図13のmw_24から上に伸びる自然文生成経路をたどれば分かる。mw_214の「制限の」はmw_209の「株の」とmw111の「幅」とmw_238の「下限と」に係り、mw_111の「幅」はmw_103の「値」とmw_116の「制限の」に係っている。「円安」は「比」と「30」と「37円まで」に係っている。このように言葉で表現すると、複雑であるが、図13の意味構造では簡単明瞭である。同図から「円安」は「前週末」には関係なく、「前週末」の「比」に関係していることが分かる。このことは、図15の詳細縦結合語9の「30::円安の」と詳細縦結合語12の「前週末::比::円安の」と図14の簡略句6の「円安の::37円まで」からでも確認できる。
【0073】
以上述べたように、入力文を意味構造に変換して、その意味構造を細部に分解して、それをベースにして意味構造を再構築すると図11や図13で示すような意味構造が得られる。また、それぞれの意味構造から自然文を生成すると、図12や図14や図15で示す自然文が得られる。これらの意味自然文から、入力自然文の意味を細部にわたって、検証することができる。文中の単語は、漠然として全体の意味に関与しているのではなく、明確な意味構造で規定される意味が組み合わされて頑健は意味が構築されている。このことから、入力した文の意味を示すと、書き手が意図している意味が精確に表現されているかどうかが分かるので、書き手が正しい文を作成することを支援できる。
【産業上の利用可能性】
【0074】
機械翻訳を行う場合、書き手が意図した正確な文が作成されていることが前提である。悪文を翻訳しても、悪文は悪文である。まず、翻訳するまえに、日本語なら日本語で正しい文を作成することが重要である。また賠償責任などが発生する公的な文章では、意味が正確な文を作成することが大切である。また、文章を作成しながら、知的なトレーニングを行うのに利用できる。
【符号の説明】
【0075】
1 中央制御装置、
2 内部メモリー、
3 表示装置、
4 外部記憶装置、
5 入力装置、
6 メモリーハブ、
7 IOハブ、
8 バス、
20 自然文分割プログラム、
21 形態素解析プログラム、
22 構文解析プログラム、
23 文節意味構築プログラム、
24 形態素意味構築プログラム、
25 自然文生成プログラム、
30 MW要素、
31 PS要素
32 意味根収集要素、 Bun_ixrt[Bun_num]
40 意味フレーム、
41 意味根、
42 意味構造記号、( ),[ ],::,→
50 MW結合要素、 Prc_mw[].U,L,B,N
Prc_mw[].FLG
51 MW文字列要素、Prc_mw[].moji_jar[],moji[]
moji_jcs[], moji_ronri[]
52 MW表現可否要素、 Prc_mw[].KAK
53 MW経路遮断要素、 Prc_mw[].KAK
55 PS結合要素 Prc_ps[].A,T,S,V,W.O.P,L
56 自然文生成経路
57 部分意味構造
58 全体意味構造
【技術分野】
【0001】
ワープロなどで入力された自然文に形態素解析及び構文解析を行うと、形態素解析結果や構文解析結果が得られる。その形態素解析結果や構文解析結果に意味構築規則を適用することによって、部分意味構造を構築することができる。それらの部分意味構造を意味根で結合していけば、入力自然文の全体意味構造を構築することができる。その全体意味構造に自然文生成経路を形成すれば、意味構造から全体自然文が生成できる。意味構造は意味根で結合されているので、意味根で意味構造を分割し、その分割した部分意味構造に自然文生成経路を形成すれば、その部分意味構造の意味を表出する部分自然文が生成できる。全体自然文及び部分自然文で、入力自然文の意味を細部にわたって検証できる。これを参照することによって、書き手が精確な意味を表現する自然文を作成することを支援する自然文処理法を提供する。
【背景技術】
【0002】
意味解析を行う前には、まず形態素解析と構文解析を行う。形態素解析はかなり難しい技術であるが、ほぼ確立していて、無料で公開されている。本発明では無料で公開されている形態素解析プログラムJUMAN(非特許文献3)を用いている。構文解析はまだ問題はあるといわれているが、質の高い構文解析プログラムがすでに無料で公開されている。本発明では多くの研究者に利用されている構文解析プログラムKNP(非特許文献4)を用いている。本発明では、構文解析結果を直接用いずに、その途中で得られる文節解析結果を用いている。形態素解析と文節解析については周知の技術であるので、詳しく説明しない。
【0003】
本発明の意味構造は、既に日本(特許文献1)、米国(特許文献2)、欧州(特許文献3)で特許として認可されている。特許第3811902号で示した意味フレームをベースに意味構造を構築している。この意味構造をベースにして、世界共通語の普遍的な言語として、意味語を提案している。意味語を日本語と英語について、普遍文法的な役割を分かりやすく解説した本をすでに 「知能からみた日本語と英語の普遍文法(非特許文献1)」 として出版している。
【0004】
世界共通の自然言語を記述するための意味構造は、自然言語処理関係の分野でまだ問題にされていないので、参考になる文献はない。しかし、自然言語処理研究者で広く引用されている文献は長尾真編「自然言語処理」(非特許文献2)である。形態素解析プログラムや構文解析プログラムを無料で提供している人たちが、執筆しているので、形態素解析や構文解析に関して参考になる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3811902号
【特許文献2】United States Patent 6126306
【特許文献3】European Patent No.0532338 14.08.02
【非特許文献】
【0006】
【非特許文献1】安藤司文 「知能からみた日本語と英語の普遍文法」スクリーンプレイ社1995年3月28日発行
【非特許文献2】長尾真編 「自然言語処理」 岩波書店 2003年9月25日発行
【非特許文献3】日本語形態素解析システムJUMAN 京都大学大学院 情報学研究科メディア研究室
【非特許文献4】日本語構文解析システムKNP 京都大学大学院 情報学研究科 メディア研究室
【発明の概要】
【発明が解決しようとする課題】
【0007】
文の書き手は、読み手も書き手と同じ知識を共有していることを前提にして、文を作成している。しかし、読み手が書き手と同じ知識を共有しているとはかぎらない。そのときには、読み間違えることがある。例えば、「流れる雲や野鳥のさえずりに心を留める。」という文では、普通の人は、「雲が流れる」や「野鳥はさえずる」という知識を持っているので、解釈1:「雲が流れる。野鳥がさえずる。その雲やそのさえずりに心を留める。」と解釈する。しかし、「雲」や、「野鳥」や「さえずり」の意味が分からない次の文「流れるAやBのCにDを留める。」では、次のような解釈2も成り立つ。解釈2:「A(雲)やB(野鳥)が流れる。そのA(雲や)やそのB(野鳥)がC(さえずる)する。そのC(さえずり)にD(心)を留める。」 しかし、「野鳥が流れる」や「雲がさえずる。」 ことは考え難いので、解釈2は成立しないことがわかる。解釈1が成り立つのは、一般に人は上述のような知識を持っているからである。
【0008】
しかし、次のような文「支援していたA社やB社のC社にD負債を引き受けさせる。」 となると、2つの解釈が成り立つ。即ち、解釈1:「A社やC社にD負債を引き受けさせる。」 解釈2:「C社にD負債を引き受けさせる。」。 「B社のC社」という句を先に意味として結合させるのか、「A社やB社」を先に意味として結合させるかだけの問題である。しかし、負債を負うのが、「A社とC社」なのか、「C社だけ」であるのかはA社にとっては重大な問題である。「支援していたのは、A社だけで、C社はB社の関連会社である」という知識があれば、解釈1であるが、「支援していたのがA社とB社であり、C社はA社とB社の関連会社である」という知識があれば、解釈2が成り立つ。
【0009】
また、長文の中には、本文と直接関係がない引用文が挿入される場合がある。さらに、日本語では 「私は、………と思う。」 のように、主語が一番後ろの動詞に係ることがある。それには、文脈が理解できるかどうかや、文の内容に関する知識があるかないかによって解釈が変わる。
【0010】
「ニュージーランドのキー首相は15日の定例記者会見で、南極海での反捕鯨団体シー・シェパードのメンバーのニュージーランド人が日本の調査捕鯨船に侵入したことについて「このような行為は捕鯨を終わらせる助けにはならない。公海での彼らの活動はとても危険であり、冷静になることを求める」と批判。」
【0011】
文脈から、キー首相がずっと後ろの「批判」に係ることはすぐ分かる。つまり、「キー首相は……批判。」となる。しかし、文脈が読み取れない場合は、主語が直近の動詞の「侵入した」に係ると考えるので、 「キー首相は……調査捕鯨船に侵入した。」となる。
【0012】
また、「その際に転職、再就職者が不利になる。」という文では、多くの人は、自分の知識で文字を適当に付け加えて、「その際に転職者や、再就職者が不利になる。」 と理解すると思われるが、「その際に転職して、再就職者が不利になる。」という意味にも解釈することもできる。このように書き手が気付かない曖昧な表現の文や、読み手に入力自然文に関する知識があるかないかによって、意味解釈の違いが生じる文は沢山ある。しかも書き手は全く気付かないことが多い。このようことは、公的な文書では許されない。損害賠償などか絡む文章では、誤解を生まない文章を作成する事が大切である。本発明は、入力文の意味を細部まで精確に提示して、書き手が意図した意味が正確に表現されているかどうかを考えることができる情報を提供する。これによって書き手が意図した意味が精確に表現されている文を作成させることを助ける。そのための自然文処理方法を提供することである。
【課題を解決するための手段】
【0013】
読み手は、提示され文に関する知識が全くない場合に、隣同士の単語を結びつけて解読しようとする。また、複合語は一つの単語として解釈されるが、句も複合語に次いで優先的に解釈される傾向がある。このような傾向を意味解析規則の中に取り入れて意味構築を行う。A社、B社、C社の社は組織名として、負債は金銭的な名詞として、ある程度文法的な知識として加味することはできるが、本格的な意味情報にはならない。
【0014】
意味解析では、まず文法情報をベースで進める。基本的にはごくふつうの人が持っている程度の意味解釈を意味構築規則として、これをベースにして、意味構造を構築する。即ち、解釈1のように、「雲や野鳥」 より、「野鳥のさえずりに」 や「B社のC社」のような句を優先させて意味構造を構築する。また、主語となる名詞は、最初の用言(動詞)に係るのが一般的であるので、「キー首相は……調査捕鯨船に侵入した。」という意味に解析する。「その際に転職、再就職者が不利になる。」 では一切、単語や文を追加しないので、「その際に転職し、そして再就職者が不利になる。」という意味に解析する。書き手に、「このような意味に解釈される可能性がありますが、それでいいのですか」と問うことになる。もし、そのような解釈を防ぎたいならば、書き手が別な表現方法を探すことになる。本発明では、書き手に注意を喚起するだけである。本発明では、入力自然文を一旦意味構造に変換し、その意味構造をいろいろな部分に分解して、その分解した意味構造から自然文を表出させて、入力文の細部の意味を自然文で表示させるので、読み手が誤解されやすい箇所を見つけることができる。しかし、どうしても、入力文には、本文の意味と関係のない引用文を挿入せざるをえないことがある。そのときの為に独立に意味解析を行うことを指定する機能をもたせる。つまり、((……))や<<……>>、「「………」」などの二重括弧で指定したり、 、。―――。、 のように句点と読点を組み合わせて、その部分を独立させて意味解析する意味範囲を指定する。また、文中で意味解析範囲の境界を指定するために 、、 や 。。のように、二重に読点や句点を打って、前後の意味関係を遮断する機能も持たせている。 「キー首相は15日の定例記者会見で、<<……と>>批判。」 のように、<<……>>の範囲で独立して意味解析させれば、「キー首相は…批判。」のようにキー首相は“批判”に係ることになる。また<<< >>>などの三重括弧で、入力文から削除して、意味解析の対象から外すなどを行う。
【発明の効果】
【0015】
「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空株に売り注文が殺到し、取引が成立しないまま、週末比30円安の37円まで気配値が下落している。」という文においては、主旨は何か。知識として提示したい根幹意味はどれで、その背景となる背景情報はどれか、誤解されやすい表現はどれか、文を簡略化するには、どの部分を検討すればよいか。或いは、精確に情報として提示しなければならないものはどれかが分かり難い。本発明は、入力自然文の意味構造を細かく分割して、細かく分割した意味構造から部分意味自然文を生成して、部分意味自然文の意味を細部に分けて表示する。意味構造から生成された文に意味構造を示す意味構造記号を付加して、自然文の意味構造を明示している。また、枝葉を取り払った根幹意味や根幹意味の背景となる枝葉意味を分けて示しているので、文全体の意味、部分的な意味を含めて意味構造が理解できる。機械翻訳を行う場合、書き手の意図した正確な文が作成されていることが前提である。悪文を翻訳しても、悪文は悪文である。まず、翻訳する前に、日本語なら日本語で正しい文を作成することが重要である。また賠償責任などが発生する公的な文章では、正確な意味を表現している文を作成することが大切である。また、文章を作成しながら、知的なトレーニングを行うのに利用できる。
【図面の簡単な説明】
【0016】
【図1】本発明を実現するための装置全体の構成を示す図である。
【図2】プログラムの全体の流れを示すブロック図である。
【図3】MW要素30の結合手の構成を示す図である。
【図4】PS要素31がもっている結合手を示す図である。
【図5】MW要素30とPS要素31と意味根収集要素32のデータ構造を示す図である。
【図6】三種の基本単文即ち、PS_EXとPS_ISとPS-DOの意味フレーム40を示す図である。
【図7】「太郎が花を水に浮かべる」の意味構造を示す図である。
【図8】「太郎が水に浮かべる花」の意味構造を示す図である。
【図9】「秋の一日、スピードと騒音を断ち、しばし立ち止まって、流れる雲と野鳥のさえずりに心を留めたい」という文の形態素解析結果を示す図である。
【図10】図9の形態素解析結果に構文解析を行って得られ結果のうち文節解析結果を示す図である。
【図11】「秋の一日、スピードと騒音を断ち、…」という文の意味構造を意味根で上下に並べて階層的に表示し、この意味構造から自然文を生成するための自然文生成経路56を示す図である。
【図12】「秋の一日、スピードと騒音を断ち、…」という文が表現する細部の意味を示した図である。
【図13】「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空に売り注文が殺到し、取引が成立しないまま、同日の日航株の値幅制限となる週末比30円安の37円まで気配値が下落している。」の意味構造を意味根で上下に並べて表示し、この意味構造から自然文を生成するための自然文生成経路56を示す図である。
【図14】入力文「12日の東京株式市場では、…」の意味構造で自然文生成経路を遮断して、枝葉意味を削除して、簡略化した細部の簡略意味を示す図である。
【図15】入力文「12日の東京株式市場では、…」の意味構造で自然文生成経路を遮断せず、枝葉意味を残して表示した詳細意味を示す図である。
【図16】自然文生成の基本的なプログラムの流れを示すプログラムリスト図である。
【図17】「流れる雲や野鳥のさえずりに心を留めたい。」という文の意味構造と単文や横結合語の関係を示す図である。
【発明を実施するための形態】
【0017】
装置全体の構成を図1に示す。中央制御装置1と、内部メモリー2、表示装置3、外部記憶装置4、入力装置5は互いにメモリーハブ6とIOハブ7を中継装置として、バス8で接続されている。外部記憶装置4には、日本語辞書や形態素解析規則、構文解析規則、形態素意味構築規則、文節意味構築規則などの規則類や、辞書検索プログラム、形態素解析プログラム、構文解析プログラム、形態素意味構築プログラム、文節意味構築プログラム、自然文生成プログラムなどのプログラムが格納されている。中央制御装置1によって、外部記憶装置4からプログラムが内部メモリー2に取り出され、プログラムの指示に従って、各種の処理が行われる。
【0018】
処理の全体の流れを図2に示す。入力自然文は必ずしも分割する必要はないが、文中に挿入された引用文の意味を独立に解析したり、指定された意味範囲を独立して、優先的に解析するなどの機能を持たせるために、入力文をいくつかの部分に分割する。そのために自然文分割20を行う。その分割された入力自然文について、形態素解析21を行うが、形態素解析21は、入力自然文の文字列の文頭から、全ての文字列を辞書検索する。検索された文字列について、前後の文字列の関係を規定する形態素解析規則によって形態素解析21を実行して、関連性がある形態素だけを選別して、図9のような形態素解析結果を得る。この結果で得られた形態素解析結果に構文解析規則により構文解析22を実行して、構文解析結果を得る。本発明では構文解析結果の一部である図10のような文節解析結果のみを用いる。先の形態素解析結果に形態素意味構築規則を適用して、形態素意味構築24を行い、入力自然文の部分的な意味構造を得る。形態素意味構築24で得られる意味構造が、既に構築された意味構造と結合可能であれば、意味根41で相互に結合させる。次に文節解析結果に文節意味構築規則を適用して文節意味構築23を行い意味構造を得る。すでに、形態素意味構築24で得られた意味構造や、文節意味構築23によって構築された意味構造などと結合可能であれば、これらの意味構造を意味根41で結合する。このような意味構築を繰り返して、入力自然文が表現する図11のような全体意味構造58を得る。また、意味構造を構築するときには、意味構造の結合の基点になる意味根41を収集して、意味根収集要素32のBun_ixrtに格納する。これらの意味根41で意味構造を任意に分割する。その分割された意味構造に自然文生成経路56作成すれば、部分意味構造57の意味を表現する自然文がえられる。意味解析のプログラムの詳細については、改めて自然文生成を中心にして後ほど説明する。
【0019】
自然言語で表現される意味構造を次の二つの要素で記述する。即ち、図3のMW(Meta Word)要素30と図4のPS(Primitive Sentence)要素31である。そのデータ構造を図5に示す。MWには主に単語に関する意味情報を格納する。これを( )で示す。 MWは基本的に、U(上Upper)、L(下 Lower)、 B( 前 Before)、N(次Next)の四本の結合手をもっている。これらのMW要素30の結合情報はMW結合要素50に次のようにして、格納される。すなわち、これらの結合相手の要素番号をPrc_mw[mw_num].N、 Prc_mw[mw_num].B、 Prc_mw[mw_num].U、 Prc_mw[mw_num].Lに格納する。上に結合する要素は基本的には一つだけであるが、複雑な文では、複数の要素と上に結合させることがある。そのために、補助的に、Prc_mw[mw_num].amwを設けている。さらに多くの要素と上に結合する必要があれば、Prc_mw[mw_num].bmw、Prc_mw[mw_num].cmwなどを設けることもできる。mw_numはMW要素30の番号である。MWやPSなどの結合相手の種類などもMW結合要素50として、Prc_mw[ ].FLGに格納する。表現禁止の有無などは、MW表現可否要素52として、また自然文生成経路の遮断などはMW経路遮断要素53として、Prc_mw[ ].KAKに格納される。FLGと KAKは16進数の8桁で表現する。
【0020】
単語の文字列は、次のMW文字列要素51に格納される。すなわち、単語の見出し語の文字列は主に、Prc_mw[ ].mojiに、冠詞や接頭辞は主にPrc_mw[ ].moji_jar、助詞は主にPrc_mw[ ].moji_jcsに、“→”なのどの論理記号は主にPrc_mw[ ].moji_ronriに分けて格納される。PS要素は図4で示すように、基本的に、主格(Agent case)、時間格(Time case)、 空間格(Space case)、対象格(Object case)、回数格(V case)、理由格(Why case)、述語格(Predicate case)などの七つの格で構成されている。これを[ ]で示す。PS要素31は、このA格、 T格、 S格、V格、 W格、 O格、 P格と、下のMWと結合するための結合手L( 下 Lower)の合計8本の結合手を持っている。PS要素のPS結合の情報はPS結合要素55に格納される。図5に示すデータ構造として格納される。たとえば、A格の結合情報はPrc_mw[ ].Aに格納される。PS要素31が図6で示すように、MW要素と結合すると、意味フレーム40となる。図6に示す意味フレーム40は、これ以上分解できない意味の最小単位となるので、これを基本意味単位と呼んでいる。この基本意味単位は一つの文を表現しているので、基本単文とも呼ぶ。本発明では、入力自然文の意味構造をこのような意味フレームを結合させて、入力自然文が表現する複雑な意味構造を構築する。その上に日本語の文字列を格納していくが、その意味構造を部分に分割して、その部分意味構造上に自然文生成経路を作成して、それに対応する意味を日本語で表示させる。意味語を用いて、自然文質問応答や多言語間機械翻訳などを行う場合は、意味構造内の細部について正確に記述しなければならないが、本発明では、意味構造の上に日本語をのせるだけであるから、意味構造の内部構造について詳細に規定する必要がない。
【0021】
動詞の意味フレームとして、図7で示す意味フレームを辞書に格納しておき、必要な時に取り出して用いる。取り出した時には、動詞の文字列をP2格に書き込む。動詞以外の文字列は、格の種類を指定する必要がない。むしろ、意味構造から生成された日本語の文字列と入力文の文字列の順序を同じにするために、意味フレームには、入力自然文の語順で、意味フレームのスロットに書き込んでいる。名詞の複合語を格納する意味フレームには、図6(a)に示すPS_EXを用いている。最初の単語をS格に、次の単語を意味根に書き込む。しかし、それ以外は格納する格を指定する必要がない。意味フレームに書き込む単語の数を最大10程度と見込んで、図7のような意味フレームを汎用意味フレームとして用いているが、図7に示す格を指定する必要はない。この場合、10個のスロットを確保するだけでよい。
【0022】
入力自然文を一旦意味構造に変換する。意味構造はかなり複雑な構造になることもあるが、まずは簡単な意味構造から構築していく。簡単な意味構造を意味根で結合させて、次第に複雑な意味構造を構築する。意味構築プロセスで、結合基点になる意味根41を幾つかの種類に分類して、収集する。これらの意味根を格納する要素が意味根収集要素32で、次のようにBun_ixrtに格納する。そのデータ構造を図5に示す。主旨を構成する単文の基点となる意味根41は Bun_ixrt[Bun_num].syu_shi[ ]に格納する。Bun_numは入力自然文の番号である。入力自然文のなかで、単文で表現される単文の意味根41はBun_ixrt[].tan_bun[]に集める。スロットへの書込み語は節ごとにまとめるので、Bun_ixrt[ ].setu[Setu_num].slot[ ]に書き込む。Setu_numは節の番号である。このほかに、縦に結合される縦結合複合語はBun_ixrt[].setu[Setu_num].goh_tate_kon[]に、横に結合された横結合語はBun_ixrt[].setu[Setu_num].goh_yoko_kon[]に、句はBun_ixrt[ ].setu[Setu_num].phrase_kon[ ]に、文から取り出される単語、すなわち、根単語はBun_ixrt[ ].bun_tate_kon[ ]に書き込む。
【0023】
意味は世界共通である。それをコンピュータ上で実現するために考案されたのが意味語である。意味語が世界共通語として、利用されるためには、世界各国の言語がコンピュータ上で正確に同じ意味構造で、また同じ意味で記述されなければならない。本発明は意味語のごく初歩的な技術の応用である。ごく基本的な考えを簡単に説明する。
【0024】
これ以上分解することができない基本単文には、PS_EX「EXist 〜ある;存在」と、状態を表すPS_IS「IS 〜である;状態」と、行為を表すPS_DO「DO〜する;行為」の三種がある。これを分かりやすく示すと、図6のようになる。すなわち、PS_EXのP格には、存在を意味する 「ある」、PS_ISのP格には状態を意味する「である」、PS_DOのP格には行為を意味する「する」 を書き込み、他のMW要素30には、暗黙値として、A格には「だれか」や「なにか」(WHO WHAT)、T格には 「いつか」(WHEN)、S格には 「どこか」(WHERE)、O格には 「なにか」(WHAT)、V格には 「なん回か」、W格には 「なぜか」(WHY)が書き込まれている。基本意味単位は基本的には1H5Wで構成されている。この三つの基本単文のほかに、「移動」、「変化」、「経過」、「発生」、「消滅」などの意味を表現する五つの準基本単文を設定している。動詞、助動詞、形容詞、接尾辞、判定詞などの用言が表現する意味構造は、これら合計8個の基本単文と準基本単文を縦、横に結合して構成される。これであらゆる複雑な意味構造を表現することができる。
【0025】
「動詞、助動詞、形容詞、判定詞、接尾辞」などは用言である。複数の用言が組み合わされた用言を複合用言と呼ぶ。ここでは、一つの用言や複合用言で表現される文を単文としている。例として「太郎が花を水に浮かべる」の意味構造を示すと、図7のようになる。即ち、基本意味フレーム40のPS_EX(存在)を基本意味フレーム40のPS_DO(行為)のO2格で縦に結合し、PS_EXのP1格には、「ある」が、PS_DOのP2格には「浮かべる」が書き込まれている。残りの格はスロットと呼ばれ、単語の文字列などが書き込まれる。この場合、A2格のスロットに「太郎が」、A1格に「花を」、S1格に「水に」などの文字列や意味情報が書き込まれている。「太郎が花を水に浮かべる」という意味は、「花が」、「水に」、「ある」という状態に「太郎がする」という意味であると考える。そのような状態に「する」を「浮かべる」という動詞(用言)で表現したことになる。同図において小さい文字で示したものが、人間の頭脳の中には暗黙値でとして存在していると考えられるが、自然文では文字列として表現されない。コンピュータでもこれを表現しないように、表現禁止にしている。これを自然文で示すときには、マーク(*)を付けた。
【0026】
最下層にあるMW要素は特別な役割を持ったMW要素である。意味構造の根っこにあるので、これを意味根41と呼ぶ。意味根に書き込まれた単語が根単語と呼んでいる。すべての意味構造はこれを連結点として結合する。この意味フレーム40からプログラムで自然文を生成するには、意味根を基点として、自然文生成経路を生成する。それに沿って表現可の文字列だけを集めれば、自然文が簡単に生成できる。次のようにしても、簡単に自然文が生成できる。上のPS_EXを下のPS_DOのO2格に埋め込むだけでよい。図7の格要素だけを示すと次のようになる。
([A2 T2 S2 V2 W2 ([A1 T1 S1 V1 W1 O1 P1])O2 P2])
このうち、「太郎が」、「花を」、「水に」、「浮かべる」などの文字列を持つMW要素30だけを並べると、次のようになる。A2格を示す記号A2をサフィックスとして示した。
([(太郎が)A2 (花を)A1 (水に)S1(浮かべる)P2])
本発明では、意味構造を自然文の中で表現するために上述のように、MW要素30の記号 ( ) やPS要素31の記号 [ ] を用いている。PS要素31の内側にあるMW要素30の記号を削除すると次のようになる。
([太郎が花を水に浮かべる])
さらに、PS要素の記号[ ]を省略すると、次のようになる。
(太郎が花を水に浮かべる)
内部にある意味構造記号42は省略しているが、これが「太郎が花を水に浮かべる」という文の意味構造である。このMW要素を省略すると、
太郎が花を水に浮かべる
となる。自然文の中で意味構造を示唆するために、文字列と違和感がない記号を用いている。ここで、「浮かべる」という意味フレーム40を紹介したが、意味フレーム40には多種類の意味フレーム40がある。本発明では、意味フレーム40の内部構造については問題にしないので、本発明の説明には、この意味フレーム40を汎用的な意味フレーム40として用いている。
【0027】
次に、「太郎が水に浮かべる花」という文の意味構造について説明する。これは
「太郎が花を水に浮かべる。その花」
という意味である。それを意味フレーム40で示すと図8のようになる。図7に示す ように「太郎が花を水に浮かべる」と同じ意味構造であるが、意味フレーム40のA1格に書き込まれた「花が」が表現禁止となり、それが一番下にある意味根41に書き込まれた状態になる。単語の文字列が書きこまれていないスロットを省略すると表1のような意味構造になる。
【0028】
表1
[(太郎が)(*花を)(水に)(浮かべる)]
↑↓
( 花 )意味根
意味根41の上にある意味構造を意味根41の前に埋め込むと、
([(太郎が)(*花を)(水に)(浮かべる)]↑↓花)
このようになる。 意味根41の後に埋め込むと、英語の語順になる。↑↓は [(太郎が)(*花を)(水に)(浮かべる)]というPS要素と(花)というMW要素が縦に結合されたことをしめすマークである。これを意味構造記号42の縦結合記号とする。自然文の中に意味構造を示す記号を書き込んで自然文の中の意味構造を浮かび上がらせることを試みている。なるべく文字列となじみのある記号を用いるために、「↑↓」の代わりに「::」 を用いることにした。従って
([(太郎が)(*花を)(水に)(浮かべる)]::花)
このように記述する。表現禁止の文字列を削除し、意味構造としてMW要素30を強調する必要がなければ、外の( )の中のMW記号を削除して、次のように
([太郎が水に浮かべる]::花)
と記述する。 意味フレーム40 の [ ] も特に強調する必要がなければ、それを削除するすると次のようになる。
(太郎が水に浮かべる::花)
これは 「太郎が花を水に浮かべる」 から「花」を取り出して意味根41の要素MWに書き込まれたものである。 記号 :: によって、文と縦に結合された意味構造であることを示す。
【0029】
「太郎が花を水に浮かべた理由」 の「理由」や「太郎が花を水に浮かべたという理由」の「という理由」などは、前文から取り出されたものではない。もう少し複雑な意味構造をもっている。しかし、その程度の違いは、読み手も自然に理解できる内容であるので、若干の違いは無視して、その差異を示さない。
【0030】
複合語の意味構造について説明する。「経営再建」のように「経営」と「再建」という単語が合成された語を複合語と呼ぶ。本発明では、このような複合語を一つの単語としてみるのではなく、次のような文、すなわち、「経営には、再建がある。その再建」として取り扱う。これを意味構造として表現するには、存在を表すPS_EX、を用いる。この意味構造を文字列にすると、表2のようになる。
【0031】
表2
([(スロット)A1(書込禁)T1(スロット)S1(書込禁)V1(書込禁)W1(書込禁)O1(ある)P1]::( ))
スロットS1に「経営」を、スロットA1に「再建」を書き込む。これが取り出されて、意味根41に書き込まれるので、意味構造は表3のようになる。スロットA1を表現禁止にする。
【0032】
表3
([(*再建が)A1 (経営に)S1(*ある)]::(再建))
ここで、助詞の「に」や動詞の「ある」を表現禁止にして、必要のない記号と文字列を削除すると、次のようになる。 (経営::再建) すなわち、「経営には、再建がある。」という文と 「その再建」 という単語が縦に結合した意味構造である。つまり、「再建」は単なる「再建」でなく、「経営に関する再建」の意味になる。
【0033】
ところで、「延べ300キロ」は複合語であるが、その意味は「300キロは延べである。その300キロ」という意味である。そこで、表4のように意味構造として記述する。
【0034】
表4
([(*300キロは) (延べ) (*である)] :: (300キロ) )
表現禁止の文字列を削除すると、次のようになる。(延べ :: 300キロ)。 この場合は「〜は〜である」という意味であるからPS_ISという基本単文を用いるべきであるが、PS_EXを用いている。この程度の差異は無視する。
【0035】
次に句の意味構造について説明する。句の「野鳥のさえずり」は「野鳥にはさえずりがある。」という意味構造と「そのさえずり」という意味構造が縦に結合していると考える。これは、「さえずりは単なるさえずり ではなく、[野鳥に関するさえずり」という意味になる。表5のような意味構造として表現する。「野鳥に」の助詞「に」を「の」に変更して、表現禁止の文字列を削除した。
【0036】
表5
(野鳥の::さえずり)
【0037】
「経済再建」も「経済の再建」もほとんど同じ意味であるように、複合語と句は殆ど同じ意味構造である。しかし、単語間の結合力に若干の違いがある。単語同志の結合の方が強い。従って、先に単語同士を左から右に結合させて、意味を構築する。例えば、「12日の東京株式市場では」の場合、「東京」と「株式」がまず結合して、(東京::株式) となり、次に 「株式」と「市場では」が結合して、(株式::市場では)となり、その後に「12日の」と「東京株式市場では」が結合して、(12日の::東京株式市場では)となる。前述の意味構築結果を反映させて、意味構造の内部構造も示せば、表6のようになる。
【0038】
表6
(12日の::((東京::株式)::市場では))
つまり、複合語の方が結合力が強いので、先に結合される。その後に句の意味構造が構築される。
【0039】
文と、複合語や句との違いは、意味構造のスロットに文字列などの意味情報が自由に書き込めるかどうかである。複合語や句を記述した意味フレーム40には、意味情報を書き手が自由に書き込むことができるスロットがないので、限定的な意味しか表現できない。それに対して、意味情報を自由に書き込めるスロットがある動詞、形容詞、判定詞などの用言を用いると、複雑な意味を自由にしかも精確に表現できる。一般に、背景としての意味情報は複合語と句を用いて表現することが多い。しかも、読み手が当然知識として持っていることが前提となるが、その意味は正確でなくてもよいことが多い。少なくとも、背景知識情報として示しておきたいという程度のものであると考えられる。明確に提示したい情報は用言を用いて表現し、それ以外の背景知識は複合語か句で表現すること基本である。本発明はこのようなことができる自然文作成支援方法を提供しようとするものである。
【0040】
本発明の基本になっている意味言語では、文章の意味は、基本的に単文の意味構造が縦横に結合されて構成されるとしている。「一日、騒音を断って、しばし立ち止まって、さえずりに心を留めたい。」 という文の意味構造は表7で示すように、「一日、騒音を断ち、」という文と、「しばし立ち止まって、」という文102と「さえずりに心を留めたい。」という文という三つの単文が横に結合されている。
【0041】
表7
(一日、騒音を断ち、)→(しばし立ち止まって、)→(さえずりに心を留める)
↑
( )意味根
もし〜ならば、〜する。 は if_then の関係であるが、「もし、騒音を断って、しばし立ち止まれば、さえずりが心に留まる。」という意味を示している。三つの文が論理関係によって結合された意味構造である。しかし、ここではとりあえず、横結合として扱うことにする。それを「→」で示す。「スピードや」、「騒音を」、「雲や」、「さえずり、」は単語であるが、単語が横に結合されたものであるので、次の表8ように記述する。
【0042】
表8
(スピードと)→and(*騒音を) (野鳥や)→or(*さえずりに)
↑ ↑
(騒音を)意味根 (さえずりに)意味根
意味言語では、文も単語も同じように取り扱っている。単語は意味としてと固定しているので、意味フレームを持たないが、文は用言のスロットにいろいろな単語を書きこむことによって、多様な意味を表現することができる。「スピードと騒音を」の「スピード」と「騒音」は論理積の関係にあり、「野鳥やさえずりに」の「野鳥」と「さえずり」は論理和の関係にある。ここでは、論理関係であることだけを示唆し、文の場合と同じように、単に横に結合されたものとする。このように、幾つかの意味を横結合させたときには、必ず、最下層に意味根41を設置して、横結合された意味構造の代表とする。これで別の意味構造と結合させる。横に結合された最終語を代表として意味根41に書き込むが、二重表現を禁止にするために、終点の単語を表現禁止にしている。
【0043】
次に意味根について説明する。既に説明したように、意味根に書き込まれた単語は根単語であるが、一つの単語はそれ自体根単語である。意味フレーム40やMW要素30が幾つか横に結合された意味構造には、意味構造の代表として、意味根41をもうけることはすでに述べた。この意味根41だけが他の意味構造と結合する。このように結合点を制限したので意味構造の構築が簡単になった。この意味根41に、自然文生成基点や自然文生成経路の遮断の可否の機能を与えることによって、自然文の意味構造を意味根41で分割できる。意味根を設けたことが本発明のキーポイントとなる。
【0044】
意味範囲の設定について説明する。「秋の一日、スピードと騒音を断ち、しばし立ち止まって、流れる雲や野鳥のさえずりに心を留めたい。」を例文として意味解析を説明する。本発明では、入力文を幾つかの部分に分割して、各部分で独立して意味解析を行う。従来の自然文解析方法では、ある単語が別の単語とどのような関係があるかどうかという、係り受け関係を中心に構文解析22などを進めている。その係り受けを入力自然文全域にわたって行っている。係り受けの関係があるかどうかは、人間は書き手が当然持っていると考えられる知識をベースにしていることが多い。ところが、本発明では、人が当然持っていると考えられる知識を殆ど持っていないことを前提に、意味解析をおこなう。知識がないと、単語はごく近くにある単語としか関連しなくなる。逆にこのことを利用して、意味解析を行い、知識が無い読み手がどのように入力文を解釈するかを示し、書き手の注意を喚起することが目的である。コンピュータによる自然文処理では、統計的な処理で、係り受けの可能性を決めている。賠償責任が伴う大切な文章の意味を統計的な処理では決められない。むしろ、誤解しやすい箇所を書き手に示すことが重要である。
【0045】
入力文の意味範囲分割は、文節解析結果に意味範囲分割規則(Bsyori_irange.rule) を適用する。どのように、意味範囲を分割しても良いが、ここでは、動詞の活用形が基本連用形か又は、タ系連用テ形で終わり、読点が付いていることを条件にしている。これらの各単文の意味が独立し、横に結合して読み手に知識を提示していると思われるからである。これは表9のようなルールとなる。例示した規則は一つだけである。図10に示した文節解析結果に意味範囲分割規則を適用する。図9で示すように、形態素解析結果で、mrph_no=9の([動詞 * * 基本連用形])とmrph_no=12の([動詞 * * タ系連用テ形])は、文節解析結果では、bmst_n=4、 と、bnst_n=6で、用言:動 係:連用 読点などの特長が示されている。”*“は条件を無視する記号である。このような規則を多数作成して、Bsyori_irange.rule に登録する。
【0046】
表9
意味範囲分割規則 Bsyori_irange.rule
(( )mae(用言:動 係:連用 読点)hon( )ato prog_no:8000 rule_no:8020 )
このような規則を図10の文節解析結果に適用する。mae(前)、hon(本)、ato(後)は ( ) のサフィックスで、参考のために示したもので、実際のルールには記述しない。hon=bnst_noで、mae=bnst_no−1、ato=bnst_no+1である。即ち、bnst_noを始から辿って、検索するが、maeはその前、atoは後を意味する。つまり、図10において、bnst_no=0から、意味範囲分割規則と文節解析結果をマッチングさせるが、bnst_noの前と後でもマッチングするかどうかを調べる。上で示した規則では、maeもatoの条件が指定されていないので、honだけがマッチングすればよい。prog_noの8000はプログラム番号で、関数prog_8000( )を実行する。rule_no:8020はルールの識別番号である。図10の文節解析結果で、bnst_noを辿って、どのルールがマッチするかを調べる。上述の規則の場合、bnst_no=4の「断ち、」 とbnst_no=6の「立ち止まり、」で、文節解析結果の特長“用言:動 係:連用 読点”にマッチする。従って、意味解析範囲をbnst_no = 0〜4と5〜6と7〜12の三つの範囲に分割する。これを意味範囲0(imi_range_0)、 意味範囲1(imi_range_1)、 意味範囲2(imi_range_2)とする。この三つの意味範囲に分割して意味解析を行う。
【0047】
次に形態素解析結果を用いた意味構築について説明する。(秋の)や(スピードや)(騒音を)などのように、名詞に助詞がついてものは、意味構造として極めて簡単である。本発明では意味構造が簡単で確実なものから意味構築を始める。意味構築は、図10に示す文節解析結果に基づいて解析を進める。図10の文節に対応する形態素は図10のmrph_fromとmrph_toに示されている。例えば、bnst_no=0の「秋の」に対応する形態素は「秋」のmrph_from=0と、「の」のmrph_to=1である。この範囲に形態素意味構築規則Msyori.ruleを適用する。本発明の説明で使用する形態素意味構築規則Msyori.ruleを表10に示す。
【0048】
表10
形態素意味構築規 Msyori.rule
(( )mae ([名詞 (普通名詞 時相名詞)])hon ([助詞 (格助詞 接続助詞)])ato prog_no:2000 rule_no:1900 )
(([名詞 数詞])mae([接尾辞 名詞性名詞助数辞])hon( )ato prog_no:1400 rule_no:1400)
(([接尾辞 名詞性名詞助数辞])mae([特殊 (句点 読点])hon()ato prog_no:2400 rule_no:2405)
(([動詞 * * (基本連用形 タ系連用テ形)])mae([特殊 (句点 読点)])hon( )ato prog_no:2002 rule_no:2414)
(([動詞 * * 基本連用形])mae([接尾辞 形容詞性述語接尾辞])hon()ato prog_no:4600 rule_no:4413)
(( )mae([動詞 * * 基本形])hon( )ato prog_no:2000 rule_no:2400)
(( )mae( 副詞 )hon( )ato prog_no:2001 rule_no:2401)
【0049】
検索条件を [品詞 細分類 活用型 活用形 文字列] の順に記述する。もし、活用型と活用形を指定しない場合は、“*”で、次のように記述する。 [品詞 細分類 * * 文字列] 、( )のように検索条件が記述されていないものは、検索条件なし。 [ ] の中で(普通名詞 時相 名詞)のように括弧で示したものは、普通名詞でも時相名詞でもよいという意味である。細分類のあとにマッチング条件がない場合は、[名詞 細分類]のように条件を記述しなくてもよい。意味範囲0(imi_range_0)では、マッチングは、図9のmrph_no=0から始める。[秋]の品詞は名詞で細分類が時相名詞であり、mrph_no=1の品詞が助詞、細分類が接続助詞であるので、honがmrph_no=0のときに規則番号rule_no:1900がマッチングし、関数prog_2000( )を実行する。MW要素30一個をメモリーから取り出し、mw_1とし、MW要素30のPrc_mw[1].moji に見出し語である文字列「秋」を、助詞の「の」をPrc_mw[1].moji_jcsに書き込む。名詞の「秋」は今後の意味解析で使用しないので、処理済として、形態素解析結果から削除する。図11は、入力文との関係が直感的に理解できるように意味構造を階層的に示したものであるが、同図で mw_1 (秋の) のようにしてMW要素30を示す。
rule_no:1900の規則は「スピードと」、「騒音を」 にも一致するので、図11に示すように、mw_3(スピードと)とmw_4(騒音を)のMW要素30を作成する。「一日、」は2つの規則で意味を構築する。規則番号 rule_no: 1400でmw_2(一日)を作成し、さらに、規則番号rule_no:2405で、mw_2(一日、)のように、読点を追加する。
【0050】
「断つ、」はrule_no:2414にマッチするので、関数prog_2002( )で、意味フレーム辞書から意味フレームps_2を取り出し、P格のmw_22( ) の要素moji、すなわち、Prc_mw[mw_22].mojiに文字列の 「断つ」を書き込む。そして、その意味根41であるmw_23の要素moji_jcs即ち、Prc_mw[mw_23].moji_jcsに読点「、」を書き込むなどの処理を行い、表11と図11に示すような意味構造を構築する。
表11
ps_2[ mw_22(断ち) ]
↑
mw_23( 、)
これで意味範囲0(imi_range_0)の意味構造の構築は終わる。つぎに、同様のことを意味範囲1(imi_range_1)について意味構築をおこなう。図11でも示すようにmw_24(しばし)を作成する。文字列の 「立ち止まり、」は、mrph_no=12で、規則番号rule_no:2414にマッチするので、関数prog_2002( )を実行し、意味フレーム(ps_4)を意味フレーム辞書から取り込んでメモリー上に設定する。前述の 「断つ、」と同じ方法である。この意味構造を表12に示す。
【0051】
表12
ps_4[ mw_38(立ち止まり) ]
↑
mw_39( 、)
次に意味範囲2(imi_range_2)について、「雲や」、「野鳥の」、「さえずりに」、「心を」などの意味構築を行う。形態素意味構築規則Msyori.ruleをこの範囲に適用する。mw_5(雲や)、mw_6(野鳥の)、mw_7(さえずりに)、mw_8(心を)などは、形態素意味構築規則rule_no:1900で構築できる。これを図11に示す。
【0052】
mrph_no=14の「流れる」は、形態素意味構築規則 rule_no:2400にマッチして、関数prog_2000( )を実行して、意味フレームps_6をメモリー上に取り込む。これを図11に示す。「留める」の意味フレーム40は、図11に示すように、前述と同じようにメモリー上に取り出す。「留めたい」は動詞の「留める」という意味フレーム40と接尾辞の「たい」という意味フレーム40を縦に結合した複合意味フレーム40であるが、本発明では、自然文の全体の意味構造を分かりややすく説明することが目的で、意味フレーム内部の意味構造については詳しく論じない。そのために「留め_たい」という仮想的な意味フレーム40を作って、それを用いる。「留め」と「たい」とは、形態素意味構築規則rule_no:4413がmrph_no=25でマッチするので、関数prog_4600( )を実行する。即ち、基本連用形の「留め」と接尾辞の形容詞性述語接尾辞である「たい」を「_」で結んだ文字列「留め_たい」をps_8の意味フレーム40のP2格のMW要素30(mw_68)の要素、即ち、Prc_mw[mw_68].mojiに書き込む。それを表13に示す。
【0053】
表13
ps_8[ mw_68(留め_たい) ]
↑
mw_69( 。)
次に文節解析結果を用いて意味構築をおこなう。
【0054】
構文解析22では、文節がどのような役割を持つかを示すために幾つかの特長featureが与えられている。その特長を用いて意味構築を行う。例えば、図10で示すように、bnst_no=0の[秋の]についてみると、特長2では[体言]、特長4では、[係:ノ格]が与えられ、bnst_no=1の[一日、]では特長1で[体言]、特長2では[数量]などが与えられている。これらを組み合わせて、表14のような文節意味構築規則Bsyori.ruleを設ける。
【0055】
表14
文節意味構築規則 Bsyori.rule
((体言 係:ノ格)mae (体言 数量) hon ( ) ato prog_no:6100 rule_no:6220)
((体言 係:ノ格)mae (体言 助詞 格要素 連用要素) hon ( ) ato prog_no:6100 rule_no:6221)
((体言 助詞 係:ト格)mae (体言 助詞 格要素 連用要素)hon ( )ato prog_no:6200 rule_no:7044)
((体言 助詞 係:連体)mae (体言 助詞 格要素 連用要素)hon ( )ato prog_no:6200 rule_no:6460)
((用言:動 係:連格 連体修飾 連体並列条件) mae (体言 助詞 )hon ( )ato prog_no:6000 rule_no:6060)
【0056】
文節意味構築規則の規則番号rule_no:6220が、bnst_no = 1 でマッチするので、関数prog_6100( )が実行される。即ち、図11に示すように、意味フレーム ps_10 が作成されて、その意味フレーム40のS格のmw_83に「秋の」という文字列を、mw_2の文字列「一日、」の意味情報などをA格のmw_81のスロットと、意味根41のmw_88にコピーする。A格の「一日、」は表現禁止になるので、図11では省略している。この意味根41をphrase(句)_kon(根)として、次のようにBun_ixrt[Bun_num].setu[Setu_num].phrase_kon[i] =mw_88;に格納する。ここで、Bun_numは文番号、Setu_numは節番号で、iは既に登録された意味根41の数である。即ち、文番号と節番号ごとに分類して格納する。bnst_no=0の「秋の」はこの段階で今後意味構造に関与するする事がなくなるので、図10の文節解析結果から処理済として削除する。bnst_no=2の「スピードと」とbnst_no=3の「騒音を」とは、文節意味構築規則のrule_no:7044とマッチするので、関数prog_6200( )で次に示すような意味を構築する。mw_3とmw_4を横に結合する。そして、mw_4の下に、新たにもう一つのmw_70を設けて、それをmw_4と上下に結合する。その様子を表15にしめす。
【0057】
表15
mw_3(スピードと) → mw_4(*騒音を)
↑
mw_70(騒音を)
これが他の意味構造との結合点になるので、語が横に結合する意味根41としてgoh語)_yoko(横)_kon(根)、即ち、Bun_ixrt[Bun_num].setu[Setu_num].goh_yoko_kon[i]=mw_70;に格納する。ここで、上のような結合情報を格納するために次にように、mw_3と mw_4、 mw_70が結合相手の要素番号を格納する。Prc_mw[mw_3].N = mw_4;Prc_mw[mw_4].B = mw_3;Prc_mw[mw_4].L= mw_70;Prc_mw[mw_70].U = mw_4; ここでmw_4はMW要素mw_4の要素番号である。その他に、結合相手の要素の種類、即ち、PSかMWかなどの情報をPrc_mw[mw_num].FLGに格納する。bnst_no=2の「スピードと」は今後意味構造の構築に関与しないので、図10の文節解析結果から処理済として削除する。
【0058】
次に、imi_range_0で、「一日、」と「騒音を」の文字列は「断つ、」という意味フレーム40のスロットのMW要素30に書き込む。意味フレーム40の空いているスロットを見つけて、その順番に空きスロットに文字列などの意味情報をコピーする。これは簡単なプログラムで実現できる。すでに作成された意味フレームps_2の空きスロットmw_17にmw_88(一日、)の意味情報をコピーし、スロットmw_17のMW結合要素50とps_10のPS結合要素55に結合相手の要素番号を格納することによって、結合情報を格納する。この場合、入力自然文の語順が出力時に変わらないように、入力文の語順に従って、空きスロットに文字列を書き込む。このようにして、「一日、」という意味構造は「断つ、」という意味フレーム40と結合する。意味言語では、指定された意味の単語を指定された意味を持つスロットに書き込むことになっているが、これを厳密に行うと、書き手の語順と、意味構造から生成される自然文の語順が微妙に変わり、書き手に心理的な負担をあたえるので、ここでは、書き手の語順どおりに出力するために、入力文の語順どおりにスロットに書き込んでいる。(スピードと)→(騒音を)の意味根mw_70の意味情報を空きスロットmw_18にコーピして、さらに、mw_18とmw_4に結合相手の要素番号を持たせて結合情報を格納する。この場合も、(スピードと騒音を)は、mw_70とスロットのmw_18との2つの意味連結MWを持つことになる。スロットのmw_17とmw_18で、自然文表現の可否や自然文生成経路の遮断の可否の制御は、MW表現可否要素52やMW経路遮断要素53であるPrc_mw[mw_num].KAKで行う。KAKは16進数の8桁で、上から一桁目で表現可否、上から4桁目で遮断可否を指定する。意味根41は既に収集されて、Bun_ixrt[Bun_num]に分類して格納されているので、いつでも制御することができる。経路遮断可とすれば、「一日、騒音を断ち、」 となり、遮断しなければ、「秋の一日、スピードと騒音を断ち、」 という文が得られる。
【0059】
文節意味構築規則によるimi_range_1の意味構築は簡単である。図11に示すように、mw_24(しばし)を、意味フレームps_4[mw_33(スロット)mw_38(立ち止まり、)])の空きスロットmw_33に意味情報と結合情報を書き込むだけである。imi_range_2の意味構築は次のように行う。図10のbnst_no=10で、文節意味構築規則rule_no:6221とマッチして、関数prog_6100( )が実行され、表16のような意味構造が得られる。
【0060】
表16
mw_73 mw_79
(野鳥の::さえずり)
この段階で、「野鳥の」は今後意味構築に関与しないので、図10から処理済として削除する。「流れる雲や」はbnst_no=8で文節意味構築規則rule_no:6060がマッチし、関数prog_6000( )によって、図11に示すように、「流れる」の意味フレームps_6の意味根mw_54にmw_5(雲や)の意味情報を書き込む。「雲や」は「流れる」という用言と縦接合されているので、Bun_ixrt[Bun_num].setu[Setu_num].bun_tate_kon[ ]に格納する。これを基点して、「流れる雲」という文字列が生成できる。この段階で「流れる」の意味解析が終わるので、処理済として、図10から「流れる」の項目を削除する。
【0061】
前の処理で、bnst_no=9の「野鳥の」が処理対象から除去されているので、bnst_no=8の「雲や」とbnst_no=10の「さえずりに」とが隣り合わせとなり、文節意味構築規則のrule_no:6460とマッチする。そこで、関数prog_6200( )で、表17と図11に示すように、意味構造が構築される。
【0062】
表17
mw_71(雲や) → mw_79(*さえずりに)
↑
mw_80(さえずりに)
【0063】
「留め_たい」の意味フレーム40の空きスロットmw_63に、mw_80(さえずりに)の意味情報をコピーして、上の意味構造と結合させる。この場合も、意味情報をスロットに書き込むだけで、mw_80を削除するわけではない。mw_8(心を)をスロットmw_64に書き込めむと、これでimi_range_2の意味構築が終わる。スロットmw_63で自然文生成経路を遮断すれば、mw_69を基点をした自然文「さえずりに心を留め_たい。」という文が得られる。遮断しなければ、「流れる雲や野鳥のさえずりに心を留め_たい。」という自然文が得られる。
【0064】
自然文生成処理については、図16で示すプログラムで詳しく説明する。関数は 文作支援( );のように、文字列の後に括弧( )と ; をつけて示した。プログラムはmain( ) ;で始まる。形態素解析( );と構文解析( );、規則類の読み込み( );を実行し、次いで文作支援( );を実行する。文作支援( );は入力自然文の意味範囲分割( );で、入力文を幾つかに分割する。その後、入力自然文の意味構築( );で自然文の意味を構築し、次いで指定された意味根mw_rootを基点として、自然文生成(mw_root);を実行する。入力自然文の意味構築( );では、形態素解析結果による意味構築( );で、形態素解析結果に形態素意味構築規則を適用して、意味構造を構築する。その後、文節解析結果による意味構築( );では、文節解析結果に文節意味構築規則を適用して、意味構造を構築する。
自然文生成(mw_root);では、意味構造の自然文生成経路を辿って、自然文を作成するための文字列を収集するが、上に結合される要素がPSやMWかによって、経路作成が異なる。最初はmw_rootを起点として、MWの生成経路作成と文字列収集(mw_root)を実行する。MWの生成経路作成と文字列収集( );で示すように、上に結合された要素がMW要素の場合は、MWの生成経路作成と文字列収集( );で、PS要素の場合が、PSの生成経路作成と文字列収集( );で生成経路を作成して、その経路で表現可の文字列を収集する。PSの生成経路と文字列収集( );では、A格、T格、S格、V格、W格、O格、P格の7つの格に分岐する。生成経路の作成順序は、格順テーブルで指定するkakuで決められる。同図では、日本語の格順を示したが、格順が言語ごとに異なる。基本的な格順は、英語はAPOST、中国語のATSPOである。どのような格順でも格順テーブルで指示できる。MWの生成経路生成と文字列収集( );は、表現可でしかも経路遮断否のMW要素と、もしバイパス経路のamwが指定されている場合には、バイパス経路での生成経路作成と文字列収集();によって、それらの要素を辿って、指定された意味根41を基点として、自然文生成経路が形成され、表現可の文字列を収集する。MW要素が表現不可や経路遮断の場合は、MW要素の文字列を取り込まないで、MW要素のNで指定されるMW要素を経由して、自然文生成25を行う。
【0065】
MW要素番号mw_numの文字列は次のようにして収集される。即ち、
冠詞、前置詞、接頭辞などの文字列は
strcat(語の文字列[moji_num][1]、Prc_mw[mw_num].moji_jar);
見出し語の文字列は
strcat(語の文字列[moji_num][2]、Prc_mw[mw_num].moji);
助詞の文字列、
strcat(語の文字列[moji_num][3]、Prc_mw[mw_num].moji_jcs);
論理関係の記号などは
strcat(語の文字列[moji_num][4]、Prc_mw[mw_num].moji_ronri);
によって、語の文字列[moji_num]に書き込まれる。これらの文字列は、収集文字列からの自然文生成( );によって、語順テーブルで指定された順で出力する。図16で示した語順は、日本語の場合で、接頭辞、見出し語、接尾辞、論理記号の順で示したが、その順序は、自由に語順テーブルで変更できる。従って、各国語の語順で生成できる。MWの生成経路作成と文字列収集( );や、PS要素の場合がPSの生成経路作成と文字列収集( );で文字列を収集し、その後バイパス経路での生成経路作成と文字列収集( )で収集し、最後に、Prc_mw[ ].Nで示された経路の文字列を収集する。
これらの文字列の出力順序は、MWの生成経路作成と文字列収集( );内でプログラムの位置によって容易に変更可能である。英語では、関係代名詞は、節より先に表現される。これはを実現させるためには、「 strcat(語の文字列[moji_num][2]、Prc_mw[mw_num].moji) 」を、プログラムのMWの生成経路作成と文字列収集( )の中にある 「 if(上に結合する要素がPSの場合) 」の上に移動させればよい。このように、本発明では、格順、語順、単文の順序、関係代名詞と節の順序を、日本語だけでなく、いろいろな国の言語の語順でも、表現できる。
【0066】
意味構造と自然文について説明する。本発明では、入力自然文を一旦意味構造に変換する。その意味構造のいろいろな部分を指定して、各部分の意味構造から部分意味自然文を表出させる。その部分意味自然文によって、書き手が意図している意味が精確に表現されているかどうか細部にわたって検証できる。図11の( a )に意味構造を, ( b )に入力文100を示した。図11では、意味構造を結合する意味根41の文字列を上下に並べて階層的に示したので、文の意味がどのような構造になっているかが一目でわかる。意味構造をこのように表示することは、コンピュータでも行えるが、複雑な長文になると、かえって分かり難くなる。そのために、通常は、図12に示すように自然文を出力させている。ここでは、図11に示す意味構造を参照しながら、部分的な意味構造からどのように、部分意味自然文を生成するかを説明する。
【0067】
この意味構造から生成される自然文を二種類に分類して示す。一つは意味構造を幹や枝や葉の部分にばらばらに切り分けて、その部分的な意味構造の意味を自然文で表示する。これらは、意味根で自然文生成経路を遮断すれば、簡単に生成できる。このようにして生成された文や語や句に「簡略」という枕詞をつけている。もう一つは、意味根で自然文生成経路を遮断しないで生成した自然文で、これに「詳細」という枕詞をつけて区別している。図12では、前半に簡略意味表現と後半に詳細意味表現を示している。簡略表現では、自然文生成経路を遮断して、必要最小限の文字列しか表示させていないので、基本的な意味表現を見るには、便利である。大抵は、簡略表現で十分であるが、もっと細かく検証したいときには、詳細意味表現を見ることになる。
【0068】
図12に入力自然文の主旨を示したが、簡潔で分かりやすい。これはmw_17(一日、)とmw_18(騒音を)とmw_63(さえずりに)で自然文生成経路を遮断して、表現可の文字列を集めたものである。この場合の自然文生成は簡単である。意味根41のmw_23、 mw_39、mw_69の上にある意味フレーム40で、左から右に表現可の文字列をならべると自然文が得られる。主旨には、横結合記号の → を付記したが、これによって、主旨は三つの単文が横に結合された意味構造であることが分かる。図12の簡略単文には、文末に 横結合記号の「→」を持つ文と、文末記号の「。」 を持つ文と、他の文と縦結合する文がある。縦に結合する文には、意味の連結語となる根単語の前に縦結合記号「::」持っている。簡略単文では、単文のスロットに書き込まれた文字だけを示したので、木から枝葉を払ったような状態になり、意味構造が分かりやすい。簡略書込語は意味フレーム40のスロットに書き込まれた単語を枝葉を取り去った状態で示したものである。上の簡略単文の意味フレーム40のスロットに書き込まれた単語であるが、参考のために表示した。その他に簡略横結合語と簡略句を表示している。横結合語は単語が→で横に結合された意味構造を持つ。簡略横結合語1は 「スピードと→騒音を」であり、簡略横結合語2は「雲や→さえずりに」などである。簡略句1は「秋の::一日、」 、簡略句2は 「野鳥の::さえずり」 である。句では、助詞「の」がついているが、複合語と同じ意味構造である。縦結合語は自然文形成経路を遮断しない詳細縦結合語で示す。この文100では、縦結合語はないが、後で説明する図14で、詳細縦結合語を示す。
【0069】
同図の「詳細意味表現」の文字列は、自然文生成経路を遮断しない場合に生成される文字列である。詳細単文1では意味根mw_23を、詳細単文2では意味根mw_39を、詳細単文3ではmw_71を、詳細単文4はmw_69を基点として、生成した自然文である。図11で、プログラムで生成した自然文生成経路を点線で示したが、上の意味構造を下の意味構造に埋め込んで、それを一列に並べるだけで、そのような自然文分が得られる。
【0070】
意味言語の原理は単純明快であるので、詳細単文から簡単に階層的な意味構造が次のように構築できる。一つの単語は根単語として扱われる。二つの単語で構成される複合語や句では、後の単語が根単語である。単語が横に結合される場合は、最後の単語が根単語である。単文の場合は、意味フレームと根単語で構成される。縦結合記号の::の後にある単語が根単語である。これらの根単語を文中で指示され結合記号に従って、その順序で結合させると自動的に図17に示すような階層的な意味構造になる。詳細単文4を例にして説明する。図11や図12の詳細単文4では、MW要素記号( )を省略したが、図17の詳細単文4では、どの単語がどの単語と結合をしているかを明示するために、自然文の中に「( )」、や「::」や「→」などの意味構造記号を付記した。詳細単文4から(流れる::雲や)を取り出して、下位に書き出す。(野鳥の::さえずりに)も下位に書き出す。(流れる::雲や)の「雲や」と(野鳥の::さえずりに)の「さえずりに」を同列に並べると、簡略横結合語2の(雲や→さえずりに)になる。これによって、「雲や」と「さえずりに」が横に結合された意味構造を構築していることが分かる。それより下位に(留め_たい。)という意味フレームを置き、その意味フレームに(雲や→さえずりに)の根単語の「さえずりに」と「心を」を書き込めば、簡略文4になる。これによって、「流れる雲や野鳥のさえずりに心を留めたい。」の「雲や」は「雲が流れる」の「雲」で、それが「野鳥のさえずりに」の「さえずりに」と横に結合し、(雲や→さえずりに)となり、その「さえずりに」が(さえずりに心を留めたい。)の「さえずりに」になっていることが一目瞭然に分かる。すなわち、「雲」は、「簡略文3」と関わり、簡略横結語2を通して、簡略文4と結合していることがわかる。この意味構造から「雲や」は「野鳥の」には、意味として全く関係がないことがわかる。このように、入力文を意味構造の上で表現すると、ある単語がどの単語と関わっていることがはっきりする。もう少し複雑な入力文で、意味構造と自然文との関係を説明する。
【0071】
入力文200は「12日の東京株式市場では、経営再建の行方に注目が集まっている日本航空株に売り注文が殺到し、取引が成立しないまま、同日の日航株の値幅制限の下限となる前週末比30円安の37円まで気配値が下落している。」 の意味構造とその自然文生成経路を図13に示す。図13において、最下層に簡略単文2と簡略単文3と簡略単文5が横に並び、次のように→で結合されている。すなわち、
(株に注文が殺到し、)→(取引が成立しない:まま)→(37円まで値が下落して_いる。)
となるが、これらの簡略単文は、mw_83、 mw_84、 mw_24、 mw_25で自然文生成経路を遮断して、生成された単文である。これが本入力文の主旨になる。
【0072】
本発明では、このように主旨が簡単に得られる。まずこの文から、入力文は書き手の意図を正確に反映した文かどうかが判断できる。簡略単文の項では、このように横に結合した文だけでなく、簡略単文1と簡略単文4などのように、縦に結合した簡略単文も示した。簡略単文1と簡略単文2は根単語の「株に」で縦に結合されるので、図13にも示されているが、意味構造は表18のようになる。
表18
(市場では、行方に注目が集まっている::*株に)ps_18
(株に注文が殺到し、)ps_11
同じように、簡略単文4は簡略単文5と「37円まで」で縦に結合されているので、意味構造は表19のようになる。
表19
(下限となる::*37円まで)ps_22
(37円まで値が下落している。)ps_4
根単語の「株に」と「37円まで」は自然文を生成するときに重複するので、上にある意味根の文字列に「*」をつけて表現禁止にすると、表20のような文になる。
表20
「市場では、行方に注目が集まっている::株に注文が殺到し、」
「下限となる::37円まで値が下落している。」
「::」の後ろにある根単語で二つの文が縦に結合されていることがわかる。簡略単文は、単文と直接関係がない文字列が削除されているので、詳細単文より分かり易くなる。図14では、簡略単文のスロットに書き込まれた文字列を簡略書込語と簡略句として示した。図14の詳細書込語1の「12日の::東京::株式::市場では」の意味構造は、図13のmw_144から上に伸びている自然文生成経路をたどると、分かる。「東京」は「株式」に係り、「株式」は「市場では」に係り、「12日の」は「市場では」に係っていることが分かる。つまり、「12日の」は「東京」に係らずに、「市場では」に係っていることが明確である。詳細書込語8の(同日の::日航::株の::値::幅::制限の::下限となる::前週末::比::30::円安の::37円まで)の意味構造は図13のmw_24から上に伸びる自然文生成経路をたどれば分かる。mw_214の「制限の」はmw_209の「株の」とmw111の「幅」とmw_238の「下限と」に係り、mw_111の「幅」はmw_103の「値」とmw_116の「制限の」に係っている。「円安」は「比」と「30」と「37円まで」に係っている。このように言葉で表現すると、複雑であるが、図13の意味構造では簡単明瞭である。同図から「円安」は「前週末」には関係なく、「前週末」の「比」に関係していることが分かる。このことは、図15の詳細縦結合語9の「30::円安の」と詳細縦結合語12の「前週末::比::円安の」と図14の簡略句6の「円安の::37円まで」からでも確認できる。
【0073】
以上述べたように、入力文を意味構造に変換して、その意味構造を細部に分解して、それをベースにして意味構造を再構築すると図11や図13で示すような意味構造が得られる。また、それぞれの意味構造から自然文を生成すると、図12や図14や図15で示す自然文が得られる。これらの意味自然文から、入力自然文の意味を細部にわたって、検証することができる。文中の単語は、漠然として全体の意味に関与しているのではなく、明確な意味構造で規定される意味が組み合わされて頑健は意味が構築されている。このことから、入力した文の意味を示すと、書き手が意図している意味が精確に表現されているかどうかが分かるので、書き手が正しい文を作成することを支援できる。
【産業上の利用可能性】
【0074】
機械翻訳を行う場合、書き手が意図した正確な文が作成されていることが前提である。悪文を翻訳しても、悪文は悪文である。まず、翻訳するまえに、日本語なら日本語で正しい文を作成することが重要である。また賠償責任などが発生する公的な文章では、意味が正確な文を作成することが大切である。また、文章を作成しながら、知的なトレーニングを行うのに利用できる。
【符号の説明】
【0075】
1 中央制御装置、
2 内部メモリー、
3 表示装置、
4 外部記憶装置、
5 入力装置、
6 メモリーハブ、
7 IOハブ、
8 バス、
20 自然文分割プログラム、
21 形態素解析プログラム、
22 構文解析プログラム、
23 文節意味構築プログラム、
24 形態素意味構築プログラム、
25 自然文生成プログラム、
30 MW要素、
31 PS要素
32 意味根収集要素、 Bun_ixrt[Bun_num]
40 意味フレーム、
41 意味根、
42 意味構造記号、( ),[ ],::,→
50 MW結合要素、 Prc_mw[].U,L,B,N
Prc_mw[].FLG
51 MW文字列要素、Prc_mw[].moji_jar[],moji[]
moji_jcs[], moji_ronri[]
52 MW表現可否要素、 Prc_mw[].KAK
53 MW経路遮断要素、 Prc_mw[].KAK
55 PS結合要素 Prc_ps[].A,T,S,V,W.O.P,L
56 自然文生成経路
57 部分意味構造
58 全体意味構造
【特許請求の範囲】
【請求項1】
メモリーハブ6とIOハブ7を中継装置として、バス8で接続されている中央制御装置1と、内部メモリ2、外部記憶装置4、表示装置3、入力装置5を備え、日本語辞書や形態素解析規則、構文解析規則、形態素意味構築規則、文節意味構築規則などの規則類や、辞書検索プログラム、形態素解析プログラム、構文解析プログラム、入力自然文の意味範囲分割プログラム、形態素意味構築プログラム、文節意味構築プログラム、自然文生成プログラムなどのプログラムを外部記憶装置4に保持する自然言語処理装置において、
MW要素30は、少なくとも、上下左右の結合相手の要素番号やMW要素かPS要素の種類を格納するMW結合要素50及び、形態素解析結果及び文節解析結果で得られた文字列などを格納するMW文字列要素51及び、文字列の表現の可否を制御する情報を格納するMW表現可否要素52及び、自然文生成経路を遮断するかどうかを制御する情報を格納するMW経路遮断要素53を持ち、
PS要素31は、単数及び複数の上に縦結合するMW要素30と下に縦結合するMW要素30の番号を格納するPS結合要素55を持ち、
意味フレームは、単数及び複数のMW要素と単数及び複数のPS要素が結合して構成され
単数及び複数の意味フレームや単数及び複数のMW要素が縦横に結合されて意味構造が構築され、意味構造の最下層のMW要素を、これらの意味構造を結合する意味根41とし、当該意味根41を意味根収集要素32に格納し、
中央制御装置1によって、形態素解析プログラム21を内部メモリ2に取り出し、当該形態素解析プログラム21によって、形態素解析を行い、形態素解析結果を得て、当該形態素解析結果に構文解析プログラム22によって、構文解析規則を適応して構文解析結果を得て、
形態素意味構築プログラム24によって、当該形態素解析結果に形態素意味構築規則を適用して、当該規則が指定するプログラムによって、MW要素や意味フレームを結合させて部分的な意味構造を構築し、同時に意味解析対象になっている文字列をMW文字列要素51に格納し、また既に構築した既存の意味構造と結合関係にある意味根で当該既存意味構造と結合させて、意味構造を拡張するともに、当該意味根を意味根収集要素32に格納し、
さらに文節意味構築プログラム23によって、当該構文解析結果で得られる文節解析結果に文節意味構築規則を適用して、当該規則で指定されたプログラムに従って、MW要素や意味フレームを結合させて部分的な意味構造を構築し、同時に意味解析対象になっている文字列をMW文字列要素51に格納し、
既に作成した既存の意味構造と結合関係にある意味構造を意味根で当該意味構造を結合させて、意味構造を構築するとともに、当該意味根を意味根要素32に格納し、このような処理を繰り返して、意味構造上に文字列が書き込まれた意味構造を構築し、
MW表現可否要素52及びMW経路遮断要素53に基づいて自然文生成経路を作成し、入力自然文の全体的な意味をあらわす自然文を生成し、或いは自然文生成経路を遮断させて部分的な意味構造に分割し、分割した意味構造から自然文生成を生成し、入力自然文の意味をを多面的に表示させて、入力自然文を細部にわたって検証し、これに基づき正確な意味を表現する自然文を作成することを支援する文作支援自然文処理法。
【請求項2】
入力自然文の意味を一旦意味構造に変換して、当該意味構造から自然文を生成するが、当該生成自然文に意味構造記号42を併記することによって、自然文の中の意味構造を表示することを特長とする請求項1に記載の文作成支援自然文処理法。
【請求項1】
メモリーハブ6とIOハブ7を中継装置として、バス8で接続されている中央制御装置1と、内部メモリ2、外部記憶装置4、表示装置3、入力装置5を備え、日本語辞書や形態素解析規則、構文解析規則、形態素意味構築規則、文節意味構築規則などの規則類や、辞書検索プログラム、形態素解析プログラム、構文解析プログラム、入力自然文の意味範囲分割プログラム、形態素意味構築プログラム、文節意味構築プログラム、自然文生成プログラムなどのプログラムを外部記憶装置4に保持する自然言語処理装置において、
MW要素30は、少なくとも、上下左右の結合相手の要素番号やMW要素かPS要素の種類を格納するMW結合要素50及び、形態素解析結果及び文節解析結果で得られた文字列などを格納するMW文字列要素51及び、文字列の表現の可否を制御する情報を格納するMW表現可否要素52及び、自然文生成経路を遮断するかどうかを制御する情報を格納するMW経路遮断要素53を持ち、
PS要素31は、単数及び複数の上に縦結合するMW要素30と下に縦結合するMW要素30の番号を格納するPS結合要素55を持ち、
意味フレームは、単数及び複数のMW要素と単数及び複数のPS要素が結合して構成され
単数及び複数の意味フレームや単数及び複数のMW要素が縦横に結合されて意味構造が構築され、意味構造の最下層のMW要素を、これらの意味構造を結合する意味根41とし、当該意味根41を意味根収集要素32に格納し、
中央制御装置1によって、形態素解析プログラム21を内部メモリ2に取り出し、当該形態素解析プログラム21によって、形態素解析を行い、形態素解析結果を得て、当該形態素解析結果に構文解析プログラム22によって、構文解析規則を適応して構文解析結果を得て、
形態素意味構築プログラム24によって、当該形態素解析結果に形態素意味構築規則を適用して、当該規則が指定するプログラムによって、MW要素や意味フレームを結合させて部分的な意味構造を構築し、同時に意味解析対象になっている文字列をMW文字列要素51に格納し、また既に構築した既存の意味構造と結合関係にある意味根で当該既存意味構造と結合させて、意味構造を拡張するともに、当該意味根を意味根収集要素32に格納し、
さらに文節意味構築プログラム23によって、当該構文解析結果で得られる文節解析結果に文節意味構築規則を適用して、当該規則で指定されたプログラムに従って、MW要素や意味フレームを結合させて部分的な意味構造を構築し、同時に意味解析対象になっている文字列をMW文字列要素51に格納し、
既に作成した既存の意味構造と結合関係にある意味構造を意味根で当該意味構造を結合させて、意味構造を構築するとともに、当該意味根を意味根要素32に格納し、このような処理を繰り返して、意味構造上に文字列が書き込まれた意味構造を構築し、
MW表現可否要素52及びMW経路遮断要素53に基づいて自然文生成経路を作成し、入力自然文の全体的な意味をあらわす自然文を生成し、或いは自然文生成経路を遮断させて部分的な意味構造に分割し、分割した意味構造から自然文生成を生成し、入力自然文の意味をを多面的に表示させて、入力自然文を細部にわたって検証し、これに基づき正確な意味を表現する自然文を作成することを支援する文作支援自然文処理法。
【請求項2】
入力自然文の意味を一旦意味構造に変換して、当該意味構造から自然文を生成するが、当該生成自然文に意味構造記号42を併記することによって、自然文の中の意味構造を表示することを特長とする請求項1に記載の文作成支援自然文処理法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−248142(P2012−248142A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−121493(P2011−121493)
【出願日】平成23年5月31日(2011.5.31)
【出願人】(507166298)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月31日(2011.5.31)
【出願人】(507166298)
【Fターム(参考)】
[ Back to top ]