JP2005234930A - 文書管理装置および文書管理方法 - Google Patents

文書管理装置および文書管理方法 Download PDF

Info

Publication number
JP2005234930A
JP2005234930A JP2004043982A JP2004043982A JP2005234930A JP 2005234930 A JP2005234930 A JP 2005234930A JP 2004043982 A JP2004043982 A JP 2004043982A JP 2004043982 A JP2004043982 A JP 2004043982A JP 2005234930 A JP2005234930 A JP 2005234930A
Authority
JP
Japan
Prior art keywords
document
character string
partial character
data
post
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.)
Pending
Application number
JP2004043982A
Other languages
English (en)
Inventor
Masakazu Hattori
雅一 服部
Katsuhiko Nonomura
克彦 野々村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004043982A priority Critical patent/JP2005234930A/ja
Publication of JP2005234930A publication Critical patent/JP2005234930A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 検索速度がより高速な文書管理装置および文書管理方法を提供する。
【解決手段】 索引データ格納時、Gramデータによりポストデータ領域を分けて、更にGramデータの前置語や後置語によりポストデータ領域を分けて索引データを格納する。検索時、キーワードのGramデータおよびこのGramデータの前置語や後置語によって、ポストデータ領域を制限してスキャンすることにより前記キーワードを含む文書を検索する。
【選択図】 図7

Description

この発明は、大量に蓄えられた文書集合の中からキーワードとして指定された検索要求に合致する文書を索引を使って検索する文書管理装置および文書管理方法に関する。
従来、大量に蓄えられた文書集合の中からキーワードとして指定された検索要求に合致する文書を検索する場合、検索の高速化を図るために、文書格納時に索引(インデックス)を作成する方法が知られている。索引の一例として、文書内にあるテキストデータから文字種別毎にその出現する位置情報を索引化する方法がある。また、連続するN文字種別毎にその出現する位置情報を索引化する方法もある。これをN−Gram索引と呼ぶ。Nは1以上の整数であり、日本語文書ではN=2、即ちBi−Gramで切り出すことが一般である。一方、英語ではN=3以上で切り出すことが一般的である。
N−Gramは以下のような特徴がある。
1)言語に依存した辞書が不要である。多言語展開も容易である。
2)空白などの語彙区切りができない日本語、中国語、韓国語などで利用されている。
3)オフセットなどと組合せれば、検索漏れが無い。
このようなメリットがあるのだが、一方、以下のような問題も指摘されている。
1)形態素解析をベースとした索引方式と比較して、多くの索引データが切り出されてしまう。このため索引データサイズが大きくなったり、格納スピードの低下を招いたりする。
2)Nの長さについてトレードオフがある。Nの長さが大きければ、索引データの候補が絞り込まれて検索速度は速くなる。しかし、Nの長さが大きければ、Gramデータ領域が指数敵に増大してしまう。
3)長大なキーワードが与えられた場合、切り出されたGram数が多くなり、検索速度が悪化する。
上記「Nの長さについてトレードオフがある」問題に対して、例えば下記特許文献1「文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体」ではインクリメンタルにNサイズを上げていくN−Gram索引方式が知られている。
この特許文献1では、検索性能の高速化を図ると共に索引サイズの増加を最小限に抑えることを目的とする。
特許文献1の文書検索方法は、検索タームの部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索ステップと、テキストデータの部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較するインデクスサイズ比較ステップと、該インデクスのサイズが該基準インデクスサイズより大きい場合に、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する検索可能性判定ステップと、該部分文字列が前記インデクス検索ステップで検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成する文字列インクリメントステップを有する。
特許文献1の方法では、Nを上げていけば長大なキーワードが与えられた場合、切り出されたGram数が低減する可能性がある。しかし、検索される可能性が高いか判定する基準が難しい可能性がある。参照頻度比較プログラムでは、語の参照頻度を参照頻度テーブルから取得し、予め定められた基準参照頻度と比較する。参照頻度が低ければ、それを含むGramサイズを拡張せず、そうでなければGramサイズの拡張を行う。
しかし、この方法では実際に検索を繰り返し行い検索履歴を残さないと、インクリメンタルにNサイズを上げていけなくなる。
特開2000−57151公報
このように従来のN−Gram索引方式は、長大なキーワードが与えられた場合、切り出されたGram数が多くなり検索速度が悪化するという問題があった。
この発明は、長大なキーワードが与えられた場合にも、検索速度がより高速な文書管理装置および文書管理方法を提供することを目的とする。
上記の目的を達成するために、この発明においては、テキストデータを含む複数の文書の中から、指定されたキーワードを前記テキストデータ内に含む文書を、前記複数の文書から予め作成された索引データを使って検索する文書管理装置において、入力された文書を格納する文書格納手段と、前記入力された文書内のテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記文書内のテキストデータから抽出する第1の抽出手段と、前記第1の部分文字列および前記第1の部分文字列に隣接する文字との組合せ毎に記憶領域を分けて、前記第1の位置情報および前記文書を識別するための文書識別情報を対応付けた前記索引データを記憶媒体に格納する索引データ格納手段と、入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出する第2の抽出手段と、前記キーワードの部分文字列間の組合せによって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む文書を検索する検索手段とを備えたことを特徴とする文書管理装置を提供する。
また、上記の目的を達成するために、この発明においては、テキストデータを含む複数の構造化文書の中から、文書構造を示す情報を除く前記テキストデータ内に、指定されたキーワードを含む構造化文書を、前記複数の構造化文書から予め作成された索引データを使って検索する文書管理装置において、入力された構造化文書を格納する文書格納手段と、前記入力された構造化文書内の文書構造を示す情報を除くテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記構造化文書内のテキストデータから抽出する第1の抽出手段と、前記第1の部分文字列が属する構造情報によって構造毎に記憶領域を分けて、前記第1の位置情報および前記構造化文書を識別するための構造化文書識別情報からなる前記索引データを記憶媒体に格納する索引データ格納手段と、入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出する第2の抽出手段と、前記キーワードが属する前記構造情報を入力する構造情報入力手段と、前記キーワードの部分文字列間の組合せおよび構造情報入力手段によって入力された前記構造情報によって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む構造化文書を検索する検索手段とを備えたことを特徴とする文書管理装置を提供する。
また、上記の目的を達成するために、この発明においては、テキストデータを含む複数の文書の中から、指定されたキーワードを前記テキストデータ内に含む文書を、前記複数の文書から予め作成された索引データを使って検索する文書管理方法において、文書格納手段により、入力された文書を格納し、第1の抽出手段により、前記入力された文書内のテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記文書内のテキストデータから抽出し、索引データ格納手段により、前記第1の部分文字列および前記第1の部分文字列に隣接する文字との組合せ毎に記憶領域を分けて、前記第1の位置情報および前記文書を識別するための文書識別情報を対応付けた前記索引データを記憶媒体に格納し、第2の抽出手段により、入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出し、検索手段により、前記キーワードの部分文字列間の組合せによって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む文書を検索することを特徴とする文書管理方法を提供する。
この発明によれば、長大なキーワードが与えられた場合にも、検索速度がより高速な文書管理装置および文書管理方法を提供することができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
(第1の実施形態)
図1は、この発明の第1の実施形態に係る文書管理装置の構成を示す図である。
図1において文書管理システム100は、文書格納部101,文書検索部102,Gramデータ管理部103,ポストデータ管理部104から構成されている。
文書管理システム100は、ネットワーク110に接続されており、ネットワーク110に接続された端末120から文書格納や文書検索の要求を受ける。
データファイル130は、文書管理システム100により生成されたもので、文書内にあるテキストデータや索引データが格納されたファイルである。このファイルは記憶媒体等に記憶される。
文書格納部101は、端末120から入力された文書格納要求を処理し、Gramデータ管理部103およびポストデータ管理部104を呼出し、文書内にあるテキストデータの索引付けを行い、テキストデータをデータファイル130内のテキストデータ領域131に格納する。
文書検索部102は文書検索要求を処理し、Gramデータ管理部103およびポストデータ管理部104を呼出し、データファイル130内にあるGramデータ領域132とポストデータ領域133をスキャンして、索引データを取り出す。この取り出した索引データは、文書検索要求に合致するテキストデータへのリンクである。そして文書検索部102は索引データからテキストデータを取り出し端末120に送る。
Gramデータ管理部103は、データファイル130内のGramデータ領域132を管理し、Gramデータの新規作成,更新,検索を行う。
ポストデータ管理部104は、データファイル130内のポストデータ領域133を管理し、ポストデータの新規作成,更新,検索を行う。
以下、N−GramにおけるNの値を2、即ちBi−Gramで切り出すこととして話しを進めていく。
図2は、従来技術に基づくデータファイルの構成例を示す図である。
図2において、索引データは、Gramデータ領域132とポストデータ領域133から構成されている。
Gramデータ領域132は、文書内にあるテキストデータから抽出されたGramの情報を管理している。
ポストデータ領域133は、文書内にあるテキストデータから抽出されたGramの位置情報を管理している。
Gramデータ領域132は、文書内にあるテキストデータから抽出されたGram、ここでは“燃料”,“カリ”,“電池”,・・・などのGramデータが並べられており、このGramデータからポストデータ領域133のポストブロックが指定されている。この指定は、メモリであればメモリ上のアドレスが指定され,ファイルであればオフセットによりリンクしている。
つまり、“燃料”Gramのポストデータは、PBID=1023のポストブロックをスキャンすればわかることになる。このときスキャンの終了は、ポストブロックのチェーンをたどり、チェーンの先が無い(例えば0がセットされている)場合にスキャンを終了する。
ポストデータ領域133は、ポストデータをブロック化したポストブロックの並びから構成されている。ポストデータは、例えば<文書ID,文書内テキストデータ中のオフセット>のような形式である。ポストブロックは通常固定長で設計されるので、ポストブロック内に存在するポストデータの数は固定である。
ポストブロックにはポストブロックID(以下、PBIDと記す)としてシーケンシャルな番号が割当てられている。
図3は、従来技術に基づく文書管理システムによる文書格納処理の動作を説明するためのフローチャートである。なお、特にことわらない限り次の動作は、文書管理システム全体を制御する制御部が、文書管理システムを制御することにより動作している。
図3において、文書管理システムは、文書格納部に格納されている文書を読む(ステップS301)。
次に、ステップS301で読んだ文書に文書識別子および文書IDを割当てる(ステップS302)。
次に、文書のデータを1文字ずつシフトしながら<Gram,データ内オフセット>集合を取り出す(ステップS303)。例えば、文書のデータが“燃料電池とは”であれば、<“燃料”,0>,<“料電”,1>,<“電池”,2>,<“池と”,3>,<“とは”,4>,<“は△”,5>という集合が得られる。なお、△は末尾文字のために用意された空文字である。図4にこのイメージ図を示す。この文書には、文書ID=102が割当てられている。
次に、<Gram,データ内オフセット>集合の各要素について以下を繰り返す(ステップS304)。
次に、ステップS303で取り出した<Gram,データ内オフセット>集合の中に、Gramデータ領域に該当するGramデータがあるか否かを判定する(ステップS305)。
ステップS305における判定の結果、Gramデータ領域に該当するGramデータがなければ(ステップS305のNo)、このGramデータを新たにGramデータとしてGramデータ領域に追加する処理,ポストデータ領域にポストブロックを追加する処理,Gramデータからポストブロックへのリンクを付ける処理を行う(ステップS306)。
ステップS305における判定の結果、Gramデータ領域に該当するGramデータがあるならば(ステップS305のYes)、或いはステップS306の次に、ポストブロックの最後に<文書ID,データ内オフセット>を追加する(ステップS307)。
次に、ポストブロックが一杯になったか否かを判定する(ステップS308)。
次に、ステップS308における判定の結果、ポストブロックが一杯になっていれば(ステップS308のYes)、該当Gram向けに新たなポストブロックを確保する(ステップS309)。
ステップS308における判定の結果、ポストブロックが一杯になっていなければ(ステップS308のNo)、或いはステップS309の次に、ステップS310へ進む。
ステップS310では、<Gram,データ内オフセット>集合の全ての要素について繰り返しが終了していなければ、ステップS304へ戻り、次の要素について処理を繰り返す。
<Gram,データ内オフセット>集合の全ての要素について、ステップ304からステップ309の繰り返しが終了したら、処理を終了する。
この結果、必ずGramデータ領域に該当するGramデータが存在すると共にポストデータ領域にポストブロックが存在し、ポストブロックにはリンク情報がありチェーンで繋がっている状態となる。
図5は、従来技術に基づく文書管理システムによる文書検索処理の動作を説明するためのフローチャートである。なお、特にことわらない限り次の動作は、文書管理システム全体を制御する制御部が、文書管理システムを制御することにより動作している。
まず、文書管理システムは、キーワードを読込む(ステップS501)。
次に、キーワードのデータを2文字ずつシフトしながら<Gram>集合を取り出すと共に、カレントポスト集合を空にする(ステップS502)。例えば、キーワードのデータが“燃料電池”であれば、“燃料”,“電池”というGramを切り出す。つまり1文字だけ重複を持たせながら1文字ずつシフトするのではなく、重複を持たせないように2文字ずつシフトさせている。
次に、<Gram>集合の各要素について以下を繰り返す(ステップS503)。
次に、Gramデータ領域にアクセスし、該当Gramデータから先頭のポストブロック領域を取り出す(ステップS504)。この先頭のポストブロック領域を取り出すときには、Gramデータからポストデータ領域のポストブロックへのリンクをたどることで取り出す。
次に、次のポストブロック位置があるか否か、即ちチェーンの先があるか否かを判定し、ないならば検索要求に合致する文書は無いものとして終了する(ステップS505)。
次に、ステップS505で次のポストブロック位置があるならば(ステップS505のYes)、次のポストブロックをスキャンしてポスト集合を取り出す(ステップS506)。
次に、カレントポスト集合が空か否かを判定する(ステップS507)。なお、カレントポスト集合とは、演算途中も含めた現在のポスト集合のことを指す。
ステップS507の判定の結果、カレントポスト集合が空であれば(ステップS507のYes)、マージ処理をスキップしてステップS510へ進む。
ステップS507の判定の結果、カレントポスト集合が空でなければ(ステップS507のNo)、このカレントポスト集合と現ポスト集合とをマージして、新たなカレントポスト集合とする(ステップS508)。
次に、カレントポスト集合が空か否かを判定し、空でなければステップS510へ進み、空であれば検索要求に合致する文書は無いものとして終了する(ステップS509)。
<Gram>集合の全ての要素について、ステップ503からステップ510の繰り返しが終了したら、最終的に得られたカレントポスト集合を基に、テキストデータ領域にアクセスし検索要求に合致する文書集合を端末に送付し、処理を終了する(ステップS511)。
図6は、従来技術に基づく文書検索処理のイメージを説明するための図である。
“燃料電池”という検索要求、つまりキーワードから“燃料”,“電池”というGramを切り出し、それぞれ該当するポストブロックをスキャンしている。
この結果、“燃料”GramからPBID=1023のポストブロックをスキャンし、<98,1>,<102,0>,<182,67>を含むポストデータ集合を得る。
“電池”GramからPBID=2547,2548,2549,2550,2551のポストブロックをスキャンし、<100,23>,<102,2>,<182,32>を含むポストデータ集合を得る。
この結果、文書ID=102の文書は全てのGramレベルの検索でヒットしていることがわかる。
この2つの配列をマージする。“燃料”と“電池”では2文字ずれているので、ポストデータ<文書ID,文書内テキストデータ中のオフセット>で比較し、文書内テキストデータ中のオフセットの差分が+2(“電池”Gramから得られたポストデータの方のオフセット−“燃料”Gramから得られたポストデータの方のオフセット=+2)であるポスト集合をマージ結果とする。
“燃料”Gramから得られたポストデータ集合中のポストデータ<102,0>と、“電池”Gramから得られたポストデータ集合中のポストデータ<102,2>とから、“燃料”と“電池”が文書ID=102の文書中に連続した文書として存在していることがわかる。
よって、マージ結果のポスト集合中には図6に示す通り、<102,2>というポストデータも含まれていることがわかる。
ここで“電池”Gramに関するポスト集合では、“カリウム電池”,“アルカリ電池”など、他の語彙で発生したポストデータも含まれているため、ポストブロック単位で5ポストブロックもデータスキャンが行われている。
しかし、“燃料”に続く“電池”Gramのポストデータ集合はもっと少ないはずである。実際に必要な数よりも多い、無駄なポストブロックをスキャンした結果、以下のような問題が発生し、応答時間に深刻な影響を与えてしまう。
−無駄なディスクIOが生じてしまう。
−無駄なマージなどCPU処理が必要以上に生じてしまう。
図7は、本発明に基づくデータファイルの構成例を示す図である。
Gramデータ領域とポストデータ領域から構成されることは変わりが無い。ただし、各Gramデータからポストブロックへのリンク構造に違いがある。
例えば、“電池”Gramのポスト情報では、4つのノードからなるツリーが存在している。1つの先頭(ルート)ノード701から3つのノード702〜704へリンクが張られている。また、それぞれのノードからポストデータ領域にある複数のポストブロックへのリンクが張られている。
図8は、ポスト情報をより詳細化したイメージ図である。
各ノードは「ポストブロックツリー要素」という名称となっている。ポストブロックツリーの構造は以下の通りである。
−ハッシュパラメータ…これはツリー形式となっているポストブロックツリー要素をルートからたどるときに条件によりたどり方を制御する。この制御をするためのパラメータとしてハッシュパラメータを格納している。兄弟のポストブロックツリー要素は同じハッシュパラメータを持つ。例えば、兄弟のポストブロックツリー要素00〜02は、ハッシュパラメータの値として「3」を持つ。
−ハッシュ値…Gramの前に存在するワードのハッシュ値を設定している。ハッシュ値=Hash(Word,ハッシュパラメータ)であり、ハッシュ値はハッシュパラメータが関連する。
−ポストブロック位置:同じハッシュ値を持つ先頭のポストブロック位置としてPBIDを指す。
−下位要素数:子供のポストブロックツリー要素のハッシュパラメータと同じである。子供のポストブロックツリー要素数を設定している。
−下位要素[n]:それぞれ異なるハッシュ値を持つポストブロックツリー要素へのリンクをセットしている。“電池”の前に位置する語(前置語)、“燃料”の“料”、“アルカリ”の“リ”、“カリウム”の“ム”などにより必要なブロックスキャン範囲を限定するために用いられる。
前置語によりポストブロックのスキャンを必要な範囲に限定させるための仕掛けがポストブロックツリーである。検索キーワードとして“燃料電池”が与えられたとき、“電池”Gramのポストブロックをスキャンするフェーズがあるが、このとき前置語の“料”をハッシュ計算にて数値化してハッシュ値を求め、この求めたハッシュ値を用いてポストブロックツリーを先頭(ルート)ポストブロックツリー要素から必要なポストブロックツリーの部分木のみをたどりポストブロックのスキャンを行う。これによりポストブロックのスキャンを必要な範囲のポストブロックに限定することができる。
ハッシュ値は、ハッシュパラメータとハッシュ関数を用いて以下のようにして求める。
Hash(Word,HashParam) = Word % HashParam
但し、Word:前置語,HashParam:ハッシュパラメータ,%:剰余。
先頭ポストブロックツリー要素0の下は、前置語のハッシュ値によりポストブロックツリー要素が弁別された状態になっている。
すなわち前置語のハッシュ値が、 Hash(Word,3) = 0 であれば、ポストブロックツリー要素00が指しているポストブロックPBID=2548から繋がるチェーンのみをスキャンすればよいことになる。なお、先頭ポストブロックツリー要素0が指しているポストブロックは、前置語に関らないのでチェーンを全部スキャンする必要がある。
例えばハッシュ値 Hash(“料”,3) = 2 であれば、ポストブロックツリー要素0とポストブロックツリー要素02をたどって、PBID=2547および2551の2つのポストブロックのみをスキャンすればよいことになる。このように従来スキャンしていた PBID=2548,2549および2550のポストブロックについてはスキャンしないので、無駄なスキャンを減らすことができる。
図9は、本発明に基づく文書格納処理の動作を説明するためのフローチャートである。
図3と比較し、ステップS304〜S309の繰り返し処理が、ステップS904〜S915の繰り返し処理になっている点が異なる。ステップS904〜S915の繰り返し処理では、Gramデータにポストブロックツリーを構築すると共に、ポストブロックツリーに合わせてポストデータ領域にポストデータブロックを構築している。なお、特にことわらない限り次の動作は、文書管理システム全体を制御する制御部が、文書管理システムを制御することにより動作している。
以下、ステップS904以降について説明する。
図9において、文書管理システムは、ステップS303の次に、<Gram,データ内オフセット>集合の各要素について以下を繰り返す(ステップS904)。
次に、ステップS303で取り出した<Gram,データ内オフセット>集合の中に、Gramデータ領域に該当するGramデータがあるか否かを判定する(ステップS905)。
ステップS905における判定の結果、Gramデータ領域に該当するGramデータがなければ(ステップS905のNo)、このGramデータを新たにGramデータとしてGramデータ領域に追加する処理,ポストデータ領域にポストブロックを追加する処理,Gramデータからポストブロックへのリンクを付ける処理を行う(ステップS906)。
ステップS905における判定の結果、Gramデータ領域に該当するGramデータがあれば(ステップS305のYes)、或いはステップS906の次に、前置語があるか否かを判定する(ステップS907)。
ステップS907における判定の結果、前置語があると判定されれば(ステップS907のYes)、前置語よりハッシュ値を計算し、ポストブロックツリーをたどりながら該当するポストブロックツリー要素を得る(ステップS908)。
ステップS907における判定の結果、前置語がないと判定されれば(ステップS907のNo)、先頭ポストブロックツリー要素を得る(ステップS909)。
ステップS908またはステップS909の次に、ポストブロックの最後に<文書ID,データ内オフセット>を追加する(ステップS910)。
次に、ポストブロックが一杯になったか否かを判定する(ステップS911)。
次に、ステップS911における判定の結果、ポストブロックが一杯になっていれば(ステップS911のYes)、該当Gram向けに新たなポストブロックを確保する(ステップS912)。
ステップS912における判定の結果、ポストブロックが一杯になっていなければ(ステップS911のNo)、所定の分類基準を満たしているか否かを判定し(ステップS913)、分類基準を満たしていなければステップS915へ進む。この所定の分類基準とは、例えば、前置語が存在する,ポストブロック数が一定数を越えた等である。更に、分類によっても弁別することでスキャンする範囲をより絞り込むことを意味している。
ステップS913における判定の結果、分類基準を満たしていれば(ステップS913のYes)、ポストブロックツリーを更に詳細化して、ツリーを拡大し(ステップS914)、ステップS915へ進む。このステップS914での詳細化では、末端ポストブロックツリー要素の中に新ハッシュパラメータを設定し、末端ポストブロックツリー要素の下に、子供のポストブロックツリー要素を追加し、ポストデータ領域にポストブロックを追加する処理を行う。
ステップS915では、<Gram,データ内オフセット>集合の全ての要素について繰り返しが終了していなければ、ステップS904へ戻り、次の要素について処理を繰り返す。
<Gram,データ内オフセット>集合の全ての要素について、ステップ904からステップ916の繰り返しが終了したら、処理を終了する。
この結果、Gramデータにポストブロックツリーが構築される。
図10は、本発明に基づく文書検索処理の動作を説明するためのフローチャートである。
図5と比較し、ステップS503以降の処理が、ステップS1003以降の処理になっている点が異なる。なお、特にことわらない限り次の動作は、文書管理システム全体を制御する制御部が、文書管理システムを制御することにより動作している。
文書管理システムは、<Gram>集合の各要素について以下を繰り返す(ステップS1003)。
次に、Gramデータ領域にアクセスし、該当Gramデータから先頭のポストブロック要素を取り出す(ステップS1004)。この先頭のポストブロック要素を取り出すときには、Gramデータからポストブロック要素へのリンクをたどることで取り出す。
次に、前置語があるか否かを判定する(ステップS1005)。
ステップS1005の判定の結果、前置語があれば(ステップS1005のYes)、前置語よりハッシュ値を計算し、ポストブロックツリーをたどって末端のポストブロックツリー要素を得る(ステップS1006)。ステップS1005の判定の結果、前置語がなければ(ステップS1005のNo)、ポストブロックツリーを深さ優先で全てたどる(ステップS1007)。なお、この深さ優先でたどるとは、ルートから行けるところまで深くたどっていき、進めなくなったらまだたどっていない枝がある最初の分岐まで引き返し、まだ進んでいない枝を行けるところまで深くたどる動作を繰り返すたどり方である。このようにしてツリー上の全ての要素についてたどる。
ステップS1006或いはステップS1007により、ルートの「ポストブロックツリー要素」を含む該当するポストブロックツリー要素を得る。
次に、ステップS1006或いはステップS1007でたどることにより得た、末端のポストブロックツリー要素からリンクされているポストブロックをすべてスキャンし、ポスト集合を生成する(ステップS1008〜S1010)。
次に、カレントポスト集合が空か否かを判定し、空でなければステップS1012へ進み、空であればステップS1014へ進む(ステップS1011)。
ステップS1011の判定の結果、カレントポスト集合が空でなければ(ステップS1011のNo)、このカレントポスト集合と現ポスト集合とをマージして、新たなカレントポスト集合とする(ステップS1012)。
次に、カレントポスト集合が空か否かを判定し、空でなければステップS1014へ進み、空であれば検索要求に合致する文書は無いものとして終了する(ステップS1013)。
次に、<Gram>集合の全ての要素について、ステップ1003からステップ1014の繰り返しが終了したら、最終的に得られたカレントポスト集合を基に、テキストデータ領域にアクセスし検索要求に合致する文書集合を端末に送付し、処理を終了する(ステップS1015)。
図11は、本発明に基づく文書検索処理のイメージ図である。
検索キーワードとして“燃料電池”が与えられた場合、“電池”に関するポストブロックは“料”という前置語により絞り込まれて、PBID=2547および2551の2つのポストブロックをスキャンしている。
従来の文書検索処理では、図6に示す通り、“電池”に関してポストブロック単位で5ポストブロックもデータスキャンが行われている。しかし、本発明の文書検索処理では、図11に示す通り2ポストブロックにデータスキャンが削減されている。
また、検索キーワードとして“燃料電池乗用車”が与えられた場合でも同様にデータスキャンを削減することができる。最後の“用車”Gramでは、前置語は“乗”となる。
なお、上記実施の形態では、前置語により検索時にスキャンするポストブロックの範囲を削減したが、これに代え、後置語により検索時にスキャンするポストブロックの範囲を削減するようにしてもよい。
また、本発明の変形例として、前置語および後置語の両方を利用して、検索時にスキャンするポストブロックの範囲を削減してもよい。
ポストブロックツリーを、前置語だけでなく後置語にもよって更に細分化させ、これに応じてポストデータ領域のポストブロックを構築する。検索時に、更に後置語のハッシュ値に応じてスキャンする必要があるポストブロックを絞り込む。
図12は、前置語および後置語の両方を利用する方式のイメージ図である。図12では、図11と比べて、“電池”の後置語である“乗”によりPBID=2565のポストブロックについてはスキャンがされない。このように前置語だけでなく更に後置語でより絞り込むことにより、よりスキャンする範囲をより絞り込むことができる。
また、本発明の変形例として、構造化文書のタグ情報によって、更にスキャンする範囲を限定するようにしてもよい。
図13は、テキストのような非構造化文書ではなく、構造化文書のタグ情報を利用する方式のイメージ図である。タグID(図13のPID)を利用してスキャンする範囲をより絞り込むことができる。この方法は、予めどのPIDの中にテキストが含まれているかにより、更にポストデータ領域を分けてポストブロックを記録しておく。そして、検索時にキーワードと、当該キーワードが構造化文書のどの位置に含まれていたかを示す位置情報とによりスキャンするポストブロックを限定する。これにより、更に高速な検索を行うことができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
この発明の第1の実施形態に係る文書管理システムの構成を示す図。 従来技術に基づくデータファイルの構成例を示す図。 従来技術に基づく文書格納処理の動作を説明するためのフローチャート。 <Gram,データ内オフセット>集合を取り出すステップS303のイメージ図。 従来技術に基づく文書検索処理の動作を説明するためのフローチャート。 従来技術に基づく文書検索処理のイメージを説明するための図。 本発明に基づくデータファイルの構成例を示す図。 ポスト情報をより詳細化したイメージ図。 本発明に基づく文書格納処理の動作を説明するためのフローチャート。 本発明に基づく文書検索処理の動作を説明するためのフローチャート。 本発明に基づく文書検索処理のイメージ図。 前置語だけでなく後置語も利用する方式のイメージ図。 構造化文書のタグ情報を利用する方式のイメージ図。
符号の説明
100…文書管理システム、101…文書格納部、102…文書検索部、103…Gramデータ管理部、104…ポストデータ管理部、110…ネットワーク、120…端末、130…データファイル、131…テキストデータ領域、132…Gramデータ領域、133…ポストデータ領域。

Claims (7)

  1. テキストデータを含む複数の文書の中から、指定されたキーワードを前記テキストデータ内に含む文書を、前記複数の文書から予め作成された索引データを使って検索する文書管理装置において、
    入力された文書を格納する文書格納手段と、
    前記入力された文書内のテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記文書内のテキストデータから抽出する第1の抽出手段と、
    前記第1の部分文字列および前記第1の部分文字列に隣接する文字との組合せ毎に記憶領域を分けて、前記第1の位置情報および前記文書を識別するための文書識別情報を対応付けた前記索引データを記憶媒体に格納する索引データ格納手段と、
    入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出する第2の抽出手段と、
    前記キーワードの部分文字列間の組合せによって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む文書を検索する検索手段とを備えたことを特徴とする文書管理装置。
  2. 前記索引データ格納手段は、
    前記第1の部分文字列に隣接する文字として前置語を用いることを特徴とする請求項1記載の文書管理装置。
  3. 前記索引データ格納手段は、
    前記第1の部分文字列に隣接する文字として後置語を用いることを特徴とする請求項1記載の文書管理装置。
  4. 索引データ格納手段は、
    前記第1の部分文字列および前記第1の部分文字列に隣接する文字との組合せ毎に記憶領域を分けると共に、前記索引データを前記記憶媒体に格納する格納数にも応じて更に前記記憶領域を分けて、前記索引データを記憶媒体に格納することを特徴とする請求項1乃至3のいずれか1項に記載の文書管理装置。
  5. 前記索引データ格納手段は、
    前記第1の部分文字列および前記第1の部分文字列に隣接する文字のハッシュ値との組合せ毎に記憶領域を分けてることを特徴とする請求項1記載の文書管理装置。
  6. テキストデータを含む複数の構造化文書の中から、文書構造を示す情報を除く前記テキストデータ内に、指定されたキーワードを含む構造化文書を、前記複数の構造化文書から予め作成された索引データを使って検索する文書管理装置において、
    入力された構造化文書を格納する文書格納手段と、
    前記入力された構造化文書内の文書構造を示す情報を除くテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記構造化文書内のテキストデータから抽出する第1の抽出手段と、
    前記第1の部分文字列が属する構造情報によって構造毎に記憶領域を分けて、前記第1の位置情報および前記構造化文書を識別するための構造化文書識別情報からなる前記索引データを記憶媒体に格納する索引データ格納手段と、
    入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出する第2の抽出手段と、
    前記キーワードが属する前記構造情報を入力する構造情報入力手段と、
    前記キーワードの部分文字列間の組合せおよび構造情報入力手段によって入力された前記構造情報によって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む構造化文書を検索する検索手段とを備えたことを特徴とする文書管理装置。
  7. テキストデータを含む複数の文書の中から、指定されたキーワードを前記テキストデータ内に含む文書を、前記複数の文書から予め作成された索引データを使って検索する文書管理方法において、
    文書格納手段により、入力された文書を格納し、
    第1の抽出手段により、前記入力された文書内のテキストデータの一部の文字列である第1の部分文字列および当該第1の部分文字列の前記テキストデータ内での位置情報である第1の位置情報を前記文書内のテキストデータから抽出し、
    索引データ格納手段により、前記第1の部分文字列および前記第1の部分文字列に隣接する文字との組合せ毎に記憶領域を分けて、前記第1の位置情報および前記文書を識別するための文書識別情報を対応付けた前記索引データを記憶媒体に格納し、
    第2の抽出手段により、入力されたキーワードの一部の文字列である第2の部分文字列および当該第2の部分文字列の位置情報である第2の位置情報とを抽出し、
    検索手段により、前記キーワードの部分文字列間の組合せによって、この組合せによる前記記憶媒体の記憶領域から索引データを取り出し、この取り出した索引データと前記第2の位置情報とを用いて前記キーワードを含む文書を検索することを特徴とする文書管理方法。
JP2004043982A 2004-02-20 2004-02-20 文書管理装置および文書管理方法 Pending JP2005234930A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004043982A JP2005234930A (ja) 2004-02-20 2004-02-20 文書管理装置および文書管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004043982A JP2005234930A (ja) 2004-02-20 2004-02-20 文書管理装置および文書管理方法

Publications (1)

Publication Number Publication Date
JP2005234930A true JP2005234930A (ja) 2005-09-02

Family

ID=35017825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043982A Pending JP2005234930A (ja) 2004-02-20 2004-02-20 文書管理装置および文書管理方法

Country Status (1)

Country Link
JP (1) JP2005234930A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2256655A1 (en) 2009-03-02 2010-12-01 Fujitsu Limited Document checking apparatus, computer-readable recording medium, and document checking method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2256655A1 (en) 2009-03-02 2010-12-01 Fujitsu Limited Document checking apparatus, computer-readable recording medium, and document checking method
US8453249B2 (en) 2009-03-02 2013-05-28 Fujitsu Limited Document checking apparatus, computer-readable recording medium, and document checking method
US9785635B2 (en) 2009-03-02 2017-10-10 Fujitsu Limited Document checking apparatus, computer-readable recording medium, and document checking method

Similar Documents

Publication Publication Date Title
JP3554459B2 (ja) テキストデータ登録検索方法
US20130061139A1 (en) Server-based spell checking on a user device
JP4314204B2 (ja) 文書管理方法、システム及びプログラム
JP2006252428A (ja) マルチリンガル翻訳メモリ、翻訳方法および翻訳プログラム
JP5141560B2 (ja) 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
JP2009535732A (ja) ローカルなワードホイーリング/Webサーチのための人口統計に基づく分類
JP2007122719A (ja) 複数の言語を連動する自動完成推薦語提供システムおよび方法
US20130060560A1 (en) Server-based spell checking
JP5880152B2 (ja) 文書作成支援プログラム及び文書作成支援装置
CN100361124C (zh) 用于词分析的系统和方法
CN104199954A (zh) 一种用于搜索输入的推荐系统及方法
JP2693914B2 (ja) 検索システム
JP2005234930A (ja) 文書管理装置および文書管理方法
JP4491389B2 (ja) 電子機器、プログラム、及びプログラムを記録した記録媒体
JP2009104669A (ja) 文書検索方法、システム及びプログラム
JP2002251402A (ja) 文書検索方法及び文書検索装置
JPH1139315A (ja) フォーマットされた文書を順序付けされたワードリストへ変換する方法
JP4416644B2 (ja) 予測機能付き文字処理装置、方法、記録媒体およびプログラム
JP2006228046A (ja) 電子辞書および電子辞書の見出し語登録方法
JP2962287B2 (ja) 構造化文書検索装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2005044103A (ja) 文書作成装置、文書作成方法およびプログラム
JP5160120B2 (ja) 情報検索装置、情報検索方法及び情報検索プログラム
JP5648360B2 (ja) 文字列検索装置、文字列検索方法および文字列検索プログラム
JPH0821031B2 (ja) 言語解析装置
JP2005234800A (ja) 用例機械翻訳装置及び用例翻訳コンピュータプログラム、並びに用例検索装置及び用例検索コンピュータプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081007