(57)【要約】【課題】  前処理やデータの編集を必要とせず、コンピュータに様々な文を正確かつ迅速に分割させるコンピュータプログラムを提供する。【解決手段】    文分割プログラム８６は、文とその文を分割した分割文字列とからなる対を３個以上含むデータベース８８とともに用いられる。文分割プログラム８６は、処理対象の文が与えられると、データベース８８から任意の二つの文を選択し二つの文と処理対象の文とから類推文を生成し、類推文がデータベース８８に存在すれば、データベース８８中で類推文及び二つの文と対になっている分割文字列をそれぞれ読出し、読出された３つの分割文字列を用いて類推分割文字列を生成するための分割プログラム部分９０と、入力文８２を分割プログラム部分９０に与え、入力文８２に対して分割プログラム部分９０が生成する類推分割文字列を出力文８４として出力するための入出力プログラム部分９２とを含む。【選択図】        図３
2006277674.tif 000002
【特許請求の範囲】
【請求項１】
文と、当該文を所定単位で分割した分割文字列とからなる対を３個以上含む、コンピュータ読取可能なデータベースとともに用いられる文分割コンピュータプログラムであって、
処理対象の文が与えられると、前記データベースを用いて前記処理対象の文に対する分割文字列を生成するための文分割プログラム部分と、
外部から与えられる入力文を前記文分割プログラム部分に与え、当該入力文に対して前記文分割プログラム部分が出力する分割文字列を、前記入力文に対する分割文字列として出力するための入出力プログラム部分とを含み、
前記文分割プログラム部分は、
前記処理対象の文が与えられると、前記データベースから任意の二つの文を選択し、当該二つの文と前記処理対象の文とから所定の第１の類推式を生成し、当該第１の類推式を解いて類推文を生成するための第１の類推プログラム部分と、
前記類推文が前記データベースに存在するか否かを判定するための判定プログラム部分と、
前記判定プログラム部分により前記類推文が前記データベースに存在すると判定されたことに応答して、前記データベース中で前記類推文と対になっている分割文字列と、前記データベース中で前記二つの文とそれぞれ対になっている二つの分割文字列とを前記データベースから読出すための読出プログラム部分と、
前記読出プログラム部分により読出された３つの分割文字列を用いて、前記第１の類推式と所定の関係を有する第２の類推式を生成し、当該第２の類推式を解いて類推分割文字列を生成して前記文分割プログラム部分の戻り値として出力するための第２の類推プログラム部分とを含む、文分割コンピュータプログラム。
【請求項２】
前記第１の類推プログラム部分は、
前記処理対象の文が与えられると、前記データベース中の文の順序対（Ａ，Ｂ）を全て選択するためのプログラム部分と、
選択された前記順序対の各々に対し、前記処理対象の文Ｄとの間で第１の類推式「Ａ：Ｂ：：ｘ：Ｄ」を生成し、当該第１の類推式を解いて解ｘ＝Ｃを生成することを試み、生成された解Ｃを全て出力するための類推式解決プログラム部分とを含む、請求項１に記載の文分割コンピュータプログラム。
【請求項３】
前記文分割プログラム部分は、
前記判定プログラム部分により前記類推文が前記データベースに存在していないと判定されたことに応答して、当該類推文を処理対象の文として前記文分割プログラム部分を再帰的に呼出すための再帰呼出プログラム部分と、
前記類推文と、前記再帰呼出プログラム部分により呼出された前記文分割プログラム部分により出力される分割文字列とを対にして、前記データベースに追加するためのプログラム部分とをさらに含む、請求項１又は請求項２に記載の文分割コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自然言語処理に関し、特に、単語等を単位とする所定単位に文字列を分割する技術に関する。
【背景技術】
【０００２】
自然言語の文章をコンピュータで処理するためには、まず、処理対象の文章を単語又は形態素等の単位に分割し、個々の要素がどのようなものであるかを同定する処理が必要となる。例えば、単語と単語との境界を記号「｜」で表した場合、日本語の文「来週出発したいと思っています。」を単語単位で分割すると、「来週｜出発｜したい｜と｜思って｜います｜。」となる。特に、日本語、中国語、タイ語等の言語の文は、英語等の言語のように単語ごとに分かち書きされることなく一続きに表記されるため、文を単語等の単位に分割する処理は必須の処理といえる。
【０００３】
文を単語単位に分割するための手法として、大別して次の２種類の手法が知られている。すなわち、一つは辞書を用いる技術であり、もう一つは統計的な手法である。
【０００４】
辞書を用いる手法で分割を行なう場合、一般的にはまず有限状態オートマトンとして構成された辞書を用意する。そして、文頭から順に文中の文字と辞書中の文字とを照合し、先行する単語を構成する最後の文字と、その次の単語を構成する最初の文字との境界を決定する。この処理を文末に向かって順次行ない、単語と単語との境界を決定する。
【０００５】
統計的な手法で分割を行なう場合、まず、事前に用意した学習データを処理して確率モデルを推論するための統計情報を得る、いわゆる学習段階の処理を行なう。確率モデルには様々なものが存在するが、通常、Ｎ−グラム頻度に依存するモデルを用いる。確率モデルは、例えばＧｏｏｄ−Ｔｕｒｉｎｇの評価法等を用いて平滑化され評価される。このような学習の結果、状態遷移という形態の情報が得られる。この状態遷移を使えば、処理中の文字又は処理予定の文字についての知識が与えられるので、処理中の文字が単語の最後の文字であるか否か、すなわちその位置に空白を置くべきか否かを決定することができる。学習段階の処理は、学習データが適切に処理され、確率モデルより知識が得られるまで実行される。その後に、学習で得られた知識を用いて単語と単語との境界を決定する。
【０００６】
【特許文献１】特許第３１７２５１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
辞書を用いる手法では、処理は非決定性を有する。すなわち、同じ文が異なる分割の仕方で分割されることがある。また、この手法で分割を行なうには、処理対象の言語の文法的知識等に基づき予め大規模かつ適切な辞書を編集しておく必要がある。
【０００８】
統計的な手法に基づく技術では、用意したデータを前処理しておかなければならない。すなわち、処理に先立ち、膨大な量の学習データを用いて学習を行なう必要がある。また、確率モデルにＮ−グラムモデルを用いた場合、分割の処理対象となる文脈は所定の長さに固定されてしまい、長い文脈での処理に適さない。
【０００９】
それゆえに、本発明の目的は、膨大な量の前処理やデータの編集を必要とせず、コンピュータに、様々な文を正確かつ迅速に分割させるコンピュータプログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１の局面に係る文分割コンピュータプログラムは、文と、その文を所定単位で分割した分割文字列とからなる対を３個以上含む、コンピュータ読取可能なデータベースとともに用いられるコンピュータプログラムである。この文分割コンピュータプログラムは、処理対象の文が与えられると、データベースを用いて処理対象の文に対する分割文字列を生成するための文分割プログラム部分と、外部から与えられる入力文を文分割プログラム部分に与え、入力文に対して文分割プログラム部分が出力する分割文字列を、入力文に対する分割文字列として出力するための入出力プログラム部分とを含む。文分割プログラム部分は、処理対象の文が与えられると、データベースから任意の二つの文を選択し、当該二つの文と処理対象の文とから所定の第１の類推式を生成し、第１の類推式を解いて類推文を生成するための第１の類推プログラム部分と、類推文がデータベースに存在するか否かを判定するための判定プログラム部分と、判定プログラム部分により類推文がデータベースに存在すると判定されたことに応答して、データベース中で類推文と対になっている分割文字列、及びデータベース中で二つの文とそれぞれ対になっている二つの分割文字列を、データベースから読出すための読出プログラム部分と、読出プログラム部分により読出された３つの分割文字列を用いて、第１の類推式と所定の関係を有する第２の類推式を生成し、第２の類推式を解いて類推分割文字列を生成して文分割プログラム部分の戻り値として出力するための第２の類推プログラム部分とを含む。
【００１１】
好ましくは、第１の類推プログラム部分は、処理対象の文が与えられると、データベース中の文の順序対（Ａ，Ｂ）を全て選択するためのプログラム部分と、選択された順序対の各々に対し、処理対象の文Ｄとの間で第１の類推式「Ａ：Ｂ：：ｘ：Ｄ」を生成し、第１の類推式を解いて解ｘ＝Ｃを生成することを試み、生成された解Ｃを全て出力するための類推式解決プログラム部分とを含む。
【００１２】
より好ましくは、データベース中の文Ａ、Ｂ、及びＣは、データベース中ではそれぞれ分割文字列Ａ’、Ｂ’、及びＣ’と対になっており、第２の類推プログラム部分は、読出プログラム部分により読出された３つの分割文字列Ａ’、Ｂ’、及びＣ’を用いて、第１の類推式における順序と一致する順序でこれらを配置した第２の類推式「Ａ’：Ｂ’：：Ｃ’：ｙ」を生成し、この第２の類推式を解いて類推分割文字列ｙ＝Ｄ’を生成して文分割プログラム部分の戻り値として出力するためのプログラム部分を含む。
【００１３】
文分割プログラム部分は、判定プログラム部分により類推文がデータベースに存在していないと判定されたことに応答して、類推文を処理対象の文として文分割プログラム部分を再帰的に呼出すための再帰呼出プログラム部分と、類推文と、再帰呼出プログラム部分により呼出された文分割プログラム部分により出力される分割文字列とを対にして、データベースに追加するためのプログラム部分とをさらに含んでもよい。
【００１４】
本発明の第２の局面に係る記録媒体は、本発明の第１の局面に係るいずれかの文分割コンピュータプログラムを記録した、コンピュータ読取可能な記録媒体である。
【発明を実施するための最良の形態】
【００１５】
［概要］
以下、図面を参照しつつ、本発明の一実施の形態について説明する。なお、本明細書では、単語単位で区切られることなく表記される言語の例として日本語を挙げるが、以下の説明からも明らかなように、本発明は、言語、文字、文法構造等に関係なく適用可能である。また、この実施の形態を説明するにあたり、図面及び明細書において、日本語における単語間の境界を記号「｜」で表す。また、英語における単語間の境界は、通例どおり空白で表す。
【００１６】
この実施の形態の文分割システムは、文字列により構成された文と、文中の単語同士の境界にそれぞれ境界を表す境界記号を挿入した記号列（以下、この記号列を「分割文字列」と呼ぶ。）との対からなる多数の用例を用いて、記号列類推によって単語単位の分割を行なう。記号列類推については、特許文献１を参照されたい。
【００１７】
特許文献１では、所定の順序で与えられた３つの記号列から別の記号列を類推生成する手法が開示されている。この手法では、まず、与えられた３つの記号列を構成する二つの記号列の間に成立する類推関係を特定する。続いて、３つの記号列を構成する残りの一つの記号列との間にその類推関係と同様の関係が成立する、別の記号列を生成する。二つの記号列の間に成立する類推関係と同様の類推関係が、残りの一つの記号列と生成される記号列との間に成立する。ここでは、記号列Ａ、記号列Ｂ、及び記号列Ｃから、類推関係により記号列Ｄが生成されることを「Ａ：Ｂ：：Ｃ：Ｄ」と表すものとする。
【００１８】
この実施の形態では、まず分割の対象となる文字列を文Ｄとした場合に、Ａ：Ｂ：：Ｃ：Ｄが成立する文Ａ、Ｂ、及びＣを探索する。文Ａ、Ｂ、及びＣが探索されると、用例を用いて文Ａ、Ｂ、及びＣに対応する分割文字列Ａ’、分割文字列Ｂ’、及び分割文字列Ｃ’を準備する。分割文字列Ａ’、Ｂ’、及びＣ’もまた記号列であり、記号列類推に用いることができる。そこで、分割文字列Ａ’、Ｂ’、及びＣ’から、Ａ’：Ｂ’：：Ｃ’：Ｄ’が成立する記号列Ｄ’を記号列類推により生成する。
【００１９】
分割文字列Ａ’、Ｂ’、及びＣ’は分割文字列であるため、記号列Ｄ’も同様に分割文字列となる。また、分割文字列Ａ’、Ｂ’、及びＣ’はそれぞれ文Ａ、Ｂ、及びＣに対応するものであるため、記号列Ｄ’も同様に文Ｄに対応するものとなる。したがって、記号列Ｄ’は、文Ｄに対応する分割文字列となる。
【００２０】
この実施の形態の文分割システムはさらに、文Ａ、Ｂ、及びＣの探索の過程で生成される文を対象とした再帰的な処理により、用例の補充を行なう。
【００２１】
［構成］
この実施の形態の文分割システムは、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図１はこのコンピュータシステム３０の外観を示し、図２はコンピュータシステム３０の内部構成を示す。
【００２２】
図１を参照して、このコンピュータシステム３０は、ＣＤ−ＲＯＭ（コンパクトディスク読出専用メモリ）ドライブ５０及びＦＤ（フレキシブルディスク）ドライブ５２を有するコンピュータ４０と、モニタ４２と、キーボード４６と、マウス４８とを含む。
【００２３】
図２を参照して、コンピュータ４０は、ＦＤドライブ５２及びＣＤ−ＲＯＭドライブ５０に加えて、ハードディスク５４と、ＣＰＵ（中央処理装置）５６と、ＣＰＵ５６、ハードディスク５４、ＦＤドライブ５２、及びＣＤ−ＲＯＭドライブ５０に接続されたバス６６と、バス６６に接続され、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）５８と、バス６６に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）６０とを含む。コンピュータシステム３０はさらに、プリンタ４４を含んでいる。
【００２４】
ここでは示さないが、コンピュータ４０はさらにローカルエリアネットワーク（ＬＡＮ）への接続を提供するネットワークアダプタボードを含んでもよい。
【００２５】
コンピュータシステム３０にこの実施の形態の文分割システムとしての動作を行なわせるためのコンピュータプログラムは、ＣＤ−ＲＯＭドライブ５０又はＦＤドライブ５２に挿入されるＣＤ−ＲＯＭ６２又はＦＤ６４に記憶され、さらにハードディスク５４に転送される。又は、プログラムは図示しないネットワークを通じてコンピュータ４０に送信されハードディスク５４に記憶されてもよい。プログラムは実行の際にＲＡＭ６０にロードされる。ＣＤ−ＲＯＭ６２から、ＦＤ６４から、又はネットワークを介して、直接にＲＡＭ６０にプログラムをロードしてもよい。
【００２６】
このプログラムは、コンピュータ４０にこの実施の形態の文分割システムとして動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ４０上で動作するオペレーティングシステム（ＯＳ）又はサードパーティのプログラム、若しくはコンピュータ４０にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態の文分割システムを実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した文分割システムとしての動作を実行する命令のみを含んでいればよい。コンピュータシステム３０の動作は周知であるので、ここでは繰返さない。
【００２７】
図３に、この実施の形態の文分割システムの機能的構成をブロック図形式で示す。図３を参照して、この実施の形態の文分割システム８０は、文字列で構成された入力文８２を受け、単語間の境界を表す記号を入力文８２中に挿入した分割文字列を生成し、出力文８４として出力するための単語分割装置８６と、単語分割装置８６の処理に用いるデータとして、文とその文に対応する分割文字列とからなる対を多数記憶するためのデータベース８８とを含む。
【００２８】
図４にデータベース８８に記憶されたデータの構造を示す。図４を参照して、データベース８８は、文字列により構成された文を多数含む第１ファイル１００と、第１ファイルに含まれる文にそれぞれ対応する多数の分割文字列からなる第２ファイル１０２とを含む。図４に示す第１ファイル１００は、リスト形式のデータであり、多数のエントリを含む。第１ファイル１００の各エントリは、そのエントリの識別番号と分割されていない文とを含む。第２ファイル１０２もまた第１ファイル１００と同様のリスト形式のデータであり、多数のエントリを含む。各エントリは、そのエントリの識別番号と分割文字列とを含む。第１ファイル１００と第２ファイル１０２とにおける同一の識別番号のエントリには、それぞれ文とその文に対応する分割文字列とが格納される。
【００２９】
再び図３を参照して、単語分割装置８６は、文を引数として呼出されると、引数とデータベース８８内の用例とを用いて、引数に対応する分割文字列を生成して戻り値として返すとともに、データベース８８に用例を補充する処理を実行するための分割プログラム９０と、分割プログラム９０による処理で生成される分割文字列とその処理に対応する引数とを対にして一時保持するためのメモリ９４と、入力文８２が入力されたことに応答して、入力文８２を引数として分割プログラム９０を呼出し、その結果分割プログラム９０から返される分割文字列を出力文８４として出力するための入出力部９２とを含む。
【００３０】
図５に、分割プログラム９０のフローチャートを示す。図５を参照して、分割プログラム９０は、文を引数Ｄとして呼出される。分割プログラム９０が開始されると、ステップ１２０Ａとステップ１２０Ｂとで囲まれた、ステップ１２２、ステップ１２４、及びステップ１２６の処理を、第１ファイル内の、順序を含めて考えられる互いに異なる全ての文のペア（順序対）（Ａ，Ｂ）について処理が完了するまで繰返す。
【００３１】
ステップ１２２では、特許文献１に記載の手法で、処理対象の文のペアを構成する２文Ａ及びＢと引数Ｄとからなる３文をもとに記号列類推を行なう。すなわち、類推関係Ａ：Ｂ：：ｘ：Ｄの成立する文ｘ＝Ｃ（以下、この文を「第１類推文」と呼ぶ。）の生成を試みる。ステップ１２４では、ステップ１２２において第１類推文Ｃが生成されたか否かを判定する。生成されたならばステップ１２６に進む。さもなければ、ステップ１２０Ｂに進む。
【００３２】
ステップ１２６では、ステップ１２２で生成された第１類推文Ｃを用いた処理を実行する。すなわち、データベース８８（図４参照）内での第１類推文Ｃの検索と、第１類推文、文のペア（Ａ，Ｂ）、及びデータベース８８の第２ファイル１０２を用いて、引数Ｄに対応する分割文字列となる第２類推文Ｄ’を生成する処理とを行なう。ステップ１２６の処理が終了すると、ステップ１２０Ｂに進む。ステップ１２６での処理については、図６を用いて後述する。
【００３３】
全ての文のペアについてステップ１２０Ａとステップ１２０Ｂとで囲まれた一連の処理が完了すると、ステップ１２８に進む。ステップ１２８では戻り値を設定する。すなわち一連の処理により引数Ｄに対応する分割文字列Ｄ’が生成され、引数Ｄと分割文字列Ｄ’との対がメモリ９４（図３参照）に格納されていたならば、正常終了を表す値（例えば「０」）とメモリ９４上における文と分割文字列との対の格納位置を表すアドレスとを、戻り値として設定する。引数Ｄに対応する分割文字列Ｄ’が生成されていなければ、エラーを表す所定の値（例えば「１」）を戻り値として設定する。そして、分割プログラム９０を終了する。
【００３４】
図６に、ステップ１２６（図５参照）において実行される処理のフローチャートを示す。図６を参照して、ステップ１２６の処理が開始されると、図５に示すステップ１２２において生成される全ての第１類推文Ｃに対し、ステップ１４０Ａとステップ１４０Ｂとで囲まれたステップ１４２〜ステップ１５８の処理を実行する。
【００３５】
ステップ１４２では、第１ファイル１００（図４参照）内で、第１類推文Ｃと一致する文を検索する。ステップ１４４では、ステップ１４２での検索の結果について判定を行なう。すなわち、検索により第１ファイル１００から一致する文が得られたならば、ステップ１４６に進む。さもなければステップ１５４に進む。
【００３６】
ステップ１４６では、処理対象の文のペア（Ａ，Ｂ）及び処理対象の第１類推文Ｃからなる３文と、第１ファイル１００（図４参照）と、第２ファイル１０２（図４参照）とを照合して、この３文に対応する３つの分割文字列Ａ’、Ｂ’、及びＣ’を第２ファイル１０２から読出す。ステップ１４８では、ステップ１４６で読出した３つの分割文字列Ａ’、Ｂ’、及びＣ’をもとにステップ１２２（図５参照）と同様の記号列類推を行なう。すなわち、類推式Ａ’：Ｂ’：：Ｃ’：ｙの成立する第２類推文ｙ＝Ｄ’の生成を試みる。ここで生成される第２類推文Ｄ’が、引数Ｄに対応する分割文字列となる。ステップ１５０では、ステップ１４８において第２類推文Ｄ’が生成されたか否かを判定する。生成されたならばステップ１５２に進む。さもなければステップ１４０Ｂに進む。ステップ１５２では、引数Ｄと第２類推文Ｄ’との対をメモリ９４（図３参照）に格納し、ステップ１４０Ｂに進む。
【００３７】
ステップ１４４からステップ１５４へ処理が進むと、ステップ１５４において、第１類推文を引数として、分割プログラム９０の再帰呼出を行なう。この再帰呼出により、第１類推文Ｃに対応する分割文字列Ｃ’が生成され、戻り値として、正常終了を表す値（０）と第１類推文Ｃに対応する分割文字列Ｃ’との対のメモリ９４上でのアドレスとが返される。又は、第１類推文Ｃに対応する分割文字列Ｃ’が生成されず、戻り値としてエラーを表す値（１）が返される。戻り値が返されるとステップ１５６に進む。ステップ１５６では、ステップ１５４での戻り値の判定を行なう。戻り値がエラーを表す値（１）であれば、ステップ１４０Ｂに進む。さもなければステップ１５８に進む。ステップ１５８では、その時点でメモリ９４に格納されている全ての文と分割文字列との対をデータベース８８（図４参照）に補充する。すなわち第１類推文を第１ファイル１００（図４参照）に格納し、第１類推文に対する分割文字列を第２ファイルに格納する。補充が完了するとステップ１４０Ｂに進む。
【００３８】
以上の一連の処理が全ての第１類推文について完了すると、図５に示すステップ１２６の処理が完了する。処理は、上記の通り図５のステップ１２０Ｂに進む。
【００３９】
［動作］
この実施の形態の文分割システム８０は、以下のように動作する。
【００４０】
−第１類推文の生成と検索−
まず、文分割システム８０が第１類推文を生成しデータベース８８内で第１類推文を検索する動作について説明する。図７に、第１類推文を生成しデータベース８８内で第１類推文を検索する動作を概略的に示す。図７を参照して、単語分割装置８６（図３参照）に「もっと淡いいろはありますか。」という入力文８２が与えられたものとする。入出力部９２（図３参照）は、この入力文８２を引数Ｄ２００として、分割プログラム９０を呼出す。
【００４１】
分割プログラム９０が呼出されると、図５に示すステップ１２０Ａにおいて、データベース８８（図３及び図４参照）の第１ファイル１００（図４参照）から、任意の二つの文Ａ及びＢを選び、文Ａ及びＢからなる文のペア２０２を形成する。ここでは、図４に示す第１ファイル１００から、文Ａとして識別番号２の「もっと濃いいろはありますか。」が選ばれ、文Ｂとして識別番号４の「もっと淡い色はありますか。」という文が選ばれたものとする。
【００４２】
文のペア２０２を選択すると、続くステップ１２２において、引数Ｄ２００と文のペア２０２を構成する文Ａ及びＢとからなる３文の組２０４を形成する。そして記号列類推によって、この３文からＡ：Ｂ：：Ｃ：Ｄの成立する第１類推文Ｃ２０６の生成を試みる。例えば、図７に示す３文の組２０４においては、文Ｂは、文Ａ中の「濃」という文字を「淡」という文字に、「いろ」という文字列を「色」という文字に、それぞれ置換した文である。文Ｂにおけるこれら２箇所の文字列を除く部分の文字列は、文Ａにおける当該部分の文字列に共通する。引数Ｄは、「淡」という文字と「いろ」という文字列とを含み、この２箇所の文字列を除く部分の文字列は、文Ａ及び文Ｂにおける当該箇所の文字列に共通する。特許文献１に記載の手法では、文Ａ、文Ｂ、及び文Ｄに共通する部分と、文Ｄにおける文字「淡」と置換の関係にある文字「濃」と、文Ｄにおける文字「いろ」と置換の関係にある文字「色」とから、新たな文が生成される。生成される文は、「もっと濃い色はありますか。」という文である。この実施の形態では、この文が第１類推文Ｃ２０６となる。
【００４３】
なお、特許文献１に記載の手法では、３文の組２０４において類推的な類似関係が成立せず、第１類推文Ｃが生成できない場合がある。この場合、第１ファイル１００（図４参照）から文を選びなおして新たに文のペア２０２を形成する。また、特許文献１に記載の手法では、第１類推文が複数生成される場合がある。この場合、生成された第１類推文の各々について、以下に説明する処理を行なう。
【００４４】
第１類推文Ｃ２０６が生成されると、ステップ１２６が開始される。ステップ１２６が開始されると、第１類推文Ｃ２０６と一致する文をデータベース８８（図４参照）の第１ファイル１００内で検索する。図４に示すデータベース８８においては、第１ファイル１００の識別番号３の文が第１類推文２０６と一致する。
【００４５】
第１類推文２０６と一致する文が第１ファイル１００内に存在した場合、文のペア２０２（図７参照）を構成する文Ａ及びＢ、並びに第１類推文Ｃ２０６は、いずれもデータベース８８（図４参照）の第１ファイル１００内に存在することになる。そこで、文Ａ、文Ｂ、及び第１類推文Ｃ２０６の３文からなる３文の組２２０を探索の結果とする。
【００４６】
第１類推文と一致する文が第１ファイル１００（図４参照）内になかった場合、第１類推文Ｃ２０６に対応する分割文字列もまた、データベース８８には存在しない。この場合、第１類推文Ｃ２０６を引数として分割プログラム９０を再帰的に呼出し、データベース８８への用例の補充を行なう。この動作については後述する。
【００４７】
−第２類推文の生成−
図８に、探索された３文の組２２０と用例とを用いて、第２類推文を生成する動作を概略的に示す。図８を参照して、探索された３文の組２２０を構成する文Ａ、文Ｂ、及び第１類推文Ｃ２０６（図７参照）と、引数Ｄ２００との間には、上記のとおり類推関係Ａ：Ｂ：：Ｃ：Ｄが成立する。すなわち、３文の組２２０から引数Ｄ２００を類推できる。また３文の組２２０を構成する文Ａ、文Ｂ、及び第１類推文Ｃの各々は、第１ファイル１００（図４参照）内に存在する。すなわち、これらの文に対応する分割文字列を、第２ファイル１０２（図４参照）からそれぞれ得ることができる。ステップ１４６（図６参照）においてはさらに、第２ファイル１０２から、３文の組２２０を構成する文Ａ、Ｂ、及びＣに対応する分割文字列Ａ’、Ｂ’、及びＣ’を読出し、分割文字列Ａ’、Ｂ’、及びＣ’の３つからなる分割文字列の組２２４を形成する。本例においては、図４に示すデータベース８８の第２ファイル１０２から、識別番号２、４、及び３の文を読出し、分割文字列の組２２４を形成する。
【００４８】
分割文字列の組２２４が形成されると、ステップ１４８において、分割文字列の組２２４から、記号列類推により第２類推文Ｄ’２２６を生成する。例えば図８に示す分割文字列の組２２４からは、「もっと｜淡い｜いろ｜は｜あります｜か｜。」という分割文字列が生成される。分割文字列Ａ’、Ｂ’、及びＣ’は、文Ａ、Ｂ、及びＣに対応する。したがって、第２類推文Ｄ’２２６は引数Ｄ２００に対応する分割文字列となる。第２類推文Ｄ’２２６の生成に成功すると、引数Ｄ２００と第２類推文Ｄ’２２６との対２２８をメモリ９４（図３参照）に格納する。第２類推文Ｄ’２２６の類推生成に失敗した場合、メモリ９４には何も格納せずに、第１類推文Ｃ２０６に対する一連の処理を完了する。
【００４９】
図５に示すステップ１２２の処理で生成された全ての第１類推文について以上の処理が完了すると、図５に示すステップ１２０Ａにおいて、第１ファイル１００（図４参照）から文を選びなおして新たに文のペアを形成し、新たな文のペアに対する処理を開始する。
【００５０】
全ての文のペアについて以上の処理が完了すると、分割プログラム９０の戻り値の設定を行なう。すなわち、メモリ９４（図３参照）に文と分割文字列との対２２８が格納されていれば、正常終了を表す値（０）とメモリ９４上で文と分割文字列との対２２８の格納位置を表すアドレスとを分割プログラム９０（図３）の戻り値に設定する。メモリ９４に文と分割文字列との対が格納されていれなければ、エラーを表す値（１）を戻り値に設定する。
【００５１】
図３を参照して、入出力部９２に、正常終了を表す値（０）とメモリ９４上で文と分割文字列との対２２８の格納位置を表すアドレスとが戻り値として与えられると、入出力部９２（図３参照）は、戻り値に基づきメモリに格納された文と分割文字列との対２２８を読出し、文と分割文字列との対２２８を構成する分割文字列２２６を出力文８４として出力する。
【００５２】
−用例の補充−
以下、第１類推文Ｃ２０６と一致する文が第１ファイル１００（図４参照）内になかった場合の動作について説明する。第１類推文と一致する文が第１ファイル１００（図４参照）内になかった場合、第１類推文Ｃ２０６とその分割文字列との対は、データベース８８には格納されていないことになる。
【００５３】
このような第１類推文Ｃ２０６に対応する分割文字列が得られるならば、第１類推文Ｃ２０６及びその分割文字列をデータベース８８の第１ファイル１００及び第２ファイル１０２にそれぞれ追加することにより、データベース８８を充実させることができる。そこで、ステップ１５４（図６参照）において、第１類推文Ｃ２０６を新たな引数として分割プログラム９０の再帰呼出を行ない、第１類推文に対応する分割文字列の生成を試みる。再帰呼出によって、新たな引数に対する第２類推文すなわち新たな引数の分割文字列が生成されれば、戻り値により、その分割文字列が得られ、分割文字列が生成されなければ、エラーを表す値（１）が返される。生成された分割文字列に対応する文は、データベース８８（図４参照）の第１ファイル１００に格納され、生成された分割文字列は、第２ファイル１０２に格納される。
【００５４】
［実験］
−日本語の単語分割実験−
この実施の形態の手法を用いて、日本語の文を単語単位に分割する実験を行なった。実験に際し、１５３７３文のコーパスを用意した。図９に、用意した文の一例を示す。図９を参照して、第１ファイル２５０は、分割されていない文を列挙したものである。第２ファイル２５２は、第１ファイル２５０に列挙された各文を分割した場合に得られる分割文字列の正解を列挙したものである。第２ファイル２５２においては、文中の単語間に記号「｜」を挿入してある。なお、用意した１５３７３文において、１文を構成する単語の数は、平均７．６０、標準偏差３．３４であった。
【００５５】
この実験では、第１ファイル２５０に列挙された各文を入力文８２（図３参照）として用いた。この入力に対し、出力文８４が得られた場合には、出力文を第２ファイル２５２と照合した。
【００５６】
用意した１５３７３文について、この実施の形態の手法で分割を行なった結果、そのうち１５３７０文について出力文８４を得ることができた。得られた出力文８４を正解と照合した結果、いずれも正しく分割されていることが判明した。
【００５７】
−英語の単語分割実験−
また、この実施の形態の手法を用いて、英語の文を単語単位に分割する実験を行なった。実験に際し、５２８４８文のコーパスを用意した。図１０に、用意した文の一例を示す。図１０を参照して、英語の文は単語ごとに分かち書きされるため、用意した文が分割における正解となる。用意した文を列挙したものが第２ファイル２６２である。第１ファイル２６０は、この実験における入力文８２となる文字列であり、第２ファイル２６２に列挙された各文から、空白文字を除去した文字列を列挙したものである。なお、用意した５２８４８文において、１文を構成する単語の数は、平均５．６９、標準偏差２．１２、最大２３であった。
【００５８】
この実験では、第１ファイル２６０に列挙された文字列を入力文に用いた。言い換えれば、この実験で行なわれた分割処理は、入力文中に空白文字を挿入しなおす処理である。この処理により出力文８４が得られた場合には、得られた出力文８４を第２ファイル２６２と照合した。
【００５９】
用意した５２８４８文について、この実施の形態の手法で単語単位の分割を行なった結果、そのうち５０８９７文について出力文８４を得ることができた。得られた出力文と正解とを照合した結果、５０８９７文の出力文８４のうち、不正解のものはわずかに４文であった。
【００６０】
以上のように、この実施の形態における文分割の手法は、言語、文字、文法規則等に関係なく、分割されていない任意の文字列とその分割文字列との対からなる用例を用意するだけで、文の分割を行なうことができる。また、用例をデータベースに自動的に補充しながら分割を行なうため、事前に多量のデータを用意したり、学習段階の処理を行なったりしなくても、分割を行なうことができる。
【００６１】
また、Ｎ−グラムモデルを用いた統計的手法のように、処理対象の文脈のサイズが固定されることはなく、入力文を文単位の長い文脈で処理することが可能になる。
【００６２】
なお、上記の実施の形態では、図４に示すような用例のみを用いて分割を行なったが、本発明はこのような実施の形態には限定されない。例えば、辞書を用いた分割手法を併用することも可能である。
【００６３】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施の形態に係る文分割システムを実現するためのコンピュータシステムの外観を示す図である。
【図２】図１に示すコンピュータシステムのブロック図である。
【図３】本発明の一実施の形態の文分割システム８０の機能的構成を示すブロック図である。
【図４】データベース８８の構成を示す図である。
【図５】図３に示す分割プログラム９０のフローチャートである。
【図６】図５のステップ１２６において実行される、第１類推文の検索、第２類推文の生成、及び用例を補充する処理のフローチャートである。
【図７】第１類推文を生成しデータベース８８内で第１類推文を検索する動作を概略的に示す図である。
【図８】探索された３つの文字列から出力文８４を生成する動作を概略的に示す図である。
【図９】本発明の一実施の形態について行なった実験に使用した、日本語の文の概要を示す図である。
【図１０】本発明の一実施の形態について行なった実験に使用した、英語の文の概要を示す図である。
【符号の説明】
【００６５】
８０  文分割システム
８２  入力文
８４  出力文
８６  単語分割装置
８８  データベース
９０  分割プログラム
９２  入出力部
１００  第１ファイル
１０２  第２ファイル
【図１】
2006277674.tif 000003
【図２】
2006277674.tif 000004
【図３】
2006277674.tif 000005
【図４】
2006277674.tif 000006
【図５】
2006277674.tif 000007
【図６】
2006277674.tif 000008
【図７】
2006277674.tif 000009
【図８】
2006277674.tif 000010
【図９】
2006277674.tif 000011
【図１０】
2006277674.tif 000012