"第1の文書と第2の文書とからなる2つの文書を取得する文書取得手段と、前記2つの文書に含まれる複数の文字列のうち前記2つの文書における出現回数が予め定められた条件を満たす1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該条件を満たす1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する対応組生成手段と、それぞれの対応組において前記複数の第1の部分文書と前記第2の部分文書とを比較し、前記第1の文書と前記第2の文書との相違を示す情報を出力する文書相違出力手段と、を含むことを特徴とする文書処理装置。前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が同じとなる1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする請求項1に記載の文書処理装置。前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が最も少ない文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする請求項2に記載の文書処理装置。前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が最も少ない文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる1または複数の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする請求項2に記載の文書処理装置。第1の文書と第2の文書とからなる2つの文書を取得する文書取得手段、前記2つの文書に含まれる複数の文字列のうち前記2つの文書における出現回数が予め定められた条件を満たす1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該条件を満たす1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する対応組生成手段、および、前記複数の第1の部分文書のそれぞれと当該第1の部分文書に対応する前記第2の部分文書とを比較し、前記第1の文書と前記第2の文書との相違を示す情報を出力する文書相違出力手段、としてコンピュータを機能させるためのプログラム。本発明の目的は、文書を予め定められた文字列で分割したもの同士を比較する場合より、文書の特性に応じた文書の比較を行うことができる文書処理装置およびプログラムを提供することにある。請求項1に記載の発明は文書処理装置であって、第1の文書と第2の文書とからなる2つの文書を取得する文書取得手段と、前記2つの文書に含まれる複数の文字列のうち前記2つの文書における出現回数が予め定められた条件を満たす1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該条件を満たす1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する対応組生成手段と、それぞれの対応組において前記複数の第1の部分文書と前記第2の部分文書とを比較し、前記第1の文書と前記第2の文書との相違を示す情報を出力する文書相違出力手段と、を含むことを特徴とする。請求項2に記載の発明は請求項1に記載の発明において、前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が同じとなる1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする。請求項3に記載の発明は請求項2に記載の発明において、前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が最も少ない文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする。請求項4に記載の発明は請求項2に記載の発明において、前記対応組生成手段は、前記2つの文書に含まれる複数の文字列のうち、前記2つの文書における出現回数が最も少ない文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該1または複数の文字列に基づいて前記第2の文書が分割されてなる1または複数の部分文書のいずれかとを対応付けてなる複数の対応組を生成する、ことを特徴とする。請求項5に記載の発明は、第1の文書と第2の文書とからなる2つの文書を取得する文書取得手段、前記2つの文書に含まれる複数の文字列のうち前記2つの文書における出現回数が予め定められた条件を満たす1または複数の文字列に基づいて前記第1の文書が分割されてなる複数の第1の部分文書のいずれかと、当該条件を満たす1または複数の文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する対応組生成手段、および、前記複数の第1の部分文書のそれぞれと当該第1の部分文書に対応する前記第2の部分文書とを比較し、前記第1の文書と前記第2の文書との相違を示す情報を出力する文書相違出力手段、としてコンピュータを機能させるためのプログラムである。請求項1,5に記載の発明によれば、2つの文書を予め定められた文字列で分割したものを比較する場合より、文書の特性に応じた文書の比較を行うことができる。請求項2に記載の発明によれば、文書を予め定められた文字列で分割したものを比較する場合より、精度よく文書の比較を行うことができる。請求項3に記載の発明によれば、複数の文字列を含む2つの文書であって、その文字列のうち最も出現回数の少ないものにより区切られる部分が文書間で対応関係を有する文書に対して、本構成を有しない場合より精度よく比較を行うことができる。請求項4に記載の発明によれば、複数の文字列を含む2つの文書であって、その文字列のうち最も出現回数の多いものにより区切られる部分同士が対応関係を有する文書に対して、本構成を有しない場合より精度よく比較を行うことができる。以下、本発明の実施形態について図面に基づき詳細に説明する。図1は、本発明の実施形態に係る文書処理装置1の構成の一例を示す図である。同図に示すように、文書処理装置1は、CPU11と、記憶部12と、通信部13と、入出力部14とを含んでいる。文書処理装置1は例えばパーソナルコンピュータやサーバなどによって構成されている。CPU11は、記憶部12に格納されているプログラムに従って動作する。なお、上記プログラムは、CD-ROMやDVD-ROM等の情報記録媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。記憶部12は、RAMやROM等のメモリ素子およびハードディスクドライブ等によって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、各部から入力される情報や演算結果を格納する。通信部13は、他の装置と通信接続するための通信手段等で構成されている。通信部13は、CPU11の制御に基づいて、他の装置から受信した情報をCPU11や記憶部12に入力し、他の装置に情報を送信する。入出力部14は、モニタ等の表示出力手段と、キーボード、マウス等の入力手段とを制御する手段などによって構成されている。入出力部14は、CPU11の制御に基づいて、画像データ等をモニタ等に対して出力し、キーボードやマウスより操作者からの情報を取得する。図2は、本発明の実施形態に係る文書処理装置1が実現する機能を示す機能ブロック図である。文書処理装置1は機能的に、文書取得部51と、候補文字列抽出部52と、対応組生成部53と、文書相違出力部54と、を含む、対応組生成部53は機能的に、分割文字列選択部55と、文書分割部56と、部分文書対応部57と、を含む。これらの機能はCPU11が記憶部12に格納されたプログラムを実行し、通信部13および入出力部14を制御することによって実現される。図3は本発明の実施形態にかかる文書処理装置1の処理フローの一例を示す図である。以下では文書処理装置1の処理について処理フローも参照しつつ説明する。文書取得部51は、CPU11、記憶部12、通信部13、入出力部14を中心として実現される。文書取得部51は、第1の文書と第2の文書とからなる2つの文書を取得するステップS101。より具体的には、文書取得部51は記憶部12に記憶された情報、入出力部14を介して取得するキーボードの操作情報、またはネットワークを介して接続されたクライアントから受信した情報から、第1の文書と第2の文書とを取得する。第1の文書と第2の文書とはいったん記憶部12に格納され、以下に説明する比較の処理の対象となる。候補文字列抽出部52は、CPU11、記憶部12を中心として実現される。候補文字列抽出部52は、第1の文書と第2の文書とに含まれる文字列から、複数の候補文字列を抽出し、それらの出現回数を求めるステップS102。抽出される候補文字列は、元々第1の文書や第2の文書に含まれている文字列である。候補文字列やその出現回数の情報は記憶部12に格納する。候補文字列を抽出する方法としては、N-gramを作成する方法や、形態素解析により特定の品詞や句のキーワードを抽出する方法がある。N-gramを生成するには、候補文字列抽出部52はまず入力された文書に含まれかつ句読点や改行などで分割される部分文字列を特定する。さらにそのそれぞれの部分文字列を構成する文字のうちの連続するN文字からなる複数の文字列を、先頭の文字を順にずらして取得する。取得されたN文字の文字列のそれぞれがN-gramである。作成されたN-gramが候補文字列となる。図4は、ある文書のN-gramを作成することで抽出された候補文字列とその出現回数の一例を示す図である。図4は、神奈川県横浜市西区、神奈川県横浜市青葉区の文字列からなる文書からN-gramを作成し、Nが5の場合の例である。神奈川県横浜市が2度出現することを反映し、神奈川県横、奈川県横浜、川県横浜市の3つの候補文字列の出現回数が2となり、他の候補文字列の出現回数が1となっている。対応組生成部53はCPU11、記憶部12を中心として実現される。対応組生成部53は、それぞれが複数の第1の部分文書のいずれかと、複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する。第1の部分文書は、取得された2つの文書に含まれる複数の文字列のうち、その2つの文書における出現回数が予め定められた条件を満たす1または複数の文字列に基づいて第1の文書が分割されてなるものである。第2の部分文書は、この予め定められた条件を満たす1または複数の文字列に基づいて第2の文書が分割されてなるものである。この予め定められた条件は、その文字列の2つの文書における出現回数が同じとなることであってよい。また、2つの文書における出現回数が最も少ない、あるいは多いことを上述の条件に加えてもよい。以下では、第1の部分文書と第2の部分文書を総称して部分文書と呼ぶ。以下では対応組生成部53の処理の流れを説明する。上述の処理は、より具体的には分割文字列選択部55、文書分割部56および部分文書対応部57により行われる。分割文字列選択部55および文書分割部56は、CPU11および記憶部12を中心として実現される。分割文字列選択部55は抽出された候補文字列のうち、第1の文書および第2の文書における出現回数が予め定められた条件を満たす1または複数の候補文字列を分割文字列として選択し、また文書分割部56はその分割文字列に基づいて第1の文書および第2の文書を分割するステップS103。分割文字列を選択する条件は、第1の文書および第2の文書における出現回数が同じとなる候補文字列のうち出現回数が最も少ないものから順にいくつかを分割文字列とする条件以下少ない順と記すであってもよいし、第1の文書および第2の文書における出現回数が同じとなる候補文字列のうち出現回数が最も多いものから順にいくつかを分割文字列にする条件以下多い順と記すであってもよい。なお、少ない順や多い順以外の条件を用いてもよい。また、いくつの分割文字列を選択するかは、それらの分割文字列により分割された文書の部分の長さがある閾値より小さくなるか否かで決定してもよい。また、分割の実行回数がある閾値より多くなるか否かで決定してもよい。図5は分割文字列の選択および文書の分割における処理フローの一例を示す図である。以下では図5に示す処理フローに従い、分割文字列選択部55および文書分割部56の処理をより具体的に説明する。はじめに、分割文字列選択部55は、1つめの分割文字列を選択するステップS121。条件として少ない順を用いる場合は、第1の文書および第2の文書における出現回数が同じとなる候補文字列のうち出現回数が最も少ないものが1つめの分割文字列となるし、多い順を用いる場合は、上述の候補文字列のうち最も多いものが1つめの分割文字列となる。図6は、第1の文書と第2の文書の一例を示す図である。図6は、2つの文書が文字列aからfおよび文字列qによって構成されていることを示している。文字列aからfおよび文字列qはそれぞれ文章などに現れる部分文字列を示している。また、比較の結果相違として検出されるべき文字列の記号を太字かつ斜体で示し、また図6の例では文字列aからfおよび文字列qのそれぞれは候補文字列でもあるとしている。図7は、図7に示す文書における候補文字列の出現回数を示す図である。第1の文書における出現回数が第2の文書における出現回数と等しいものは文字列d、e、fであり、その中で文字列dの出現回数が最も多く、文字列fの出現回数が最も少ない。1つ目の分割文字列として多い順であれば文字列dが選ばれ、少ない順であれば文字列fが選ばれる。次に、文書分割部56は、分割文字列を用いて第1の文書を分割するステップS122。第1の文書が分割文字列により分割されたものが第1の部分文書である。本実施形態の例では、第1の文書を分割文字列の前後で分割する。この場合、第1の文書には、分割文字列からなる部分文書と、両端の文字列が分割文字列または文書の両端先頭または末尾に隣接する部分文書とが含まれる。なお、本実施形態の例では文書を分割する際には、分割文字列の先頭文字の直前と最終文字の直後とで分割する。分割をする箇所は必ずしも分割文字列の直前や直後でなくてよいが、分割文字列の直前や直後で分割する方が後述の対応付けがより確実に行われる。本実施形態の例では分割文字列が文書の両端に無い場合は、1回の分割で2つの部分文書が生成される。次に、分割された部分文書の長さが閾値以下か確認しステップS123、閾値を超えていればステップS123のN、分割文字列選択部55は次の分割文字列を選択するステップS124。次の分割文字列は、例えば条件が少ない順であれば、出現回数が同じとなる候補文字列のうち出現回数が次に少ない候補文字列が分割文字列として選択される。分割文字列選択部55が次の分割文字列を選択すると、ステップS122から処理を繰り返す。なお、2番目以降の分割文字列を選択する際には、分割され分割文字列を含まない第1の部分文書のそれぞれの中での候補文字列の出現回数を計算し、その結果を用いてもよい。なお、2回目以降のステップS122の処理では、文書分割部56は新たに選択された分割文字列を用いて分割された部分文書をさらに分割する。こうすると、ここまでに選択された分割文字列によって第1の文書が分割される。ステップS123において部分文書の長さが閾値以下であればステップS123のY、これまでに選択された部分文字列を用いて第2の文書を分割するステップS125。分割文字列を用いて第2の文書を分割する方法は第1の文書を分割する方法と同じである。なお、判定に用いられる部分文書の長さは、複数ある部分文書に含まれる文字または文字列の数の最大値であってもよいし、それらの部分文書に含まれる文字または文字列の数の平均であってもよい。また、上記の説明では第1の文書の分割が終わってから第2の文書の分割をおこなっているが、同時並行に分割を行ってもよい。図8は、第1の文書および第2の文書を分割する過程の一例を示す図である。図8は、少ない順の場合に、図6に示す第1の文書および第2の文書を分割する場合の例である。ここで、部分文字列の長さが閾値以上とは、分割された文書の文字列の数の最大値が7以上であるとする。文書分割部56は、まず出現回数が最も少ない文字列fによって第1の文書を分割する。その結果分割された文書図8の第1の部分文書201,202および文字列fからなる第1の部分文書に含まれる文字列の数の最大値は分割途中における第1の部分文書201の12であるので、出現回数が2番目に少ない文字列eによってさらに第1の文書を分割する。その結果分割された文書第1の部分文書211から214と文字列e,fからなる第1の部分文書に含まれる文字列の数の最大値は6であるので、文書分割部56はこれ以上の分割は行わない。次に文書分割部56は分割文字列である文字列fと文字列eとを用いて第2の文書を分割し、図8の第2の部分文書221から224と文字列e,fからなる第2の部分文書とを得る。図9は、第1の文書および第2の文書を分割する過程の一例を示す図である。図9は、多い順の場合に、図6に示す第1の文書および第2の文書を分割する場合の例である。文書分割部56は、まず出現回数が最も多い文字列dによって第1の文書を分割する。その結果分割された文書図9の第1の部分文書231から234と文字列dからなる第1の部分文書に含まれる文字列の数の最大値は第1の部分文書232の5であるので、文書分割部56はこれ以上の分割は行わない。次に文書分割部56は分割文字列である文字列dを用いて第2の文書を分割し、図9の第2の部分文書241から244と文字列dからなる第2の部分文書とを得る。部分文書対応部57は、CPU11および記憶部12を中心として実現される。部分文書対応部57は、複数の第1の部分文書と複数の第2の部分文書とを対応付けるステップS104。より具体的には、部分文書対応部57は、それぞれが、複数の第1の部分文書のいずれかと、複数の第2の部分文書のいずれかとを対応付けてなる複数の対応組を生成する。本実施形態の例における第1の部分文書と第2の部分文書の対応付けでは、はじめに部分文書対応部57は、分割文字列の対応付けを行う。この対応付けは、分割文字列ごとに行い、対応付けの順番は、分割文字列が選択された順である。図10および図11は、第1の部分文書と第2の部分文書とを対応付ける過程の一例を示す図である。図10は、図8の例のように分割された場合の分割文字列の対応付けを示す。部分文書対応部57は、はじめに、1番目に選択された分割文字列f同士を対応付け、次に、2番目に選択された分割文字列同士を対応付ける。分割文字列も部分文書の一種である。分割文字列同士の対応付けの次に、部分文書対応部57は分割文字列以外の部分文書の対応付け、つまり分割文字列により区切られた第1の部分文書と第2の部分文書との対応付けを行う。部分文書対応部57は、第1の文書においてある隣り合う分割文字列に挟まれる第1の部分文書に対応付けられる第2の部分文書が、第2の文書においてその隣り合う分割文字列に対応付けられた分割文字列に挟まれるように対応付けを行う。対応付けられた第1の部分文書と第2の部分文書との組が対応組である。ここで、部分文書対応部57は第1の部分文書と第2の部分文書とを対応付ける際に、既に対応付いているものの対応付けと交差しないようにその対応付けを行う。より詳細にいえば、既に第1の部分文書Aとすると第2の部分文書Bとするとが対応付けられているとして、Aの前にある第1の部分文書と、Bの後にある第2の部分文書とが対応せず、またAの後にある第1の部分文書とBの前にある第2の部分文書とが対応しないように第1の部分文書と第2の部分文書とを対応付ける。もし分割文字列の対応付けで交差が生じた場合は、その分割文字列同士の対応付けを行わなくてもよい。そうすると、第1の文書における分割文字列の現れる順番と、第2の文書における分割文字列の現れる順番とが同じになり、第1の部分文書と第2の部分文書との対応関係は、その部分文書が文書内で現れる順番のみで定まる。なお、分割文字列同士の対応付けを行わなければ、その分割文字列により分割を行わないことと等価となる。また部分文書対応部57で、出現回数が第1の文書と第2の文書とで異なる分割文字列の対応付けを行わなければ、分割文字列選択部55で出現回数が同じであるかを条件にしなくてもよい。それでも2つの文書における出現回数が同じとなる分割文字列に基づいて第1の文書が分割されてなる複数の第1の部分文書と、その分割文字列に基づいて前記第2の文書が分割されてなる複数の第2の部分文書とを対応付ける結果となる。文書相違出力部54は、CPU11、記憶部12を中心として実現される。文書相違出力部54はそれぞれの対応組において前記複数の第1の部分文書と前記第2の部分文書とを比較し、第1の文書と第2の文書との相違を示す情報を記憶部12などに出力する。処理について以下で説明する。ここで、互いに対応付けられた第1の部分文書と第2の部分文書とである対応組は、文書内で現れる順に並んでいるとする。文書相違出力部54は、その並び順に従い、1つの対応組を取得するステップS105。そして、その対応組において対応付けられた第1の部分文書と第2の部分文書を比較するステップS106。第1の部分文書と第2の部分文書との比較は、2つの文字列間の編集距離を求める動的計画法などの公知のアルゴリズムにより行う。文書相違出力部54はこのアルゴリズムにより第1の部分文書と第2の部分文書との相違を求める。次に取得された対応付けられた部分文書が最後のものでなければステップS107のNステップS105から繰返し、最後のものであればステップS107のY比較結果を出力するステップS108。出現回数が同じとなる分割文字列に基づいて第1の文書と第2の文書とを分割すると、分割により生じる第1の部分文書の数と第2の部分文書の数とが同じとなり、本来対応しない部分文書が別の部分文書と対応付けられることに起因する精度の低下がなくなる。よって、予め定められた文字列で文書を分割する場合より精度が向上する。また、取得する文書の構成が定まっている場合は、出現回数が少ない文字列が現れる位置の変化は限られる。よって、その文字列で分割する方が他の特徴的でない文字列で分割するより対応の誤りが少なくなる。一方、取得する文書の章立てなど決まった位置で同じ文字列が使われる場合はその文字列で分割する方が他の特徴的でない文字列で分割するより対応の誤りが少なくなる。"