(57)【要約】  本発明による同等判定システム（１０）は、特定手段（１１）と、判定手段（１２）とを備える。特定手段（１１）は、文書データベースにおけるそれぞれの電子文書から人手によって修正されにくい部分を特定する。判定手段（１２）は、特定手段（１１）により特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する。これにより、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を文書データベースから高速に特定することができる。
2009048149.tif 000002
【特許請求の範囲】
【請求項１】
電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定する特定手段と、
前記特定手段により特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する判定手段と
を備える同等判定システム。
【請求項２】
前記特定手段により特定された部分のハッシュ値を算出するハッシュ値算出手段をさらに備え、
前記判定手段は、前記ハッシュ値算出手段により算出されたハッシュ値を用いて、前記特定手段により特定された部分が一致するか否かを判定する
請求項１記載の同等判定システム。
【請求項３】
前記特定手段により特定された部分から特徴的な文字列を抽出する特徴語抽出手段をさらに備え、
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴的な文字列に基づいてハッシュ値を算出する
請求項２記載の同等判定システム。
【請求項４】
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴的な文字列それぞれに対してハッシュ値を算出し、
前記判定手段は、前記ハッシュ値算出手段により算出されたハッシュ値が所定の基準に合致する場合に、前記特定手段により特定された部分が一致していると判定する
請求項３記載の同等判定システム。
【請求項５】
前記特定手段は、電子文書中の文字、図形および式を示すオブジェクトが密集している部分を修正されにくい部分として特定する請求項１記載の同等判定システム。
【請求項６】
前記特定手段は、オブジェクトの面積とオブジェクト中に含まれる文字列の量および飾り情報に基づいてオブジェクトの密集度を算出する請求項５記載の同等判定システム。
【請求項７】
前記特定手段は、オブジェクトの密集度に周辺オブジェクトの密集度の距離に反比例する値を加算して前記オブジェクトの密集度を算出する請求項６記載の同等判定システム。
【請求項８】
電子文書が蓄積されているデータベースから電子文書を抽出し、電子文書を構成するオブジェクトを抽出するオブジェクト抽出手段をさらに備え、
前記特定手段は、前記オブジェクト抽出手段により抽出されたオブジェクトの修正されにくさをオブジェクトの密度に基づいて算出し、その結果に基づいて修正されにくい部分を特定し、
前記特徴語抽出手段は、前記特定手段により特定された少なくとも１つの修正されにくいオブジェクトから、特徴的な文字列として少なくとも１つの特徴語を抽出し、
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴語を連結した文字列のハッシュ値を算出し、対応する電子文書の識別情報をハッシュテーブルに登録し、
前記判定手段は、ハッシュ値が衝突したことに基づいて、対応する電子文書が同等の文書であると判断する
請求項３記載の同等判定システム。
【請求項９】
前記オブジェクト抽出手段は、電子文書を構成する部分文書単位でオブジェクトを抽出する請求項８記載の同等判定システム。
【請求項１０】
前記特定手段は、オブジェクトの修正されにくさをオブジェクトの密度および周辺オブジェクトの密度に基づいて算出する請求項８記載の同等判定システム。
【請求項１１】
特定手段により特定された少なくとも１つの修正されにくいオブジェクトから文字列を抽出する文字列抽出手段をさらに備え、
前記ハッシュ値算出手段は、前記文字列抽出手段により抽出された文字列のハッシュ値を算出し、対応する電子文書および部分文書のいずれかの識別情報をハッシュテーブルに登録する
請求項８記載の同等判定システム。
【請求項１２】
前記ハッシュ値算出手段は、特徴語毎にハッシュ値を算出し、対応する電子文書および部分文書のいずれかの識別情報をハッシュテーブルに登録し、
前記判定手段は、前記ハッシュ値算出手段により算出された特徴語毎のハッシュ値のうち、所定の数以上のハッシュ値が衝突したことに基づいて、対応する電子文書が同等の文書であると判断する
請求項８記載の同等判定システム。
【請求項１３】
前記特定手段は、オブジェクトの面積とオブジェクト中に含まれる文字列の量および飾り情報に基づいてオブジェクトの密度を算出する請求項８記載の同等判定システム。
【請求項１４】
前記特定手段は、周辺オブジェクトの密度を加味してオブジェクトの密度を再計算する請求項８記載の同等判定システム。
【請求項１５】
電子文書および部分文書のいずれかから全文字列を抽出する文字列抽出手段と、
前記文字列抽出手段により抽出された全文字列のハッシュ値を算出し、対応する電子文書の識別情報を全文用のハッシュテーブルに登録する全文用ハッシュ値算出手段と、
ハッシュ値が衝突したことに基づいて、対応する電子文書が同一文書の可能性があると判断する可能性判断手段と
をさらに備え、
前記判定手段は、前記可能性判断手段により同一文書の可能性があると判断された対応する電子文書が、前記特定手段により特定された修正されにくいオブジェクトから算出されたハッシュ値に基づいて同等の文書であると判断された場合に、その対応する電子文書を同一文書であると判断する
請求項８記載の同等判定システム。
【請求項１６】
ハッシュ値算出手段は、特徴語用のハッシュテーブルと全文用のハッシュテーブルとを同一のハッシュテーブルとして、電子文書の識別情報を登録する請求項１５記載の同等判定システム。
【請求項１７】
電子文書が蓄積されているデータベースから電子文書を抽出し、この電子文書から全文字列を抽出する文字列抽出手段と、
前記文字列抽出手段により抽出された全文字列のハッシュ値を算出し、対応する電子文書の識別情報をハッシュテーブルに登録するハッシュ値算出手段と、
ハッシュ値が衝突したことに基づいて、対応する電子文書が同一文書であると判断する判定手段と
を備える同等判定システム。
【請求項１８】
前記文字列抽出手段は、電子文書を構成する部分文書単位で文字列を抽出する請求項１７記載の同等判定システム。
【請求項１９】
電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定するステップと、
特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定するステップと
を備える同等判定方法。
【請求項２０】
特定された部分のハッシュ値を算出するステップをさらに備え、
判定するステップは、算出されたハッシュ値を用いて、特定された部分が一致するか否かを判定するステップを備える
請求項１９記載の同等判定方法。
【請求項２１】
コンピュータに、
電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定する処理と、
特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する処理と
を実行させるためのプログラム。
【請求項２２】
コンピュータに、
特定された部分のハッシュ値を算出する処理をさらに実行させ、
判定する処理において、算出されたハッシュ値を用いて、特定された部分が一致するか否かを判定する処理を実行させるための請求項２１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を文書データベースから高速に特定する電子文書の同等判定システムおよび同等判定方法に関する。
【背景技術】
【０００２】
組織内には様々な電子文書が存在する。例えば、ワープロ文書、プレゼンテーション文書、ＤＴＰ文書、ＣＡＤ文書、表計算文書等である。電子文書が蓄積されたデータベースから、閲覧したい電子文書を検索する際、類似した電子文書が多数検索結果に現れることは検索の効率上好ましくない。組織内では、あるメンバが作成した電子文書を別のメンバがコピーした上で修正したり、メンバ自身が修正の度に別文書にしたり、あるメンバが作成した電子文書が電子メール等で多数のメンバに配布されたりすること等により、同一またはほぼ同一の電子文書が存在する。そのため、同一またはほぼ同一の電子文書が検索結果に現れることになる。同一またはほぼ同一の電子文書群を特定する方法には、類似文書検出や酷似文書検出と呼ばれる従来技術がある。【０００３】
最も一般的な類似文書検出方法には、文献１（"A Vector Space Model for Automatic Indexing"，Communications of the ACM，１９７５年１１月，Vol.18，No.11，pp.613-620）のベクトル空間モデルがある。文献１に記載された方法は、ある文書に出現する単語およびその頻度をベクトルとし、文書毎のベクトルの内積によって類似度を求めるものである。しかしながら、ベクトル空間モデルには、第１に、抽出する単語が多くなるとベクトルが巨大となりメモリが大量に必要になり、第２に、抽出する単語が多くなると内積の計算に時間がかかってしまう、という大きな問題がある。【０００４】
これらの問題は、抽出する単語を絞り込むことである程度解決することができる。絞り込んで抽出する単語を特徴語と呼ぶ。特徴語の抽出方法には様々な関連技術がある。もっとも有名な方法がｔｆ＊ｉｄｆである。ｔｆ＊ｉｄｆは一般的な特徴語抽出方法であるため、説明は割愛する。その他に、例えば文献２（特開２００５−２２２４８０号）および文献３（「KeyGraph：語の共起グラフの分割・統合によるキーワード抽出」，電子情報通信学会論文誌，１９９９年２月，Vol.J82-D-I，No.2，pp.391-400）に開示されているように、文書中に頻出して共起する単語を特徴語とする関連技術などがある。また、例えば文献４（特開２００３−１６０９２号）に開示されているように、複合語を特徴語とする際の関連技術も多数ある。【０００５】
また、類似文書検索の別の方法として、文献５（特開平９−１９８４０９号）に記載された方法がある。文献５に記載された方法では、電子文書中の文字列から特定品詞の単語を抽出し、それらの単語の出現順序と品詞を記録し、文書または文章単位で比較することで類似文書または類似文章を特定している。文献５に記載された技術は、主に著作権法違反となる違法コピーを検出することを主な目的としているため、ベクトル空間モデルより厳密な類似性を判定している。【０００６】
また、別の類似文書検索方法として、文献６（特開２００６−９２３４４号）に記載された方法がある。文献６に記載された方法では、各種電子文書（ワープロ、プレゼンテーション、ＤＴＰ、ＣＡＤ等）を同一フォーマットの画像に変換し、画素単位で比較することで、同一文書の判定や差分の検出を行っている。この技術は、文字列だけではなく、図形や画像までも対象として同一判定を行うことができることが最大の特徴となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述の類似文書検出や酷似文書検出と呼ばれる関連技術では、組織内の様々な電子文書において、同一またはほぼ同一の文書を特定して検索結果から重複を除去することは難しい。以降、同一またはほぼ同一の文書を同等文書と呼ぶこととする。【０００８】
そもそも、前述の関連技術は、ある文書と別の文書との類似度を計算することのみを目的としているため、多数の文書集合中から類似する文書群を特定することは計算量的に困難である。例えば、ベクトル空間モデルによってある２つの文書の類似度を計算する時間が１ミリ秒（１０００分の１秒）だとする。文書集合中の任意の２文書間の類似度を全て計算するには、ｎ＊（ｎ−１）／２回の計算が必要なため、文書集合に１００万個の文書が蓄積されている場合、すべての計算には１５年以上の時間がかかる。【０００９】
また、文献６に記載されている技術を除く関連技術では、同等文書のみを正確に特定することは難しい。なぜなら、同等文書は、文書中のある語彙を一括して変更したり、言い回しを変更したりして作成されることが多いため、特徴語のセットが大きく変わったり、特に重要な特徴語が変わったりすることが多い。そのため、類似度が大きく下がる場合があるからである。【００１０】
すなわち、文献１〜６に記載された技術には、高速に同等文書を特定しなければならないという課題や、同等文書のみを正確に特定しなければならないという課題がある。【００１１】
そこで、本発明は、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を文書データベースから高速に特定する電子文書の同等判定システムおよび同等判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明による同等判定システムは、電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定する特定手段と、前記特定手段により特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する判定手段とを備えている。【００１３】
本発明による同等判定システムは、電子文書が蓄積されているデータベースから電子文書を抽出し、この電子文書から全文字列を抽出する文字列抽出手段と、前記文字列抽出手段により抽出された全文字列のハッシュ値を算出し、対応する電子文書の識別情報をハッシュテーブルに登録するハッシュ値算出手段と、ハッシュ値が衝突したことに基づいて、対応する電子文書が同一文書であると判断する判定手段とを備えている。【００１４】
本発明による同等判定方法は、電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定するステップと、特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定するステップとを備えている。
【発明の効果】
【００１５】
本発明によれば、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を文書データベースから高速に特定することができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明による同等判定システムの最小の構成例を示すブロック図である。
【図２】図２は、第１の実施形態の同等判定システムの構成例を示すブロック図である。
【図３】図３は、文書ＤＢに蓄積されているプレゼンテーション文書の構成例を示す説明図である。
【図４】図４は、スライドとオブジェクトの関係を示す説明図である。
【図５】図５は、オブジェクト抽出部の処理の例を示すフローチャートである。
【図６】図６は、スライドを単位正方形で分割した場合の例を示す説明図である。
【図７】図７は、ステーブルオブジェクト特定部の処理の例を示すフローチャートである。
【図８】図８は、特徴語抽出部の処理の例を示すフローチャートである。
【図９】図９は、ハッシュ値計算部の処理の例を示すフローチャートである。
【図１０】図１０は、ステーブル文字列インデックスの登録例を示す説明図である。
【図１１】図１１は、ハッシュ値計算部の処理の例を示すフローチャートである。
【図１２】図１２は、ステーブル文字列インデックスの登録例を示す説明図である。
【図１３】図１３は、第２の実施形態の同等判定システムの構成例を示すブロック図である。
【図１４】図１４は、１つのインデックスを用いる場合の同等判定システムの構成例を示すブロック図である。
【発明を実施するための最良の形態】
【００１７】
まず、本発明の概要について図面を参照して説明する。図１は、本発明による同等判定システムの最小の構成例を示すブロック図である。図１に示す同等判定システム１０は、特定部１１と、判定部１２とを備える。同等判定システム１０は、電子文書の集合である記憶部２０と接続されている。【００１８】
特定部１１は、電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定する。【００１９】
判定部１２は、特定部１１が特定した部分が一致するか否かを判定して、電子文書の集合から、類似する複数の電子文書を特定する。【００２０】
図１に示すように構成すれば、電子文書中の修正がされにくい部分を特定し、特定した修正がされにくい部分が一致する文書を、類似する同等の文書（以下、同等文書と表記する場合がある。）と判定するため、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を高速に特定することができる。【００２１】
実施形態１．
本発明の第１の実施形態を図面を参照して説明する。図２は、第１の実施形態の同等判定システムの構成例を示すブロック図である。図２に示す同等判定システム１００は、オブジェクト抽出部１１０と、ステーブルオブジェクト特定部１２０と、特徴語抽出部１３０と、ハッシュ値計算部１４０と、ステーブル文字列インデックス１５０とを備える。同等判定システム１００は、電子文書が蓄積された文書ＤＢ（データベース）９００と接続されている。【００２２】
オブジェクト抽出部１１０は、文書ＤＢ９００が記憶する電子文書を構成するオブジェクトを抽出する。【００２３】
ステーブルオブジェクト特定部１２０は、複数のオブジェクトから引用された際にも修正されにくいステーブルオブジェクトを選択する。【００２４】
特徴語抽出部１３０は、少なくとも１つのステーブルオブジェクトの中から、特徴的な文字列である少なくとも１つの特徴語を抽出する。【００２５】
ハッシュ値計算部１４０は、特徴語からハッシュ値を求め、求めたハッシュ値を使ってステーブル文字列インデックス１５０にスライドのＩＤ（識別情報）を登録する。ハッシュ値計算部１４０は、同じハッシュ値を持つスライドが見つかった場合、そのスライドを同等スライドとして特定する。なお、ハッシュ値計算部１４０は、図１における判定部１２の機能を有する。【００２６】
ステーブル文字列インデックス１５０は、ハッシュ値と電子文書のペアを登録したインデックスを記憶する。【００２７】
なお、同等判定システム１００は、例えばコンピュータのプログラムとして実現され、ステーブル文字列インデックス１５０は、例えば記憶装置によって実現される。なお、同等判定システム１００を実現するプログラムは、インターネットなどの電気通信回線を通じて提供することもできるし、光ディスクや磁気ディスクなどの機械読み取り可能な記録媒体に格納して提供することもできる。【００２８】
文書ＤＢ９００は、同等判定システム１００と同じコンピュータ上にあっても良いし、ネットワークを介した別のコンピュータ上にあっても良い。また、文書ＤＢ９００は、１つのデータベースである必要はなく、複数のデータベースに分散して存在していても構わない。【００２９】
次に、図２を参照して、本発明の第１の実施形態の動作について説明する。【００３０】
文書ＤＢ９００には、企業や組織の構成員が作成した電子文書またはそれらのコピーが蓄積されている。電子文書は、企業や組織の全ての電子文書であることが望ましいが、一部でも構わない。【００３１】
電子文書の収集の方法は制限しないが、同一の保存箇所から複数回同一電子文書を収集して文書ＤＢ９００に追加登録しないことが望ましい。換言すると、あるローカルＰＣのあるフォルダ上にある電子文書を、文書ＤＢ９００に違う文書として登録しないことが望ましい、ということである。逆に、その電子文書をあるユーザが同じローカルＰＣの同じフォルダ上でコピーして別のファイル名を付けた場合や、その電子文書をあるユーザが別のローカルＰＣのあるフォルダに同じファイル名でコピーした場合等は、違う文書として文書ＤＢ９００に追加登録しても構わない。【００３２】
また、文書ＤＢ９００は、電子文書のＩＤ、データ本体およびファイル名等が、データベーステーブルのレコード等の形で蓄積されているものとする。また、電子文書の種類によっては、何らかの意味のある部分から構成されており、それらの部分文書に対しても一意に識別可能なＩＤが付与されており、部分文書単位でレコードが構成されていても良い。部分文書は、例えば、ワープロ文書の場合は章や節、プレゼンテーション文書の場合はスライド、表計算文書の場合はシート単位の文書である。電子文書単位または部分文書単位のレコードには、同等文書のＩＤを記録するフィールドがあるものとする。以下の説明では、電子文書としてプレゼンテーション文書を例として説明するが、ワープロ文書やＤＴＰ文書やＣＡＤ文書や表計算文書等いずれでも構わない。【００３３】
次に、同等判定システム１００の動作について説明する。同等判定システム１００は、文書ＤＢ９００に蓄積されている電子文書または部分文書を１つずつ取り出して処理を行なう。ここでは、部分文書の場合について説明する。【００３４】
同等判定システム１００は、部分文書をどのような順番で取り出して処理を行なっても構わない。同等判定システム１００は、文書ＤＢ９００に蓄積されている部分文書全てについて以下の処理を行い、全ての部分文書について処理が完了すると終了する。【００３５】
なお、同等判定システム１００の処理中に、文書ＤＢ９００に新しい電子文書が追加されたり、文書ＤＢ９００に含まれている電子文書が更新されたりした場合、同等判定システム１００は、追加更新された電子文書についても処理を行う。【００３６】
オブジェクト抽出部１１０は、文書ＤＢ９００から、プレゼンテーション文書の部分文書であるスライドに含まれる構成要素のオブジェクトをスライド毎に抽出する。プレゼンテーション文書の場合のオブジェクトとは、テキストボックスや各種図形である。なお、オブジェクトとは、一般に、電子文書中の文字、図形、式を指す。【００３７】
ステーブルオブジェクト特定部１２０は、スライドに含まれるオブジェクトの中から引用された後も修正されにくいと考えられるオブジェクト（ステーブルオブジェクトと呼ぶ）を別途指定された個数特定する。以降の説明では、例えば３個と指定されたものとする。ここで指定される個数が「全部」の場合、ステーブルオブジェクト特定部１２０は、全てのオブジェクトを選択することになる。この場合、本発明による同等判定システム１００は、引用された後、軽微な修正、例えば装飾やオブジェクトの配置の変更、のみが行なわれた同等文書を特定することになる。指定数は本発明の利用者が適宜設定すれば良い。ステーブルオブジェクト特定部１２０は、特定した３個のステーブルオブジェクトを特徴語抽出部１３０に通知する。【００３８】
特徴語抽出部１３０は、ステーブルオブジェクト特定部１２０が特定したステーブルオブジェクトのテキストから特徴語を抽出する。特徴語抽出部１３０は、１個以上の別途指定された個数の特徴語を抽出する。特徴語は、自立語でも構わないし、第１の具体例で説明するような文字種で区切られた部分文字列でも構わない。特徴語が自立語である場合、特徴語抽出部１３０は、テキストを形態素解析によって分解することになる。ここで指定される個数が「全部」の場合、特徴語抽出部１３０は、自立語全てもしくはテキスト全てを抽出する。以降の説明では、例えば２個と指定されたものとする。ステーブルオブジェクト特定部１２０が特定するオブジェクトの個数が３個の場合、特徴語抽出部１３０が抽出する特徴語の個数は計６個（３×２）となる。また、特徴語はテキスト中での出現順序を保存していることが望ましい。【００３９】
ハッシュ値計算部１４０は、スライド毎の特徴語を連結してテキストを作成し、作成したテキストのハッシュ値を求め、求めたハッシュ値を使ってステーブル文字列インデックス１５０にスライドのＩＤを登録する。【００４０】
登録しようとするスライドのハッシュ値に既に別のスライドが登録されていた場合、ハッシュ値計算部１４０は、現在処理中のスライドおよび既に登録されているスライド双方について文書ＤＢ９００の該当レコードに対応するスライドＩＤを登録する。すなわち、現在処理中のスライドのＩＤがＳ００３０で、登録されているスライドのＩＤがＳ００１５の場合、文書ＤＢ９００のＳ００３０のレコードの同等文書フィールドにＳ００１５を追記し、Ｓ００１５のレコードの同等文書フィールドにＳ００３０をそれぞれ追記する。ハッシュ値計算部１４０は、同じハッシュ値を持つスライドが見つかった場合、そのスライドを同等スライドとして特定する。【００４１】
登録しようとするスライドのハッシュ値に別のスライドが登録されていない場合は、そのまま登録しようとするスライドＩＤをステーブル文字列インデックス１５０に登録する。すべての部分文書について同等判定システム１００の処理が完了したら終了する。【００４２】
次に、第１の実施形態の効果について説明する。第１の実施形態によれば、電子文書の一部または全部を引用した上で若干の修正を施した電子文書を文書データベースから高速に特定することができる、という効果がある。その理由は、電子文書中の修正がされにくい箇所を特定し、特定した箇所に含まれる特徴語をハッシュ化して登録し、ハッシュ値が重複（衝突）することで同等文書を特定するためである。【００４３】
なお、ハッシュ値計算部１４０は、特徴語毎のハッシュ値のうち、所定の数以上のハッシュ値が重複（衝突）したことに基づいて、対応する電子文書が同等の文書であると判断するようにしてもよい。【００４４】
次に、具体例を用いて第１の実施形態の動作を説明する。図２を参照して、第１の具体例を説明する。【００４５】
文書ＤＢ９００に蓄積されている電子文書としてプレゼンテーション文書を例にして説明する。なお、電子文書は企業や組織で用いられている電子化されている文書ならば何でも構わない。例えば、プレゼンテーション文書の他に、ワープロ文書やＤＴＰ文書やＣＡＤ文書や表計算文書等がある。【００４６】
図３は、文書ＤＢ９００に蓄積されているプレゼンテーション文書の構成例を示す説明図である。すなわち、電子文書単位でＩＤが付与され（例えば、文書９１１）、その文書を構成する各スライド単位にもＩＤが付与される（例えば、スライド９２１）。また、各スライドはオブジェクトと呼ぶ部品から構成されている（例えば、オブジェクト９３１）。【００４７】
第１の具体例では、同等判定システム１００が、電子文書単位での同等ではなく、スライド単位での同等を判定する例を示す。電子文書単位での同等の判定は、全てのスライドが同等またはある範囲のスライドが同等ならば文書が同等と判断すれば容易に実現できる。また、スライド１枚から構成される電子文書の場合は、電子文書単位とスライド単位は同義である。【００４８】
オブジェクト抽出部１１０は、文書ＤＢ９００が記憶する文書の各スライドからオブジェクトを抽出する。図４は、スライドとオブジェクトの関係を示す説明図である。スライド９２２は、実際のスライドの例である。スライド９２３は、スライド９２２を構成する部品（オブジェクト）を斜線を付した矩形で表したスライドの例である。【００４９】
例えば、スライド９２２のタイトル部分は、スライド９２３ではオブジェクト８０１となる。オブジェクトは一般的に始点座標と終点座標、オブジェクトの種類や属性（背景色や回転角度等）、中に含まれる文字列やそのフォントやサイズや色、等の情報を含む。本具体例では、オブジェクトの始点と終点座標、文字列および各種飾り（色や下線や太字等）のみを用いる。本具体例では説明しないが、オブジェクトの種類に応じて後述する飾り数に重みを乗算したり、加算したりしても良い。また、便宜的に図４に示す座標系を用いる。【００５０】
図５は、オブジェクト抽出部１１０の処理の例を示すフローチャートである。まず、オブジェクト抽出部１１０は、抽出したオブジェクトを記録するテーブルを作成する（ステップＳ１１０１）。オブジェクト抽出部１１０が作成するテーブルの例を表１に示す。表１の列（フィールド）は、オブジェクトＩＤ、位置、セル、面積、文字列、飾り数、密集度、加重密集度の各情報を含む。各行（レコード）はオブジェクト毎の情報である。【００５１】
【表１】
2009048149.tif 000003
【００５２】
オブジェクト抽出部１１０は、スライド中に処理していないオブジェクトがあるかどうかを調べる（ステップＳ１１０２）。ここで、処理していないオブジェクトがある場合（Ｙｅｓ）、ステップＳ１１０３に移る。すべてのオブジェクトの処理が完了した場合（Ｎｏ）、オブジェクト抽出部１１０は処理を終了する。【００５３】
ステップＳ１１０３において、オブジェクト抽出部１１０は、未処理のオブジェクトを１つ選択し、レコードを作る。【００５４】
次に、オブジェクト抽出部１１０は、オブジェクトの始点座標と終点座標から位置とセルと面積とを求め、レコードの該当フィールドに記録する（ステップＳ１１０４）。ここで位置とは、例えば始点座標そのものでも構わないし、オブジェクトの重心でも構わない。本具体例では重心を用いる。面積は始点座標と終点座標から容易に求めることができる。セルとは、スライドを単位正方形で分割した時の位置が存在する領域の番号である。【００５５】
図６は、スライドを単位正方形で分割した場合の例を示す説明図である。例えば、図６には、スライドを５０×５０の単位正方形で分割した場合の例を示す。本具体例では５０×５０を用いる。図４のスライド９２３のオブジェクト８０１の場合、位置が（ｘ、ｙ）＝（５５、１７）だとすると、セルは２Ａとなる。【００５６】
次に、オブジェクト抽出部１１０は、オブジェクトに含まれる文字列の抽出および飾り数のカウントを行う（ステップＳ１１０５）。文字列が含まれないオブジェクトの場合は文字列は空文字列とし、飾り数は０または空欄とする。本具体例では０とする（表１に示すレコードＲ８０３が該当）。以上の処理によって表１に示すようなオブジェクトのテーブルを作成する。【００５７】
ステーブルオブジェクト特定部１２０は、オブジェクト抽出部１１０が作成したテーブルのデータを用いて各オブジェクトの密集度を計算する。より具体的には、ステーブルオブジェクト特定部１２０は、オブジェクトの面積と、オブジェクト中に含まれる文字列の量および飾り情報とに基づいて、オブジェクトの密集度を計算する。密集度とは、そのオブジェクトの修正や動かしにくさの指標であり、０以上の実数を取り、数値が大きい程密集度が高いことを表している。【００５８】
図７は、ステーブルオブジェクト特定部１２０の処理の例を示すフローチャートである。ステップＳ１２０１、Ｓ１２０２およびＳ１２０４の処理は、テーブルの各レコードを順に処理するためのループ処理である。ステーブルオブジェクト特定部１２０は、ステップＳ１２０１において、ｉ＝１と設定する。ｉは、オブジェクト（レコード）の番号である。ステーブルオブジェクト特定部１２０は、ｉが最終レコードの番号を超えないか否かを判断する（ステップＳ１２０２）。【００５９】
ｉが最終レコードを超えない場合（Ｙｅｓ）、ステーブルオブジェクト特定部１２０は、ｉ番目のレコードの密集度を計算し、テーブルのレコードの該当フィールドに記録する（ステップＳ１２０３）。ステップＳ１２０４で、ステーブルオブジェクト特定部１２０は、ｉ＝ｉ＋１と設定し、次のオブジェクトについてステップＳ１２０２の判断を行う。【００６０】
ステップＳ１２０３の密集度の計算方法として様々なものが考えられるが、スライド中のオブジェクトの見た目が詰まっている程数値が高くなるような計算方法ならばどのようなものでも構わない。本具体例では、以下の式１に示す計算式を用いる。ｍｉはオブジェクトｉの密集度である。ｌｉはオブジェクトｉの文字列の長さであり、０文字の場合とそれ以外で適用する計算式が変わる。０文字の場合、すなわち文字列を含まないオブジェクトの密集度は１となる。一方、１文字以上の場合は、文字列の長さとその文字列に使われている飾りの数（飾り数：ｄｉ）の和に定数Ｃを掛けたものを面積Ｓｉで割ったものが密集度となる。【００６１】
【数１】
2009048149.tif 000004
【００６２】
本具体例では、定数Ｃを１００とするが、０文字のオブジェクトの密集度の１とつりあいが取れる定数を適宜与えれば良い。また飾り数とは、文字列中に何らかの飾り（デコレーション）が付与された文字の数である。例えば、「ベクトル空間モデルによって類似文書を特定し、検索で用いる」という文字列があり、「ベクトル空間モデル」の部分に色が付いていた場合、飾り数は９となる。また、飾りには様々なものがあり、そのいずれかまたは全てを用いても良いし、例えばフォントのサイズも飾り数に含めても構わない。【００６３】
ステップＳ１２０２でＮｏとなった時、すなわち、全てのオブジェクトの密集度の計算が終了した場合の処理について説明する。【００６４】
表２は、全てのオブジェクトの密集度の計算が終了した場合の、オブジェクトを記録するテーブルの登録例を示している。表２の右側欄外には、各レコードのｌｉとｄｉの値、すなわち文字列の長さと飾り数をｌｉ＋ｄｉの形で記している。【００６５】
【表２】
2009048149.tif 000005
【００６６】
続くステップＳ１２０６、Ｓ１２０７およびＳ１２１０の処理は、テーブルの各レコードを順に処理するためのループ処理である。ステーブルオブジェクト特定部１２０は、ステップＳ１２０６において、ｉ＝１と設定する。ステーブルオブジェクト特定部１２０は、ｉが最終レコードの番号を超えないか否かを判断する（ステップＳ１２０７）。【００６７】
ｉが最終レコードを超えない場合（Ｙｅｓ）、ステーブルオブジェクト特定部１２０は、ステップＳ１２０８およびステップＳ１２０９で、ステップＳ１２０３で求めた密集度を更に近辺のオブジェクトとの関係を元に変更して、加重密集度を求める処理を行なう。【００６８】
まずステップＳ１２０８で、ステーブルオブジェクト特定部１２０は、ｉ番目のオブジェクトのセルの値を取り出し、そのセルの周辺セルを列挙する。すなわち、図６に示すセル分割の例ならば、あるオブジェクトのセルの値が３Ｂの場合、その周辺セルとは、２Ａ、３Ａ、４Ａ、２Ｂ、３Ｂ、４Ｂ、２Ｃ、３Ｃ、４Ｃである。ここで周辺セルにはもともとのセルである３Ｂも含むものとする。そして、テーブルのセルフィールドを走査して、これらの周辺セルに合致するオブジェクトを列挙する。この際、ｉ番目のオブジェクトは省く。【００６９】
次に、ステップＳ１２０９で、ステーブルオブジェクト特定部１２０は、ステップＳ１２０８で列挙したオブジェクトそれぞれについてオブジェクトｉとの距離がＤ以下であるオブジェクトを選別する。そして、選別したオブジェクトそれぞれとの距離および密集度に基づいて、オブジェクトｉの加重密集度Ｍｉを求める。ステーブルオブジェクト特定部１２０は、例えば、オブジェクトの密集度に周辺オブジェクトの密集度の距離に反比例する値を加算して、加重密集度Ｍｉを算出する。ステップＳ１２１０で、ステーブルオブジェクト特定部１２０は、ｉ＝ｉ＋１と設定し、次のオブジェクトについてステップＳ１２０７の判断を行う。【００７０】
ステップＳ１２０９の加重密集度の計算式の例を以下の式２に示す。式２の第２項は万有引力の法則に類似している。オブジェクトｉとその他の全てのオブジェクトとの引力を求めても良いが、すべてのオブジェクトについて式２の計算を行なうと計算時間が多く必要となるため、ある距離Ｄ以下の距離にあるオブジェクトのみを対象にしている。なお、本具体例ではＤ＝５０としている。【００７１】
【数２】
2009048149.tif 000006
【００７２】
また、ステップＳ１２０８で列挙した周辺セルは、距離Ｄ以下にあるオブジェクトを高速に特定するためのものである。すなわち半径５０以内にあるオブジェクトはそれら周辺セルの中に必ず入っている。ただし、一部距離Ｄより長い距離のオブジェクトがあるため、周辺セルの中にあるオブジェクト全てについてオブジェクトｉとの距離を求める。また、本具体例では定数ｇを１０としているが、ｍｉと引力のつりあいが取れる定数を適宜与えれば良い。【００７３】
ステーブルオブジェクト特定部１２０は、算出した加重密集度Ｍｉをテーブルに記録する。表３は、ステップＳ１２０７でＮｏとなった時、すなわち、全てのオブジェクトの加重密集度の計算が終了した場合の、オブジェクトを記録するテーブルの登録例を示している。【００７４】
【表３】
2009048149.tif 000007
【００７５】
最後に、ステップＳ１２１１で、全オブジェクトの中からステーブルオブジェクトを選択する。選択するステーブルオブジェクトの数は１個でも良いし、任意のｎ個でも良い。例えば、ｎ＝３とすると、加重密集度が高いオブジェクト３個を選択することになる。以上でステーブルオブジェクト特定部１２０の処理が終了する。【００７６】
特徴語抽出部１３０は、ステーブルオブジェクトの文字列から特徴語を抽出する。特徴語抽出部１３０は、既存の手法を用いても良い。ここでは、文字コード区分による特徴語抽出の例を示す。【００７７】
図８は、特徴語抽出部１３０の処理の例を示すフローチャートである。まず、特徴語抽出部１３０は、文字列をコード区分で分割する（ステップＳ１３０１）。ここでいうコード区分とは、計算機上で文字を表す際に一意に定められた１〜４バイトの数値である。そして、それらのコードは文字種によって連続している。文字種には、１バイト文字のアルファベット、１バイト文字の数値、１バイト文字の記号、マルチバイト文字のアルファベット、マルチバイト文字のひらがな、マルチバイト文字の数値、マルチバイト文字の記号、マルチバイト文字の漢字、等がある。【００７８】
文字列を先頭から走査し、これらの文字種が変わる箇所で分割する。例えば、「文字列をコード区分で分割する（Ｓ１３０１）」という文字列ならば、「文字列」、「を」、「コード」、「区分」、「で」、「分割」、「する」、「（」、「Ｓ」、「１３０１」、「）」のように分割される。ここでアルファベットと数値は区別しないとすると、「Ｓ」と「１３０１」に分割されずに「Ｓ１３０１」となる。これは電子文書の傾向によって変更すれば良い。【００７９】
次に、特徴語抽出部１３０は、各コード区分毎に長い文字列をｎ個選択する（ステップＳ１３０２）。例えば、ｎ＝２の場合、上述の例ならば、マルチバイト文字の漢字コード区分からは「文字列」と「区分」または「分割」が、マルチバイト文字のカタカナ区分からは「コード」が、マルチバイト文字の数値区分からは「１３０１」が選ばれる。ｎ個に到達しないものはｎ以下の個数でも構わない。また、ひらがなコード区分や記号コード区分はストップワードとして選択しないようにしても良い。このようにして文字列から特徴語が抽出される。【００８０】
なお、このとき、出現順序は保存しておく必要がある。ステーブルオブジェクト特定部１２０が２個以上のステーブルオブジェクトを特定した場合は、上記の処理をステーブルオブジェクトの個数分繰り返す。また、ステーブルオブジェクト特定部１２０は、特定したステーブルオブジェクトの順序を保存しておく。【００８１】
ハッシュ値計算部１４０は、特徴語抽出部１３０が抽出した特徴語の集合をキーとしたハッシュ値を求め、ハッシュテーブルであるステーブル文字列インデックス１５０にスライドＩＤを登録する。その際、同じハッシュ値を持つスライドが見つかった場合、そのスライドを同等スライドとして特定する。【００８２】
図９は、ハッシュ値計算部１４０の処理の例を示すフローチャートである。まず、ハッシュ値計算部１４０は、特徴語抽出部１３０が抽出した特徴語の集合を連結する（ステップＳ１４０１）。例えば、特徴語の集合が｛ＮＥＣ、特徴語抽出、アーキテクチャ｝の場合、「ＮＥＣ特徴語抽出アーキテクチャ」という文字列を作成する。【００８３】
次に、この文字列をキーとしてハッシュ値を求める（ステップＳ１４０２）。ここでのハッシュ計算はどのような方法でも構わない。例えば、ＭＤ５でも構わない。例えば、なんらかのハッシュ計算による「ＮＥＣ特徴語抽出アーキテクチャ」という文字列のハッシュ値が「ｄ１１ｃ８０２ｆ４ａ２ａ９９３１ｂｂ７ｆ２３５１ｅｆ２ｄ３９７ｃ」だったとする。【００８４】
今、ステーブル文字列インデックス１５０が、図１０に示すステーブル文字列インデックス１５０Ａの状態であるとする。図１０は、ステーブル文字列インデックス１５０の登録例を示す説明図である。上述のハッシュ値はステーブル文字列インデックス１５０Ａにはないため、ハッシュ値計算部１４０は、ステーブル文字列インデックス１５０に新しくレコードを追加する。また、その時に、上述の特徴語とハッシュ値を持つスライドＩＤを登録する（ステップＳ１４０３）。登録時に、ハッシュ値計算部１４０は、ハッシュ値が重複していないかどうかを調べる（ステップＳ１４０４）。【００８５】
上述の例ではハッシュ値が重なっていない（Ｎｏ）ので、終了となる。ハッシュ値が重なっている場合（Ｙｅｓ）は、ステップＳ１４０５に移る。【００８６】
ステップＳ１４０５で、ハッシュ値計算部１４０は、重複したスライドＩＤを持つスライド同士が同等であるとして出力する。本具体例では、文書ＤＢ９００の該当スライドに対して同等であるスライドＩＤを付与するとする。【００８７】
図１０に示す具体例を用いて説明する。｛文字列、区分、コード、１３０１｝という特徴語を持つスライドのＩＤがＤ１０４３−Ｓ００７であったとする。ハッシュ値計算部１４０は、ステップＳ１４０１において、「文字列区分コード１３０１」という文字列を作成し、ステップＳ１４０２において「１３ｃ９２ｂｅ６３ｆ３６５３ａｃ６１５２ｅ１ａ７ｆ８ｅｂｆ１４４」というハッシュ値を求める。【００８８】
求めたハッシュ値は、図１０に示すステーブル文字列インデックス１５０Ａには既に存在する。ハッシュ値計算部１４０は、ステーブル文字列インデックス１５０に既に登録されているハッシュ値に対応させて、スライドＩＤを登録する（ステップＳ１４０３）。このようにして登録されたステーブル文字列インデックス１５０Ｂを図１０に示す。ステーブル文字列インデックス１５０Ｂの行Ｒ９２１には、２つのスライドＩＤが登録される。このように２個以上のスライドＩＤが登録された場合（ステップＳ１４０４のＹｅｓ）、それらのスライドを同等とする（ステップＳ１４０５）。ハッシュ値計算部１４０は、特徴語とスライドＩＤが特徴語抽出部１３０から送られてくるたびに以上の処理を行う。文書ＤＢ９００に蓄積されているスライドＤ０００１−Ｓ００１とスライドＤ１０４３−Ｓ００７には、お互いに同等である他方のスライドＩＤが記録される。【００８９】
次に、第１の実施形態の第２の具体例を説明する。第１の具体例と同様に、図１を参照して第２の具体例を説明する。第２の具体例でも第１の具体例と同様にプレゼンテーション文書を例にして説明する。第１の具体例との違いは、ハッシュ値計算部１４０の処理のみであるため、その他の部分については説明を割愛する。【００９０】
第２の具体例のハッシュ値計算部１４０は、ステーブルオブジェクト特定部１２０によって特定されたステーブルオブジェクトと特徴語抽出部１３０で抽出された特徴語集合のペア毎に、特徴語集合をキーとしたハッシュ値を求め、ハッシュテーブルであるステーブル文字列インデックス１５０にスライドＩＤを登録する。そして、ステーブルオブジェクト毎に同じハッシュ値を持つスライドＩＤを列挙し、スライドＩＤが別途指定された個数以上合致したスライドを同等スライドとして特定する。すなわち、複数のハッシュ値に対して、ある２つのスライドＩＤが重複して登録されている場合に、重複して登録されている個数が所定の数以上であれば、その２つのスライドＩＤが示すスライドを同等であると判断する。【００９１】
図１１は、ハッシュ値計算部１４０の処理の例を示すフローチャートである。フローチャート中の記号ｎは、ステーブルオブジェクト特定部１２０によって特定されたステーブルオブジェクトの数であり、記号ｍは同等スライドとして判断する時に用いる数である。【００９２】
ステップＳ１４１１、Ｓ１４１２、Ｓ１４１８の処理は、ステーブルオブジェクトの数分だけ順に処理するためのループ処理である。ステーブルオブジェクトの数が、例えば３個ならば、ループ処理を３回行なうことになる。ハッシュ値計算部１４０は、ステップＳ１４１１において、ｉ＝１と設定する。ハッシュ値計算部１４０は、ｉがステーブルオブジェクトの数を超えないか否かを判断する（ステップＳ１４１２）。【００９３】
第１の具体例では、ステーブルオブジェクト特定部１２０が特定したステーブルオブジェクト毎に、特徴語抽出部１３０が特徴語集合を抽出して、全ての特徴語を連結していた。第２の具体例では、ハッシュ値計算部１４０は、各ステーブルオブジェクトの特徴語集合内だけで特徴語を連結する（ステップＳ１４１３）。例えば、あるステーブルオブジェクトの特徴語の集合が｛情報抽出、アルゴリズム｝の場合、「情報抽出アルゴリズム」という文字列を作成する。【００９４】
次に、連結した特徴語の文字列をキーとしてハッシュ値を求める（ステップＳ１４１４）。ここでのハッシュ計算はどのような方法でも構わない。例えば、なんらかのハッシュ計算による「情報抽出アルゴリズム」という文字列のハッシュ値が「１３ｃ９２ｂｅ６」だったとする。【００９５】
今、ステーブルオブジェクト文字列インデックス１５０が、図１２に示すステーブル文字列インデックス１５０Ｃの状態であるとする。図１２は、ステーブル文字列インデックス１５０の登録例を示す説明図である。なお、図１２に示すハッシュ値は、第１の具体例で例示したハッシュ値とは別の架空の方法によって得られたものである。【００９６】
ステップＳ１４１４で求めたハッシュ値がステーブル文字列インデックス１５０Ｃにある場合、ハッシュ値計算部１４０は、該当するハッシュ値のＩＤフィールドにＩＤを追記する。図１２に示す例では、ハッシュ値「１３ｃ９２ｂｅ６」はステーブル文字列インデックス１５０Ｃにあるため、該当するハッシュ値のＩＤフィールドにＩＤを追記する。ハッシュ値がステーブル文字列インデックス１５０Ｃにない場合は、新しくレコードを追加し、ＩＤフィールドにＩＤを追記する（ステップ１４１５）。【００９７】
ＩＤの登録時に、ハッシュ値計算部１４０は、ハッシュ値が重複していないかどうかを調べる（ステップＳ１４１６）。図１２に示す例では、ハッシュ値が重なっている（Ｙｅｓ）ので、ステップＳ１４１７に移る。ハッシュ値が重なっていない場合（Ｎｏ）は、ステップＳ１４１８に移る。ステップＳ１４１７では、ハッシュ値が重なっているＩＤを記録する。記録する先は、コンピュータのメモリ上でも構わないし、ハードディスク等の記録媒体上のデータベース上でも構わない。【００９８】
図１２を例として説明する。ステーブル文字列インデックス１５０が、図１２に示すステーブル文字列インデックス１５０Ｃの状態であるとする。今、ＩＤがＤ１０４３−Ｓ００７である部分文書についてハッシュ値計算部１４０が処理をしているものとする。ステーブルオブジェクト特定部１２０が３個のステーブルオブジェクトを特定し、特徴語抽出部１３０がそれぞれのステーブルオブジェクトに対して２個の特徴語を抽出したものとする。この状態が図１２に示す状態１５１Ａである。１つ目のステーブルオブジェクトの特徴語集合が｛情報抽出、アルゴリズム｝であり、２つ目のステーブルオブジェクトの特徴語集合が｛セキュリティ、特化｝であり、３つ目のステーブルオブジェクトの特徴語集合が｛新規事業、ニーズ｝である。また、各特徴語集合を連結した文字列をキーとしたハッシュ値が、１３ｃ９２ｂｅ６、ｄ４ｆ０１０５ａ、７ｃｃｄ１９ｆ３である。【００９９】
１つ目のハッシュ値１３ｃ９２ｂｅ６の場合、図１２に示すステーブル文字列インデックス１５０Ｃでは、３つのＩＤが重複する。すなわち、Ｄ０００１−Ｓ００１とＤ００２３−Ｓ０１５とＤ７４３５−Ｓ００３とが重複する。ステップＳ１４１７では、１つ目のステーブルオブジェクトと重複するＩＤが上述の３つのＩＤであることが分かるように記録されていれば良い。【０１００】
その他のステーブルオブジェクトと重複するＩＤは以下の通りである。２つ目のハッシュ値ｄ４ｆ０１０５ａの場合、Ｄ０００１−Ｓ００１とＤ０５１９−Ｓ００４の２つのＩＤが重複する。３つ目のハッシュ値７ｃｃｄ１９ｆ３の場合、Ｄ０００１−Ｓ００１とＤ３２０１−Ｓ０２４の２つのＩＤが重複する。以上のループ処理をステーブルオブジェクトの数だけ実行し、ステップＳ１４１９に移る。【０１０１】
ステップＳ１４１９では、記録していた重複するＩＤについて、ＩＤ毎に何個あるか数える。図１２に示す例の場合、Ｄ０００１−Ｓ００１が３個、Ｄ００２３−Ｓ０１５とＤ０５１９−Ｓ００４とＤ３２０１−Ｓ０２４とＤ７４３５−Ｓ００３とがそれぞれ１個となる。なお、図１２に示す状態１５１Ｂの例の場合、ＩＤ毎の重複する個数は、Ｄ００２３−Ｓ０１５が２個、Ｄ０１９３−Ｓ００２とＤ３２０１−Ｓ０２４とＤ７４３５−Ｓ００３がそれぞれ１個である。【０１０２】
最後に、ハッシュ値計算部１４０は、重複したＩＤの個数が別途指定された個数（ｍ）以上のＩＤの部分文書を、同等とする（ステップＳ１４２０）。【０１０３】
例えば、ｍ＝３（すなわちｍ＝ｎ）、状態１５１Ａの場合を例に説明する。Ｄ１０４３−Ｓ００７は、３つのハッシュ値１３ｃ９２ｂｅ６、ｄ４ｆ０１０５ａ、７ｃｃｄ１９ｆ３に対して、Ｄ０００１−Ｓ００１と重複して登録される。すなわち、Ｄ１０４３−Ｓ００７とＤ０００１−Ｓ００１とが重複して登録される個数が３であることから、ハッシュ値計算部１４０は、Ｄ１０４３−Ｓ００７が示す文書とＤ０００１−Ｓ００１が示す文書とを同等であると判断する。【０１０４】
また、例えば、ｍ＝２（すなわちｍ＜ｎ）、状態１５１Ｂの場合を例に説明する。Ｄ１０４４−Ｓ００２は、２つのハッシュ値ｄ３ｄ４６７４３、５２４ａ０ｆｆ１に対して、Ｄ００２３−Ｓ０１５と重複して登録されている。すなわち、Ｄ１０４４−Ｓ００２とＤ００２３−Ｓ０１５とが重複して登録されている個数が２であることから、ハッシュ値計算部１４０は、Ｄ１０４４−Ｓ００２が示す文書とＤ００２３−Ｓ０１５が示す文書とを同等であると判断する。【０１０５】
例えば、ｍが３の場合、すなわちステーブルオブジェクトと同数（ｍ＝ｎ）の場合は、全てのステーブルオブジェクトについてハッシュ値が同じである部分文書のみを同等とする。これは第１の具体例とほぼ同じであるが、実際には第２の具体例の方がより厳密に同等判定を行うことになる。第１の具体例では、全部の特徴語を連結して１つのハッシュ値で同等かどうかを判定するのに対して、第２の具体例では、ステーブルオブジェクト毎のハッシュ値で重複を調べるためである。ハッシュ値はその性格上、全く異なったキーであっても同じハッシュ値となる場合がある。第１の具体例では本来同等ではない部分文書を同等と判定してしまう可能性があるが、第２の具体例でｍ＝ｎの場合は、その可能性がほとんどなくなる。【０１０６】
一方、ｍ＜ｎの場合は、第１の具体例より柔軟に同等と判定することになる。ｍの値は、どのような同等文書を見つけ出したいかに応じて適宜決定すれば良い。なお、文書ＤＢ９００に対して同等であるとの記録をする方法は第１の具体例と同じであるため、割愛する。【０１０７】
実施形態２．
次に、第２の実施形態について図面を参照して説明する。図１３は、第２の実施形態の同等判定システムの構成例を示すブロック図である。図１３を参照すると、本発明の第２の実施形態は、第１の実施形態に同等判定システム２００が追加されている。同等判定システム２００は、文字列抽出部２１０と、全文用ハッシュ値計算部２４０と、全文文字列インデックス２５０とを含む。【０１０８】
文字列抽出部２１０は、文書ＤＢ９００の電子文書を構成するオブジェクト全てから文字列を抽出する。【０１０９】
ハッシュ値計算部２４０は、文字列抽出部２１０が抽出した全文字列からハッシュ値を求める。【０１１０】
全文文字列インデックス２５０は、ハッシュ値と電子文書のペアを登録したインデックスを記憶する。【０１１１】
なお、同等判定システム２００は、例えばコンピュータのプログラムとして実現され、全文文字列インデックス２５０は、例えば記憶装置によって実現される。その他の構成は第１の実施形態と同じである。なお、同等判定システム２００を実現するプログラムは、インターネットなどの電気通信回線を通じて提供することもできるし、光ディスクや磁気ディスクなどの機械読み取り可能な記録媒体に格納して提供することもできる。【０１１２】
次に、図１３を参照して、本発明の第２の実施形態の動作について説明する。第１の実施形態と同じ部分は省略する。また、電子文書の種類、部分文書単位についても第１の実施の形態と同じ例を用いる。【０１１３】
同等判定システム２００は、文書ＤＢ９００に蓄積されている電子文書または部分文書を１つずつ取り出して処理を行なう。第２の実施形態では、同等判定システム１００と同じ電子文書または部分文書を同じタイミングで処理する場合について説明するが、必ずしも同じ文書を同じタイミングで処理する必要はない。【０１１４】
同等判定システム２００は、文書ＤＢ９００に蓄積されている電子文書または部分文書を１つずつ取り出して処理を行う。ここでは部分文書の場合について説明する。取り出す順番については同等判定システム１００と同様であるため、割愛する。【０１１５】
文字列抽出部２１０は、スライドに含まれる全てのオブジェクトから文字列を抽出する。このとき、全文字列を抽出してもよい。しかし、文字列抽出部２１０では、文字列の飾り情報等は不要である。【０１１６】
ハッシュ値計算部２４０は、文字列抽出部２１０が抽出した文字列を連結して、連結した文字列のハッシュ値を求め、求めたハッシュ値を使って全文文字列インデックス２５０にスライドのＩＤを登録する。登録しようとするスライドのハッシュ値に既に別のスライドが登録されていた場合、ハッシュ値計算部２４０は、現在処理中のスライドおよび既に登録されているスライド双方について文書ＤＢ９００の該当レコードに対応するスライドＩＤを登録する。【０１１７】
第２の実施形態では、全文文字列インデックス２５０とステーブル文字列インデックス１５０とを別のインデックスとしているが、これらを１つのインデックスとしても構わない。図１４は、１つのインデックスを用いる場合の同等判定システムの構成例を示すブロック図である。その場合、同等判定システム１００で登録するＩＤまたは同等判定システム２００で登録するＩＤに互いを区別する識別子を付ければ良い。例えば、同等判定システム１００は、登録するＩＤとして本来のＩＤそのままを用い、同等判定システム２００は、登録するＩＤとして本来のＩＤの末尾に「Ａ」等の識別子を付ける。これによって、どちらの同等判定システムで登録されたＩＤかを区別できる。【０１１８】
文書ＤＢ９００への登録に際しては、同等判定システム１００と同じフィールドに登録しても良いし、別のフィールドに登録しても良い。同じフィールドに登録した場合は、同じＩＤが同等判定システム１００と同等判定システム２００によって２度登録される場合がある。これは、全文のハッシュ値による衝突とステーブルオブジェクトの特徴語のハッシュ値による衝突が起こっており、ほぼ確実に同じ電子文書か部分文書であることを表している。別のフィールドに登録した場合でも同じＩＤがそれぞれのフィールドに登録されていれば上記と同様である。すべての部分文書について同等判定システム２００の処理が完了したら終了する。【０１１９】
第２の実施形態では、ハッシュ値計算部２４０は、自己で求めたハッシュ値が衝突したことに基づいて、対応する電子文書が同一文書の可能性があると判断する可能性判断手段としての機能を有する。ハッシュ値計算部２４０はまた、同一文書の可能性があると判断した対応する電子文書が、同等判定システム１００のハッシュ値計算部１４０により同等の文書であると判断された場合に、その対応する電子文書を同一文書であると判断する判定手段としての機能を有する。【０１２０】
次に、第２の実施形態の効果について説明する。第２の実施形態によれば、内容が完全に一致する電子文書を文書データベースから高速に特定することができる、という効果がある。その理由は、電子文書中の文字列をハッシュ化して登録し、ハッシュ値の重複に基づいて同等文書を特定するためである。【０１２１】
なお、第２の実施形態では、文字列抽出部２１０が、文書ＤＢ９００の電子文書を構成するオブジェクト全てから文字列を抽出するとしたが、文字列抽出部２１０が、ステーブルオブジェクト特定部１２０により特定された少なくとも１つの修正されにくいオブジェクトから文字列を抽出するようにしてもよい。【０１２２】
なお、上記に示した実施形態では、以下の（１）〜（７）に示すような特徴的構成を備えた同等判定システムが示されている。【０１２３】
（１）電子文書の集合におけるそれぞれの電子文書から人手によって修正されにくい部分を特定する特定手段（例えば、ステーブルオブジェクト特定部１２０で実現される）と、複数の電子文書における特定手段が特定した部分が一致するか否かを判定、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する判定手段（例えば、ハッシュ値計算部１４０で実現される）とを備えたことを特徴とする同等判定システム。【０１２４】
（２）特定手段が特定した修正されにくい部分のハッシュ値を算出するハッシュ値算出手段（例えば、ハッシュ値計算部１４０で実現される）を備え、判定手段は、ハッシュ値算出手段が算出したハッシュ値を用いて、特定手段が特定した部分が一致するか否かを判定する同等判定システム。そのように構成された同等判定システムは、ハッシュ値に基づいて類似する電子文書を高速に特定することができる。【０１２５】
（３）特定手段が特定した修正されにくい部分から特徴的な文字列を抽出する特徴語抽出手段（例えば、特徴語抽出部１３０で実現される）を備え、ハッシュ値算出手段は、特徴語抽出手段が抽出した特徴的な文字列に基づいてハッシュ値を算出する同等判定システム。そのように構成された同等判定システムは、特徴的な文字列のハッシュ値に基づいて類似する電子文書を高速に特定することができる。【０１２６】
（４）ハッシュ値算出手段は、特徴語抽出手段が抽出した特徴的な文字列それぞれに対してハッシュ値を算出し、判定手段は、ハッシュ値算出手段が算出したハッシュ値が所定の基準に合致する場合に、特定手段が特定した部分が一致していると判定する同等判定システム。そのように構成された同等判定システムは、より厳密に同等判定を行うことができる。【０１２７】
（５）特定手段は、電子文書中の文字、図形、式を示すオブジェクトが密集している部分を修正されにくい部分として特定する同等判定システム。そのように構成された同等判定システムは、オブジェクトの修正されにくさの指標として密集度を用いることができる。【０１２８】
（６）特定手段は、オブジェクトの面積とオブジェクト中に含まれる文字列の量および飾り情報に基づいてオブジェクトの密集度を算出する同等判定システム。そのように構成された同等判定システムは、オブジェクトの密集度を、オブジェクトの面積等に基づいて算出することができる。【０１２９】
（７）特定手段は、オブジェクトの密集度に周辺オブジェクトの密集度の距離に反比例する値を加算してオブジェクトの密集度を算出する同等判定システム。そのように構成された同等判定システムは、近辺のオブジェクトとの距離を考慮してオブジェクトの密集度を算出することができる。【０１３０】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１３１】
この出願は、２００７年１０月１１日に出願された日本出願特願２００７−２６５４９９号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【産業上の利用可能性】
【０１３２】
本発明によれば、組織内に存在する電子文書から同一またはほぼ同一の電子文書を検出することで、不要な検索結果を排除した高精度な検索システムを構築することが可能となる。また、多数存在する同一またはほぼ同一の電子文書を代表となる一つの電子文書のみを残して圧縮したり、バックアップテープ等に保存することで、組織のストレージ管理を行ない、費用削減が可能となる。
【図１】
2009048149.tif 000008
【図２】
2009048149.tif 000009
【図３】
2009048149.tif 000010
【図４】
2009048149.tif 000011
【図５】
2009048149.tif 000012
【図６】
2009048149.tif 000013
【図７】
2009048149.tif 000014
【図８】
2009048149.tif 000015
【図９】
2009048149.tif 000016
【図１０】
2009048149.tif 000017
【図１１】
2009048149.tif 000018
【図１２】
2009048149.tif 000019
【図１３】
2009048149.tif 000020
【図１４】
2009048149.tif 000021
【手続補正書】
【提出日】平成21年3月13日(2009.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子文書の集合におけるそれぞれの電子文書から、人手によって修正されにくい部分として、電子文書中の文字、図形および式を示すオブジェクトが密集している部分を特定する特定手段と、
前記特定手段により特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定する判定手段と
を備える同等判定システム。
【請求項２】
前記特定手段により特定された部分のハッシュ値を算出するハッシュ値算出手段をさらに備え、
前記判定手段は、前記ハッシュ値算出手段により算出されたハッシュ値を用いて、前記特定手段により特定された部分が一致するか否かを判定する
請求項１記載の同等判定システム。
【請求項３】
前記特定手段により特定された部分から特徴的な文字列を抽出する特徴語抽出手段をさらに備え、
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴的な文字列に基づいてハッシュ値を算出する
請求項２記載の同等判定システム。
【請求項４】
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴的な文字列それぞれに対してハッシュ値を算出し、
前記判定手段は、前記ハッシュ値算出手段により算出されたハッシュ値が所定の基準に合致する場合に、前記特定手段により特定された部分が一致していると判定する
請求項３記載の同等判定システム。
【請求項５】
（削除）
【請求項６】
前記特定手段は、オブジェクトの面積とオブジェクト中に含まれる文字列の量および飾り情報に基づいてオブジェクトの密集度を算出する請求項５記載の同等判定システム。
【請求項７】
前記特定手段は、オブジェクトの密集度に周辺オブジェクトの密集度の距離に反比例する値を加算して前記オブジェクトの密集度を算出する請求項６記載の同等判定システム。
【請求項８】
電子文書が蓄積されているデータベースから電子文書を抽出し、電子文書を構成するオブジェクトを抽出するオブジェクト抽出手段をさらに備え、
前記特定手段は、前記オブジェクト抽出手段により抽出されたオブジェクトの修正されにくさをオブジェクトの密度に基づいて算出し、その結果に基づいて修正されにくい部分を特定し、
前記特徴語抽出手段は、前記特定手段により特定された少なくとも１つの修正されにくいオブジェクトから、特徴的な文字列として少なくとも１つの特徴語を抽出し、
前記ハッシュ値算出手段は、前記特徴語抽出手段により抽出された特徴語を連結した文字列のハッシュ値を算出し、対応する電子文書の識別情報をハッシュテーブルに登録し、
前記判定手段は、ハッシュ値が衝突したことに基づいて、対応する電子文書が同等の文書であると判断する
請求項３記載の同等判定システム。
【請求項９】
前記オブジェクト抽出手段は、電子文書を構成する部分文書単位でオブジェクトを抽出する請求項８記載の同等判定システム。
【請求項１０】
前記特定手段は、オブジェクトの修正されにくさをオブジェクトの密度および周辺オブジェクトの密度に基づいて算出する請求項８記載の同等判定システム。
【請求項１１】
特定手段により特定された少なくとも１つの修正されにくいオブジェクトから文字列を抽出する文字列抽出手段をさらに備え、
前記ハッシュ値算出手段は、前記文字列抽出手段により抽出された文字列のハッシュ値を算出し、対応する電子文書および部分文書のいずれかの識別情報をハッシュテーブルに登録する
請求項８記載の同等判定システム。
【請求項１２】
前記ハッシュ値算出手段は、特徴語毎にハッシュ値を算出し、対応する電子文書および部分文書のいずれかの識別情報をハッシュテーブルに登録し、
前記判定手段は、前記ハッシュ値算出手段により算出された特徴語毎のハッシュ値のうち、所定の数以上のハッシュ値が衝突したことに基づいて、対応する電子文書が同等の文書であると判断する
請求項８記載の同等判定システム。
【請求項１３】
前記特定手段は、オブジェクトの面積とオブジェクト中に含まれる文字列の量および飾り情報に基づいてオブジェクトの密度を算出する請求項８記載の同等判定システム。
【請求項１４】
前記特定手段は、周辺オブジェクトの密度を加味してオブジェクトの密度を再計算する請求項８記載の同等判定システム。
【請求項１５】
電子文書および部分文書のいずれかから全文字列を抽出する文字列抽出手段と、
前記文字列抽出手段により抽出された全文字列のハッシュ値を算出し、対応する電子文書の識別情報を全文用のハッシュテーブルに登録する全文用ハッシュ値算出手段と、
ハッシュ値が衝突したことに基づいて、対応する電子文書が同一文書の可能性があると判断する可能性判断手段と
をさらに備え、
前記判定手段は、前記可能性判断手段により同一文書の可能性があると判断された対応する電子文書が、前記特定手段により特定された修正されにくいオブジェクトから算出されたハッシュ値に基づいて同等の文書であると判断された場合に、その対応する電子文書を同一文書であると判断する
請求項８記載の同等判定システム。
【請求項１６】
ハッシュ値算出手段は、特徴語用のハッシュテーブルと全文用のハッシュテーブルとを同一のハッシュテーブルとして、電子文書の識別情報を登録する請求項１５記載の同等判定システム。
【請求項１７】
（削除）
【請求項１８】
（削除）
【請求項１９】
電子文書の集合におけるそれぞれの電子文書から、人手によって修正されにくい部分として、電子文書中の文字、図形および式を示すオブジェクトが密集している部分を特定するステップと、
特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定するステップと
を備える同等判定方法。
【請求項２０】
特定された部分のハッシュ値を算出するステップをさらに備え、
判定するステップは、算出されたハッシュ値を用いて、特定された部分が一致するか否かを判定するステップを備える
請求項１９記載の同等判定方法。
【請求項２１】
コンピュータに、
電子文書の集合におけるそれぞれの電子文書から、人手によって修正されにくい部分として、電子文書中の文字、図形および式を示すオブジェクトが密集している部分を特定するステップと、
特定された部分が複数の電子文書の間で一致するか否かを判定し、一致すると判定した場合に、それらの文書を類似する複数の電子文書と特定するステップと
を実行させるためのプログラム。
【請求項２２】
コンピュータに、
特定された部分のハッシュ値を算出するステップをさらに実行させ、
判定するステップにおいて、算出されたハッシュ値を用いて、特定された部分が一致するか否かを判定するステップを実行させるための請求項２１記載のプログラム。
【国際調査報告】
2009048149.tif 000022
2009048149.tif 000023
2009048149.tif 000024
2009048149.tif 000025
2009048149.tif 000026
2009048149.tif 000027
2009048149.tif 000028