(57)【要約】類似文の検索を行う場合に十分な検索精度が得られるようにする類似文検索システムは、類似度計算手段１と、例文を記憶する例文記憶手段２と、類似度を記憶する類似度記憶手段３とを備える。類似度計算手段１は、入力文及び例文を記憶する入力文字列記憶手段１１と、入力文字列記憶手段１１が記憶する文字列に基づいて局所距離を計算する局所距離計算手段１２と、局所距離を記憶する局所距離記憶手段１３と、入力文字列記憶手段１３が記憶する文字列の情報に基づいて累積距離計算手段１５が行う計算を制御するパス決定手段１４と、局所距離と累積距離記憶手段１６が記憶する累積距離とに基づいて新たな累積距離を計算する累積距離計算手段１５と、累積距離を記憶する累積距離記憶手段１６とを備える。そして、累積距離計算手段１５は、パス決定手段１４の制御に従い計算を実行する。
2007069762.tif 000002
【特許請求の範囲】
【請求項１】
２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算するステップと、
文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離を再帰的に累積する累積方法を切り替えるステップと、
前記切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算するステップとを含む
ことを特徴とする類似度計算方法。
【請求項２】
入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字との間の距離を示す局所距離を計算するステップと、
例文文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離を再帰的に累積する累積方法を切り替えるステップと、
前記切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、入力文字列と例文文字列との類似度を計算するステップと、
前記求めた類似度が高い例文文字列を検索結果として求めるステップとを含む
ことを特徴とする類似文検索方法。
【請求項３】
２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算する局所距離計算手段と、
文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離計算手段が計算した局所距離を再帰的に累積する累積方法を切り替える累積方法切替手段と、
前記累積方法切替手段が切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算手段とを備えた
ことを特徴とする類似度計算システム。
【請求項４】
入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字との間の距離を示す局所距離を計算する局所距離計算手段と、
文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離計算手段が計算した局所距離を再帰的に累積する累積方法を切り替える累積方法切替手段と、
前記累積方法切替手段が切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算手段と、
前記累積計算手段が求めた類似度が高い例文文字列を検索結果として求める検索結果算出手段とを備えた
ことを特徴とする類似文検索システム。
【請求項５】
累積計算手段は、局所距離計算手段が計算した局所距離を、所定の累積方法に従って累積した距離である累積距離を求める請求項４記載の類似文検索システム。
【請求項６】
累積方法切替手段は、区切り位置情報に基づいて、累積距離を求める計算方法を決定することによって、局所距離を再帰的に累積する累積方法を切り替え、
累積計算手段は、前記累積方法切替手段が決定した計算方法に従って累積距離を求める
ことを特徴とする請求項５記載の類似文検索システム。
【請求項７】
累積方法切替手段は、区切り位置情報に基づいて、累積距離を求める計算方法として、累積距離を求めるための計算式を決定し、
累積計算手段は、前記累積方法切替手段が決定した計算式に従って累積距離を求める
ことを特徴とする請求項６記載の類似文検索システム。
【請求項８】
区切り位置情報が付与された複数の例文文字列を予め記憶する例文記憶手段を備え、
累積方法切替手段は、前記例文記憶手段が記憶する例文文字列に付与された区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替える
ことを特徴とする請求項４から請求項７のうちのいずれか１項に記載の類似文検索システム。
【請求項９】
検索結果算出手段は、例文記憶手段が記憶する例文文字列のうち、累積計算手段が求めた高い類似度に対応する例文文字列を、入力文字列に類似する類似文の検索結果として求めることを特徴とする請求項８項記載の類似文検索システム。
【請求項１０】
音声を入力する音声入力手段と、
前記音声入力手段が入力した音声を、音声認識を行うことによって入力文字列に変換する音声認識手段とを備え、
局所距離計算手段は、前記音声認識手段が変換した入力文字列に基づいて局所距離を計算する
ことを特徴とする請求項４から請求項９のうちのいずれか１項に記載の類似文検索システム。
【請求項１１】
コンピュータに、
２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算する局所距離計算処理と、
文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離を再帰的に累積する累積方法を切り替える累積方法切替処理と、
前記累積方法切替処理で切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算処理とを
実行させるための類似度計算プログラム。
【請求項１２】
コンピュータに、
入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字間との距離を示す局所距離を計算する局所距離計算処理と、
文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、前記局所距離を再帰的に累積する累積方法を切り替える累積方法切替処理と、
前記累積方法切替処理で切り替えた累積方法に従って前記局所距離を再帰的に累積する処理を行い、類似度を計算する累積計算処理と、
前記求めた類似度が高い例文文字列を検索結果として求める検索結果算出処理とを
実行させるための類似文検索用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似文を検索する類似文検索方法、類似文検索システム及び類似文検索用プログラムに関する。また、本発明は、音声認識結果を用いて類似文を検索する類似文検索方法、類似文検索システム及び類似文検索用プログラムに関する。また、本発明は、文字列間の類似度を計算する類似度計算方法、類似度計算システム及び類似度計算プログラムに関する。
【背景技術】
【０００２】
従来の類似文検索システムの一例として、例えば、特許文献１には、類似例文をグルーピングすることにより、入力文を翻訳するために必要な類似例文を分かりやすく表示するシステムが記載されている。特許文献１に記載された従来の類似文検索システムによれば、ＤＰマッチングと呼ばれる手法を用いて、入力文と予め蓄積された例文との間で類似度を計算する。そして、類似度の計算結果に基づいて、類似した例文を出力する。また、非特許文献１には、ＤＰマッチングと呼ばれる手法が記載されている。
【特許文献１】特開平８−１０６４７４号公報（段落００１６−００２４、図３−４）
【非特許文献１】古井貞煕，”音響・音声工学”，近代科学社
【０００３】
非特許文献１に記載された手法を用いれば、式（１）を計算することによって、ＤＰマッチングによって類似度を求めることができる（非特許文献１、ｐ１８４、式（１４．１４）参照）。
ｇ（ｉ，ｊ）＝ｍｉｎ｛ｇ（ｉ，ｊ−１）＋ｄ（ｉ，ｊ），ｇ（ｉ−１，ｊ−１）
＋２ｄ（ｉ，ｊ），ｇ（ｉ−１，ｊ）＋ｄ（ｉ，ｊ）｝
式（１）
ここで、式（１）において、ｄ（ｉ，ｊ）は、系列Ｘのｉ番目の要素ｘ［ｉ］（１≦ｉ≦Ｉ）と系列Ｙのｊ番目の要素ｙ［ｊ］（１≦ｊ≦Ｊ）との間の距離（以下、局所距離ともいう）である。例えば、Ｘが文字列「し  きゅ  う  か  し  て  く  だ  さい」であり、Ｙが文字列「か  し  て  く  だ  さ  い」であるとする。この場合の系列Ｘの要素と系列Ｙの要素との局所距離ｄ（ｉ，ｊ）の例を図５に示す。図５に示す例では、ｘ［ｉ］とｙ［ｊ］とが同じ文字である場合にはｄ（ｉ，ｊ）＝０であるとし、同じ文字でない場合にはｄ（ｉ，ｊ）＝１としている。
上記のように局所距離ｄ（ｉ，ｊ）が与えられた場合、ｇ（１，１）から順に距離ｇ（ｉ，ｊ）（以下、累積距離ともいう）を計算することによって、ｇ（Ｉ，Ｊ）を求めることができる。この求めたｇ（Ｉ，Ｊ）が２つの系列Ｘ，Ｙの類似性を示す値となる。
次に、類似文検索システムの構成例を図面を参照して説明する。図１は、類似文検索システムの構成例を示すブロック図である。図１に示すように、類似文検索システムは、入力された文と例文との類似度を計算する類似度計算手段１と、検索対象となる例文を記憶する例文記憶手段２と、類似度計算手段１が計算した類似度を記憶する類似度記憶手段３とを含む。
類似度計算手段１は、入力文と、例文記憶手段２が記憶する各例文との類似度を計算し、求めた類似度を類似度記憶手段３に渡す（出力する）機能を備える。例文記憶手段２は、記憶している例文を、１文毎に類似度計算手段１に渡す（出力する）機能を備える。類似度記憶手段３は、類似度計算手段１が計算した類似度を記憶する機能を備える。また、類似度記憶手段３は、記憶した類似度が高い例文を出力する機能を備える。
次に、類似度計算手段１の構成を説明する。図９は、類似度計算手段１の構成例を示すブロック図である。図９に示すように、類似文検索システムの類似度計算手段１は、入力文字列記憶手段９１１と、局所距離計算手段９１２と、局所距離記憶手段９１３と、累積距離計算手段９１５と、累積距離記憶手段９１６とを含む。
入力文字列記憶手段９１１は、類似度計算の対象となる入力文及び例文を記憶する。局所距離計算手段９１２は、入力文字列記憶手段９１１が記憶する文字列に基づいて、局所距離ｄ（ｉ，ｊ）を計算する機能を備える。局所距離記憶手段９１３は、局所距離計算手段９１２が計算した局所距離ｄ（ｉ，ｊ）を記憶する。累積距離計算手段９１５は、局所距離記憶手段９１３が記憶するｄ（ｉ，ｊ）と、累積距離記憶手段９１６が記憶するｇ（ｉ，ｊ）とに基づいて、新たなｇ（ｉ，ｊ）を計算する機能を備える。累積距離記憶手段９１６は、累積距離計算手段９１５が計算したｇ（ｉ，ｊ）を記憶する。
図９に示す例において、入力文字記憶手段９１１は、類似度計算の対象となる入力文及び例文を記憶し、局所距離計算手段９１２は、入力文字記憶手段９１１が記憶する入力文及び例文の各要素間の局所距離ｄ（ｉ，ｊ）を、全ての（ｉ，ｊ）に関して計算する。また、局所距離記憶手段９１３は、局所距離計算手段９１２が計算した全てのｄ（ｉ，ｊ）を記憶する。また、累積距離計算手段９１５は、局所距離記憶手段９１３が記憶するｄ（ｉ，ｊ）と、累積距離記憶手段９１６が記憶するｇ（ｉ，ｊ）とに基づいて、新たなｇ（ｉ，ｊ）を順に計算する。そして、累積距離記憶手段９１６は、累積距離計算手段９１５が計算したｇ（ｉ，ｊ）を記憶するとともに、全てのｇ（ｉ，ｊ）の計算が終了すると、ｇ（Ｉ，Ｊ）を入力文と例文との類似度として出力する。
次に、類似文検索システムの類似度計算手段１の動作について説明する。図１０は、類似度計算手段１が入力文と例文との類似度を計算する類似度計算処理の例を示す流れ図である。本例では、類似文検索システムが、入力文Ｙとして文字列「きゅ  う  かく  だ  さ  い」（休暇ください）を入力し、例文Ｘとして文字列「し  きゅ  う  かし  て  く  だ  さ  い」（至急貸してください）を入力したとする。入力文Ｘ，Ｙが渡される（入力される）と、類似度計算手段１は、入力文Ｘ，Ｙを、入力文字記憶手段９１１に一旦記憶する。
次に、局所距離計算手段９１２は、Ｘの各要素ｘ［ｉ］と、Ｙの各要素ｙ［ｉ］との間の局所距離ｄ（ｉ，ｊ）を計算する（図１０に示すステップＳ９１）。図５は、局所距離計算手段９１２が計算した局所距離の計算結果の例を示す説明図である。類似文検索システムは、図５に示すような計算結果を、全て局所距離記憶手段９１３に記憶する。また、局所距離計算手段９１２は、局所距離の計算を、１≦ｉ≦Ｉ，１≦ｊ≦Ｊを満たす全ての（ｉ，ｊ）の組に対して行う。すなわち、局所距離計算手段９１２は、全ての点について計算を終了するまで、ステップＳ９１の処理を繰り返し実行する（図１０に示すステップＳ９２）。
次に、累積距離計算手段９１５は、式（１）に基づいてｇ（ｉ，ｊ）を計算する（図１０に示すステップＳ９４）。また、類似文検索システムは、ｇ（ｉ，ｊ）の計算結果を、累積距離記憶手段９１６に記憶する。
なお、上記式（１）における最小値選択をｇ（Ｉ，Ｊ）から逆方向に辿ったパスをＤＰパスという。ＤＰパスは、類似度を計算する際の系列Ｘ，Ｙ間の部分対応を示すパスである。図１１は、ＤＰパスの例を示す説明図である。図１１に示す例では、図中に矢印で示されたパスがＤＰパスである。図１１に示す例では、例えば、Ｘの「きゅ  う」（至急の「急」）に対してＹの「きゅ  う」（休暇の「休」）が対応し、Ｘの「かし  て」（貸して）に対してＹの「か」（休暇の「暇」）が対応している。
上記のステップＳ９４の計算において、累積距離計算手段９１５は、ｇ（１，１）から順にｉを１ずつ増やしながら、新たなｇ（ｉ，１）を計算する。ｇ（Ｉ，１）まで計算すると、累積距離計算手段９１５は、ｉ＝１に戻してｊを１増やし、ｇ（１，２）から順にｉを１ずつ増やしながら、新たなｇ（ｉ，２）を計算する。以下、累積距離計算手段９１５は、全てのｇ（ｉ，ｊ）を算出するまで、同様にステップＳ９４の計算を繰り返し実行する（図１３に示すステップＳ９５）。
図１２は、累積距離計算手段９１５が求めたｇ（ｉ，ｊ）の計算結果の例を示す説明図である。全てのｇ（ｉ，ｊ）の計算の終了後、累積距離記憶手段９１６は、ｇ（Ｉ，Ｊ）の値「３」（図１２に示す最右列の最下行の欄の値）を「きゅ  う  か  く  だ  さい」と、「し  きゅ  う  か  し  て  く  だ  さ  い」との間の類似度として出力する。
同様に、類似文検索システムが、入力文Ｙとして文字列「きゅ  う  か  く  だ  さい」（休暇ください）を入力し、例文Ｘとして文字列「あ  す  わ  きゅ  う  か  てく  だ  さ  い」（明日休暇ください）を入力したとする。入力文Ｘ，Ｙが渡される（入力される）と、局所距離計算手段９１２は、図７に示すように、局所距離ｄ（ｉ，ｊ）を計算する。また、累積距離計算手段９１５は、図７に示すｄ（ｉ，ｊ）に基づいて、図１３に示すように類似度ｇ（ｉ，ｊ）を計算する。そして、累積距離記憶手段９１６は、上記の入力文Ｘ，Ｙの２文間の類似度として、ｇ（Ｉ，Ｊ）の値「３」を出力する。
しかし、ＤＰマッチング法を用いて類似文検索を行ったとしても、２つの入力文間の類似度を適切に求められるとは限らない。例えば、上記に示した例では、図１３に示すように、「きゅうかください」と「しきゅうかしてください」とをマッチングする場合に、休暇の「か」と「かして」とを対応付けてしまう等、意味的又は文法的な区切りを考えると不自然な対応付けを行ってしまっている。そのため、「きゅうかください」と「あすわきゅうかください」とのように、比較的類似した２文間の類似度「３」と、「きゅうかください」と「しきゅうかしてください」とのように、類似していない２文間の類似度「３」とが同じ値となってしまう。このような場合、類似文検索システムを用いて類似文検索を行ったとしても、十分な検索の精度を得ることはできない。
そこで、本発明は、類似文を精度よく検索できる類似文検索方法、類似文検索システム及び類似文検索用プログラムを提供することを目的とする。また、本発明は、より正確な類似度を求めることができる類似度計算方法、類似度計算システム及び類似度計算プログラムを提供することを目的とする。
【発明の開示】
【０００４】
本発明による類似度計算方法は、２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算するステップと、文字列に予め付与された区切り位置を示す情報である区切り位置情報（例えば、文字列中の文節区切りの位置を示す情報）に基づいて、局所距離を再帰的に累積する累積方法（例えば、累積距離の計算方法）を切り替えるステップと、切り替えた累積方法に従って局所距離を再帰的に累積する処理（例えば、累積距離を求める処理）を行い、文字列間の類似度（例えば、累積距離ｇ（Ｉ，Ｊ））を計算するステップとを含むことを特徴とする。
本発明による類似文検索方法は、入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字との間の距離を示す局所距離を計算するステップと、例文文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替えるステップと、切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、入力文字列と例文文字列との類似度を計算するステップと、求めた類似度が高い（例えば、類似度ｇ（Ｉ，Ｊ）の値が最も小さい）例文文字列を検索結果として求めるステップとを含むことを特徴とする。
本発明による類似度計算システムは、２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算する局所距離計算手段（例えば、局所距離計算手段１２によって実現される）と、文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離計算手段が計算した局所距離を再帰的に累積する累積方法を切り替える累積方法切替手段（例えば、パス決定手段１４によって実現される）と、累積方法切替手段が切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算手段（例えば、累積距離計算手段１５によって実現される）とを備えたことを特徴とする。
本発明による類似文検索システムは、入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字との間の距離を示す局所距離を計算する局所距離計算手段と、文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離計算手段が計算した局所距離を再帰的に累積する累積方法を切り替える累積方法切替手段と、累積方法切替手段が切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算手段と、累積計算手段が求めた類似度が高い例文文字列を検索結果として求める検索結果算出手段（例えば、類似度記憶手段３によって実現される）とを備えたことを特徴とする。
また、類似文検索システムにおいて、累積計算手段は、局所距離計算手段が計算した局所距離を、所定の累積方法に従って累積した距離である累積距離を求めるものであってもよい。
また、類似文検索システムにおいて、累積方法切替手段は、区切り位置情報に基づいて、累積距離を求める計算方法を決定することによって、局所距離を再帰的に累積する累積方法を切り替え、累積計算手段は、累積方法切替手段が決定した計算方法に従って累積距離を求めるものであってもよい。
また、類似文検索システムにおいて、累積方法切替手段は、区切り位置情報に基づいて、累積距離を求める計算方法として、累積距離を求めるための計算式（例えば、式（３））を決定し、累積計算手段は、累積方法切替手段が決定した計算式に従って累積距離を求めるものであってもよい。
また、類似文検索システムは、区切り位置情報が付与された複数の例文文字列を予め記憶する例文記憶手段（例えば、例文記憶手段２によって実現される）を備え、累積方法切替手段は、例文記憶手段が記憶する例文文字列に付与された区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替えるものであってもよい。
また、類似文検索システムにおいて、検索結果算出手段は、例文記憶手段が記憶する例文文字列のうち、累積計算手段が求めた高い類似度に対応する例文文字列を、入力文字列に類似する類似文の検索結果として求めるものであってもよい。
また、類似文検索システムは、音声を入力する音声入力手段（例えば、マイクロフォン等の音声入力装置）と、音声入力手段が入力した音声を、音声認識を行うことによって入力文字列に変換する音声認識手段（例えば、音声認識処理を実行可能な入力文字列記憶手段１１によって実現される）とを備え、局所距離計算手段は、音声認識手段が変換した入力文字列に基づいて局所距離を計算するものであってもよい。
本発明による類似度計算プログラムは、コンピュータに、２つの文字列について、文字列を構成する文字間の距離を示す局所距離を計算する局所距離計算処理と、文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替える累積方法切替処理と、累積方法切替処理で切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する累積計算処理とを実行させるためのものである。
本発明による類似文検索用プログラムは、コンピュータに、入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字間との距離を示す局所距離を計算する局所距離計算処理と、文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替える累積方法切替処理と、累積方法切替処理で切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、類似度を計算する累積計算処理と、求めた類似度が高い例文文字列を検索結果として求める検索結果算出処理とを実行させるためのものである。
上記のような構成を採用し、例文文字列に文節等の区切りを示す情報を予め付与し、区切り情報を用いて累積距離の計算方法を切り替えて、累積距離の計算を行うことにより正確な類似度が求めることができる。従って、類似文を精度よく検索できるようにするという本発明の目的を達成することができる。
本発明によれば、文字列に予め付与された区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切替、切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する。そのため、類似度計算の際に例文の区切り情報を参照することによって、より正確な類似度を求めることができる。
また、本発明によれば、切り替えた累積方法に従って求めた類似度に基づいて、類似文の検索結果を求める。従って、類似文を精度よく検索することができる。すなわち、文字列内の区切り位置を考慮せずに類似度を求める場合と比較して、より正確な類似度に基づいて検索結果を算出できるので、より精度よく類似文検索を行うことができる。
【図面の簡単な説明】
【０００５】
図１は、類似文検索システムの構成例を示すブロック図である。
図２は、類似度計算手段１の構成の一例を示すブロック図である。
図３は、類似度計算手段１が入力文と例文との類似度を計算する類似度計算処理の一例を示す流れ図である。
図４は、例文記憶手段２が予め記憶する例文の例を示す説明図である。
図５は、局所距離計算手段１２が局所距離を求めた計算結果の例を示す説明図である。
図６は、累積距離計算手段１５が計算した累積距離ｇ（ｉ，ｊ）の計算結果の例を示す説明図である。
図７は、局所距離計算手段１２が局所距離を求めた計算結果の他の例を示す説明図である。
図８は、累積距離計算手段１５が計算した累積距離ｇ（ｉ，ｊ）の計算結果の他の例を示す説明図である。
図９は、類似度計算手段１の構成例を示すブロック図である。
図１０は、類似度計算手段１が入力文と例文との類似度を計算する類似度計算処理の例を示す流れ図である。
図１１は、ＤＰパスの例を示す説明図である。
図１２は、累積距離計算手段９１５が求めたｇ（ｉ，ｊ）の計算結果の例を示す説明図である。
図１３は、累積距離計算手段９１５が求めたｇ（ｉ，ｊ）の計算結果の他の例を示す説明図である。
図中、１：類似度計算手段、２：例文記憶手段、３：類似度記憶手段、１１：入力文字列記憶手段、１２：局所距離計算手段、１３：局所距離記憶手段、１４：パス決定手段、１５：累積距離計算手段、１６：累積距離記憶手段
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図面を参照して説明する。本実施の形態において、本発明による類似文検索システムの基本的な構成は、図１に示した類似文検索システムの構成と同様である。類似文検索システムは、具体的には、ワークステーションやパーソナルコンピュータ等の情報処理装置によって実現される。なお、類似文検索システムは、携帯電話機やＰＤＡ等の情報処理端末によって実現されてもよい。また、類似文検索システムは、１つの情報処理装置（端末）を用いて実現されてもよく、複数の情報処理装置（端末）を用いて実現されてもよい。
本実施の形態において、類似文検索システムは、例えば、ユーザが新たに文を作成したい場合に、作成したい文の類似文をデータベースから検索する用途に適用できる。そのようにすることによって、ユーザは、検索された類似文や外国語による翻訳文を参考にして文を作成することができる。また、例えば、電子メール等の手段を用いて質問を受けた場合に、類似文検索システムは、質問文の類似文をデータベースから検索する用途に適用できる。そのようにすることによって、検索結果（類似文）に対応した回答を作成し送付することができる。また、例えば、類似文検索システムは、音声認識により音声を音節等に変換し、変換結果の類似文をデータベースから抽出する用途に適用できる。この場合、例えば、類似文検索システムは、音声による文章入力装置の用途に適用できる。
図１に示すように、類似文検索システムは、入力された文と例文との類似度を計算する類似度計算手段１と、検索対象となる例文を記憶する例文記憶手段２と、類似度計算手段１が計算した類似度を記憶する類似度記憶手段３とを含む。
類似度計算手段１は、入力文と、例文記憶手段２が記憶する各例文との類似度を計算する機能を備える。また、類似度計算手段１は、求めた類似度を、類似度記憶手段３に渡す（出力する）機能を備える。なお、本実施の形態において、類似度計算システムは、類似度計算手段１によって実現される。
例文記憶手段２は、具体的には、磁気ディスク装置や光ディスク装置等の記憶装置、及びプログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。例文記憶手段２は、検索対象となる例文を予め複数蓄積する。なお、各例文は、例えば、類似文検索システムの管理者等によって作成され、予め例文記憶手段２に蓄積される。また、例文記憶手段２は、記憶している例文を、１文毎に類似度計算手段１に渡す（出力する）機能を備える。例えば、例文記憶手段２は、複数の例文を含むテキストデータを予め記憶しており、テキストデータから１文づつ例文を抽出して類似度計算手段１に出力する。
本実施の形態では、例文記憶手段２は、例文として、所定の区切り位置が付与された文字列を記憶する。例えば、例文記憶手段２は、例文として、文節の区切り位置を示す情報が付与された文字列を記憶する。なお、文字列の区切り位置は、例えば、類似文検索システムの管理者等によって予め付与される。
類似度記憶手段３は、具体的には、磁気ディスク装置やメモリ等の記憶装置、及びプログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。類似度記憶手段３は、類似度計算手段１が計算した類似度を記憶する。また、類似度記憶手段３は、記憶した類似度が高い例文を出力する機能を備える。この場合、類似度記憶手段３は、記憶した類似度に基づいて、例文記憶手段２が蓄積する例文のうち、入力文に類似する例文を特定する。そして、類似度記憶手段３は、特定した例文を、入力文字列に類似する類似文の検索結果として求める。すなわち、類似度記憶手段３は、最も高い類似度に対応する例文文字列を、類似文の検索結果として求める。また、類似度記憶手段３は、類似度が高い順に所定個の例文文字列を、類似文の検索結果として求めてもよい。また、類似度記憶手段３は、求めた検索結果を出力する。例えば、類似度記憶手段３は、類似度が高い例文を、ディスプレイ装置等の表示装置に表示させる。
次に、類似度計算手段１の構成を説明する。図２は、類似度計算手段１の構成の一例を示すブロック図である。図２に示すように、類似度計算手段１は、入力文字列記憶手段１１と、局所距離計算手段１２と、局所距離記憶手段１３と、パス決定手段１４と、累積距離計算手段１５と、累積距離記憶手段１６とを含む。
入力文字列記憶手段１１は、具体的には、磁気ディスク装置やメモリ等の記憶装置、及びプログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。入力文字列記憶手段１１は、類似度計算の対象となる入力文及び例文を記憶する。また、入力文字列記憶手段１１は、類似度計算対象の例文を、例文記憶手段２から入力する機能を備える。
また、入力文字列記憶手段１１は、類似度計算対象の入力文を入力する機能を備える。例えば、類似文検索システムは、キーボードやマウス、キー操作部等の入力装置を備える。この場合、入力文字列記憶手段１１は、ユーザの入力操作に従って、文字列（入力文）を入力装置から入力する。また、例えば、類似文検索システムが電子メールを受信すると、入力文字列記憶手段１１は、電子メールから文字列（入力文）を抽出する。また、例えば、類似文検索システムは、マイクロフォン等の音声入力装置を備える。この場合、入力文字列記憶手段１１は、ユーザの音声入力操作に従って、音声入力装置から音声を入力する。また、入力文字列記憶手段１１は、音声認識処理を実行し、入力した音声を文字列（入力文）に変換する。
局所距離計算手段１２は、具体的には、プログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。局所距離計算手段１２は、入力文字列記憶手段１１が記憶する文字列（入力文及び例文の文字列）に基づいて、文字列を構成する文字間の距離を示す局所距離ｄ（ｉ，ｊ）を計算する機能を備える。本実施の形態では、局所距離計算手段１２は、入力文字列を構成する文字と、例文文字列を構成する文字との間の距離を示す局所距離を求める。
局所距離記憶手段１３は、具体的には、磁気ディスク装置やメモリ等の記憶装置によって実現される。局所距離記憶手段１３は、局所距離計算手段１２が計算した（求めた）局所距離ｄ（ｉ，ｊ）を記憶する。
パス決定手段１４は、具体的には、プログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。パス決定手段１４は、入力文字列記憶手段１１が記憶する文字列の情報に基づいて、累積距離計算手段１５が実行する計算を制御する機能を備える。この場合、パス決定手段１４は、文字列に予め付与された区切り位置を示す区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替える。本実施の形態では、パス決定手段１４は、入力文字列記憶手段１１が記憶する文字列に付与された区切り位置情報に基づいて、累積距離計算手段１５が累積距離を求める計算方法を決定する。例えば、パス決定手段１４は、文字列に付与された区切り位置情報に基づいて、累積距離を求めるための計算式を決定する。
累積距離計算手段１５は、具体的には、プログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。累積距離計算手段１５は、パス決定手段１４が切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、文字列間の類似度を計算する機能を備える。この場合、累積距離計算手段１５は、局所距離計算手段１２が求めた局所距離を、所定の累積方法に従って累積した距離である累積距離を求める。本実施の形態では、累積距離計算手段１５は、局所距離記憶手段１３が記憶する局所距離ｄ（ｉ，ｊ）と、累積距離記憶手段１６が記憶する累積距離ｇ（ｉ，ｊ）とに基づいて、新たな累積距離ｇ（ｉ，ｊ）を計算する。すなわち、本実施の形態において、累積距離計算手段１５は、再帰的に累積距離ｇ（ｉ，ｊ）の算出処理を繰り返し実行する。
累積距離記憶手段１６は、具体的には、磁気ディスク装置やメモリ等の記憶装置、及びプログラムに従って動作する情報処理装置（端末）のＣＰＵによって実現される。累積距離記憶手段１６は、累積距離計算手段１５が計算した累積距離ｇ（ｉ，ｊ）を記憶する。また、累積距離記憶手段１６は、全ての（ｉ，ｊ）について累積距離を算出すると、ｇ（Ｉ，Ｊ）を、入力文と例文との類似度として類似度記憶手段３に出力する機能を備える。
なお、本実施の形態において、類似文検索システムを実現する情報処理装置（端末）の記憶装置は、文字列間の類似度を算出する処理や、入力文に類似する例文（類似文）を検索する処理を実行させるための各種プログラムを記憶している。例えば、情報処理装置（端末）の記憶装置は、コンピュータに、入力文字列を構成する文字と、予め蓄積する例文文字列を構成する文字間との距離を示す局所距離を計算する局所距離計算処理と、文字列に予め付与された区切り位置を示す情報である区切り位置情報に基づいて、局所距離を再帰的に累積する累積方法を切り替える累積方法切替処理と、累積方法切替処理で切り替えた累積方法に従って局所距離を再帰的に累積する処理を行い、類似度を計算する累積計算処理と、求めた類似度が高い例文文字列を検索結果として求める検索結果算出処理とを実行させるための類似文検索用プログラムを記憶している。
次に、動作について説明する。図３は、類似度計算手段１が入力文と例文との類似度を計算する類似度計算処理の一例を示す流れ図である。以下、図２及び図３を参照して、類似度計算手段１の動作について説明する。
まず、入力文字列記憶手段１１は、類似度計算対象の入力文を入力する。例えば、入力文字列記憶手段１１は、ユーザの入力操作に従って、入力装置から入力文を入力する。また、例えば、入力文字列記憶手段１１は、電子メールを受信すると、電子メールから文字列（入力文）を抽出する。また、例えば、入力文字列記憶手段１１は、ユーザの音声入力操作に従って、音声入力装置から音声を入力する。そして、入力文字列記憶手段１１は、音声認識処理を実行し、入力した音声を文字列（入力文）に変換する。
また、入力文字列記憶手段１１は、類似度計算対象となる例文を例文記憶手段２から入力する。そして、入力文字列記憶手段１１は、類似度計算の対象となる入力文及び例文を一時記憶する。
次に、局所距離計算手段１２は、入力文字記憶手段１１が記憶する入力文及び例文の各要素間の局所距離ｄ（ｉ，ｊ）を計算し、求めた局所距離を局所距離記憶手段１３に記憶させる（図３に示すステップＳ１）。また、局所距離計算手段１２は、全ての点（ｉ，ｊ）に対して、局所距離ｄ（ｉ，ｊ）を求めたか否かを判断する（図３に示すステップＳ２）。すなわち、局所距離計算手段１２は、局所距離算出の計算を、全ての（ｉ，ｊ）に対してｄ（ｉ，ｊ）を求めるまで繰り返し実行する。
次に、パス決定手段１４は、累積距離計算手段１５が計算対象とする点（ｉ，ｊ）に関する情報を、入力文字列記憶手段１１から読み込む。例えば、パス決定手段１４は、入力文字列記憶手段１１が記憶する文字列に予め付与された区切り位置の情報を読み込む。そして、パス決定手段１４は、読み込んだ情報に基づいて、累積距離計算手段１５が累積距離を求める計算の方法を決める（図３に示すステップＳ３）。
次に、累積距離計算手段１５は、先にパス決定手段１４が決めた計算方法に従って、累積距離ｇ（ｉ，ｊ）を計算し、計算結果（求めた累積距離）を累積距離計算手段１６に記憶させる（図３に示すステップＳ４）。また、累積距離計算手段１５は、全ての点（ｉ，ｊ）に対して、累積距離ｇ（ｉ，ｊ）を求めたか否かを判断する（図３に示すステップＳ５）。すなわち、類似文検索システムは、累積距離算出の計算を、全ての（ｉ，ｊ）に対してｇ（ｉ，ｊ）を求めるまで再帰的に繰り返し実行する。この場合、類似文検索システムは、ステップＳ３，Ｓ４の処理を、式（２）に示す順序に従って、全ての（ｉ，ｊ）に対して繰り返し実行する。
（ｉ，ｊ）＝（１，１），（２，１），．．．．，（Ｉ，１），（１，２），（２，２）
，．．．，（Ｉ，Ｊ−１），（Ｉ，Ｊ）
式（２）
最後に、ステップＳ５で全ての点（ｉ，ｊ）に対して累積距離の計算を終了したと判定すると、累積距離記憶手段１６は、記憶したｇ（Ｉ，Ｊ）の値を、入力文と例文との類似度として類似度記憶手段３に出力して処理を終了する。
なお、類似度記憶手段３は、累積距離記憶手段１６から入力した類似度（ｇ（Ｉ，Ｊ））を記憶する。また、類似度記憶手段３は、記憶した類似度に基づいて、例文記憶手段２が蓄積する例文のうち、入力文に類似する例文を特定する。そして、類似度記憶手段３は、特定した例文を、入力文との類似度が高い例文として出力する。例えば、類似度記憶手段３は、特定した例文を、ディスプレイ装置等の表示装置に表示させる。
以上のように、本実施の形態によれば、類似文検索システムは、類似度計算の際に例文の区切り情報を参照することによって、より正確な類似度を求める。具体的には、パス決定手段１４は、例文文字列に予め付与された区切り位置情報に基づいて、累積距離を求める計算方法を決定する。また、累積距離計算手段１５は、パス決定手段１４が決定した計算方法に従って累積距離を求め、入力文字列と例文文字列との類似度を求める。そして、類似度記憶手段３は、求めた類似度に基づいて、入力文に類似する類似文の検索結果を求める。従って、類似文を精度よく検索することができる。すなわち、例文文字列内の区切り位置を考慮せずに類似度を求める場合と比較して、より正確な類似度に基づいて検索結果を算出できるので、より精度よく類似文検索を行うことができる。
【実施例】
【０００７】
次に、具体的な実施例を用いて類似文検索システムの動作を説明する。まず、類似文検索システムは、例えば、入力文として、文字列「きゅ  う  か  く  だ  さ  い」を入力する。すると、類似文検索システムは、例文記憶手段２に記憶されている例文を１文読み出し、入力文とともに類似度計算手段１に渡す。
図４は、例文記憶手段２が予め記憶する例文の例を示す説明図である。例文記憶手段２は、所定の区切り位置を示す情報が付加された例文を予め記憶する。図４に示す例では、例文記憶手段２は、区切り位置を示す情報として、記号「｜」を付加された例文を記憶している。ここで、例文中の「｜」は文節の区切りを示す。以下、図４に示す例文のうち、先頭（１番目）の文字列「｜しきゅう｜かして｜ください」に対して、類似度計算を行う場合の動作例を説明する。
入力文及び例文が与えられると、入力された入力文及び例文は、入力文字記憶手段１１に一旦記憶される。この場合、入力文字記憶手段１１は、例文中の文節の区切りを示す記号「｜」を、他の文の文字列と分離して記憶する。例えば、入力文字列記憶手段１１は、文字列「｜しきゅう｜かして｜ください」を記憶する場合、「しきゅうかしてください」という文字列と、（０、３、６）という文字列中の文節区切りの位置を示す情報（区切り位置情報）とに分離して記憶する。なお、前者の文字列は、局所距離計算手段１２が局所距離を求める際に用いられる。また、後者の区切り位置情報は、パス決定手段１４が累積距離の計算方法を決定する際に用いられる。
次に、局所距離計算手段１２は、入力文「きゅうかください」と例文「しきゅうかしてください」との間の局所距離ｄ（ｉ，ｊ）を計算する。本実施例では、局所距離計算手段１２は、ｘ［ｉ］とｙ［ｊ］とが同じ文字である場合、ｄ（ｉ，ｊ）＝０と求める。また、局所距離計算手段１２は、ｘ［ｉ］とｙ［ｊ］とが同じ文字でない場合、ｄ（ｉ，ｊ）＝１と求める。なお、局所距離計算手段１２は、異なる文字であってもｘ［ｉ］とｙ［ｊ］とが同じ母音である場合（例えば、「か」と「さ」である場合）、ｄ（ｉ，ｊ）＝０．５と求める等、より値を細分化した計算を行って局所距離を求めてもよい。
図５は、局所距離計算手段１２が局所距離を求めた計算結果の例を示す説明図である。局所距離計算手段１２は、局所距離の計算結果を、全て局所距離記憶手段１３に記憶させる。
次に、パス決定手段１４は、累積距離計算手段１５が累積距離を計算する計算方法を決める。ここで、例文中の文節区切り位置をｋ［ｎ］と表す。本実施例では、パス決定手段１４は、入力文字記憶手段１１が記憶する区切り位置情報に示される文節区切り位置に基づいて、ｋ［０］＝１，ｋ［１］＝３，ｋ［２］＝６と特定する。そして、パス決定手段１４は、特定したｋ［ｎ］を用いて、累積距離ｇ（ｉ，ｊ）の計算方法を以下のように決定する。本実施例では、パス決定手段１４は、特定したｋ［ｎ］を用いて、累積距離の計算式を式（３）のように決定する。
ｇ（ｉ，ｊ）＝ｍｉｎ｛ｇ（ｉ，ｊ−１）＋ｄ（ｉ，ｊ），
ｇ（ｉ−１，ｊ−１）    ＋２ｄ（ｉ，ｊ），
ｇ（ｋ［ｎ−１］，ｊ）＋（ｋ［ｎ］−ｋ［ｎ−１］）＋ｄ（ｉ，ｊ）｝
（ｉ＝ｋ［ｎ］の場合）
ｇ（ｉ，ｊ）＝ｇ（ｉ−１，ｊ−１）＋２ｄ（ｉ，ｊ）
（ｉ−ｋ［ｎ］以外の場合）
式（３）
次に、累積距離計算手段１５は、パス決定手段１４が決定した計算式に従って、累積距離ｇ（ｉ，ｊ）を計算する。また、累積距離計算手段１５は、累積距離の計算を、１≦ｉ≦Ｉ，１≦ｊ≦Ｊを満たす全ての（ｉ，ｊ）の組に対して行う。この場合、累積距離計算手段１５は、以下に示す計算順序に従って、累積距離を求める。
（ａ）まず、累積距離算出処理において、累積距離計算手段１５は、（ｉ，ｊ）＝（１，１）から計算を開始し、累積距離ｇ（１，１）を求める。（ｂ）また、累積距離計算手段１５は、ｉを１ずつ増やしながら、累積距離（ｉ，ｊ）を順に求める。（ｃ）ｉ＝Ｉとなると、累積距離計算手段１５は、ｊを１増やしｉを１に戻して、累積距離（ｉ，ｊ）を求める。上記の（ｂ），（ｃ）の手順を繰り返し行うことによって、累積距離計算手段１５は、全ての点（ｉ，ｊ）について累積距離ｇ（ｉ，ｊ）を求める。また、累積距離計算手段１５は、累積距離の計算結果を、累積距離記憶手段１６に記憶させる。
なお、累積距離記憶手段１６は、ｇ（ｉ，ｊ）の初期値として、式（４）に示す値を予め記憶している。従って、累積距離計算手段１５は、累積距離の計算処理を開始するとき、累積距離記憶手段１６が記憶する初期値に基づいて、新たな累積距離を算出する。
ｇ（ｉ，ｊ）＝ｉ      （ｊ＝０の場合）
ｇ（ｉ，ｊ）＝ｊ      （ｉ＝０の場合）
式（４）
図６は、累積距離計算手段１５が計算した累積距離ｇ（ｉ，ｊ）の計算結果の例を示す説明図である。図６に示す計算結果に基づいて、累積距離記憶手段１６は、入力文「きゅ  う  か  く  だ  さ  い」と例文「｜しきゅう｜かして｜ください」との類似度を「５」と求めて出力する（図６に示す最右列の最下行の欄の値）。
類似度計算手段１は、同様の処理に従って、図４に示す次の例文「｜あすわ｜きゅうか｜ください」に対して類似度を計算する。この場合、局所距離計算手段１２は、局所距離ｄ（ｉ，ｊ）を図７に示すように求める。また、累積距離計算手段１５は、累積距離ｇ（ｉ，ｊ）を図８に示すように求める。そして、累積距離記憶手段１６は、図８に示す計算結果に基づいて、入力文「きゅ  う  か  く  だ  さ  い」と例文「｜あすわ｜きゅうか｜ください」との類似度を「３」と求めて出力する（図８に示す最右列の最下行の欄の値）。また、類似度計算手段１は、これら求めた類似度を、類似度記憶手段３に記憶させる。
なお、本実施例では、累積距離記憶手段１６が出力する類似度の値が小さい程、類似度が高い（入力文と例文とが類似している）ことを示している。上記に示す例では、例文「｜あすわ｜きゅうか｜ください」に基づいて求めた類似度の値「３」が、例文「｜しきゅう｜かして｜ください」に基づいて求めた類似度の値「５」より小さいので、類似度が高いことになる。従って、上記に示す例では、例文「｜あすわ｜きゅうか｜ください」が、例文「｜しきゅう｜かして｜ください」よりも、入力文「きゅ  うか  く  だ  さ  い」に類似していることが分かる。
類似度計算手段１は、同様の処理に従って、例文記憶手段２が蓄積する全ての例文に対して類似度を計算し、類似度記憶手段３に記憶させる。そして、類似度記憶手段３は、最も値が小さい類似度に対応する例文（すなわち、入力文との類似度が最も高い例文）を検索結果として出力する。例えば、類似度記憶手段３は、入力文との類似度が最も高い例文を、表示装置に表示させる。
【産業上の利用可能性】
【０００８】
本発明は、ユーザが作成したい文の類似文をデータベースから検索する用途に適用できる。そのようにすることによって、ユーザは、類似文や外国語による翻訳文を参考にして文を作成することができる。また、電子メール等の手段を用いて質問を受けた場合に、質問文の類似文をデータベースから検索する用途に適用できる。そのようにすることによって、検索結果に対応した回答を作成し送付することができる。また、音声認識により音声を音節等に変換し、変換結果の類似文をデータベースから検索する用途に適用できる。また、音声による文章入力装置の用途に適用できる。
【図１】
2007069762.tif 000003
【図２】
2007069762.tif 000004
【図３】
2007069762.tif 000005
【図４】
2007069762.tif 000006
【図５】
2007069762.tif 000007
【図６】
2007069762.tif 000008
【図７】
2007069762.tif 000009
【図８】
2007069762.tif 000010
【図９】
2007069762.tif 000011
【図１０】
2007069762.tif 000012
【図１１】
2007069762.tif 000013
【図１２】
2007069762.tif 000014
【図１３】
2007069762.tif 000015
【国際調査報告】
2007069762.tif 000016
2007069762.tif 000017
2007069762.tif 000018
2007069762.tif 000019