JP2005004560A - インバーテッドファイル作成方法 - Google Patents
インバーテッドファイル作成方法 Download PDFInfo
- Publication number
- JP2005004560A JP2005004560A JP2003168554A JP2003168554A JP2005004560A JP 2005004560 A JP2005004560 A JP 2005004560A JP 2003168554 A JP2003168554 A JP 2003168554A JP 2003168554 A JP2003168554 A JP 2003168554A JP 2005004560 A JP2005004560 A JP 2005004560A
- Authority
- JP
- Japan
- Prior art keywords
- inverted file
- inverted
- registered
- position information
- character string
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】このため、本発明は、インデックスとなる文字列とその位置情報を登録するインバーテッドファイル作成方法において、インバーテッドファイルに登録された位置情報数を示す登録数が記入されたインバーテッドファイルリスト9と、インバーテッドファイルリスト9をポイントする文字列に対応した区分を有するテーブル8を設け、1種または複数種の文字列をある1つのインバーテッドファイルに登録し、その位置情報を、以前に登録された他の位置情報との差分にもとづき符号化して格納する。
【選択図】 図4
Description
【発明の属する技術分野】近年インターネットの普及により、ネットワーク上に存在する多量の文書情報を扱えることが可能になってきた。しかし文書情報が多くなるにつれて、どれが有用な情報か逐一判断することができなくなってきた。これに対してあるキーワードをもとに有用な情報とそうでない情報とを取捨選択する全文検索システムの重要性が増加してきた。本発明は、この全文検索システムに有用なインバーテッドファイル作成方法に関するものである。
【0002】
【従来の技術】被検索文書中に出現する文字列に対するインデックスつまり索引は、通常高速検索を実現するためにはコンピュータのメモリ上に予め展開しておくことが必要とされる。インデックスは通常被検索文書と同等以上のデータ量となるために、インデックスに必要なメモリ量を削減することがインデックス作成における技術課題となる。
【0003】
本発明はインデックスの1種であるインバーテッドファイル(inverted file)のメモリ使用量を削減するためのものである。
【0004】
インバーテッドファイルには、検索対象となるキーに関する位置情報が記載されている。位置情報とは、そのキーを有する文書の番号(以下文書番号という)や、文書先頭位置からの出現位置のことを指す。文書位置情報として文書番号のみが登録されている場合もあるし、文書番号と出現位置の二つを登録する場合もある。登録されるものはシステム要件により異なる。
【0005】
例えば、キー「雑誌」に関するインバーテッドファイルには、図12に示す如く、キーと文書番号の組が記載されている場合を説明する。
【0006】
「雑誌」というキーワードを有する文書を検出したい場合には、ユーザはこのインバーテッドファイルにアクセスして、図12に示す文書番号1、2、3、25、78・・・1923を抽出する。
【0007】
このインバーテッドファイルのメモリ使用量を圧縮するために下記のことが提案されている(例えば非特許文献1参照)。
【0008】
a.キーを有する文書の文書番号つまり位置情報を昇順に並べる。
b.この位置情報間の差分を取る。
c.差分値に対し小さい正整数ほど少ない符号語に割り当てられる符号を適用する。
【0009】
前記cの符号としては、図13に示す如きγ符号がよく知られている。γ符号は、整数xを表すのに、xを2進数で表したときの桁数すなわちビット数から1を引いた数だけ0を続けた後にxの2進数表示を続けたものである。すなわち0を数によりxの2進桁数を表し、xの2進数表示(必ず1から始まる)を続けたものになる。
【0010】
いま、図14に示す如く、キーを「雑誌」としたとき、イに示す如く、文書番号1、2、3、25・・・1923の12個の文書にこのキーが存在するとき、上記の圧縮手法について説明する。
【0011】
まずキー「雑誌」を有する文書の文書番号を、図14のイに示す如く、1、2・・・1923と昇順に並べる。
【0012】
次にこの昇順に並べた文書番号間の差分を求め、図14のロに示す如く、1、1、1、22・・・317を得る。
【0013】
この図14のロで得られた差分値をγ符号化すると、図14のハに示すビット長のγ符号が得られるので、その合計は136ビット長となる。これを文書番号に対して32ビットの固定長を適用した場合は32×12=384ビット長のものとなるので、上記の如く、位置情報の差分を求めてγ符号化することにより384ビットから136ビットに圧縮されることがわかる。
【0014】
【非特許文献1】
Ian H.Witten,Alistair Moffat,Timothy C.Bell著
「Managing Gigabytes:Compressing andindexing documents and images」Van Nostrand Reinhold(米国)出版、1994年,p82〜90 3.3「Inverted file compression」
【0015】
【発明が解決しようとする課題】ところでインバーテッドファイルにおいて、出現頻度の少ない文字列が多数存在する場合は、その文字列毎にインバーテッドファイルを作成すると、前記の如く、差分を取ったとしても多くのビットを必要とする。
【0016】
インデックスを作成するとき、日本語の文書を一文字ずらして連続したN文字列で区切ってキーを抽出するN−gram手法が行われる。例えば、図15図に示す如く、「日本の雑誌が・・・」という文書を連続した2文字列で区切って文字数2のキーを抽出する2−gram手法の場合は、「日本」から始まり、以下1文字ずらして「本の」、「の雑」、「雑誌」、「読が」というキーが抽出され、これらのキーの位置は図15に示す通り付加される。
【0017】
日本語では、例えば「雑誌が」、「雑誌を」、「雑誌の」の如く、語尾が多数変動するので、日本語の文書に対して文字数2文字の文字列のインバーテッドファイルを作成する場合などは、インバーテッドファイル数が多くなる。図16に、前記12等で説明したキー「雑誌」以降の語尾が上記3種類に変化した場合について説明する。
【0018】
いま、「誌が」が文書番号1、25、395、1384に存在し、「誌を」が文書番号2、78、458、1586に存在し、「誌の」が文書番号3、100、1205、1923に存在した場合、差分値、γ符号のビット長は「誌が」の場合「1、11、19、21」となってその合計は52ビット、「誌を」の場合「3、15、19、23」となってその合計は60ビット、「誌の」の場合「3、15、23、19」となってその合計は60ビットとなり、これらの総計は172ビットとなる。
【0019】
ところで、キー「雑誌」と、「誌が」、「誌を」、「誌の」は同じ文書番号の組が分かれて出たにもかかわらず、「雑誌」の場合が前記の如く、136ビットであるのに対し、172ビットと増加している。このように頻度が少ない場合は、その差分値も大きくなるため、γ符号に使用するビット数が多くなる。
【0020】
またインバーテッドファイル毎に、インバーテッドファイルをどこの物理アドレスに記録するか、インバーテッドファイル中の登録数、などの管理情報が必要となるため、インバーテッドファイルの数が多くなると、その分メモリ使用量が多くなる。
【0021】
したがって本発明の目的は、このような問題点を改善したインバーテッドファイル作成方法を提供することである。
【0022】
【課題を解決するための手段】前記目的を達成するため、本発明では、例えば図1に示す如く、1つのインバーテッドファイルに複数の文字列を対応付けする。あるいは図2に示す如く、差分値を更に小さい値に変換する。
【0023】
図1(A)に示す如く、「雑誌」のように出現頻度の大きいものについては、1グループ1キーでインバーテッドファイル1を作成するが、図1(B)に示す如く、「誌が」、「誌を」、「誌の」の如く、出現頻度の小さいものはこれらをまとめる。例えば1グループ3キーでインバーテッドファイル2を作成する。
【0024】
このように複数の文字列(キー)を1つのインバーテッドファイルに対応付けること、つまりまとめることにより、位置情報の差分値が小さくなるため、符号長が短くできること、後述するインバーテッドファイルの管理情報を少なくできること等の利点がある。
【0025】
ちなみに、例えばこのインバーテッドファイルを使用して「誌の」をキーとして検索を行う場合は、位置情報をもとに文字列検索を行ってその部分が本当に「誌の」なのかを検討する必要がある。なぜならば「誌を」「誌が」である可能性があるためである。このためこの文字列検索分だけ処理速度が遅くなる。このため、複数文字列を対応付ける方法としては、それぞれのインバーテッドファイルへの登録数が極力等しくなるようにする。これはインバーテッドファイルの登録数が不均一になり、特定のキーの検索にかかる時間が極端に遅くなるのを防ぐためである。さらにメモリ使用量を少なくすることを目的とする場合、差分値を更に小さい値に変換するために差分値を規定数で割った余りを位置情報として登録する。
【0026】
図2はキー「誌が」に対する例であり、規定数を512とした場合を示す。キー「誌が」の文書番号が1、25、395、1384の場合、その差分値は1、24、370、989となり、規定数が512のため、差分値の512の剰余は1、24、370、477となり、差分値989の代わりにビット数の少ない477が登録される。
【0027】
検索時には文書番号1、25、395、1384以外にも872に対してもキー「誌が」が存在するかどうか文字列検索を行うことになる。これは、差分値上は1、24、370、477となっているので、文書番号に直された395の次の文書番号872(=395(前回の番号)+477)にキーが存在するかどうかを文字列検索によって確かめる処理が必要になる。しかし、存在しないので次は文書番号1384(872+512)にキーが存在するかどうかを文字列検索によって確かめる。これで存在することがわかったので検索終了ということになるためである。このように文字列検索処理が多くなるが、より少ないビット数で位置情報を表すことができる。
【0028】
本発明の前記目的は、下記(1)〜(5)により達成することができる。
【0029】
(1)インデックスとなる文字列とその位置情報を登録するインバーテッドファイル作成方法において、インバーテッドファイルに登録された位置情報数を示す登録数が記入されたインバーテッドファイルリストと、インバーテッドファイルリストをポイントする文字列に対応した区分を有するテーブルを設け、1種または複数種の文字列をある1つのインバーテッドファイルに登録し、その位置情報を、以前に登録された他の位置情報との差分にもとづき符号化して格納することを特徴とするインバーテッドファイル作成方法。
【0030】
(2)前記(1)においてインデックスを作成する過程で出現した新しい文字列をインバーテッドファイルに登録するとき、登録数が最も少ないインバーテッドファイルに対応付けることを特徴とするインバーテッドファイル作成方法。
【0031】
(3)前記(1)においてインデックスを作成する過程で出現した新しい文字列をインバーテッドファイル登録するとき、予め登録するインバーテッドファイルが1つあるいは複数決定されており、以後新しい文字列が出現した場合も、そのインバーテッドファイルの登録数が一定数を超えない限りはそのグループに登録することを特徴とするインバーテッドファイル作成方法。
【0032】
(4)前記(1)において、位置情報を以前に登録された他の位置情報との差分にもとづき符号化するとき、そのインバーテッドファイルに前回登録された位置情報との差分にもとづき符号化を行うことを特徴とするインバーテッドファイル作成方法。
【0033】
(5)前記(1)において、位置情報を以前に登録された他の位置情報との差分にもとづき符号化するとき、規定数を、使用する符号が、ある限定された桁数で表し得る最大値とし、位置情報との差分値をこの規定数で割った余りに対して符号化を行うことを特徴とするインバーテッドファイル作成方法。 これにより下記の効果を奏することができる。
【0034】
(1)1つのインバーテッドファイルに対して1種あるいは複数種の文字列を対応付けることにより、文字列間の出現位置情報の差分値を小さくし、インバーテッドファイルに対する管理情報を小さくできるため、メモリの消費量を抑えることができる。
【0035】
(2)新しい文字列を登録数が最も少ないインバーテッドファイルに対応付けるので、極端に登録数が多いインバーテッドファイルを作らないことで検索時間が極端に遅い検索キーを作成しないようにしつつ、インバーテッドファイル管理情報を少なくし、更にインバーテッドファイル内の差分値を小さくすることで小さいビット数でインバーテッドファイルを構成、管理することができる。
【0036】
(3)対応付けるインバーテッドファイルを予め決定しておき、そのインバーテッドファイルの登録数が規定数を超えるまでは、そのインバーテッドファイルに新規に出現した文字列を対応付けするので、新規な文字列が出現する度に登録数が最小のものを検出する必要がないので、処理を簡略化することができる。
【0037】
(4)インバーテッドファイルに、前回登録された位置情報との差分値に対して符号化するので、差分値を取って小さな値は少ないビット数で、大きな値は多いビット数で表現する符号を使用して、インバーテッドファイルのメモリ使用量を削減することができる。
【0038】
(5)差分値に対し規定数で割ってその余りを符号化したものを登録するので少ないビット数でインバーテッドファイルを表現できる。また規定数を、使用する符号がある限定された桁数で表し得る最大値に1加算したものを使用することにより、符号長を最大限有効利用できる。例えば図13に示す如く、符号長11ビットで63まで表すことができるが、この場合規定値を64にしてγ符号を使用すると11ビットを最大限有効利用することができる。
【0039】
【発明の実施の形態】本発明の一実施の形態を図3、図4、図5、図6、図7にもとづき説明する。図3は本発明の一実施の形態説明図、図4はインデックスの要部説明図、図5は動作説明図(その1)、図6は動作説明図(その2)、図7は動作説明図(その3)である。
【0040】
図中、1はパソコン本体(以下PC本体という)、2は表示装置、3はキーボード、4は文書検索手段、5は文書データ、6はインデックス、7はインバーテッドファイル管理テーブル(以下管理テーブルという)、8はハッシュテーブル、9はインバーテッドファイルリスト(以下リストという)、10はメモリ領域、11は最大値保持部、12はファイル数保持部である。
【0041】
パソコン本体1は、図3に示すパソコンを動作するプロセッサや主記憶装置、磁気ディスク装置などが設けられているものであり、文書検索手段4、文書データ5等が用意されている。
【0042】
表示装置2は、検索要求の入力を求めたり、検索結果を表示するものであって、CRTや液晶などで構成されている。
【0043】
キーボード3はパソコンを操作するために必要な入力を行う入力操作キーが設けられており、検索キー入力端末として機能するものである。
【0044】
文書検索手段4はインバーテッドファイルを作成したり、インバーテッドファイルを使用して検索処理を行うものであり、後述するインデックス6を有する。インデックス6には、例えば図2に示す如き、2文字列に対する複数のインバーテッドファイルを備える。また検索時には、インデックス6から検索キーに該当するインバーテッドファイルを抽出して、インバーテッドファイルに記載されている文書番号をユーザに返す。作成モードのときは、インデックスを作成し、検索モードのときはインデックスを使用して検索を行う。
【0045】
文書データ5は、検索されるべき文書であって、この例では文書番号と題名により構成されている。文書の題名を検索対象とし、検索キーを題名に含む文書を検索により全て抽出する。
【0046】
インデックス6は、前記検索時に使用されるインバーテッドファイルの外に、図4に示す如き、インバーテッドファイル管理テーブル(以下管理テーブルという)7を有する。
【0047】
管理テーブル7は、ハッシュテーブル8とインバーテッドファイルリスト9、最大数保持部11、ファイル数保持部12を具備している。
【0048】
ハッシュテーブル8は各文字列のハッシュ値に対応するインバーテッドファイルリスト9へのポインタが格納されている。ハッシュ値は文字列の文字コードを数値とみなし、ハッシュ関数にかけて得られた値、つまりハッシュ値を示す。「誌が」の場合、「誌」+「を」を例えばJISの2進値で表された文字コードを数値化して、この数値を規定値で割算した余りをハッシュ値とし、このハッシュ値が取り得る数の区分を有するハッシュテーブル8を設ける。ハッシュテーブル8の区分0、1、・・・nがハッシュ値に対応している。
【0049】
インバーテッドファイルリスト9は、登録数と最終登録数値と最後尾アドレスの項を有する。
登録数は、インバーテッドファイルに登録された文書番号数を示す。
【0050】
最終登録数値は、そのインバーテッドファイルに最後に登録された文書番号の数値が記載されている。インバーテッドファイルに登録されるのは、前述の如く符号化された値であり、最初の値から順次復号しないと正確な数値が得られないので、インバーテッドファイルに新しく文書番号を登録するとき、それまでの最終登録数値をこれにより得ることにより登録時間が短縮できることになる。
【0051】
最後尾アドレスは、メモリ領域のインバーテッドファイル記憶領域10に登録されているインバーテッドファイルの最後尾アドレスを示すものであって、インバーテッドファイルに新しく文書データを追記するとき、この最後尾アドレスより記入することができるものである。
【0052】
インバーテッドファイル記憶領域10は、メモリ領域においてインバーテッドファイルが記憶されている領域を示す。
【0053】
最大数保持部11は、このシステムで作成可能なインバーテッドファイルの最大数Maxが記入されている区分である。図4に示す例では、インバーテッドファイルリスト9のリスト数Nが最大数Maxに相当する。
【0054】
ファイル数保持部12は、現在作成されているインバーテッドファイルの数が記入されている区分である。
【0055】
次に図5、図6、図7を使用して、本発明の特徴的な文書検索手段5の機能であるインデックス作成処理について説明する。図5はインデックス作成処理の全体の動作説明図を示し、図6は図5における既存インバーテッドファイルへの対応付けモジュールの詳細説明図、図7は図5における文書番号登録モジュールの詳細説明図である。
【0056】
インデックス作成処理を図5〜図7の動作説明図にもとづき説明する。この説明は2文字の文字列作成の例について行うが、本発明の文字列はこれに限定されるものではない。このインデックス作成処理は文書番号0から昇順で行われる。
【0057】
S1.文書検索手段4は、文書中の題名から、2文字列を取得する。
S2.その文字列のハッシュ値を取得する。
【0058】
S3.文書検索手段4は、このハッシュ値が示すハッシュテーブル8の区分の中の数値すなわちインバーテッドファイルIDを取得する。このハッシュテーブル8は、初期値が−1に初期化されているので、この数値が−1か否かを判断する。そしてこの数値が−1の場合は未登録、つまりその文字列がどんなインバーテッドファイルにも対応付けられていないことが認識され、ステップS4に進む。数値が−1でない場合は、対応済みであるため、後述する文書番号登録モジュールS10に進む。
【0059】
S4.前記S3において、数値が−1の場合は、ファイル数保持部12の現在のインバーテッドファイルのファイル数と最大数保持部11に記入された作成可能なインバーテッドファイルの最大数Max(この例ではN)を比較してインバーテッドファイルが新規登録可能かどうか判断する。可能な場合は後述するS6に進みインバーテッドファイルを新規作成し、不可能な場合は、登録数が最も少ないインバーテッドファイルに対応付けるためにS5に進む。これによりインバーテッドファイルの各登録数を極力小さくする。
【0060】
S5.不可能な場合、後述する既存インバーテッドファイルへの対応付けモジュールを実行する。
【0061】
S6.可能な場合、インバーテッドファイルを新規作成する。例えば空いているもっとも小さいリスト番号、例えばリスト番号1に作成する。
【0062】
S7.前記S6で作成したインバーテッドファイルのリスト番号1を、前記S2で算出したハッシュ値が示す、ハッシュテーブル8の区分(この例ではn−1)に格納する。
【0063】
S8.それから、このインバーテッドファイルのリスト番号1の区分を初期化する。そして登録数を0にし、最終登録数値すなわち最終文字列文書番号を0にする。また最後尾アドレスには未使用領域10の先頭アドレスを入力する。なお初期化はシステムの立上りのとき行うこともできる。
【0064】
S9.ファイル数保持部12に、記入されているインバーテッドファイル数に+1した、新インバーテッドファイル数を記入する。
【0065】
S10.次に後述する文書番号登録モジュールつまり「インバーテッドファイル登録モジュール」を実行する。
【0066】
S11.全文書の全文字列を登録したらインデックス作成処理を終了する。
【0067】
次に図6により、前記S4において、インバーテッドファイルが新規登録不可能な場合について説明する。
【0068】
S101.前記S4において、文書検索手段4が、作成可能なインバーテッドファイルの最大数を超えており新規作成が不可能と判断したとき、インバーテッドファイルリスト9の登録数の領域を検索して、登録数が最も少ないインバーテッドファイルのリスト番号(図4の例では2)を取得する。
【0069】
S102.前記S101で取得したインバーテッドファイルリスト9のリスト番号2を、前記S2で算出したハッシュ値(例えば0)が示すハッシュテーブル8に格納する。
【0070】
これによりハッシュ値2とハッシュ値0の文字列の、登録数、最終登録数値、最後尾アドレス等の管理データがインバーテッドファイルリスト9の同じリスト番号の区分に記入されることになる。勿論検索も前記図1(B)に示す如く、グループ化されて行われることになる。
【0071】
図7により、前記S3、S5における既存インバーテッドファイルへの対応づけ、S6〜S9におけるインバーテッドファイルの新規作成による登録処理つまり文書番号登録モジュールについて説明する。
【0072】
S201.前段の処理で特定されたインバーテッドファイルに、現在処理中の文字列の文書番号を登録する。まずインバーテッドファイルリスト9中の最終登録数値をもとにして新しく登録する文書の文書番号との差分値を求め、これを符号化する。
【0073】
S202.次にインバーテッドファイルリスト9中の最終登録数値を、新しく登録する現在の文字列の文書番号に変更する。
【0074】
S203.インバーテッドファイル記憶領域10の最後尾アドレスに前記符号化したものを挿入する。
【0075】
S204.この挿入により増加した分を最後尾アドレスとしてインバーテッドファイルリスト9に登録する。なおこのとき、インバーテッドファイルリスト9の登録数を+1する。
【0076】
なお、本発明は位置情報の差分値を小さくすることで圧縮符号による圧縮時に必要なビット数を削減することを目的としているため、上記説明で使用する圧縮符号はγ符号のみならず、図8に示す正整数の符号化説明図に示すα符号、δ符号、8bit block符号などでもよい。これらはいずれも公知のものであり、CQ出版社、植原智彦著、「文書データ圧縮アルゴリズム入門」に記載されている。
【0077】
α符号は整数xを表すのにx−1個の0を続けた後に1を続けたものである。
【0078】
δ符号は最初の桁数表示のかわりに符号γを利用したもの、つまりxを2進数で表したときの桁数(bit数)を符号γで表現したあとに、xの2進数表示の先頭の1を除いたものである。
【0079】
8bit block符号は、8bitのうちtop1bitを継続flagとし、そのフラグが存在したら次の8bitも数が存在するとするものである。
【0080】
本発明の第2の実施の形態を図9、図10、図11および図5を参照して説明する。図9は第2の実施の形態説明図、図10は第2の実施の形態における動作説明図(その1)、図11は第2の実施の形態における動作説明図(その2)である。
【0081】
第1の実施の形態では、新しい文字列に対応してインバーテッドファイルを作成するとき、すでにインバーテッドファイルの登録数が許容登録数を超えていると、インバーテッドファイルの登録数を全部検索して最小値のものを求めることが必要のため、その検索に長い時間必要とした点があり、これを改善するため、第2の実施の形態では、このような場合あらかじめ登録数の少ないものの、全インバーテッドファイルの、例えば1/4を複数の文字列に対応付けするグループ化候補としてあらかじめ予定しておくものである。
【0082】
第2の実施の形態では、パソコン内にある文書検索手段によるインデックス作成の実施例を示す。この方法は、文書(文章の外に題名等書誌的事項を含む)の文章中の文字列を検索キーとして、検索キーが出現する位置を全て抽出する。またこの方法は、文書データとして一つの文書を有する。
【0083】
第2の実施の形態を実現する装置は、図9に示す如く構成され、他図と同符号は同一部を示し、3は検索キー入力端末として機能するキーボード、14は文書検索手段、15は文書データである。
【0084】
キーボード3は、ユーザから入力された検索キーを文書検索手段14に入力するものである。
【0085】
文書検索手段14は、2文字列に対するインバーテッドファイルからなるインデックス6を有しており、検索時には、検索キーのインバーテッドファイルを抽出して、インバーテッドファイルに記載されている、検索キーのその文章における出現位置(例えば先頭からの語数)を返す。
【0086】
文書データ15は、検索対象の文書で、1つのみであり、文章を有する。
【0087】
なお、インデックス6の内部は、前記図3と同じである。
【0088】
第2の実施の形態におけるインデックス作成の処理手順は、図5におけるS5の「既存インバーテッドファイルへの対応付けモジュール」と、S10の「文書番号登録モジュール」以外は第一の実施の形態とまったく同一である。よってこの2つのモジュールのみを以下に説明する。
【0089】
なお、第2の実施の形態では、検索出力は文書番号ではなく検索キーの文字列出現位置であるので、第2の実施の形態では、前記S10の記載を「文字列出現位置登録モジュール」と読み替えるものとする。
【0090】
第2の実施の形態における「既存インバーテッドファイルへの対応付けモジュール」では、新しく出現した文字列に対応付けるインバーテッドファイルを予め複数選択しておく。そして今回新しく出現した文字列をこの複数選択したインバーテッドファイルの内の1つに対応付け、前記選択された全てのインバーテッドファイルが次回以降新しく出現した文字列に順次対応付けされるように処理される。
【0091】
図10によりその動作を説明する。
【0092】
S301.文書検索手段14は、対応付け用インバーテッドファイルが未決定な場合、あるいはこれまでに選択された対応付け用インバーテッドファイルが全て新しく出現した文字列に対応付けられてもう存在しない場合はステップS302に進み、そうでない場合はステップS303に進む。
【0093】
S302.文書検索手段14は、全てのインバーテッドファイルから対応付け用インバーテッドファイルとして複数選択する。選択基準は、例えば登録数が少ない方から1/4とする。そして選択したインバーテッドファイルの中で新しく出現した文字列に対応付ける順番を予め決定しておく。決定方法は、例えば登録数の少ないインバーテッドファイルから対応付けられるような順番による。
【0094】
S303.複数存在する対応付け用インバーテッドファイルの中から、現在の文字列に対応付けるインバーテッドファイルを選択する。次に選択したインバーテッドファイルのリスト番号を取得し、そのリスト番号を前記図5のS2で算出したハッシュ値が示すハッシュテーブル8に格納する。
【0095】
S304.文書検索手段14は前記S303で選択したインバーテッドファイルは、次回以降に新規出現した文字列への対応付けの対象外とする。但し次回以降でS302に通った場合は再度選択される場合もある。
【0096】
図5におけるS10の「文字列出現位置登録モジュール」では、前段の処理で特定されたインバーテッドファイルに、現在処理中の文字列の出現位置を登録する。はじめに、その出現位置を、最終登録数値をもとにして符号化処理を行い、次に最終登録数値を現在の文字列の出現位置に変更する。それから最後尾アドレスに前記符号化したものを挿入し、この挿入により増加した分を最後尾アドレスに登録する。
【0097】
この動作を図11により説明する。
【0098】
S401.文書検索手段14は、前段の処理で特定されたインバーテッドファイルに、現在処理中の文字列の出現位置を登録するため、以下の式から算出した整数値を符号化処理する。符号は例えばγ符号を使用する。なおMod(A、B)とはAをBで割った余りである。
【0099】
この式に記載されている規定値は、使用する符号がある限定された桁数で表しうる最大値と同じものとする。そのようにしないと、例えば規定値が511で(Now Offset − Before Offset) が511であった場合、Intは1となり、符号結果をbit表示すると“1”となり、メモリ使用量は1bitと小さくなる。しかし検索時には、符号結果“1”を数式をもとに差分値に逆変換すると、0になる。よって、差分値0に該当する位置にはキーが存在しないのだが実際に文字列検索することになる。次に差分値511(=0+511×1)に該当する位置を実際に文字列検索して、キーが存在することが判明し、ヒットしたことになる。このように規定値以上の差分値は文字列検索を何度も行うことになる。このように、規定値が小さいと文字列検索の回数が増えることになる。しかし逆に規定値の数が大きいとメモリ使用量が多くなる傾向にある。このようなトレードオフの状況下で規定値を決定する必要がある。このときに、ビットを最大限有効利用するために、前述したように使用する符号がある限定された桁数で表しうる最大値と同じものとする。
【0100】
例えば規定値が300ならば、0〜510までの差分値は、使用ビット数は最大17bitと変化が無いにもかかわらず、301〜510は文字列検索回数が増えることになる。しかし、規定値が511ならば0〜510までの差分値は使用ビット数は最大17bitと維持され文字列検索回数も増えることは無い。このようにして検索時の文字列検索回数を極力減らしつつ、ビットを最大限有効利用する。
【0101】
S402.次に文書検索手段14は、インバーテッドファイルリスト9の最終登録数値を今の文字列の出現位置に変更する。
【0102】
S403.それから、インバーテッドファイル記憶領域10の最後尾アドレスに、前記符号化したものを挿入する。
【0103】
S404.この挿入により増加した分を、インバーテッドファイルリスト9の最後尾アドレスに加えて、これを変更する。
【0104】
なお、本発明は位置情報の差分値を小さくすることで圧縮符号による圧縮時に必要なビット数を削減することを目的としているため、ここで使用される符号はγ符号のみならずα符号、δ符号であってもよい。
【0105】
以上説明のように、本発明によれば、出現文字列をグループ化し、ある定数に対する出現位置情報の剰余をインバーテッドファイルに登録することで、検索速度を余り劣化させずにインデックスのメモリ使用量を削減することができる。
【0106】
【発明の効果】本発明により下記の効果を奏することができる。
【0107】
(1)1つのインバーテッドファイルに対して1種あるいは複数種の文字列を対応付けることにより、文字列間の出現位置情報の差分値を小さくし、インバーテッドファイルに対する管理情報を小さくできるため、メモリの消費量を抑えることができる。
【0108】
(2)新しい文字列を登録数が最も少ないインバーテッドファイルに対応付けるので、極端に登録数が多いインバーテッドファイルを作らないことで検索時間が極端に遅い検索キーを作成しないようにしつつ、インバーテッドファイル管理情報を少なくし、更にインバーテッドファイル内の差分値を小さくすることで小さいビット数でインバーテッドファイルを構成、管理することができる。
【0109】
(3)対応付けるインバーテッドファイルを予め決定しておき、そのインバーテッドファイルの登録数が規定数を超えるまでは、そのインバーテッドファイルに新規に出現した文字列を対応付けするので、新規な文字列が出現する度に登録数が最小のものを検出する必要がないので、処理を簡略化することができる。
【0110】
(4)インバーテッドファイルに、前回登録された位置情報との差分値に対して符号化するので、差分値を取って小さな値は少ないビット数で、大きな値は多いビット数で表現する符号を使用して、インバーテッドファイルのメモリ使用量を削減することができる。
【0111】
(5)差分値に対し規定数で割ってその余りを符号化したものを登録するので少ないビット数でインバーテッドファイルを表現できる。また規定数を、使用する符号がある限定された桁数で表し得る最大値を使用することにより、符号長を最大限有効利用できる。例えば図13に示す如く、符号長11ビットで63まで表すことができるが、この場合規定値を64にしてγ符号を使用すると11ビットを最大限有効利用することができる。
【図面の簡単な説明】
【図1】複数の文字列の対応付け説明図である。
【図2】差分値を小さい値に変換する説明図である。
【図3】本発明の一実施の形態説明図である。
【図4】インデックスの要部説明図である。
【図5】本発明の第一の実施の形態の動作説明図(その1)である。
【図6】本発明の第一の実施の形態の動作説明図(その2)である。
【図7】本発明の第一の実施の形態の動作説明図(その3)である。
【図8】正整数の符号化説明図である。
【図9】本発明の第2の実施の形態説明図である。
【図10】本発明の第2の実施の形態の動作説明図(その1)である。
【図11】本発明の第2の実施の形態の動作説明図(その2)である。
【図12】インバーテッドファイル説明図である。
【図13】正整数の符号化説明図である。
【図14】圧縮例説明図である。
【図15】2文字列抽出説明図である。
【図16】語尾が変化したときの位置情報説明図である。
【符号の説明】
1 パソコン本体
2 表示装置
3 キーボード
4 文書検索手段
5 文書データ
6 インデックス
7 インバーテッドファイル管理テーブル
8 ハッシュテーブル
9 インバーテッドファイルリスト
10 インバーテッドファイル記憶領域
11 最大数保持部
12 ファイル数保持部
Claims (5)
- インデックスとなる文字列とその位置情報を登録するインバーテッドファイル作成方法において、
インバーテッドファイルに登録された位置情報数を示す登録数が記入されたインバーテッドファイルリストと、
インバーテッドファイルリストをポイントする文字列に対応した区分を有するテーブルを設け、
1種または複数種の文字列をある1つのインバーテッドファイルに登録し、
その位置情報を、以前に登録された他の位置情報との差分にもとづき符号化して格納することを特徴とする
インバーテッドファイル作成方法。 - 請求項1においてインデックスを作成する過程で出現した新しい文字列をインバーテッドファイルに登録するとき、登録数が最も少ないインバーテッドファイルに対応付けることを特徴とする
インバーテッドファイル作成方法。 - 請求項1においてインデックスを作成する過程で出現した新しい文字列をインバーテッドファイル登録するとき、
予め登録するインバーテッドファイルが1つあるいは複数決定されており、以後新しい文字列が出現した場合も、そのインバーテッドファイルの登録数が一定数を超えない限りはそのグループに登録することを特徴とする
インバーテッドファイル作成方法。 - 請求項1において、位置情報を以前に登録された他の位置情報との差分にもとづき符号化するとき、そのインバーテッドファイルに前回登録された位置情報との差分にもとづき符号化を行うことを特徴とする
インバーテッドファイル作成方法。 - 請求項1において、位置情報を以前に登録された他の位置情報との差分にもとづき符号化するとき、規定数を、使用する符号がある限定された桁数で表し得る最大値とし、位置情報との差分値をこの規定数で割った余りに対して符号化を行うことを特徴とする
インバーテッドファイル作成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003168554A JP2005004560A (ja) | 2003-06-13 | 2003-06-13 | インバーテッドファイル作成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003168554A JP2005004560A (ja) | 2003-06-13 | 2003-06-13 | インバーテッドファイル作成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005004560A true JP2005004560A (ja) | 2005-01-06 |
Family
ID=34093963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003168554A Pending JP2005004560A (ja) | 2003-06-13 | 2003-06-13 | インバーテッドファイル作成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005004560A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008192157A (ja) * | 2007-02-07 | 2008-08-21 | Fujitsu Ltd | コンパクトデシジョンダイアグラムを用いた効率的インデックス付け |
KR100920745B1 (ko) | 2008-03-04 | 2009-10-07 | 재단법인대구경북과학기술원 | 질의 처리 방법, 역 리스트 관리 방법, 역 리스트 관리를위한 압축 방법, 및 구문 역 리스트 관리 방법 |
US7701983B2 (en) | 2005-03-03 | 2010-04-20 | Nec Corporation | Tunable resonator, tunable light source using the same, and method for tuning wavelength of multiple resonator |
JP2012064159A (ja) * | 2010-09-17 | 2012-03-29 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
JP2012203579A (ja) * | 2011-03-24 | 2012-10-22 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
US10409992B2 (en) | 2015-10-15 | 2019-09-10 | Fujitsu Limited | Investigation apparatus, computer-readable recording medium, and investigation method |
KR20200014979A (ko) * | 2018-08-02 | 2020-02-12 | 주식회사 누리랩 | 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 |
-
2003
- 2003-06-13 JP JP2003168554A patent/JP2005004560A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7701983B2 (en) | 2005-03-03 | 2010-04-20 | Nec Corporation | Tunable resonator, tunable light source using the same, and method for tuning wavelength of multiple resonator |
JP2008192157A (ja) * | 2007-02-07 | 2008-08-21 | Fujitsu Ltd | コンパクトデシジョンダイアグラムを用いた効率的インデックス付け |
KR100920745B1 (ko) | 2008-03-04 | 2009-10-07 | 재단법인대구경북과학기술원 | 질의 처리 방법, 역 리스트 관리 방법, 역 리스트 관리를위한 압축 방법, 및 구문 역 리스트 관리 방법 |
JP2012064159A (ja) * | 2010-09-17 | 2012-03-29 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
JP2012203579A (ja) * | 2011-03-24 | 2012-10-22 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
US10409992B2 (en) | 2015-10-15 | 2019-09-10 | Fujitsu Limited | Investigation apparatus, computer-readable recording medium, and investigation method |
KR20200014979A (ko) * | 2018-08-02 | 2020-02-12 | 주식회사 누리랩 | 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 |
KR102081867B1 (ko) * | 2018-08-02 | 2020-02-26 | 주식회사 누리랩 | 역 색인 구성 방법, 역 색인을 이용한 유사 데이터 검색 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4805267B2 (ja) | トークンスペースレポジトリと共に使用される多段クエリ処理システム及び方法 | |
Adjeroh et al. | The Burrows-Wheeler Transform:: Data Compression, Suffix Arrays, and Pattern Matching | |
US8321445B2 (en) | Generating content snippets using a tokenspace repository | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
US8712977B2 (en) | Computer product, information retrieval method, and information retrieval apparatus | |
JP3889762B2 (ja) | データ圧縮方法、プログラム及び装置 | |
JP5415529B2 (ja) | 検索インデックスフォーマットの最適化 | |
KR20130062889A (ko) | 데이터 압축 방법 및 시스템 | |
JP5831298B2 (ja) | プログラム、情報処理装置およびインデックス生成方法 | |
US9916314B2 (en) | File extraction method, computer product, file extracting apparatus, and file extracting system | |
US20160321282A1 (en) | Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus | |
JPS63292365A (ja) | 文字処理装置 | |
US10146817B2 (en) | Inverted index and inverted list process for storing and retrieving information | |
Al-Okaily et al. | Toward a better compression for DNA sequences using Huffman encoding | |
US11669553B2 (en) | Context-dependent shared dictionaries | |
Reznik | Coding of sets of words | |
JP2005165598A (ja) | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム | |
US20120254190A1 (en) | Extracting method, computer product, extracting system, information generating method, and information contents | |
JP2005004560A (ja) | インバーテッドファイル作成方法 | |
US8463759B2 (en) | Method and system for compressing data | |
US7433880B2 (en) | Method and system for high speed encoding, processing and decoding of data | |
Zhang | Transform based and search aware text compression schemes and compressed domain text retrieval | |
KR20080087191A (ko) | 유알엘 압축 및 복원 방법 | |
Sherlock et al. | Efficient sorting of search results by string attributes | |
JPS62131348A (ja) | マルチインデツクスフアイルアクセス方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090630 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090630 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090630 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090728 |