説明

局所対応抽出装置及び局所対応抽出方法

【課題】本発明は、事前にインデックス化されてない任意の文字列の間で代表的な局所対応を網羅的に抽出する局所対応抽出装置を提供することを目的とする。
【解決手段】任意の二つの文書間で類似する文字列である局所対応を抽出する局所対応抽出部を備える局所対応抽出装置において、遷移元セルに対応する第二行列のセルがいずれかの局所対応に属することを示し、かつ、第一行列生成部によって算出された最大のスコアが所定値よりも大きい場合、算出されたスコアが同じ局所対応に属するセルの最大のスコアよりも大きい場合、算出対象のセルに対応する二つの文字が局所対応の終点となることを記憶することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、二つの文書間で類似する文字列対である局所対応を抽出する局所対応抽出装置に関し、特に、Smith−Waterman法を用いて局所対応を抽出する局所対応抽出装置に関する。
【背景技術】
【0002】
長い文書間では、文書全体が互いに類似することは稀であり、部分的な類似個所が存在する。例えば、書籍間の類似性を考える。書籍間での類似個所は一つではなく、複数ある場合も多い。数個の文字からなる単語が書籍間で一致する場合まで考慮すると、書籍間での類似個所の数は膨大になる。二つの文書間での類似箇所(類似文字列対)のことを局所対応という。この局所対応を数え上げることができれば、二つの文書全体を読まなくても、局所対応の周辺を読むだけで二つの文書間の類似性の根拠を把握できる。
【0003】
例えば、特許審査等の審査業務において、審査対象となる出願と特許文献や非特許文献との間で内容の同一性及び類似性を判定しなければならない。判定対象となる文書間で局所対応を数え上げることができれば、文書全体を読まずとも局所対応の周辺のみを読むことによって対象文書間の同一性及び類似性が判定でき、審査業務を促進できる。
【0004】
概念検索では、文字列が入力された場合、入力された文字列と類似する文書を類似度順にランキングして提示する。この場合、ユーザは、入力した文字列に適合しそうな文書を上から順に調べていくことができる。しかし、ユーザは、ランキングの根拠が解りにくいため、入力した文字列と提示された文書との適合性を判定するために、提示された文書自体を読まなければならならない場合が多い。文書が長ければ読解時間も長くなる。
【0005】
一方、全文検索では、入力された文字列と一致する文字列の周辺部を提示することによって、文書全体を読む作業を軽減する。
【0006】
そこで、概念検索においても、入力された文字列と入力された文字列に適合する文書との間で類似箇所(局所対応)が抽出され、抽出された局所対応が提示されることによって、文書全体を読まずに文書の適合性を判定できる。
【0007】
また、特許出願の請求項と明細書との間で局所対応を抽出すれば、請求項に関連する実施例を即座に探すこともできる。
【0008】
局所対応を抽出する従来技術として、Smith−Waterman法(非特許文献1)がある。Smith−Waterman法は、動的計画法によってスコアが最大の局所対応を効率良く探索する。ここで、スコアとは、部分文字列間の類似度のことである。
【0009】
局所対応を抽出するために生成されたスコア行列から、スコアが所定値以上の局所対応を抽出することによって、より多くの局所対応を網羅的に抽出できる。しかしながら、この方法では、単純にスコアのみで局所対応か否かを判断するため、既に抽出された局所対応の周辺の意味のない文字も含む局所対応が大量に抽出されてしまう。このため、局所対応の中でも代表的なもののみを取捨選択する必要がある。つまり、代表性と網羅性双方を満足させる必要がある。
【0010】
特許文献1には、Smith−Waterman法の局所対応の抽出精度を出来るだけ低減させずに、局処対応の抽出の効率を高める方法が記載されている。具体的には、完全に一致する文字列対を抽出し、抽出した文字列対の中である一定のギャップ以内にある文列対を連結する。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2002−191371号公報
【非特許文献】
【0012】
【非特許文献1】“Algorithms on Strings,Trees, and Sequences”(pp.232−234),Gusfield,D.,Cambridge University Press,1997
【発明の概要】
【発明が解決しようとする課題】
【0013】
ただし、特許文献1に記載された方法で、完全に一致する文字列対を抽出するためには、接尾辞配列等のインデックスを事前に作成しなければならない。また、特許文献1に記載された方法の局所対応の抽出精度もSmith−Waterman法に劣る。遺伝子配列の検索に用いられるBLAST、FASTAといったソフトウェアも、特許文献1に記載された方法と同じく、精度を犠牲にして高速化を図るものであり、インデックスが事前に作成されていなければならない。
【0014】
したがって、インデックス化されていないデータについては局所対応が抽出しにくいという問題がある。
【0015】
事前にインデックス化されていない任意の長い文字列の間で局所対応を抽出する場合、代表的な局所対応を網羅的に抽出することは困難である。また、局所対応の網羅性を重視すると代表性を損い、代表性を重視すると網羅性を損なうものであった。
【0016】
このため、本発明は、事前にインデックス化されてない任意の文字列の間で代表的な局所対応を網羅的に抽出する局所対応抽出装置を提供することを目的とする。
【課題を解決するための手段】
【0017】
本発明の代表的な一例を示せば、任意の二つの文書間で類似する文字列である局所対応を抽出する局所対応抽出部を備える局所対応抽出装置において、前記局所対応抽出部は、前記二つの文書のうち一方の文書を構成する文字列を行とし、他方の文書を構成する文字列を列とし、前記行の文字列を構成する文字及び前記列の文字列を構成する文字に対応するセルに、当該セルに対応する二つの文字の類似度を示すスコアを登録して、第一行列を生成する第一行列生成部と、前記第一行列のセルに対応するセルによって構成される第二行列のセルのうち前記第一行列生成部によってスコアが算出されたセルに対応するセルに、当該セルに対応する二つの文字が属する局所対応の識別子を登録して、前記第二行列を生成する第二行列生成部と、を有し、前記第一行列のセルに登録されるスコアは、当該セルに対応する二つの文字の類似度が大きいほど大きい値を示し、前記第一行列生成部は、前記スコアの算出対象のセルに隣接するセルのうちすでにスコアが算出されたセルから当該算出対象のセルまでのパスに予め設定された値に基づいて前記算出対象のセルのスコアを算出し、前記算出されたスコアのうち最大のスコアを前記算出対象のセルのスコアとして登録し、前記最大のスコアを算出したパスのセルを遷移元セルとして記憶し、前記第二行列生成部は、前記遷移元セルに対応する前記第二行列のセルがどの局所対応にも属しないことを示し、かつ、前記第一行列生成部によって算出された最大のスコアが所定値である場合、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録し、前記算出対象のセルに対応する二つの文字が前記新たな局所対応の始点となることを記憶し、前記遷移元セルに対応する前記第二行列のセルがいずれかの局所対応に属することを示し、かつ、前記第一行列生成部によって算出された最大のスコアが前記所定値よりも大きい場合、前記算出対象のセルに対応する前記第二行列のセルに、前記遷移元セルに対応する前記第二行列のセルに登録された局所対応の識別子を登録し、さらに、前記算出されたスコアが同じ局所対応に属するセルの最大のスコアよりも大きい場合、前記算出対象のセルに対応する二つの文字が前記局所対応の終点となることを記憶することを特徴とする。
【発明の効果】
【0018】
本発明によれば、事前にインデックス化されてない任意の文字列の間で代表的な局所対応を網羅的に抽出できる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1の実施形態の局所対応抽出システムの構成の説明図である。
【図2】本発明の第1の実施形態のディスプレイに表示される局所対応表示画面20の説明図である。
【図3】本発明の第1の実施形態の変形例の局所対応表示画面の説明図である。
【図4】本発明の第1の実施形態の変形例の要約バーチャートを追加した局所対応表示画面の説明図である。
【図5】本発明の第1の実施形態の二つの文字列間におけるスコアの説明図である。
【図6】本発明の第1の実施形態のスコア行列の説明図である。
【図7】本発明の第1の実施形態のスコア算出方法の説明図である。
【図8】本発明の第1の実施形態の初期化処理の説明図である。
【図9】本発明の第1の実施形態の局所対応収集処理の説明図である。
【図10】本発明の第1の実施形態の始点行列の説明図である。
【図11】本発明の第1の実施形態の局所対応抽出処理のフローチャートである。
【図12】二つの文字列間に本発明の第1の実施形態の局所対応処理を実行し、局所対応が抽出されない場合の説明図である。
【図13】酷似する二つの文書に第1の実施形態の局所対応処理を実行することによって抽出された局所対応の表示例である。
【図14】本発明の第2の実施形態の局所対応収集処理の説明図である。
【図15】本発明の第2の実施形態の局所対応処理を実行することによって抽出された局所対応の表示例である。
【発明を実施するための形態】
【0020】
本発明の第1の実施形態を図1〜図11を用いて説明する。
【0021】
図1は、本発明の第1の実施形態の局所対応抽出システムの構成の説明図である。
【0022】
抽出対象となる二つの文字列(文書)間で類似する文字列対を局所対応という。
【0023】
局所対応抽出システムは、二つの文字列間で局所対応を抽出し、抽出した局所対応を表示するシステムである。局所対応抽出システムは、クライアント10、及び、クライアント10にネットワーク11を介してアクセス可能な検索サーバ12を備える。
【0024】
検索サーバ12は、局所対応の抽出の対象となる対象文字列(対象文書)をクライアント10にネットワーク11を介して送信する計算機である。
【0025】
対象文字列がキーボード・マウス103を介してクライアント10に直接入力される場合には、局所対応抽出システムはネットワーク11及び検索サーバ12を備えなくてもよい。
【0026】
クライアント10は、CPU101、メモリ102、キーボード・マウス103、ディスプレイ104、局所対応抽出部105、局所対応表示制御部106、及びデータ通信部107を備える。
【0027】
CPU101は、局所対応抽出部105及び局所対応表示制御部106を構成する各種プログラムを実行する。メモリ102は、CPU101が実行するプログラム、及び当該プログラムを実行するために必要なデータを一時的に記憶する。
【0028】
キーボード・マウス103は、ユーザからの入力を受け付ける入力部である。ディスプレイ104は、局所対応抽出部105によって抽出された局所対応を局所対応表示制御部106の制御下で表示する表示部である。
【0029】
局所対応抽出部105は、対象文字列から局所対応を抽出する。局所対応表示制御部106は、局所対応抽出部105によって抽出された局所対応をディスプレイ104に表示するための制御を行う。
【0030】
データ通信部107は、ネットワーク11を介してデータを通信するインターフェースであり、例えば、TCP/IPプロトコルによって通信可能なLANカードである。
【0031】
局所対応抽出システムの全体的な処理の概略を説明する。
【0032】
まず、クライアント10が対象文字列を取得する。クライアント10が対象文字列を取得する方法には種々の方法がある。例えば、クライアント10が検索サーバ12から対象文字列を取得する方法、及び、ユーザがキーボード・マウス103を操作して対象文字列をクライアント10に入力する方法などがある。
【0033】
クライアント10が検索サーバ12から対象文字列を取得する場合、まず、クライアント10は、取得する対象文字列の文書番号を検索サーバ12に送信する。そして、検索サーバ12は、文書番号を受信した場合、受信した文書番号に対応する文書の文字列を対象文字列としてクライアント10に送信する。
【0034】
次に、局所対応抽出部105は、クライアント10が取得した対象文字列から局所対応を抽出する。なお、局所対応抽出部105が局所対応を抽出するための具体的な処理については図5〜図10で詳細を説明する。
【0035】
そして、局所対応表示制御部106は、局所対応抽出部105によって抽出された局所対応をディスプレイ104に表示する。なお、ディスプレイ104に表示される局所対応については図2〜図4で詳細を説明する。
【0036】
なお、図6で詳述するが、局所対応抽出部105は、対象文字列から局所対応を抽出する場合、対象文字列の文字列情報のみを用いるので、対象文字列がインデックス化されてなくてもよい。このため、本実施形態の対象文字列は、検索サーバ12で検索された文書であってもよいし、ユーザによって直接入力された文字列であってもよい。
【0037】
図2は、本発明の第1の実施形態のディスプレイ104に表示される局所対応表示画面20の説明図である。
【0038】
局所対応表示画面20は、局所対応表示制御部106の制御下でディスプレイ104に表示される。
【0039】
局所対応表示画面20は、抽出ボタン201、一致スコア入力ボックス202、不一致スコア入力ボックス203、読み飛ばしスコア入力ボックス204、ギャップ入力ボックス205、スコア閾値入力エリア206、文書番号入力エリア207、208、テキストエリア209、210、及び、局所対応表示エリア211を含む。
【0040】
まず、テキストエリア209及び210について説明する。テキストエリア209及び210には、対象文字列が表示される。
【0041】
テキストエリア209及び210は、ユーザのキーボード・マウス103を介した文字入力を受け付ける。このため、ユーザは、テキストエリア209及び210に表示される文字列をキーボード・マウス103を用いて自由に編集できる。
【0042】
また、クライアント10が対象文字列を検索サーバ12から取得する場合、ユーザは、文書番号入力エリア207及び208に取得を所望する対象文字列の文書番号を入力する。そして、それぞれの文書番号入力エリア207及び208に改行が入力されると、クライアント10は、文書番号入力エリア207及び208に入力された文書番号を検索サーバ12に送信する。
【0043】
検索サーバ12は、文書番号を受信した場合、受信した文書番号に対応する文書を検索し、検索した文書をクライアント10に送信する。クライアント10は、検索サーバ12から送信された文書を受信した場合、受信した文書に対応する文書番号が入力された文書番号入力エリア207及び208の下方に位置するテキストエリア209及び210に、受信した文書の文字列を表示する。
【0044】
なお、局所対応表示制御部106は、局所対応表示画面20をディスプレイ104に表示する場合、文書番号入力エリア207及び208に前回入力された文書番号を検索サーバ12に送信するようにしてもよい。
【0045】
そして、ユーザが抽出ボタン201を操作した場合、局所対応表示制御部106は、テキストエリア209及び210に表示された対象文字列を局所対応抽出部105に入力する。そして、局所対応抽出部105は、入力された対象文字列から局所対応を抽出し、抽出した局所対応を局所対応表示制御部106に入力する。
【0046】
局所対応表示制御部106は、入力された局所対応を局所対応表示エリア211に表示する。
【0047】
なお、一致スコア入力ボックス202、不一致スコア入力ボックス203、読み飛ばしスコア入力ボックス204、ギャップ入力ボックス205、及びスコア閾値入力エリア206には、局所対応抽出部105が局所対応を抽出する場合に用いられるパラメータが入力される。これらのパラメータについては、図6〜図10で詳細を説明する。
【0048】
なお、局所対応表示制御部106は、局所対応表示画面20をディスプレイ104に表示させる場合に対象文字列が決まっていれば、抽出ボタン201の操作を自動化してもよい。
【0049】
次に、局所対応抽出部105によって抽出された局所対応を表示する局所対応表示エリア211について説明する。
【0050】
局所対応表示エリア211は、対象文字列となる二つの文字列を二次元の行列によって表現する。具体的には、局所対応表示エリア211の横軸がテキストエリア209に入力された文字列に対応し、局所対応表示エリア211の縦軸がテキストエリア210に入力された文字列に対応する。横軸においては、先頭の文字が左端に位置し、末尾の文字が右端に位置する。縦軸においては、先頭の文字が上端に位置し、末尾の文字が下端に位置する。
【0051】
なお、図2では、局所対応表示エリア211の上方の表示領域215に横軸に対応する文字列を表示し、また、局所対応表示エリア211の左側の表示領域216に縦軸に対応する文字列を表示するが、これらの表示領域214、215には文字列が表示されなくてもよい。例えば、横軸及び縦軸に対応する文字列の文字数が所定数以上である場合には、局所対応表示制御部106は、表示領域214、215には文字列を表示しない。
【0052】
局所対応表示エリア211の縦軸に対応する文字列と横軸に対応する文字列との間の局所対応を矩形によって表示する。図2では、二つの局所対応が抽出されており、この抽出された局所対応を二つの矩形212A及び212B(以下、総称して212という)によって表示する。
【0053】
矩形212の縦辺の位置及び長さは、局所対応表示エリア211の縦軸が示す文字列の局所対応の範囲に対応し、矩形212の横辺の位置及び長さは、局所対応表示エリア211の横軸が示す文字列の局所対応の範囲に対応する
具体的には、矩形212Aは、局所対応表示エリア211の横軸が示す文字列の一部の「特許を検索」と、縦軸が示す文字列の一部の「特許検索」との間の局所対応である。矩形212Bは、局所対応表示エリア211の横軸が示す文字列の一部の「精度向上」と、縦軸が示す文字列の一部の「精度の向上」との間の局所対応である。
【0054】
ユーザは、マウスポインタ214によって特定の矩形212を指すことによって、局所対応表示エリア211に表示された複数の矩形212(局所対応)の中から特定の矩形212を選択できる。なお、局所対応表示制御部106は、ユーザによって選択された矩形212を、選択されていることをユーザに把握可能な態様で表示する。具体的には、局所対応表示制御部106は、ユーザによって選択された矩形212をハイライト(例えば、グレーの塗りつぶし等)で表示する。
【0055】
また、局所対応表示制御部106は、テキストエリア209及び210に表示された文字列のうち、ユーザによって選択された矩形212に対応する部分文字列を、当該部分文字列に対応する矩形212が選択されていることをユーザに把握可能な態様で表示する。具体的には、局所対応表示制御部106は、当該部分文字列をハイライト(例えば、反転表示等)で表示する。
【0056】
これによって、ユーザは、局所対応表示エリア211に表示される矩形212を選択しながら、テキストエリア209及び210に表示される文字列のうち選択した矩形212に対応する文字列を即座に探すことができ、テキストエリア209及び210から探した文字列周辺を比較しながら読むことができる。
【0057】
また、局所対応の文字列が長い場合には、矩形212の面積は大きくなるので、ユーザは一目で重要な局所対応を判別できる。通常、ユーザは、局所対応表示エリア211に表示された大きな矩形を探し、当該矩形をマウスポインタ214によって差すことによって当該矩形を選択し、当該矩形に対応する文字列をテキストエリア209及び210から探し、当該文字列の周辺も含めて読む。
【0058】
なお、テキストエリア209及び210に表示される文字列の文字数が所定数よりも大きい場合、局所対応表示制御部106は、選択された矩形212に対応する部分文字列がテキストエリア209及び210の最上部に位置するように、自動スクロールして表示する。なお、当該所定数は、例えば、テキストエリア209及び210にスクロールなしで表示可能な文字数よりも大きい値に設定される。
【0059】
テキストエリア209及び210に入力される文字列が長くなると、局所対応表示エリア211に表示される矩形212も相対的に小さく表示されるため、ユーザは、面積の小さい矩形212を判別しにくくなる。このため、図3に示すように、局所対応表示エリア211の一部を拡大表示するズームエリア303を追加する変形例も考えられる。
【0060】
図3は、本発明の第1の実施形態の変形例の局所対応表示画面30の説明図である。
【0061】
図3に示す局所対応表示画面30の構成のうち、図2に示す局所対応表示画面20の構成と同じ構成は、同じ符号を付与し、説明を省略する。
【0062】
図3に示す局所対応表示エリア211は、テキストエリア209及び210に表示される対象文字列の行列の全体を表示するエリアである。
【0063】
当該局所対応表示エリア211内には、ユーザがマウスによって操作可能なスコープ302が表示される。スコープ302内に位置する範囲が、ズームエリア303に拡大表示される。なお、スコープ302が移動すると、局所対応表示制御部106は、ズームエリア303の表示内容を移動したスコープ302に対応する表示内容に更新する。
【0064】
図4は、本発明の第1の実施形態の変形例の局所対応表示画面40の説明図である。
【0065】
図4に示す局所対応表示画面40は、図2又は図3に示す局所対応表示エリア211に要約バーチャート41及び42が追加された画面である。
【0066】
ユーザは、局所対応表示エリア211に表示される矩形212がどの部分に集中しているかを即座に把握したい場合がある。ユーザは、局所対応表示エリア211を探すことによって、矩形212が局所対応表示エリア211のどの部分に集中しているかをある程度把握できる。しかしながら、この方法は一覧性に欠ける。
【0067】
そこで、局所対応表示制御部106は、局所対応表示エリア211に表示される矩形212の横方向の分布を集約し、縦方向の分布度を示す要約バーチャート41を生成し、また、局所対応表示エリア211に表示される矩形212の横方向の分布を示す要約バーチャート42を生成して、生成した要約バーチャート41及び42を表示する。
【0068】
要約バーチャート41は、局所対応表示エリア211に表示される矩形212を横方向に射影した結果のバーチャートで、縦方向の文字列中での局所対応の分布を示す。一方、要約バーチャート42は、横方向の文字列中での局所対応の分布を示す。例えば、矩形212Cは、要約バーチャート41の411及び412の部分に射影される。なお、局所対応の最大スコアが大きいほど濃い色で表示することで、ユーザにとって重要な局所対応を注視しやすくすることもできる。なお、スコアは類似度を意味し、具体的なスコアの算出法は後述する。
【0069】
一方の文字列中の部分文字列が、他方の文字列中の複数の部分と対応がとれる場合も多い。例えば、図4では、縦方向の文字列中の「精度」は横方向で3か所出現している。このため、縦方向の「精度」に対応する要約バーチャート41の部分412は他と比べて色が濃く表示される。
【0070】
このように、局所対応表示エリア211に表示される矩形212を行方向及び列方向に射影した場合、当該行方向及び列方向に位置する局所対応のスコアの総和に比例して要約バーチャート41及び42の色を濃く表示すれば、ユーザは、要約バーチャート41及び42を見るだけで、スコアが大きい局所対応が存在する部分や、多くの局所対応が存在する部分をすぐに見つけることができる。要約バーチャート41及び42中でマウスをクリックすると、局所対応表示エリア211でも対応する部分が頭出しされて表示される。
【0071】
以下に、要約バーチャート生成処理について説明する。要約バーチャート生成処理は、局所対応表示制御部106によって実行される。
【0072】
なお、局所対応表示制御部106による要約バーチャート生成処理は、局所対応抽出部105によって抽出された局所対応が局所対応表示制御部106に入力された後に実行される。
【0073】
ここで、局所対応は始点と終点とを有し、始点は局所対応表示エリア211に表示される矩形212の左上点の座標(br,bc)に相当し、終点は矩形212の右下点の座標(er,ec)に相当する。また、局所対応のスコアをSとし、局所対応表示エリア211に表示されるすべての矩形212(局所対応)の中で最大のスコアの局所対応のスコアをSmaxという。
【0074】
まず、局所対応表示制御部106は、各局所対応の透明度を、各局所対応のスコアS及び最大スコアSmaxに基づいて決定する。透明度は0〜255で示され、透明度が0であれば完全な透明で、透明度が255であれば完全な不透明である。
【0075】
各局所対応の透明度は、当該局所対応のスコアSが大きければ大きいほど不透明であるように決定される。これによって、要約バーチャート41及び42ではスコアSの大きい局所対応ほど濃い色で表示されるようになり、ユーザが注視しやすくなる。
【0076】
具体的には、最大スコアSmaxの局所対応の透明度Tmaxが予め設定されていれば、局所対応表示制御部106は、各局所対応の透明度Tを透明度Tmaxに基づいて等比配分することによって決定する。換言すれば、局所対応表示制御部106は、透明度TをTmax*(S/Smax)を計算することによって決定する。
【0077】
次に、局所対応表示制御部106は、要約バーチャート41において、矩形212の始点のy座標bcから終点のy座標ecまでの範囲を当該矩形212の局所対応の透明度Tで塗りつぶす。また、局所対応表示制御部106は、要約バーチャート42において、矩形212の始点のx座標brから終点のx座標erまでの範囲を当該矩形212の局所対応の透明度Tで塗りつぶす。局所対応表示制御部106は、当該処理をすべての局所対応に対して実行する。ここで、局所対応表示制御部106は、要約バーチャート41及び42で局所対応が重複する箇所については重複する局所対応の透明度Tを加算し、加算した透明度で塗りつぶすので、当該個所の色を濃く表示する。
【0078】
なお、以上の処理では、各局所対応の透明度Tは各局所対応のスコアに比例した値である。このため、要約バーチャート41及び42で色が濃い箇所は、当該個所に対応する局所対応のスコアが大きいか、又は、当該個所で局所対応が重複しているかである。いずれの場合であっても、要約バーチャート41及び42で色が濃い箇所には、ユーザにとって重要な局所対応が存在することを意味する。しかし、ユーザは、スコアが大きい局所対応は局所対応表示エリア211で矩形212の面積が大きくなるため、ユーザはスコアが大きい局所対応を見つけやすいが、縦方向及び横方向に重複する局所対応は局所対応表示エリア211で見つけにくいという観点で、局所対応が重複する箇所のみを知りたい場合もある。
【0079】
このため、局所対応表示制御部106は、局所対応の透明度Tを当該局所対応のスコアSを用いて決定するのではなく、すべての局所対応の透明度Tを所定値に設定し、局所対応が縦方向又は横方向に重複する場合、重複する局所対応の透明度Tを加算し、加算した透明度で塗りつぶしてもよい。
【0080】
これによって、要約バーチャート41及び42の色の濃さは、スコアに依存せず、重複する局所対応の数に依存するので、ユーザは、縦方向及び横方向に重複する局所対応は局所対応表示エリア211で見つけやすくなる。
【0081】
次に、局所対応抽出部105が局所対応を抽出する処理について説明する。
【0082】
局所対応の抽出では、前述したように、代表的な局所対応のみを網羅的に抽出することが課題となる。本発明では、既存のSmith−Waterman法に、始点一致による枝刈りを組み込むことによって、前述の課題を解決する。
【0083】
図5は、本発明の第1の実施形態の二つの文字列間におけるスコアの説明図である。
【0084】
文字列A「特許の検索精度の向上」と文字列B「特許検索の精度の向上」との間の各文字が対応付けられる。この各文字単位の対応をアラインメントという。アラインメントには、対応する文字同士が一致する一致アラインメント、及び、対応する文字同士が一致しない不一致アラインメントがある。図5では、「を」と「の」とのアラインメント50が不一致アラインメントであり、その他のアラインメントは一致アラインメントである。
【0085】
文字列A及び文字列Bのすべての文字でアラインメントがあるわけではない。図5では、文字列Aの「の」(51)及び文字列Bの「の」(52)はいずれの文字にも対応付けられていない。このアラインメントがない文字は当該文字が読み飛ばされたことを意味し、これを以下読み飛ばしという。
【0086】
一致アラインメント、不一致アラインメント、及び読み飛ばしには、予め所定値が設定されている。図5では、一致アラインメントには+2点、不一致アラインメントには−2点、読み飛ばしには−1点が設定されているとする。この場合、文字列Aと文字列Bとの間でこれらの値を合計した値(スコア)は12点になり、このスコアが文字列Aと文字列Bとの類似度となる。
【0087】
また、局所対応は、対象文字列中でスコアが局所的に大きくなる部分文字列対であり、局所対応抽出部105によって抽出される。局所対応抽出部105は、一致アラインメント、不一致アラインメント、及び読み飛ばしに設定された値次第で、異なる局所対応を抽出する。
【0088】
なお、ユーザは、図2に示す一致スコア入力ボックス202、不一致スコア入力ボックス203、及び読み飛ばしスコア入力ボックス204を介して、一致アラインメント、不一致アラインメント、及び読み飛ばしの値に所望の値を設定できる。
【0089】
また、不一致アラインメントの値は、不一致アラインメントの文字の種類によって異なるものであってもよい。例えば、不一致アラインメントの文字の種類が助詞である場合の値は、不一致アラインメントの文字の種類が助詞以外である場合の値よりも低く設定されてもよい。
【0090】
また、文字列において出現回数の多い部分文字列はユーザにとって重要である可能性が高いため、局所対応抽出部105が出現回数を把握できるように、スコアに出現回数を含ませてもよい。これによって、局所対応抽出部105は、出現回数が所定値以上である部分文字列のスコアに1以上の所定値を乗算することによって、出現回数が所定値未満の部分文字列よりもスコアを大きくできる。
【0091】
本実施形態では、局所対応抽出部105が対象文字列のスコアを算出して、局所対応を抽出するために、Smith−Waterman法を用いる。Smith−Waterman法は動的計画法によって効率良くスコアを算出する方法である。
【0092】
以下に、本実施形態のスコア算出方法について図6を用いて説明する。
【0093】
図6は、本発明の第1の実施形態のスコア行列の説明図である。
【0094】
局所対応抽出部105は、二つの対象文字列のうち一方の対象文字列を行に配置し、他方の対象文字列を列に配置する。そして、局所対応抽出部105は、行列のセルのスコアを左上のセルから順番に計算して、計算したスコアをセルに登録して、スコア行列を生成する。
【0095】
なお、行列のセルは、当該セルに対応する行の文字と当該セルに対応する列の文字とに対応する。また、各セルに登録されるスコアは、当該セルまでのスコアの合計値である。
【0096】
ここで、スコアの算出方法について、図7を用いて説明する。
【0097】
図7は、本発明の第1の実施形態のスコア算出方法の説明図である。
【0098】
あるセルのスコアを算出する場合、局所対応抽出部105は、算出対象のセルに隣接し、かつすでにスコアが算出されたセルから算出対象のセルまでの各パスごとのスコアを算出し、算出したスコアのうち最大のスコアを算出対象のセルに登録する。
【0099】
以下、図7のセル73のスコアを算出する場合について具体的に説明する。
【0100】
セル73に隣接し、かつすでにスコアが算出されたセルは、セル70、71、および72である。セル73の真上に位置するセル71からのパスを第1パス74とし、セル73の左上に位置するセル70からのパスを第2パス75とし、セル73の左に位置するセル72からのパスを第3パス76とする。
【0101】
まず、第1パス74を経由した場合のセル73のスコアについて説明する。
【0102】
算出対象のセル73の真上に位置するセル71に対応する文字は「検」(702)及び「許」(703)であり、セル73に対応する文字は「検」(702)及び「検」(704)である。当該セル71で「検」(704)が読み飛ばされたことになる。つまり、「検」(702)は変化せず、真上のセルから算出対象のセルまでのパスは、行の文字は変化せずに、列の文字が変化することになり、当該列の「検」(704)が読み飛ばされたこと(読み飛ばし)を意味する。
【0103】
ここで、読み飛ばしには「−1」が予め設定されているので、第1パス74を経由した場合のセル73のスコアは、セル71のスコアの値「2」に、第1パス74に設定された値(読み飛ばしに設定された値)「−1」を加算し、「1」と算出される。
【0104】
次に、第3パス76を経由した場合のセル73のスコアについて説明する。
【0105】
算出対象のセル73の左に位置するセル72に対応する文字は「を」(701)及び「検」(704)であり、セル73に対応する文字は「検」(702)及び「検」(704)である。当該セル70の段階で「検」(702)が読み飛ばされたことになる。つまり、左のセルから算出対象のセルまでのパスは、列の文字は変化せずに、行の文字が変化することになり、当該行の「検」(702)が読み飛ばされたこと(読み飛ばし)を意味する。
【0106】
ここで、読み飛ばしには「−1」が予め設定されているので、第3パス76を経由した場合のセル73のスコアは、セル72のスコアの値「2」に、第3パス76に設定された値(読み飛ばしに設定された値)「−1」を加算し、「1」と算出される。
【0107】
次に、第2パス75を経由した場合のセル73のスコアについて説明する。
【0108】
左上に位置するセル70に対応する文字は「を」(701)及び「許」(703)であり、セル73に対応する文字は「検」(702)及び「検」(704)である。この場合、左上に位置するセル70に対応する行の文字及び列の文字と、セル73に対応する行の文字及び列の文字とが異なるので読み飛ばしではない。第2パス75は、セル73に対応する行の文字と列の文字とが一致する場合、一致アラインメントを意味し、セル73に対応する行の文字と列の文字とが一致しない場合、不一致アラインメントを意味する。なお、図7では、セル73に対応する行の文字「検」(704)と列の文字(702)とは一致するので、第2パス75は一致アラインメントを意味する。
【0109】
ここで、一致アラインメントには「2」が予め設定され、不一致アラインメントには「−2」が予め設定されている。第2パス75を経由した場合のセル73のスコアは、セル70のスコアの値「3」に、一致アラインメントに設定された値「2」を加算し、「5」と算出される。
【0110】
以上のように、第1パス74〜第3パス76を経由した場合のセル73のスコアが算出される。そして、算出されたスコアから最大のスコアのパスが選択され、当該最大のスコアがセル73に登録される。図7では、第2パス75を経由した場合のスコア「5」が最大となるので、セル73にはスコア「5」が登録される。
【0111】
以上のように、局所対応抽出部105は、図6に示す左上端のセルから順に横方向にスコアを登録する。そして、局所対応抽出部105は、一行のすべてのセルにスコアを登録した場合、次の行の左端のセルから順にスコアを登録する。このため、算出対象のセルの左のセル、左上のセル、及び左のセルのスコアは必ず登録されていることになる。
【0112】
また、局所対応抽出部105は、初期化処理として、行に対応する対象文字列(図6に示す「精度向上の特許を検索」)の先頭文字の前に列を一列挿入し、列に対応する対象文字列(図6に示す「特許検索の精度の向上」)の先頭文字の前に行を一列挿入する。この挿入された行及び列は初期行列という。そして、局所対応抽出部105は、初期行列のセルにスコア「0」を予め登録する。
【0113】
ここで、従来のSmith−Waterman法を用いた局所対応抽出処理の問題点について説明する。
【0114】
図7で説明したスコア算出方法によって図6に示すスコア行列が生成された後、スコア行列のセルから最大のスコアが登録されたセルが選択される。当該選択されたセルまでのパスを逆順に辿ることによって、最大のスコアの局所対応が抽出される。
【0115】
図6では、最大のスコアは「7」であり、最大のスコアが登録されたセルはセル60及び61である。セル60からパスを逆順に辿ることによって、対象文字列(「精度向上の特許を検索」)からは「特許を検索」が抽出され、セル61からパスを逆順に辿ることによって、対象文字列(「特許検索の精度の向上」)からは「特許検索」が抽出される。なお、「特許を検索」及び「特許検索」が局所対応である。
【0116】
この場合、スコア行列の中で最大スコアの局所対応しか抽出できず、最大スコアよりも低い局所対応は抽出できない。例えば、図6において、仮に、「特許を検索」及び「特許検索」のスコアが「7」で、「精度向上」及び「精度の向上」のスコアが「6」であるとすると、「精度向上」及び「精度の向上」は局所対応として抽出されない。したがって、スコア行列生成後に最大のスコアが登録されたセルからパスを逆順に辿る方法では、代表的な局所対応しか抽出できず、局所対応を網羅的に抽出できない。
【0117】
このため、スコアが所定値以上のセルを抽出し、抽出したセルからパスを逆順に辿ることによって、局所対応を抽出する方法が考えられる。しかしながら、この方法では、網羅的に局所対応を抽出できるが、局所対応を重複して抽出してしまい、抽出される局所対応が冗長となってしまう。
【0118】
図6で、抽出するセルのスコアの所定値が「6」に設定された場合、セル62及び63が抽出される。この場合、セル62からパスを逆順に辿ることによって抽出される局所対応は、「特許を検索」と「特許検索の」である。この「特許検索の」は、本来「特許を検索」と対応する局所対応として抽出されるべき文字列「特許検索」の末尾に「の」を追加しただけの文字列であり、本来の局所対応「特許検索」のバリエーションにすぎない。
【0119】
本来の局所対応として抽出される文字列の最後の文字は、スコアが最大となるセルに対応する文字である。一致のアラインメントであればスコアを加算し、不一致のアラインメント及び読み飛ばしであればスコアが減少するように設定されている場合、二つの対象文字列の各文字が一致していればスコアは増加し、その他の場合スコアは減少するためであり、スコアが減少せずスコアが最大となる文字が最後の文字が本来の局所対応として抽出される文字列の最後の文字となる。
【0120】
前述した方法では、スコアが最大となるセルの周辺のセルに対応する文字が局所対応の最後の文字として抽出されてしまう場合があり、この局所対応は本来の局所対応のバリエーションにすぎず、抽出された局所対応は冗長化してしまう。
【0121】
本実施形態では、局所対応抽出部105は、スコア行列を生成する際に算出したスコアが、当該算出したスコアのセルが属する局所対応内における最大スコアよりも大きい場合、当該算出したスコアのセルを局所対応の終点として登録する。なお、算出したスコアのセルが属する局所対応を構成するセルは、当該算出したスコアに至るまでのパスの始点と同じ始点からのすべてのパスが経由するセルである。この処理を、始点一致による枝刈りという。
【0122】
これによって、本来の局所対応のバリエーションを抽出せず、冗長化しない局所対応を網羅的に抽出できる。
【0123】
なお、対象文字列が長くなり、スコア行列のサイズが大きくなると、スコア行列を生成してから始点一致による枝刈りを実行すると、始点が同じパスを探索するための計算量が増大してしまう。このため、本実施形態では、局所対応抽出処理をスコア行列の生成と同時に実行するので、Smith−Waterman法による局所対応抽出処理とほぼ同じ計算量で局所対応を抽出できる。
【0124】
図8〜図11を用いて本実施形態の局所対応抽出処理を説明する。
【0125】
図8は、本発明の第1の実施形態の初期化処理の説明図である。
【0126】
初期化処理は、局所対応抽出部105によって実行される。
【0127】
まず、局所対応抽出部105は、二つの対象文字列を登録し、一致スコア、不一致スコア、及び読み飛ばしスコアを設定する(S801)。
【0128】
具体的には、二つの対象文字列は、配列X[l..lx]及び配列Y[l..ly]によって表現される。便宜上、各対象文字列の先頭文字は各配列の要素1に登録される。また、各対象文字列の長さは1x及び1yである。
【0129】
また、局所対応抽出部105は、図2に示す一致スコア入力ボックス202、不一致スコア入力ボックス203、及び読み飛ばしスコア入力ボックス204に入力された値を、一致スコア(Match)、不一致スコア(Unmatch)、及び読み飛ばしスコア(Skip)に設定する。
【0130】
次に、局所対応抽出部105は、スコア行列を初期化する(S802)。スコア行列は、図6で説明した行列であり、M[0..lx][0..ly]で表現される。[0..lx]が配列Xによって表現される対象文字列に相当し、[0..ly]が配列Xによって表現される対象文字列に相当する。
【0131】
また、配列Xのi番目の文字X[i]及び配列Yのj番目の文字Y[j]に対応するセルはM[i][j]である。スコア行列の各セルには図6と同じく、そのセルへ至るパスのスコア合計値が登録される。また、局所対応抽出部105は、スコア行列の0行目のセル及び0行目の列にスコア「0」を登録する。
【0132】
次に、局所対応抽出部105は、局所対応を初期化する(S803)。局所対応は、始点配列B、終点配列E、スコア配列Sの三つの配列によって表現される。局所対応の一意な識別子であるIDは、これらの配列のインデックスに相当する。
【0133】
始点配列Bには、各局所対応の始点の座標が登録され、終点座標Eには、各局所対応の終点の座標が登録される。ここで、座標とは、スコア行列のインデックス対のことである。例えば、配列Xのi番目の文字X[i]及び配列Yのj番目の文字Y[j]が始点である場合、始点の座標は(i,j)である

【0134】
スコア配列Sには、各局所対応のスコアが登録される。スコア配列Sには、初期値として0が登録される。
【0135】
IDがiである局所対応の始点座標はB[i]であり、終点座標はE[i]であり、当該局所対応のスコアはS[i]である。
【0136】
本実施形態では、局所対応に関する情報として、始点情報、終点情報、及びスコア情報が記憶されるが、局所対応のパス情報(アラインメント)も記憶してもよい。
【0137】
図9は、本発明の第1の実施形態の局所対応収集処理の説明図である。
【0138】
局所対応抽出部105は、図8に示す初期化処理を実行した後、局所対応収集処理を実行する。
【0139】
まず、局所対応抽出部105は、局所対応のIDが登録される変数aを0に初期化する(S901)。
【0140】
局所対応のIDは、前述したように、局所対応の始点配列B、終点配列E、スコア配列Sのインデックスに相当する。S901では、局所対応が未抽出であるため、局所対応抽出部105は、局所対応のIDを0に初期化する。
【0141】
次に、局所対応抽出部105は、図10に示す始点行列を初期化する(S902)。始点行列のセルはスコア行列のセルと対応しており、始点行列のセルには、当該セルが属する局所対応のIDが登録される。
【0142】
S902では、局所対応抽出部105は、始点行列のすべてのセルに初期値「−1」を登録する。始点行列の局所対応のIDが「−1」であることは、当該セルはいずれの局所対応にも属さないことを意味する。
【0143】
ここで、始点行列について、図10を用いて説明する。図10は、本発明の第1の実施形態の始点行列の説明図である。
【0144】
始点行列の各セルの座標は図6に示すスコア行列の座標と同じであり、各セルにはセルが属する局所対応のIDが登録される。なお、前述したように各セルには初期値として「−1」が登録されるため、「−1」が登録されているセルは、いずれの局所対応にも属さない。
【0145】
次に、局所対応抽出部105は、処理対象となるスコア行列の行を選択する(S903)。
【0146】
具体的には、局所対応抽出部105は、スコア行列の行のうち対象文字列の先頭の文字列に対応する行(配列Yの最初のインデックスに対応する行)を処理対象の行として選択し、当該処理対象の行にS904〜S906を実行する。局所対応抽出部105は、S904〜S906の処理を実行すると、選択した行の次の行(下の行)を処理対象の行として選択する。局所対応抽出部105は、S904〜S906がすべての行に実行されるまで繰り返す。
【0147】
次に、局所対応抽出部105は、処理対象の行に含まれる列から処理対象の列を選択する(S904)。
【0148】
具体的には、局所対応抽出部105は、処理対象の行に含まれる列のうち対象文字列の先頭の文字列に対応する列(配列Xの最初のインデックスに対応する行)を処理対象の列として選択し、当該処理対象の列にS905〜S906を実行する。局所対応抽出部105は、S905〜S906の処理を実行すると、選択した列の次の列(右の列)を処理対象の列として選択する。局所対応抽出部105は、S905〜S906が処理対象の行に含まれるすべての列に実行されるまで繰り返す。
【0149】
S903及びS904によって、スコア行列のセルからS905及び906の実行対象となるセル(以下、処理対象のセルという)が決まり、スコア行列のすべてのセルに対してS905及び906が実行される。
【0150】
次に、局所対応抽出部105は、処理対象のセルのスコアを算出する(S905)。
【0151】
具体的には、局所対応抽出部105は、図9のS905の1〜4に示すパスのスコアを算出し、算出したスコアから最大のスコア(Smax)を選択して、選択した最大のスコアを処理対象のセル(M[r][c])に登録する。この場合、局所対応抽出部105は、パスの遷移元のセルの座標を(r1、c1)として記憶する。
【0152】
以下に、図9のS905の1〜4に示すパスについて説明する。
【0153】
S905の1は、スコアの最大値がマイナスの値にならないようにするためのものであり、スコアが「0」に設定されている。
【0154】
S905の2は、処理対象のセル(r、c)の真上に位置するセル(r−1、c)からの遷移で、縦方向の文字の読み飛ばしに相当する。この場合の処理対象のセルのスコアは、遷移元のセル(r−1、c)のスコア(M[r−1]、[c])に読み飛ばしスコア(Skip)を加算することによって算出される。
【0155】
S905の3は、処理対象のセル(r、c)の左に位置するセル(r、c−1)からの遷移で、横方向の文字の読み飛ばしに相当する。この場合の処理対象のセルのスコアは、遷移元のセル(r、c−1)のスコア(M[r]、[c−1])に読み飛ばしスコア(Skip)を加算することによって算出される。
【0156】
S905の4は、処理対象のセル(r、c)の左上に位置するセル(r−1、c−1)からの遷移で、処理対象のセルに対応する二つの文字(配列X[r]と配列Y[c])が一致するか否かで算出するスコアが異なる。
【0157】
処理対象のセルに対応する二つの文字が一致する場合の処理対象のセルのスコアは、遷移元の遷移元のセル(r−1、c−1)のスコア(M[r−1]、[c−1])に一致スコア(Match)を加算することによって算出される。
【0158】
一方、処理対象のセルに対応する二つの文字が一致しない場合の処理対象のセルのスコアは、遷移元の遷移元のセル(r−1、c−1)のスコア(M[r−1]、[c−1])に不一致スコア(Unmatch)を加算することによって算出される。
【0159】
S905によってスコア行列のセルにスコアが登録されるので、S905をスコア行列生成処理という。
【0160】
次に、局所対応抽出部105は、S905で算出された処理対象のセルの最大のスコアSmaxに基づいて、当該処理対象のセルの座標を局所対応の終点に設定するか否かを決定する枝刈り処理を実行する(S906)。
【0161】
以下、枝刈り処理について詳細に説明する。
【0162】
まず、局所対応抽出部105は、S905で算出された処理対象のセルの最大のスコアSmaxが「0」であるか否かを判定する。
【0163】
S905で算出された処理対象のセルの最大のスコアSmaxが「0」である場合、局所対応抽出部105は、当該セルに対応する文字は局所対応に属さないので、S904の処理に戻り、次の処理対象の列を選択する。
【0164】
一方、S905で算出された処理対象のセルの最大のスコアSmaxが「0」でない場合、局所対応抽出部105は、図10に示す始点行列のうち遷移元のセルに登録された局所対応のIDを取得する。具体的には、局所対応抽出部105は、始点行列のセルのうち遷移元のセルの座標(r1、c1)に対応するセルに登録された局所対応のID(P[r1][c1])を取得する。なお、局所対応抽出部105は、取得した局所対応のIDをkとして記憶する。
【0165】
そして、局所対応抽出部105は、取得した遷移元のセルの局所対応のIDが「−1」であるか否かを判定する。
【0166】
取得した遷移元のセルの局所対応のIDが「−1」である場合、処理対象のセルから新たな局所対応が始まるので、局所対応抽出部105は、新たな局所対応を設定する。
【0167】
具体的には、局所対応抽出部105は、始点行列のセルのうち処理対象のセルの座標(r、c)に対応するセルの局所対応ID(P[r][c])に新たな局所対応のID(a)を登録する。また、局所対応抽出部105は、処理対象のセルの座標(r、c)を始点配列B[a]及び終点配列E[a]に登録する。そして、局所対応抽出部105は、新たな局所対応のID(a)をインクリメントしておく。このように、新たな局所対応のID(a)は、新たに局所対応があった場合に備えて、局所対応が見つかるとインクリメントされる。
【0168】
一方、取得した遷移元のセルの局所対応のIDが「−1」でない場合、処理対象のセルは遷移元のセルと同じ局所対応に属するため、局所対応抽出部105は、始点行列のセルのうち処理対象のセルの座標(r、c)のセルに、遷移元のセルと同じ局所対応のID(k)を登録する。つまり、始点行列のセルの局所対応のID(P[r][c])には、遷移元のセルの局所対応のID(P[r1][c1])が登録される。
【0169】
そして、局所対応抽出部105は、遷移元のセルの局所対応のID(k)のスコア配列S[k]に登録されたスコア(局所対応最大スコア)を取得し、処理対象のセルの最大のスコア(Smax)が局所対応最大スコア(S[k])よりも大きいか否かを判定する。
【0170】
処理対象のセルの最大のスコア(Smax)が局所対応最大スコア(S[k])よりも大きいと判定された場合、局所対応抽出部105は、処理対象のセルを終点にするために処理対象のセルの座標(r、c)を終点配列E[k]に登録し、処理対象のセルの最大のスコアをスコア配列S[k]に登録する。
【0171】
一方、処理対象のセルの最大のスコア(Smax)が局所対応最大スコア(S[k])以下であると判定された場合、局所対応抽出部105は、S904の処理に戻り、次の処理対象の列を選択する。
【0172】
なお、S906で始点行列のセルに当該セルが属する局所対応のIDが登録されるので、S906を始点行列生成処理という。
【0173】
以上によって、局所対応抽出部105は、スコア行列の各セルのスコアを算出しながら、局所対応を収集する。なお、各局所対応の始点、終点、及び局所対応最大スコアは、それぞれ始点配列B、終点配列E、及びスコア配列Sに記憶される。これによって、局所対応抽出部105によって抽出される局所対応は、始点が一致する局所対応内でスコアが最大の文字が終点となるので、代表性が保証される。
【0174】
図11は、本発明の第1の実施形態の局所対応抽出処理のフローチャートである。
【0175】
局所対応抽出処理は、図9に示す局所対応収集処理が実行された後に、局所対応抽出部105によって実行される処理であり、局所対応収集処理で収集された局所対応のうち局所対応最大スコアが所定値よりも大きい局所対応を抽出する処理である。
【0176】
まず、局所対応抽出部105は、図2及び図3に示すスコア閾値入力エリア206に入力されたスコア閾値の入力を受け付け、受け付けたスコア閾値をthresholdとして記憶する(S1101)。
【0177】
次に、局所対応抽出部105は、S1103の処理対象となる局所対応のIDを選択する(S1102)。ここで、S1102の処理で処理対象の局所対応のIDとして選択したIDを「i」とする。
【0178】
具体的には、局所対応抽出部105は、局所対応のIDが「0」から順に選択し、局所対応のIDが「a」の局所対応にS1103の処理が実行されるまで繰り返す。
【0179】
次に、局所対応抽出部105は、S1102の処理で選択された局所対応のIDによって特定される局所対応の局所対応最大スコアがスコア閾値よりも大きいか否かを判定する。
【0180】
具体的には、局所対応抽出部105は、S1102の処理で選択された局所対応のID「i」に対応するスコア配列S[i]に登録された局所対応最大スコアがスコア閾値よりも大きいか否かを判定する。
【0181】
S1102の処理で選択された局所対応のIDによって特定される局所対応の局所対応最大スコアがスコア閾値よりも大きいと判定された場合、局所対応抽出部105は、当該局所対応のIDによって特定される局所対応を局所対応として抽出する(S1103)。
【0182】
例えば、局所対応のID「i」によって特定される局所対応が局所対応として抽出され、当該抽出された局所対応の始点配列B[i]の座標が(r1、c1)であり、終点配列E[i]の座標が(r2、c2)である場合、一方の対象文字列の配列X[r1..r2]が示す部分文字列、及び他方の対象文字列の配列Y[c1..c2]が示す部分文字列が局所対応となる。
【0183】
したがって、局所対応抽出部105は局所対応最大スコアが所定値よりも大きい局所対応を抽出し、この抽出された局所対応が局所対応表示制御部106によって表示される。ここで、局所対応最大スコアが小さい局所対応は、始点の座標と終点の座標との距離が短く(つまり、局所対応の面積が小さく)、局所対応最大スコアが大きい局所対応は、始点の座標と終点の座標との距離が長い(つまり、局所対応の面積が大きい)。このため、図11に示す局所対応抽出処理が実行されることによって、局所対応表示制御部106は、あまりにも面積が小さい局所対応を図2に示す局所対応表示エリア211に表示しないので、局所対応表示エリア211の表示が煩雑になることを防止できる。
【0184】
なお、本実施形態では、局所対応抽出部105が、図11に示す局所対応抽出処理を実行したが、局所対応表示制御部106が実行してもよい。具体的には、局所対応抽出部105は、図9に示す局所対応収集処理で収集されたすべての局所対応を局所対応として抽出する。そして、局所対応表示制御部106は、抽出された局所対応に対して図11に示す局所対応抽出処理を実行して、局所対応最大スコアがスコア閾値よりも大きい局所対応のみを表示するようにしてもよい。
【0185】
(第2の実施形態)
以下、本発明の第2の実施形態を図12〜図15を用いて説明する。
【0186】
本実施形態は、網羅性を向上させるための処理(最大ギャップ長制約処理)を第1の実施形態の局所対応処理に追加した実施形態である。
【0187】
まず、第1実施形態による局所対応処理では所望の局所対応が抽出できない場合について説明する。図12は、二つの文字列間に本発明の第1の実施形態の局所対応処理を実行し、局所対応が抽出されない場合の説明図である。
【0188】
図12では、文字列C「aaaaa1234bbb」と文字列D「aaaaa1234bbb」との間で、第1の実施形態による局所対応処理によって局所対応を抽出する場合について説明する。
【0189】
この場合、文字列C及び文字列Dの間で共通する「aaaaa」及び「bbb」が局所対応として抽出されると直観的に想定される。
【0190】
しかしながら、図9に示す第1の実施形態による局所対応収集処理では、「aaaaa」しか局所対応として抽出されない。
【0191】
これについて以下に具体的に説明する。
【0192】
文字列C及び文字列D間で「aaaaa」部分が一致するため、5番目の「a」のスコアが「10」となる(1201)。この後、文字列Cの「1234」部分と文字列D「5678」部分とが一致しないので、スコアは「−2」ずつ減少し、文字列Cの「4」及び文字列Dの「8」に対応するスコアは「2」となる(1202)。そして、文字列C及び文字列Dで「bbb」部分が一致するため、3番目の「b」のスコアは「8」となる。
【0193】
ここで、前述したように、図9に示すS905では、処理対象のセルの最大スコアSmaxが0よりも大きい場合であって、当該処理対象のセルの遷移元のセルの局所対応のIDが「−1」である場合、当該処理対象のセルから新たな局所対応が開始することとなる。図9に示すS905では、処理対象のセルの最大スコアSmaxが0である場合、局所対応抽出部105は当該セルに対して何もしないため、始点行列の処理対象のセルには、初期値「−1」が登録されたままとなっている。
【0194】
このため、図9に示す局所対応収集処理では、処理対象のセルの最大スコアが0よりも大きい値で、遷移元のセルの最大スコアSmaxが0である場合にのみ、新たな局所対応が開始される。すなわち、セルの最大スコアがいったん0より大きくなると、最大スコアが0になるセルがあるまで同じ局所対応に属することになる。
【0195】
したがって、一度最大スコアが大きくなると、最大スコアが0になるまでの間に新たな局所対応が存在しても抽出できず、当該新たな局所対応は隠匿されてしまう。
【0196】
図12では、1201のスコア「10」が一番目の「b」までに「0」まで減衰しないため、「bbb」を新たな局所対応として抽出できない。
【0197】
図13は、酷似する二つの文書に第1の実施形態の局所対応処理を実行することによって抽出された局所対応の表示例である。
【0198】
局所対応処理によって抽出された局所対応は、局所対応表示制御部106によって、図2に示す局所対応表示エリア211に二次元マップ表示される。局所対応は、局所対応最大スコアが大きいほど大きな矩形で局所対応表示エリア211に表示される。
【0199】
図13に示す1301は、二つの文書の局所対応のうち最大の局所対応を示す。当該最大の局所対応の右下には局所対応が抽出されていない空白部分が存在する(1302)。最大の局所対応の局所対応最大スコアが大きいため、後方(右下部)のスコアが0に減衰しないため、この部分に局所対応があっても新たな局所対応として抽出されない。
【0200】
つまり、第1の実施形態の局所対応収集処理では、始点一致による枝刈りによって、局所対応の代表性を重視するあまり、局所対応が網羅的に抽出されないという問題が生ずる。
【0201】
そこで、本実施形態では、最大ギャップ長制約を行うことによって前述の問題を解決する。
【0202】
ここで、ギャップ長とは、局所対応の終点から不一致又は読み飛ばしが連続する文字数である。ここで、図12に示す文字列C「aaaaa1234bbb」及び文字列D「aaaaa5678bbb」の場合、5番目の「a」のスコアが「10」で局所対応最大スコアとなるため、5番目の「a」が局所対応の終点となる。そして、終点である5番目の「a」から「1234」と「5678」とが一致しないので、ギャップ長は4となる。
【0203】
最大ギャップ長制約は、局所対応のギャップ長が所定値(最大ギャップ長)以下であるとの制約である。図12では、ギャップ長の所定値が「3」に設定されていれば、「1234」と「5678」とが一致しないと判定された時点で、「aaaaa」の局所対応は、文字列Cでは「4」、文字列Dでは「8」以降まで継続し得ないため、当該個所で局所対応がリセットされる。このため、後方の「bbb」が新たな局所対応として抽出できる。
【0204】
図14を用いて、最大ギャップ長制約の詳細について説明する。
【0205】
図14は、本発明の第2の実施形態の局所対応収集処理の説明図である。
【0206】
最大ギャップ長制約を実現するためには、第1の実施形態の図9に示す局所対応収集処理に最大ギャップ長制約処理を追加するだけでよい。図14に示す処理のうち、図9に示す処理と同じ処理は同じ符号を付与し、説明を省略する。
【0207】
まず、局所対応抽出部105は、図2に示すギャップ入力ボックス205に入力された値を最大ギャップ長(gap)として取得する(1401)。
【0208】
そして、局所対応抽出部105は、S901〜S905を実行し、最大ギャップ長制約処理を実行する(1402)。
【0209】
局所対応抽出部105は、S905の処理で、処理対象のセルの最大スコアとして、処理対象のセルに対応する二つの文字が一致しない場合(図14に示すS905の4.2)のスコアが選択された場合にのみ、最大ギャップ長制約処理を実行する。
【0210】
まず、局所対応抽出部105は、図10に示す始点行列のうち遷移元のセルに登録された局所対応のIDを取得する。具体的には、局所対応抽出部105は、始点行列のセルのうち遷移元のセルの座標(r1、c1)に対応するセルに登録された局所対応のID(P[r1][c1])を取得する。なお、局所対応抽出部105は、取得した局所対応のIDをkとして記憶する。
【0211】
次に、局所対応抽出部105は、取得した局所対応のIDによって特定される局所対応の終点の座標(r2、c2)を取得する。具体的には、局所対応抽出部105は、終点配列Eのうち、取得した局所対応のID(k)に対応する終点配列E[k]に登録される終点の座標(r2、c2)を取得する。
【0212】
次に、局所対応抽出部105は、終点の座標(r2、c2)から処理対象のセルの座標(r、c)までのギャップ長を算出する。具体的には、局所対応抽出部105は、行方向のギャップ長をr−r2によって算出し、列方向のギャップ長をc−c2によって算出する。
【0213】
そして、局所対応抽出部105は、算出した行方向のギャップ長及び列方向のギャップ長の少なくとも一方が最大ギャップ長(gap)よりも大きい場合、新たな局所対応を設定し、S906に進む。
【0214】
具体的には、局所対応抽出部105は、始点行列のセルのうち処理対象のセルの座標(r、c)に対応するセルの局所対応ID(P[r][c])に新たな局所対応のID(a)を登録する。また、局所対応抽出部105は、処理対象のセルの座標(r、c)を始点配列B[a]及び終点配列E[a]に登録する。そして、局所対応抽出部105は、新たな局所対応のID(a)をインクリメントしておく。
【0215】
一方、局所対応抽出部105は、算出した行方向のギャップ長及び列方向のギャップ長が最大ギャップ長(gap)以下である場合、何もせずに、S906に進む。
【0216】
なお、図14に示す局所対応処理のS1402では、処理対象のセルの最大スコアとして、処理対象のセルに対応する二つの文字が一致しない場合のスコアが選択された場合にのみ、最大ギャップ長制約処理が実行されるとしたが、処理対象のセルの最大スコアとして読み飛ばしのスコアが選択された場合にも実行されてもよい。
【0217】
以上のように、本実施形態では、局所対応の終点から不一致又は読み飛ばしの文字が所定回数連続する場合には、新たな局所対応を設定するため、スコアの大きな局所対応が抽出されても、当該スコアの大きな局所対応の後の局所対応を網羅的に抽出できる。
【0218】
また、最大ギャップ長制約処理は、スコア行列の各セルのスコアを算出しながら実行されるため、従来のSmith−Waterman法とほぼ同じ計算量で実行できる。
【0219】
図15は、本発明の第2の実施形態の局所対応処理を実行することによって抽出された局所対応の表示例である。
【0220】
図15は、図13と同じ文書に対して図14に示す局所対応収集処理を実行した場合の局所対応の表示例である。
【0221】
図15では、二つの文書の局所対応のうち最大の局所対応(1301)の右下部の局所対応も抽出されている。
【0222】
以上によって、本実施形態では、代表的な局所対応の抽出の網羅性を向上させることができる。
【符号の説明】
【0223】
10 局所対応抽出装置
101 CPU
102 メモリ
103 キーボード・マウス
104 ディスプレイ
105 局所対応抽出部
106 局所対応表示制御部
107 通信部
11 ネットワーク
12 検索サーバ

【特許請求の範囲】
【請求項1】
任意の二つの文書間で類似する文字列である局所対応を抽出する局所対応抽出部を備える局所対応抽出装置において、
前記局所対応抽出部は、
前記二つの文書のうち一方の文書を構成する文字列を行とし、他方の文書を構成する文字列を列とし、前記行の文字列を構成する文字及び前記列の文字列を構成する文字に対応するセルに、当該セルに対応する二つの文字の類似度を示すスコアを登録して、第一行列を生成する第一行列生成部と、
前記第一行列のセルに対応するセルによって構成される第二行列のセルのうち前記第一行列生成部によってスコアが算出されたセルに対応するセルに、当該セルに対応する二つの文字が属する局所対応の識別子を登録して、前記第二行列を生成する第二行列生成部と、を有し、
前記第一行列のセルに登録されるスコアは、当該セルに対応する二つの文字の類似度が大きいほど大きい値を示し、
前記第一行列生成部は、
前記スコアの算出対象のセルに隣接するセルのうちすでにスコアが算出されたセルから当該算出対象のセルまでのパスに予め設定された値に基づいて前記算出対象のセルのスコアを算出し、
前記算出されたスコアのうち最大のスコアを前記算出対象のセルのスコアとして登録し、
前記最大のスコアが算出されたパスの起点となる前記セルを遷移元セルとして記憶し、
前記第二行列生成部は、
前記遷移元セルに対応する前記第二行列のセルがどの局所対応にも属しないことを示し、かつ、前記第一行列生成部によって算出された最大のスコアが所定値である場合、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録し、前記新たな局所対応の始点として前記算出対象のセルを記憶し、
前記遷移元セルに対応する前記第二行列のセルがいずれかの局所対応に属することを示し、かつ、前記第一行列生成部によって算出された最大のスコアが前記所定値よりも大きい場合、前記算出対象のセルに対応する前記第二行列のセルに、前記遷移元セルに対応する前記第二行列のセルに登録された局所対応の識別子を登録し、さらに、前記算出されたスコアが同じ局所対応に属するセルの最大のスコアよりも大きい場合、前記局所対応の終点として前記算出対象のセルを記憶することを特徴とする局所対応抽出装置。
【請求項2】
前記第一行列生成部は、
前記第一行列の最も上に位置する行を選択し、前記選択された行の左側の列のセルから順に前記スコアを算出し、
前記選択された行のすべてのセルの前記スコアを算出した場合、当該選択された行の下方に位置する行を選択し、
前記算出対象のセルの上に隣接するセルから当該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出する場合、前記上に隣接するセルのすでに計算されたスコアから第一所定値を減算して前記算出対象のスコアを算出し、
前記算出対象のセルの左に隣接するセルから当該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出する場合、前記左に隣接するセルのすでに計算されたスコアから第二所定値を減算して前記算出対象のスコアを算出し、
前記算出対象のセルの左上に隣接するセルから該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出する場合、当該算出対象のセルに対応する二つの文字が一致するか否かを判定し、
当該算出対象のセルに対応する二つの文字が一致すると判定された場合、前記左上に隣接するセルのすでに計算されたスコアから第三所定値を加算して前記算出対象のスコアを算出し、
当該算出対象のセルに対応する二つの文字が一致しないと判定された場合、前記左上に隣接するセルのすでに計算されたスコアから第四所定値を減算して前記算出対象のスコアを算出することを特徴とする請求項1に記載の局所対応抽出装置。
【請求項3】
前記第二行列生成部は、
前記二つの文字が一致しないセルが、当該セルが属する前記局所対応の前記終点となるセルから所定回数連続するか否かを判定し、
前記二つの文字が一致しないセルが前記終点となるセルから所定回数連続すると判定された場合、前記第一行列生成部によって算出された最大のスコアが所定値より大きくても、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録し、前記算出対象のセルに対応する二つの文字が前記新たな局所対応の始点となることを記憶することを特徴とする請求項1に記載の局所対応抽出装置。
【請求項4】
前記局所対応抽出部は、
前記第一行列生成部によって算出された最大のスコアが所定値よりも大きくても、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録するための前記所定回数をユーザによって入力された値に設定することを特徴とする請求項2に記載の局所対応抽出装置。
【請求項5】
前記局所対応抽出部によって抽出された局所対応の表示を制御する局所対応表示制御部を備え、
前記局所対応表示制御部は、
前記二つの文書のうち一方の文書を構成する文字列を行とし、他方の文書を構成する文字列を列とする2次元マップ上で、前記局所対応抽出部によって抽出された局所対応の始点と終点とを、矩形によって表示し、
前記行方向及び前記列方向の局所対応の分布の一覧を表示することを特徴とする請求項1に記載の局所対応抽出装置。
【請求項6】
前記局所対応表示制御部は、
前記行方向に存在する局所対応の最大スコアを加算することによって、前記行方向の局所対応の分布を算出し、
前記列方向に存在する局所対応の最大スコアを加算することによって、前記列方向の局所対応の分布を算出することを特徴とする請求項5に記載の局所対応抽出装置。
【請求項7】
前記局所対応表示制御部は、
前記行方向に存在する局所対応の数を加算することによって、前記行方向の局所対応の分布を算出し、
前記列方向に存在する局所対応の数を加算することによって、前記列方向の局所対応の分布を算出することを特徴とする請求項5に記載の局所対応抽出装置。
【請求項8】
任意の二つの文書間で類似する文字列である局所対応を抽出する局所対応抽出部を備える局所対応抽出方法において、
前記方法は、
前記二つの文書のうち一方の文書を構成する文字列を行とし、他方の文書を構成する文字列を列とし、前記行の文字列を構成する文字及び前記列の文字列を構成する文字に対応するセルに、当該セルに対応する二つの文字の類似度を示すスコアを登録して、第一行列を生成する第一行列生成ステップと、
前記第一行列のセルに対応するセルによって構成される第二行列のセルのうち前記第一行列生成部によってスコアが算出されたセルに対応するセルに、当該セルに対応する二つの文字が属する局所対応の識別子を登録して、前記第二行列を生成する第二行列生成ステップと、を含み、
前記第一行列のセルに登録されるスコアは、当該セルに対応する二つの文字の類似度が大きいほど大きい値を示し、
前記第一行列生成ステップは、
前記スコアの算出対象のセルに隣接するセルのうちすでにスコアが算出されたセルから当該算出対象のセルまでのパスに予め設定された値に基づいて前記算出対象のセルのスコアを算出するステップと、
前記算出されたスコアのうち最大のスコアを前記算出対象のセルのスコアとして登録するステップと、
前記最大のスコアが算出されたパスの起点となる前記セルを遷移元セルとして記憶するステップと、を含み、
前記第二行列生成ステップは、
前記遷移元セルに対応する前記第二行列のセルがどの局所対応にも属しないことを示し、かつ、前記第一行列生成部によって算出された最大のスコアが所定値である場合、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録し、前記算出対象のセルに対応する二つの文字が前記新たな局所対応の始点となることを記憶するステップと、
前記遷移元セルに対応する前記第二行列のセルがいずれかの局所対応に属することを示し、かつ、前記第一行列生成部によって算出された最大のスコアが前記所定値よりも大きい場合、前記算出対象のセルに対応する前記第二行列のセルに、前記遷移元セルに対応する前記第二行列のセルに登録された局所対応の識別子を登録し、さらに、前記算出されたスコアが同じ局所対応に属するセルの最大のスコアよりも大きい場合、前記算出対象のセルに対応する二つの文字が前記局所対応の終点となることを記憶するステップと、を含むことを特徴とする局所対応抽出方法。
【請求項9】
前記第一行列生成ステップは、
前記第一行列の最も上に位置する行を選択し、前記選択された行の左側の列のセルから順に前記スコアを算出するステップと、
前記選択された行のすべてのセルの前記スコアを算出した場合、当該選択された行の下方に位置する行を選択するステップと、を含み、
前記算出対象のセルの上に隣接するセルから当該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出するステップでは、前記上に隣接するセルのすでに計算されたスコアから第一所定値を減算して前記算出対象のスコアを算出し、
前記算出対象のセルの左に隣接するセルから当該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出するステップでは、前記左に隣接するセルのすでに計算されたスコアから第二所定値を減算して前記算出対象のスコアを算出し、
前記算出対象のセルの左上に隣接するセルから該算出対象のセルまでのパスに基づき前記算出対象のセルのスコアを算出するステップは、当該算出対象のセルに対応する二つの文字が一致するか否かを判定するステップを含み、
当該算出対象のセルに対応する二つの文字が一致すると判定された場合、前記左上に隣接するセルのすでに計算されたスコアから第三所定値を加算して前記算出対象のスコアを算出し、
当該算出対象のセルに対応する二つの文字が一致しないと判定された場合、前記左上に隣接するセルのすでに計算されたスコアから第四所定値を減算して前記算出対象のスコアを算出することを特徴とする請求項8に記載の局所対応抽出方法。
【請求項10】
前記第二行列生成ステップは、
前記二つの文字が一致しないセルが、当該セルが属する前記局所対応の前記終点となるセルから所定回数連続するか否かを判定するステップと、
前記二つの文字が一致しないセルが前記終点となるセルから所定回数連続すると判定された場合、前記第一行列生成部によって算出された最大のスコアが所定値よりも大きくても、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録し、前記算出対象のセルに対応する二つの文字が前記新たな局所対応の始点となることを記憶するステップと、を含むことを特徴とする請求項8に記載の局所対応抽出方法。
【請求項11】
前記方法は、前記第一行列生成ステップによって算出された最大のスコアが所定値よりも大きくても、前記算出対象のセルに対応する前記第二行列のセルに新たな局所対応の識別子を登録するための前記所定回数をユーザによって入力された値に設定するステップを含むことを特徴とする請求項8に記載の局所対応抽出方法。
【請求項12】
前記方法は、前記局所対応抽出ステップによって抽出された局所対応の表示を制御する局所対応表示制御ステップを含み、
前記局所対応表示制御ステップは、
前記二つの文書のうち一方の文書を構成する文字列を行とし、他方の文書を構成する文字列を列とする2次元マップ上で、前記局所対応抽出部によって抽出された局所対応の始点と終点とを、矩形によって表示するステップと、
前記行方向及び前記列方向の局所対応の分布の一覧を表示するステップと、を含むことを特徴とする請求項8に記載の局所対応抽出方法。
【請求項13】
前記局所対応表示制御ステップは、
前記行方向に存在する局所対応の最大スコアを加算することによって、前記行方向の局所対応の分布を算出するステップと、
前記列方向に存在する局所対応の最大スコアを加算することによって、前記列方向の局所対応の分布を算出するステップと、を含むことを特徴とする請求項12に記載の局所対応抽出方法。
【請求項14】
前記局所対応表示制御ステップは、
前記行方向に存在する局所対応の数を加算することによって、前記行方向の局所対応の分布を算出するステップと、
前記列方向に存在する局所対応の数を加算することによって、前記列方向の局所対応の分布を算出するステップと、を含むことを特徴とする請求項12に記載の局所対応抽出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図14】
image rotate

【図13】
image rotate

【図15】
image rotate