JP5138046B2 - 検索システム、検索方法およびプログラム - Google Patents

検索システム、検索方法およびプログラム Download PDF

Info

Publication number
JP5138046B2
JP5138046B2 JP2010534793A JP2010534793A JP5138046B2 JP 5138046 B2 JP5138046 B2 JP 5138046B2 JP 2010534793 A JP2010534793 A JP 2010534793A JP 2010534793 A JP2010534793 A JP 2010534793A JP 5138046 B2 JP5138046 B2 JP 5138046B2
Authority
JP
Japan
Prior art keywords
search
document
block
hash value
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010534793A
Other languages
English (en)
Other versions
JPWO2010047286A1 (ja
Inventor
豊 守屋
文彦 照井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010534793A priority Critical patent/JP5138046B2/ja
Publication of JPWO2010047286A1 publication Critical patent/JPWO2010047286A1/ja
Application granted granted Critical
Publication of JP5138046B2 publication Critical patent/JP5138046B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、検索結果のうち、どの文書が重複した内容で検索されたかを検知可能にした検索システム、その検索方法およびその方法を実現するためのコンピュータ可読なプログラムに関する。
インターネット等のネットワークに接続されたデータベースに格納されている文書を検索するためのシステムとして、検索エンジンがある。この検索エンジンには、複数の文書から特定の文字列を検索する全文検索機能を備えるものがある。
全文検索機能を備える全文検索エンジンは、複数の文書の内容を順次走査し、検索対象となる文字列を探索する逐次検索型と、検索対象となる文書数が膨大で、逐次検索では検索時間がかかることから、事前に、文字列、その文書の場所、更新日、出現頻度といったデータからなるテーブル構造のインデックスを作成しておき、検索時にはこのインデックスにアクセスすることで、高速に検索を可能にした索引型とがある。
索引型で使用されるインデックスには、様々な形式があり、一般的なものとしては、単語と、その単語を含む文書ファイルIDとで構成された可変長のレコードをもつ転置インデックスと呼ばれるものがある。
ここで、3つの文書と、それらに対する転置インデックスと、収集された文書を保管するデータ構造の例を、図1および2に示す。図1(a)〜(c)に示す文書は、順に、文書ファイルIDが1〜3とされ、いずれも電子メールとされている。図2(a)に示す転置インデックスは、キーとなる単語と、その単語を含むIDとで構成され、この図2(a)では「PHP」、「鈴木」、「コード」という単語を含む文書が対応付けられている。図2(b)に示す収集された文書を保管するデータ構造のエントリ例では、キーとなる単語と、その単語に対応する文書の内容とが対応付けられ、この図2(b)では、単語が左欄に配列され、選択された単語に対応する文書内容が右欄に表示されている。
全文検索エンジンでは、検索語と一致した単語が出現する文書群が検索結果として返される。このように文書全体の類似性を判定する技術として、例えば、特許文献1〜3に記載された技術がある。
これらの技術では、検索語と一致した単語が文書中のどのような文字列の中で出現したかは考慮されない。これでは、検索結果の中に文書が大量に存在する場合、その検索結果の中から真に必要となる文書を見つけ出すのは難しく、労力がかかる。例えば、検索語が文書のテンプレートに存在すると、そのテンプレートを使用している文書が全て返されてしまい、本来の目的となる検索語を本文中にもつ文書を検索結果から探し出す労力が必要となる。なお、テンプレートは、文書のヘッダやフッタ、Webサイトのメニュー、電子メールのシグニチャー等である。
電子メールでは、返信・転送する際、オリジナルのメールを末尾に追加することが多いが、その追加したメールに検索語が含まれていると、返信・転送するメールの本文中にその検索語が出現しなくても、検索結果として返される。このため、検索語を本文の話題としているメールを探したい場合にはノイズとなってしまう。
したがって、検索語が本文の同一の文字列中に出現する文書を1つのグループにまとめることができれば、評価すべき文書数が少なくなるので、真に必要となる文書を見つけやすくなる。
例えば、検索時に検索結果の文書それぞれについて、検索キーワードが含まれる文字列を作成し、比較することで、検索語の出現位置を考慮して、内容が重複する文書を検出する技術が提案されている(特許文献4参照)。
特許文献4に記載されている検索エンジンの構成を、図3に示す。この検索エンジン10は、検索対象となる文書を保持するデータソース20と接続され、また、ユーザが検索結果を得るために入力した問合せ(クエリ)を出力するクライアント装置30と接続されている。
検索エンジン10は、検索エンジン10自身がもつデータベース11に文書を登録し、インデックスを作成するためにデータソース20上の文書を周期的に取得するクローラー12を備える。このクローラー12は、インデックス作成に用いられる文書のコピーを要求し、その文書中に含まれるリンクをたどり、別の文書を収集するという動作を繰り返す。また、クローラー12は、新しい文書を見つけた場合は、データベース11に登録し、文書が存在しないことを検出した場合は、データベース11からその文書を削除する。
検索エンジン10は、クローラー12が取得し、データベース11に登録された文書からテキストを抽出し、段落等のフォーマット情報を抽出するパーサー13を備える。パーサー13は、構文解析を行うもので、構文解析され抽出されたテキストやフォーマット情報を、ストア14と呼ばれる収集された文書を保管するデータ構造へ入力する。
検索エンジン10は、パーサー13により抽出されたテキストやフォーマット情報からインデックスを作成するインデクサー15を備える。インデクサー15は、上述したように、キーとなる単語とその単語を含む文書のIDとを対応付けて索引16に保管する。
検索エンジン10は、さらに、クライアント装置30から受信したクエリに応答して、クエリに含まれる検索語をキーとして、その検索語を含む文書を検索する検索サーバとしてのサーチ・ランタイム17と、サーチ・ランタイム17から検索結果を受け取り、その検索語を含む文書をストア14から取得し、その検索語を含む文字列を生成するクエリ関連情報作成装置18と、生成された文字列を検索結果の文書と比較するクエリ関連情報比較装置19とを備える。
この検索エンジン10では、検索毎、検索結果毎に、クエリ関連情報作成装置18により検索語を含む文字列を生成し、クエリ関連情報比較装置19によりその文字列を比較することで、文章全体が一致したものや、サンプリングされた文書の数箇所が一致したものを、関連する文書として検出する。
米国特許第6230155号公報 米国特許第6658423号公報 米国特許第6978419号公報 米国特許第6615209号公報
従来の検索エンジンでは、同じ内容であるが、異なる文書として存在する場合、個々の検索結果として取り扱われるため、こういった同じ内容あるいは似通った内容の文書を前もって、文書収集時やインデックス作成時に除外することができる。しかしながら、従来の検索エンジンは、文章全体または文書の数箇所が同じ内容または似通った内容の文書を判断することができるだけで、部分的な同一性をもって同じ内容または似通った内容の文書とは判断することはできない。
また、従来の検索エンジンでは、Webサイトのメニューに検索語が出現する場合、そのメニューをもつページが全て返されるが、文書の特徴とならなさそうな単語や文字列を前もって指定することで、除外することができる。しかしながら、その指定をするためには、除外する単語や文字列を前もって知っていなければならない。
さらに、従来の検索エンジンでは、文書間の関連性が考慮されずに検索結果が返されるため、ユーザが、返された検索結果の文書全部につき、文書を1つずつ順に、真に必要な文書か否かを判断しなければならない。
本発明は、上記課題に鑑み、文書を構成するテキストを複数のブロックに分け、検索語が含まれるブロックに着目し、検索結果の文書のうち、そのブロックの内容が同じ文書同士をグループ化することで、部分的な同一性をもって同じ内容あるいは似通った内容の文書と判断することを可能にし、文書間の関連性を考慮した検索結果を返すことを可能にする。
具体的には、インデックス作成時に、検索対象となる文書中のテキストを複数のブロックに分割する。ブロックは、センテンス(文)、パラグラフ(段落)等とすることができる。このようにして得られたブロック毎にハッシュ値を計算する。ハッシュ値は、文字列に対応する数値である。このハッシュ値を、文書中のブロックの位置情報とともに、その文書に関連付けて保持する。
そして、検索実行時に、検索結果の各文書について、検索語が出現する位置情報を基に、対応するハッシュ値を取り出し、そのハッシュ値が一致する文書同士をグループ化して出力する。
これを実現するために、本発明では、検索対象となる文書を、指定された分割情報に基づき複数のブロックに分割する分割部と、各ブロックに含まれる文字列にハッシュ関数を適用して各ブロックのハッシュ値を計算する計算部と、得られたハッシュ値を文書におけるブロックの位置情報とともに記憶する記憶部と、検索語に基づき検索されて得られた各文書につき、検索語を含むブロックの位置情報を基に対応するハッシュ値を記憶部から取り出し、ハッシュ値が一致する文書をグループ化して、検索結果として出力する文書グループ化部とを備える、検索システムが提供される。
分割部は、分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つにより分割する。付加情報としては、HTML文書におけるHTMLタグを挙げることができる。分割部は、1つに限らず、複数の分割情報を使用して分割することができ、例えば、特定の検索語が使用された場合にはパラグラフ毎の分割情報を使用し、それ以外の検索語が使用された場合にはセンテンス毎の分割情報を使用することができる。また、このように複数の分割情報を使用できるようにすることで、ユーザやシステムがセンテンス毎の分割によるグループ化が適当でないと判断した場合、センテンス毎以外の、例えばパラグラフ毎の分割情報を使用してグループ化することが可能となる。
文書は、複数の単語(トークン)が順に配列するトークン列とされ、各ブロックに含まれる文字列は、少なくとも1つのトークンから構成される。このため、各ブロックの位置は、トークン数により表すことができ、その位置情報には、文書の先頭トークンから各ブロックの先頭トークンまでのトークンの順番を含むことができる。位置情報は、文書の先頭トークンから各ブロックの末尾トークンまでのトークンの順番を含むこともでき、それら2つのトークン数を、そのブロックを構成するトークン列の先頭から末尾までの範囲とすることができる。
また、各ブロックの位置は、文字数により表すこともでき、この場合、位置情報には、文書の先頭文字から各ブロックに含まれる文字列の先頭文字までの文字数が含まれる。位置情報は、文書の先頭文字から各ブロックの末尾文字までの文字数を含むこともでき、それら2つの文字数を、そのブロックを構成する文字列の先頭から末尾までの範囲とすることができる。
計算部は、ブロックに含まれる文字列において、指定された文字種を含む場合、その文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算する。電子メールでは、受信内容を引用する場合に記号「>」が追加されるが、この記号「>」を除いた文字列からハッシュ値を計算することで、同じハッシュ値をもつ文書としてグループ化することが可能となる。
文書グループ化部は、グループに含まれる複数の文書を、検索スコアに基づきソートするソート部を含む。これにより、グループに含まれる複数の文書は、検索スコア順に並べられる。
本発明では、上記検索システムが行う検索方法を提供することもできる。この方法は、分割部、計算部、記憶部、文書グループ化部の各部が実行する処理ステップを含む。
この検索方法は、プログラムとして構成し、プログラムを実行させることにより実現することもできる。このプログラムは、記録媒体に格納して提供することができる。
本発明の検索システム、検索方法、プログラムおよび記録媒体を提供することにより、検索結果の中から真に必要な文書が見つけやすくなり、その必要文書を探索する労力を軽減し、探索時間を短縮することが可能となる。
検索対象となる3つの文書を例示した図。 図1に示す文書に対する転置インデックスと、収集された文書を保管するデータ構造の例を示した図。 従来の検索エンジンの構成例を示した図。 検索対象となる文書を保持するデータソースと、検索要求を行うクライアント装置と、検索要求を受けて検索処理を行う検索エンジンを備えるサーバ装置とから構成されるネットワーク・システムを例示した図。 サーバ装置のハードウェア構成の一例を示した図。 サーバ装置を検索システムとして構成した場合の機能ブロック図。 検索対象となる3つの文書を例示した図。 分割された各ブロックに含まれる文字列にハッシュ関数を適用して各ブロックのハッシュ値を計算したところを示した図。 グループ化された文書を検索結果として表示した図。 電子メールの4つの例、それらをブロックに分けたところ、ハッシュ値と位置情報とを対応付けて表したところを示した図。 グループ化した検索結果の一例を示した図。
以下、本発明を図面に示した具体的な実施の形態に沿って説明するが、本発明は、後述する実施の形態に限定されるものではない。
図4は、検索対象となる文書を保持するデータソースと、検索要求を行うクライアント装置と、検索要求を受けて検索処理を行う検索エンジンを備えるサーバ装置とから構成されるネットワーク・システムを例示した図である。ここでは、データソース100、クライアント装置200、サーバ装置300がそれぞれ1つずつしか示されていないが、2つ以上がネットワーク400に接続されていてもよい。また、データソース100とサーバ装置300は、直接接続されていてもよい。
データソース100は、文書を保持する装置であればいかなる装置であってもよく、項目毎にデータを集めて管理するデータベースや他のサーバ装置とすることができる。データソース100は、文書を保持する、他のユーザが使用するPC等であってもよい。
データソース100がデータベースである場合、そのデータベースとしては、複数の関係(リレーション)を基本的なデータ型とし、格納されたデータを取得するための問合せが、等号や不等号等の関係演算子や、論理積や論理和や否定等の論理演算子を用いて行われるリレーショナル・データベースを用いることができる。なお、データベースは、オペレーティング・システム(OS)が提供するファイル・システム上に直接構築されたものでも、データベース管理システム(DBMS)を用いて構築されたものであってもよい。
クライアント装置200は、検索要求を出力することができるものであればいかなる装置であってもよく、ユーザが入力した検索語について検索要求を生成し、ネットワークを介した問合せを可能にするアプリケーションを備えるPCとすることができる。このPCは、ユーザが検索語を入力するためのキーボード、入力位置を指定し、検索開始の指示を与えるマウス、入力画面や検索結果を表示する表示装置、ネットワークに接続するためのネットワークI/F、アプリケーションを記憶するHDD、それらが実行のために読み出されるRAM、それらを実行するCPU等を備える。また、アプリケーションのほか、ネットワークを介した通信を可能にするために、Webブラウザを用いることができる。
サーバ装置300も、クライアント装置200と同様のハードウェア構成とすることができるが、Webブラウザと通信を行うためにWebサーバと、クライアント装置200から受信した検索要求を処理するための検索エンジンとを備える。
サーバ装置300は、上述したクライアント装置200と同様のハードウェア構成とすることができるが、図5を参照して、サーバ装置300のハードウェア構成の一例について簡単に説明する。図5に示すハードウェア構成では、メモリ310と、少なくとも1つのプロセッサ320と、メモリ制御部330と、チャネル・サブシステム340と、少なくとも1つの制御装置350と、少なくとも1つの入出力デバイス360とを備えている。
メモリ310は、入出力デバイス360から入力されたデータやプログラムを格納し、プロセッサ320およびチャネル・サブシステム340からのアドレス指定に応答して、そのアドレスに格納しているデータ等をプロセッサ320およびチャネル・サブシステム340へ送る。
プロセッサ320は、装置全体を制御し、少なくとも1つのOSを実行する。OSは、装置におけるプログラムの実行や入出力処理を制御する。メモリ制御部330は、バスを経由してメモリ310、プロセッサ320、チャネル・サブシステム340のそれぞれに接続される。このメモリ制御部330は、プロセッサ320やチャネル・サブシステム340が出したリクエストを一時的にキューに格納し、所定のタイミングでメモリ310へ送る。
チャネル・サブシステム340は、各制御装置350へ接続され、プロセッサ320の処理負荷を軽減するために、入出力デバイス360とメモリ310との間のデータ転送を制御する。これにより、プロセッサ320による演算処理と、入出力デバイス360による入出力処理とを並列に実行させることができ、処理効率を向上させることができる。
制御装置350は、入出力デバイス360のデータ転送のタイミング等を制御する。入出力デバイス360は、制御装置350、チャネル・サブシステム340、メモリ制御部330を経由し、メモリ310との間でデータ転送を行う。入出力デバイス360としては、HDD、ディスプレイ、キーボード、プリンタ、通信デバイス、他の記憶装置を挙げることができ、入出力デバイス360の1つには、データソース100が直接に、またはネットワーク400を介して接続される。
サーバ装置300による検索処理を実現するために、プログラムが記録された記録媒体が提供され、その記録媒体が入出力デバイス360の1つに接続され、そのプログラムが、制御装置350、チャネル・サブシステム340、メモリ制御部330を経由して、メモリ310へ送られ、メモリ310に格納される。格納されたプログラムは、再度それらを経由して入出力デバイス360に接続されたHDDへインストールされ、適宜プロセッサ320により読み出され、実行される。
プログラムが格納される記録媒体としては、フレキシブル・ディスク、CD-ROM、DVD、SDカード、フラッシュメモリ等を挙げることができる。このプログラムは、検索処理を実行し、検索結果を出力する処理を実現するプログラムを含む。このプログラムは、同じHDDにインストールされ、適宜プロセッサ320が読み出し、実行することにより検索エンジンとして機能する。
図6は、サーバ装置300を検索システムとして構成した場合の機能ブロック図である。この検索システムは、図3に示した従来の検索エンジンと同様、文書を周期的に取得する取得部としてのクローラー500、取得した文書を格納する格納部としてのデータベース505、文書からテキストを抽出し、段落等のフォーマット情報を抽出する抽出部としてのパーサー510、抽出したテキストおよびフォーマット情報を蓄積する蓄積部としてのストア515、テキストやフォーマット情報からインデックスを作成する作成部としてのインデクサー520、作成したインデックスを保管する保管部としての索引525、クライアント装置200から受信した検索要求に応答して、その検索要求に含まれる検索語をキーとして、その検索語を含む文書を検索する検索部としてのサーチ・ランタイム530を含む。
図3に示した従来の検索エンジンでは、クエリ関連情報作成装置18、クエリ関連情報比較装置19を含んでいたが、図6に示す検索システムでは、分割部535、計算部540、記憶部545、文書グループ化部550を含む。
クローラー500、データベース505、パーサー510、ストア515、インデクサー520、索引525、サーチ・ランタイム530の各機能については、既に述べたので、ここでは、分割部535、計算部540、記憶部545、文書グループ化部550について詳述する。
分割部535は、パーサー510により抽出されたテキストやフォーマット情報を受け取り、ユーザにより指定された分割情報に基づき、テキストを複数のブロックに分割する。分割情報は、テキストをどのように分割するかを示す情報で、センテンス毎、パラグラフ毎、空行、文書に付加された付加情報の少なくとも1つを選択することができる。センテンス毎を選択した場合は、テキストは、センテンス毎に分割される。複数の分割情報を選択して使用することもでき、例えば、特定の検索語が使用された場合は、パラグラフ毎の分割情報を使用し、その特定の検索語以外が使用された場合は、センテンス毎の分割情報を使用することができる。また、複数の分割情報を設定しておき、それらを使用して分割することができるようにすることで、ユーザやシステムがセンテンス毎の分割によるグループ化が適当ではないと判断した場合、パラグラフ毎の分割情報を使用してグループ化することできる。このように、複数の基準で分割できるようにすることで、検索時にグループ化の粒度を調整することができ、有用である。ここで、付加情報としては、HTML文書におけるHTMLタグを挙げることができる。なお、この分割は、インデックス作成時に行われる。
計算部540は、各ブロックに含まれる文字列にハッシュ関数を適用して各ブロックのハッシュ値を計算する。ハッシュ関数は、データからある一定範囲の数値を生成する関数で、ハッシュ関数を適用して得られるハッシュ値は、それぞれの文字列に対応する数値である。ハッシュ値は、Java(登録商標)言語の標準的なメソッド、例えばhashCode()等を使用して算出することができる。なお、hashCode()は、ハッシュ値を返すメソッドである。
ハッシュ関数の1つの例としては、文字列の1文字毎に割り当てられた文字コード、例えば数値を加算して求める関数を挙げることができる。この場合の文字コードとしては、ASCII文字コードを挙げることができる。上記例は一例であるので、ハッシュ値を求めるために、これまでに知られたいかなる計算式やアルゴリズムでも用いることができる。
記憶部545は、計算部540が計算して得たハッシュ値を、文書におけるブロックの位置情報とともに記憶する。ブロックの位置情報については下記に詳述する。
文書グループ化部550は、検索語に基づき検索されて得られた各文書につき、検索語を含むブロックの位置情報を基に、対応するハッシュ値を記憶部545から取り出す。そして、文書グループ化部550は、ハッシュ値が一致する文書をグループ化して、検索結果として出力する。出力された検索結果は、サーチ・ランタイム530へ送られ、サーチ・ランタイム530がクライアント装置200へ返す。クライアント装置200では、Webブラウザが検索結果を受信すると、表示装置へその検索結果を表示させる。
これらの詳細な処理を、図7〜図11を参照して説明する。図7(a)〜(c)は、文書例として、3つの電子メールが示されている。これらの電子メールはいずれも、本文と署名等からなるシグニチャーとから構成され、本文とシグニチャーとの間には空行がある。ここでは、分割情報として「空行」が指定されており、分割部535は、インデックス作成時に、この指定された「空行」という分割情報に基づき、電子メールを、空行で、本文とシグニチャーとの2つに分割する。具体的には、分割部535は、クローラー500が周期的に文書を取得し、パーサー510が構文解析した後、構文解析された文書を、複数のブロックに分割する。
図8は、分割された各ブロックに含まれる文字列にハッシュ関数を適用して各ブロックのハッシュ値を計算したところを示した図である。ブロックに含まれる文字列は、パーサー510によりトークン(分かち書きされた単語)列とされている。ここで、分かち書きとは、日本語の文章において語の区切りに空白を挟んで記述することをいう。図8(a)では、本文の「PHPのソースコードを添付します。よろしくお願いします。」と、シグニチャーの「------ 鈴木 Example Corp Japan XXX@example.co.jp」との間に空行があり、この空行によって2つのトークン列に分割されている。
計算部540は、各トークン列にハッシュ関数を適用し、対応する数値であるハッシュ値を計算する。上記の例でいうと、「PHPのソースコードを添付します。よろしくお願いします。」から計算により「1234567890」を、「------ 鈴木 Example Corp Japan XXX@example.co.jp」から計算により「0987654321」を算出する。ここでは、10桁の数値としてハッシュ値を算出しているが、10桁に限られるものではなく、いかなる桁の数値であってもよい。
文書中の文字は、行方向に、左から右へと配列し、その行が終了すると、その下の行に、左から右へと配列している。このことから、文書中のトークンは、左上隅にあるトークンを先頭に、右下隅にあるトークンまで順に並んでいる。位置情報としては、文書中の先頭トークンから各ブロックに含まれる文字列の先頭トークンまでのトークンの順番を含むことができる。ブロックの位置は、例えば、この順番と、文書中の先頭トークンから各ブロックに含まれる文字列の末尾トークンまでのトークンの順番とを用いて範囲で表すことができ、位置情報としては、その範囲を採用することもできる。
上記の例の「PHPのソースコードを添付します。よろしくお願いします。」では、「PHP」、「の」、「ソースコード」、「を」、「添付」、「し」、「ます」、「。」、「よろしく」、「お願い」、「し」、「ます」、「。」という13のトークンから構成され、「PHP」は最初のトークンであるから0トークンであり、最後の「。」は13トークン目であるから、その位置情報は「0トークン〜12トークン」とすることができる。図8(a)では、これらを「@」という記号を使用して結合し、「1234567890@0トークン〜12トークン」、「0987654321@13トークン〜24トークン」で表されている。これらの情報は、記憶部545に記憶される。
上記例では、位置情報に、文書中の先頭トークンから各ブロックの先頭トークンまでのトークン数を、各ブロックの先頭トークンまでのトークンの順番として用いた。ところが、実際にパーサー510では、同じ単語から複数のトークンが生成される場合がある。例えば、活用形でも検索を行うことができるように、5つの単語しかないのに、6つのトークンが生成されることがある。その一方、検索システムは、何番目のトークンでヒットしたという情報を返すので、上記のようにトークン数から計算した位置情報では、取り出すブロックがずれてしまうことがある。
この場合について「PHPのソースコードを添付します。よろしくお願いします。」という文を、センテンス毎にブロックに分け、その位置情報を計算する場合について説明する。パーサー510では、先頭から順に、「PHP」、「の」、「ソースコード」、「を」、「添付」、「し」、「ます」、「ました」、「。」、「よろしく」、「お願い」、「し」、「ます」、「ました」、「。」という15のトークンを生成したとする。ここで、2つの「ました」は、活用形として生成されたものであり、実際の文には含まれないものである。分割部535は、この文をセンテンス毎に分ける場合、「PHPのソースコードを添付します。」と「よろしくお願いします。」という2つのブロックに分ける。
計算部540は、ハッシュ値を計算するとともに位置情報を計算すると、パーサー510から得られた先頭トークンからのトークン数として「ます」を7番目、13番目、「ました」を8番目、14番目と計算するのではなく、実際に文に含まれない「ました」についてはその直前にある「ます」とトークンが重複する形で配列に並び、「ます」と「ました」の両方を7番目、12番目のトークンとして計算する。
そして、計算部540は、「PHPのソースコードを添付します。」というブロックに対しては、そのブロックの先頭トークンまでの順番と末尾トークンまでの順番とを使用して「ハッシュ値@0−7」、「よろしくお願いします。」というブロックに対しても、同様の順番を使用して「ハッシュ値@8−12」を求め、それらを記憶部545に記憶する。
算出されるハッシュ値は、同じトークンの並びであれば必ず同じものになり、1つのトークンでも異なると、異なったハッシュ値になる。図8(a)、(b)を参照してみると、本文は、一部のトークンが異なっているため、ハッシュ値が「1234567890」と「2345678901」のように異なった値となっており、その一方で、シグニチャーは、いずれのトークンも同じであるため、「0987654321」で同じハッシュ値となっている。図8(c)は、図8(a)、(b)の本文、シグニチャーのいずれも、少なくとも一部のトークンが異なっているため、ハッシュ値が異なった値となっている。
特定の文字種である記号からなるトークンについては、ハッシュ値の計算を行わないようにすることができる。このようにすることで、「こんにちは」という文字列と「>こんにちは」という文字列は、記号「>」の部分が異なるのみで、文字列「こんにちは」の部分が同じであるため、同じハッシュ値を算出することができる。この記号「>」は、電子メールの内容が引用された場合に追加されるものである。したがって、受信した電子メールの内容が引用されて記号「>」が追加されていたとしても、その他のトークンの並びが同じであれば、同じハッシュ値となる。これは、電子メールを検索する場合に有用である。これまでの処理は、インデックス作成時に行われる。なお、ハッシュ値の計算時に除かれる文字種としては、電子メールにおいて内容が引用された場合に追加される「>」や「>>」に限られるものではなく、ユーザが予め指定しておくことにより、その文字種を除いて計算することができる。
クライアント装置200が検索要求を出力すると、サーチ・ランタイム530は、検索要求に含まれる検索語を基に、インデクサー520が作成したインデックスを索引525の中から検索し、検索して得られた文書のテキストやフォーマット情報をストア515から取得する。サーチ・ランタイム530は、これらの情報を文書グループ化部550へ渡す。
文書グループ化部550は、検索結果の文書毎にヒットしたトークンが含まれていたブロックのハッシュ値を、検索語を含むブロックの位置情報を基に記憶部545から取り出し、同一のハッシュ値をもつ文書を1つのグループとしてグループ化する。
サーチ・ランタイム530は、入力された検索語に基づき検索を実行した場合、何番目のトークンでヒットしたという結果を返すが、計算部540がトークン列のトークンの順番を位置情報として計算し、記憶部545に記憶しているので、文書グループ化部550は、サーチ・ランタイム530から返されたトークンの順番に基づきハッシュ値を取り出すことで、適切なハッシュ値を取り出すことができる。
複数のトークン列を含む文書は、分割部535により、複数のブロックに分割され、計算部540により、各ブロックに含まれるトークン列から各ハッシュ値が計算され、各々が記憶部545に記憶されるが、2以上のブロックに検索語が含まれる場合、それら2以上のブロックに含まれるトークン列から計算されたハッシュ値を合計したものを、その文書のハッシュ値として計算し、記憶することができる。
ユーザがクライアント装置200において「鈴木」という検索語を入力し、検索要求を出力した場合、サーチ・ランタイム530は、索引525を検索し、図8(a)〜(c)に示す3つの文書を検索結果として得る。図8(a)〜(c)に示す文書を順に、文書1〜3として参照すると、文書1では、検索語「鈴木」が15トークン目にあり、そのトークンを含むブロックのハッシュ値は、「0987654321」である。文書2では、検索語「鈴木」が17トークン目にあり、そのトークンを含むブロックのハッシュ値は、「0987654321」で、上記文書1と同じである。このため、文書1と文書2は、同じグループとしてグループ化される。
文書3では、検索語「鈴木」が1トークン目にあり、そのトークンを含むブロックのハッシュ値は、「3456789012」で、文書1および文書2とは異なる。このため、文書3は、文書1や文書2とは別のグループとしてグループ化される。
グループ化された文書を検索結果として表示する場合、その文書があるグループに含まれていることが判断できればいかなる表示であってもよく、例えば、図9(b)に示すような表示とすることができる。この図9(b)に示す検索結果は、同じグループにグループ化された文書は、1番目の文書は、通常通り表示されるが、2番目以降は、右にインデントされ、その先頭に縦棒が表示されている。このようにすることで、ユーザは、検索結果の文書間の関連性を一見して判断することができる。なお、グループ化された文書の表示は、上記の縦棒およびインデントに限られるものではなく、字体を変える、識別記号を付する等により識別することができる。
グループ化された文書の配列は、検索スコアを基に行うことができる。検索スコアは、検索語が出現する文書数と全文書数とから、全文書中のどの程度の文書に検索語が出現するかを表す値を求め、その値と検索語の出現回数とを乗じて得られる値とすることができる。このため、出現回数が多い文書ほど高スコアとなり、出現回数が少ない文書ほど低スコアとなる。
図9(a)には、図9(b)との比較のために、グループ化をしない従来の単に検索語「鈴木」に基づいてサーチ・ランタイム530により検索を行った結果を表示している。図9(a)に示す検索結果では、ユーザは、それぞれの検索結果を評価する必要があるが、図9(b)に示す検索結果では、ユーザは、どの結果が重複しているかを一見して判断することができるので、そのうちの1つを評価すればよく、必要な文書を容易に探し出すことが可能となる。
これまで説明してきた実施形態では、ブロックの位置情報をトークンの順番により表してきた。しかしながら、位置情報は、トークンの順番で表すものに限らず、配列する文字の順番によって表すこともできる。図10(a)〜(d)は、電子メールの4つの例、それらをブロックに分けたところ、ハッシュ値と位置情報とを対応付けて表したところを示した図である。
図10に示す実施形態も、分割部535により、空行で、各ブロックに分割されている。図10(a)および(b)に示す文書1および文書2では、本文とシグニチャーの2つに、図10(c)および(d)に示す文書3および文書4では、引用された文章およびシグニチャーに記号「>」や「>>」が追加され、複数の本文とシグニチャーの4および6つに分割されている。
計算部540は、各ブロックに含まれる文字列からハッシュ値を計算し、文書の先頭文字からその文字列の先頭文字までの文字数と、文書の先頭文字からその文字列の末尾文字までの文字数とを使用して表される範囲を位置情報として用い、その位置情報とハッシュ値と対応付けて記憶部545に記憶する。図10(a)に示す文書でいえば、本文の「db2jcc.jarを明日、チェックインします。」と、シグニチャーの「---- 田中」とに分割され、本文に対し「11111111」が算出され、シグニチャーに対し「22222222」が算出されている。この本文は、それ以前に文字が存在しないため、1文字目から開始し、文字数が24文字であることから、位置情報は「1〜24」とされ、シグニチャーが25文字目から開始し、文字数が6文字であることから、位置情報は「25〜30」とされている。
クライアント装置200からの検索要求を受けて、サーチ・ランタイム530が索引525の中から文書を検索する。ここでは、検索語として「db2jcc.jar」が入力されている。サーチ・ランタイム530は、この「db2jcc.jar」を含む文書を検索し、検索結果を文書グループ化部550へ渡す。文書グループ化部550は、その「db2jcc.jar」を含むブロックのハッシュ値が同じ文書を1つのグループにグループ化する。この実施形態では、文書1、3、4が同じ「11111111」というハッシュ値をもつため、文書グループ化部550は、これらを同じグループにグループ化する。文書2については、「db2jcc.jar」を含むブロックのハッシュ値が「33333333」と異なるため、文書グループ化部550は、異なるグループにグループ化する。
文書グループ化部550は、グループ化した検索結果をサーチ・ランタイム530へ返し、サーチ・ランタイム530がクライアント装置200へその検索結果を送信する。このときのグループ化した検索結果の一例を、図11(a)、(b)に例示する。検索結果は、一見して分かるように、同じグループに属する文書の2番目以降がインデントされている。図11では、文書1、3、4が、同じグループとされ、文書2が別のグループとされている。
本発明では、検索対象となる文書を、複数のブロックに分割し、各ブロックに含まれる文字列からハッシュ値を計算し、計算したハッシュ値にそのブロックの位置情報を対応付けて記憶している。このため、ハッシュ値と位置情報を記憶する分だけ、メモリ使用量が増加する。メモリ使用量の大幅な増加は、プロセッサの処理速度の大幅な低下を招いてしまう。
そこで、どの程度メモリ使用量が増加するかについて検討した。格納される文書(電子メール)の数が11830、センテンス数が512127のメール・コーパスをデータソースとして使用した。文書の分割は、センテンス毎で行い、ハッシュ値は、8バイトの長さ、位置情報は、文書の先頭トークンからセンテンスの先頭トークンまでの順番を表すトークン番号と、文書の先頭トークンからセンテンスの末尾トークンまでの順番を表すトークン番号とした。
この条件の下、インデックスを格納するために使用されるメモリ使用量は、従来のインデックスを格納するのみで、ハッシュ値を記憶しない場合には、93995008バイトとなり、本発明のインデックスに加えてハッシュ値も記憶する場合には、98820096バイトとなった。これは、1センテンス当たり、9.42バイトの増加で、メモリ使用量は、約5%増加しただけであった。このことから、メモリ使用量が大幅に増加することはなく、プロセッサの処理速度に影響はないものと考えられる。
検索対象となる文書は、テキストが抽出できる文書であればいかなる文書であってもよく、テキストファイル、オフィス文書、電子メール等を挙げることができる。なお、データ・フォーマットが異なる文書でも、抽出されたテキストと分割情報が同一であれば、関連する文書であるか否かを検出することができる。このため、ブロックの分割は、同じ区切り方でなければならない。区切り方が異なれば、関連する文書の判断が変わるからである。
検索システムが文書毎に持つべき情報としては、上記の文書を構成するトークン列、どのように分割するかを示す分割情報のほか、文書の識別情報(例えば、文書番号)、ハッシュ値に含める文字情報等を挙げることができる。トークン列および文書の識別情報は、パーサー510から受け取るが、分割情報は分割部535が、ハッシュ値に含める文字情報は計算部540がそれぞれ保持する。
また、インデックス作成時に記憶し、検索時に使用する情報としては、ハッシュ値、ブロックの位置情報のほか、文書の識別情報を挙げることができる。これらは、記憶部545に記憶され、検索時に、文書グループ化部550により読み出される。
これまで、本発明の検索システムおよびその検索システムにより実行される検索方法を、図面を参照して詳細に説明してきたが、本発明は上記実施の形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。本発明は、コンピュータ読み取り可能なプログラムとして構成し、コンピュータにそのプログラムを実行させることにより、検索システムとして実現することができ、そのプログラムは、記録媒体に格納して提供することができる。
10…検索エンジン、11…データベース、12…クローラー、13…パーサー、14…ストア、15…インデクサー、16…索引、17…サーチ・ランタイム、18…クエリ関連情報作成装置、19…クエリ関連情報比較装置、20…データソース、30…クライアント装置、100…データソース、200…クライアント装置、300…サーバ装置、310…メモリ、320…プロセッサ、330…メモリ制御部、340…チャネル・サブシステム、350…制御装置、360…入出力デバイス、400…ネットワーク、500…クローラー、505…データベース、510…パーサー、515…ストア、520…インデクサー、525…索引、530…サーチ・ランタイム、535…分割部、540…計算部、545…記憶部、550…文書グループ化部

Claims (20)

  1. 入力された検索語に基づき文書検索を行い、検索結果を出力する検索システムであって、
    検索対象となる文書を、指定された分割情報に基づき複数のブロックに分割する分割部と、
    各ブロックに含まれる文字列にハッシュ関数を適用して該各ブロックのハッシュ値を計算する計算部と、
    得られた前記ハッシュ値を前記文書におけるブロックの位置情報とともに記憶する記憶部と、
    前記検索語に基づき検索されて得られた各文書につき、該検索語を含むブロックの位置情報を基に、対応するハッシュ値を前記記憶部から取り出し、前記ハッシュ値が一致する文書をグループ化して、前記検索結果として出力する文書グループ化部とを備える、検索システム。
  2. 前記分割部は、前記分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つにより分割する、請求項1に記載の検索システム。
  3. 前記文書は、複数の単語(トークン)が順に配列するトークン列とされ、前記各ブロックの位置情報は、前記文書の先頭トークンから前記各ブロックの先頭トークンまでのトークンの順番を含む、請求項1に記載の検索システム。
  4. 前記各ブロックの位置情報は、前記文書の先頭文字から前記各ブロックの先頭文字までの文字数を含む、請求項1に記載の検索システム。
  5. 前記計算部は、前記ブロックに含まれる文字列において、指定された文字種を含む場合、前記文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算する、請求項1に記載の検索システム。
  6. 前記文書グループ化部は、グループに含まれる複数の文書を、検索スコアに基づきソートするソート部を含む、請求項1に記載の検索システム。
  7. 入力された検索語に基づき文書検索を行い、検索結果を出力する検索システムにより実行される検索方法であって、
    検索対象となる文書を、指定された分割情報に基づき複数のブロックに分割するステップと、
    各ブロックに含まれる文字列にハッシュ関数を適用して該各ブロックのハッシュ値を計算するステップと、
    得られた前記ハッシュ値を前記文書におけるブロックの位置情報とともに記憶部に記憶するステップと、
    前記検索語に基づき検索されて得られた各文書につき、該検索語を含むブロックの位置情報を基に、対応するハッシュ値を前記記憶部から取り出し、前記ハッシュ値が一致する文書をグループ化して、前記検索結果として出力するステップとを含む、検索方法。
  8. 前記分割するステップと前記計算するステップと前記記憶するステップは、前記検索システムが検索時に使用するインデックスの作成時に実行され、前記出力するステップは、前記検索時に実行される、請求項7に記載の検索方法。
  9. 前記分割するステップでは、前記分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つにより分割する、請求項7に記載の検索方法。
  10. 前記文書は、複数の単語(トークン)が順に配列するトークン列とされ、前記各ブロックの位置情報は、前記文書の先頭トークンから前記各ブロックの先頭トークンまでのトークンの順番を含む、請求項7に記載の検索方法。
  11. 前記各ブロックの位置情報は、前記文書の先頭文字から前記各ブロックの先頭文字までの文字数を含む、請求項7に記載の検索方法。
  12. 前記計算するステップでは、前記ブロックに含まれる文字列において、指定された文字種を含む場合、前記文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算する、請求項7に記載の検索方法。
  13. 前記出力するステップは、グループに含まれる複数の文書を、検索スコアに基づきソートするステップを含む、請求項7に記載の検索方法。
  14. 入力された検索語に基づき文書検索を行い、検索結果を出力する検索システムにより実行される検索方法を実行するためのコンピュータにより読み取り可能なプログラムであって、
    検索対象となる文書を、指定された分割情報に基づき複数のブロックに分割するステップと、
    各ブロックに含まれる文字列にハッシュ関数を適用して該各ブロックのハッシュ値を計算するステップと、
    得られた前記ハッシュ値を前記文書におけるブロックの位置情報とともに記憶部に記憶するステップと、
    前記検索語に基づき検索されて得られた各文書につき、該検索語を含むブロックの位置情報を基に、対応するハッシュ値を前記記憶部から取り出し、前記ハッシュ値が一致する文書をグループ化して、前記検索結果として出力するステップとを実行させる、プログラム。
  15. 前記分割するステップと前記計算するステップと前記記憶するステップを、前記検索システムが検索時に使用するインデックスの作成時に実行させ、前記出力するステップを、前記検索時に実行させる、請求項14に記載のプログラム。
  16. 前記分割するステップでは、前記分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つにより分割する、請求項14に記載のプログラム。
  17. 前記計算するステップでは、前記ブロックに含まれる文字列において、指定された文字種を含む場合、前記文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算する、請求項14に記載のプログラム。
  18. 前記出力するステップは、グループに含まれる複数の文書を、検索スコアに基づきソートするステップを含む、請求項14に記載のプログラム。
  19. 入力された検索語に基づき文書検索を行い、検索結果を出力する検索システムであって、
    検索対象となる文書を、指定された分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つに基づき複数のブロックに分割する分割部と、
    各ブロックに含まれる文字列にハッシュ関数を適用して該各ブロックのハッシュ値を計算する計算部と、
    得られた前記ハッシュ値を、複数の単語(トークン)が順に配列するトークン列とされる前記文書の先頭トークンから前記各ブロックの先頭トークンまでのトークンの順番を含むブロックの位置情報とともに記憶する記憶部と、
    前記検索語に基づき検索されて得られた各文書につき、該検索語を含むブロックの位置情報を基に、対応するハッシュ値を前記記憶部から取り出し、前記ハッシュ値が一致する文書をグループ化して、前記検索結果として出力する文書グループ化部とを備え、
    前記計算部は、前記ブロックに含まれる文字列において、指定された文字種を含む場合、前記文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算し、
    前記文書グループ化部は、グループに含まれる複数の文書を、検索スコアに基づきソートするソート部を含む、検索システム。
  20. 入力された検索語に基づき文書検索を行い、検索結果を出力する検索システムであって、
    検索対象となる文書を、指定された分割情報としてのセンテンス毎、パラグラフ毎、空行、前記文書に付加された付加情報の少なくとも1つに基づき複数のブロックに分割する分割部と、
    各ブロックに含まれる文字列にハッシュ関数を適用して該各ブロックのハッシュ値を計算する計算部と、
    得られた前記ハッシュ値を、前記文書の先頭文字から前記各ブロックの先頭文字までの文字数を含むブロックの位置情報とともに記憶する記憶部と、
    前記検索語に基づき検索されて得られた各文書につき、該検索語を含むブロックの位置情報を基に、対応するハッシュ値を前記記憶部から取り出し、前記ハッシュ値が一致する文書をグループ化して、前記検索結果として出力する文書グループ化部とを備え、
    前記計算部は、前記ブロックに含まれる文字列において、指定された文字種を含む場合、前記文字種を除いた文字列にハッシュ関数を適用してハッシュ値を計算し、
    前記文書グループ化部は、グループに含まれる複数の文書を、検索スコアに基づきソートするソート部を含む、検索システム。
JP2010534793A 2008-10-20 2009-10-16 検索システム、検索方法およびプログラム Expired - Fee Related JP5138046B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010534793A JP5138046B2 (ja) 2008-10-20 2009-10-16 検索システム、検索方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008270028 2008-10-20
JP2008270028 2008-10-20
PCT/JP2009/067929 WO2010047286A1 (ja) 2008-10-20 2009-10-16 検索システム、検索方法およびプログラム
JP2010534793A JP5138046B2 (ja) 2008-10-20 2009-10-16 検索システム、検索方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2010047286A1 JPWO2010047286A1 (ja) 2012-03-22
JP5138046B2 true JP5138046B2 (ja) 2013-02-06

Family

ID=42119326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010534793A Expired - Fee Related JP5138046B2 (ja) 2008-10-20 2009-10-16 検索システム、検索方法およびプログラム

Country Status (5)

Country Link
US (1) US9031935B2 (ja)
EP (1) EP2367121A4 (ja)
JP (1) JP5138046B2 (ja)
TW (1) TW201027375A (ja)
WO (1) WO2010047286A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990429B2 (en) 2010-05-14 2018-06-05 Microsoft Technology Licensing, Llc Automated social networking graph mining and visualization
JP5618968B2 (ja) * 2011-11-11 2014-11-05 日本電信電話株式会社 類似ページ検出装置、類似ページ検出方法、類似ページ検出プログラム
US20150026159A1 (en) * 2012-03-05 2015-01-22 Evresearch Ltd Digital Resource Set Integration Methods, Interfaces and Outputs
US9026992B2 (en) * 2012-06-22 2015-05-05 Microsoft Technology Licensing, Llc Folded views in development environment
CN103577413B (zh) * 2012-07-20 2017-11-17 阿里巴巴集团控股有限公司 搜索结果排序方法及系统、搜索结果排序优化方法及系统
TWI484359B (zh) * 2012-10-26 2015-05-11 Inst Information Industry 文章資訊提供方法以及系統
CN104283930B (zh) * 2013-07-11 2017-09-22 一零四资讯科技股份有限公司 安全索引的关键字搜索系统及建立该系统的方法
GB2520936A (en) 2013-12-03 2015-06-10 Ibm Method and system for performing search queries using and building a block-level index
CN104077272B (zh) * 2014-06-23 2017-01-04 华为技术有限公司 一种字典压缩的方法和装置
US9996629B2 (en) * 2015-02-10 2018-06-12 Researchgate Gmbh Online publication system and method
EP3096277A1 (en) 2015-05-19 2016-11-23 ResearchGate GmbH Enhanced online user-interaction tracking
US11005645B2 (en) 2016-01-15 2021-05-11 Mitsubishi Electric Corporation Encryption device, encryption method, computer readable medium, and storage device
TWI608415B (zh) * 2016-11-29 2017-12-11 關貿網路股份有限公司 電子檔案資料擷取系統及其方法
WO2018198192A1 (ja) 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
JP7325396B2 (ja) * 2020-12-25 2023-08-14 株式会社日立製作所 データファイル暗号化送受信システム及びデータファイル暗号化送受信方法
CN112651236B (zh) * 2020-12-28 2021-10-01 中电金信软件有限公司 提取文本信息的方法、装置、计算机设备和存储介质
US11809493B2 (en) * 2021-01-19 2023-11-07 Micro Focus Llc System and method for tokenization of data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295970A (ja) * 1994-04-21 1995-11-10 Fuji Xerox Co Ltd 文書処理装置
JP2005173889A (ja) * 2003-12-10 2005-06-30 Intellectual Capital Group Kk 削除候補特徴情報生成装置、受信情報処置装置および削除候補判定装置、方法、プログラムおよび記録媒体
JP2008015774A (ja) * 2006-07-05 2008-01-24 Nagaoka Univ Of Technology 模倣文書検出システム及びプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295994A (ja) * 1994-04-22 1995-11-10 Sharp Corp 情報検索装置
US5909677A (en) 1996-06-18 1999-06-01 Digital Equipment Corporation Method for determining the resemblance of documents
JP2001167096A (ja) * 1999-12-06 2001-06-22 Ricoh Co Ltd 文書検索システム、文書検索方法及びその方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6615209B1 (en) 2000-02-22 2003-09-02 Google, Inc. Detecting query-specific duplicate documents
US6757675B2 (en) * 2000-07-24 2004-06-29 The Regents Of The University Of California Method and apparatus for indexing document content and content comparison with World Wide Web search service
US6978419B1 (en) 2000-11-15 2005-12-20 Justsystem Corporation Method and apparatus for efficient identification of duplicate and near-duplicate documents and text spans using high-discriminability text fragments
US6658423B1 (en) 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
JP2003141027A (ja) * 2001-10-31 2003-05-16 Toshiba Corp 要約作成方法および要約作成支援装置およびプログラム
US6910037B2 (en) * 2002-03-07 2005-06-21 Koninklijke Philips Electronics N.V. Method and apparatus for providing search results in response to an information search request
US20050108630A1 (en) * 2003-11-19 2005-05-19 Wasson Mark D. Extraction of facts from text
US7475061B2 (en) * 2004-01-15 2009-01-06 Microsoft Corporation Image-based document indexing and retrieval
US7523098B2 (en) * 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
JP2006285499A (ja) * 2005-03-31 2006-10-19 Nec Corp データマイニング装置、データマイニング方法およびそのプログラム
US7814078B1 (en) * 2005-06-20 2010-10-12 Hewlett-Packard Development Company, L.P. Identification of files with similar content
US20070260450A1 (en) * 2006-05-05 2007-11-08 Yudong Sun Indexing parsed natural language texts for advanced search
US7890533B2 (en) * 2006-05-17 2011-02-15 Noblis, Inc. Method and system for information extraction and modeling
JP5181504B2 (ja) * 2007-03-22 2013-04-10 富士通株式会社 データ処理方法、プログラム及び情報処理装置
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US7676501B2 (en) * 2008-03-22 2010-03-09 Wilson Kelce S Document integrity verification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295970A (ja) * 1994-04-21 1995-11-10 Fuji Xerox Co Ltd 文書処理装置
JP2005173889A (ja) * 2003-12-10 2005-06-30 Intellectual Capital Group Kk 削除候補特徴情報生成装置、受信情報処置装置および削除候補判定装置、方法、プログラムおよび記録媒体
JP2008015774A (ja) * 2006-07-05 2008-01-24 Nagaoka Univ Of Technology 模倣文書検出システム及びプログラム

Also Published As

Publication number Publication date
JPWO2010047286A1 (ja) 2012-03-22
EP2367121A1 (en) 2011-09-21
US20110302166A1 (en) 2011-12-08
EP2367121A4 (en) 2012-12-26
TW201027375A (en) 2010-07-16
WO2010047286A1 (ja) 2010-04-29
US9031935B2 (en) 2015-05-12

Similar Documents

Publication Publication Date Title
JP5138046B2 (ja) 検索システム、検索方法およびプログラム
US9069857B2 (en) Per-document index for semantic searching
US20060179039A1 (en) Method and system for performing secondary search actions based on primary search result attributes
Wu et al. Searching services" on the web": A public web services discovery approach
CN105404677A (zh) 一种基于树形结构的检索方法
JP2010262577A (ja) 抽出規則作成システム、抽出規則作成方法及び抽出規則作成プログラム
US20140129543A1 (en) Search service including indexing text containing numbers in part using one or more number index structures
CN112380337A (zh) 基于富文本的高亮方法及装置
JP4750628B2 (ja) 情報ランキング方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体
CN102257490A (zh) 文档信息选择方法和计算机程序产品
US20140358522A1 (en) Information search apparatus and information search method
JP3784060B2 (ja) データベース検索システム、その検索方法及びプログラム
JP5869948B2 (ja) パッセージ分割方法、装置、及びプログラム
CN112527954A (zh) 非结构化数据全文搜索方法、系统及计算机设备
JP5169456B2 (ja) 文書検索システム、文書検索方法および文書検索プログラム
JP2001265774A (ja) 情報検索方法、装置、および情報検索プログラムを記録した記録媒体、ハイパーテキスト情報検索システム
JP2005242416A (ja) 自然言語文の検索方法および検索装置
CN105426490A (zh) 一种基于树形结构的索引方法
JP2006243861A (ja) 履歴作成装置、活動履歴作成方法、及び活動履歴作成プログラム
JP5963310B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP2010272006A (ja) 関係抽出装置、関係抽出方法、及びプログラム
US20080033953A1 (en) Method to search transactional web pages
JP2016018279A (ja) 文書ファイル検索プログラム、文書ファイル検索装置、文書ファイル検索方法、文書情報出力プログラム、文書情報出力装置及び文書情報出力方法
JP5285491B2 (ja) 情報検索システム、方法及びプログラム、索引作成システム、方法及びプログラム、
JP5127553B2 (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121023

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121113

R150 Certificate of patent or registration of utility model

Ref document number: 5138046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees