JP4208326B2 - 情報索引装置 - Google Patents
情報索引装置 Download PDFInfo
- Publication number
- JP4208326B2 JP4208326B2 JP05833299A JP5833299A JP4208326B2 JP 4208326 B2 JP4208326 B2 JP 4208326B2 JP 05833299 A JP05833299 A JP 05833299A JP 5833299 A JP5833299 A JP 5833299A JP 4208326 B2 JP4208326 B2 JP 4208326B2
- Authority
- JP
- Japan
- Prior art keywords
- character string
- classification
- suffix
- address
- character
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、情報索引装置、より詳細には、情報検索システム、情報管理システム等において使用される情報検索技術に関する。
【0002】
【従来の技術】
テキストや画像は文字コードまたは画素の系列として計算機中に表現することができる。これらの系列をここでは文字列と呼び、その最小構成単位を文字と呼ぶ。既知の文字列S1に対して、ある文字列S2が文字列S1中のどの位置に出現しているかを求めるために、従来より文字列S1から索引を構成し、この索引を利用することで時間的効率化が図られている。
【0003】
Suffix array(Udi Manber,Gene Myers."Suffix Arrays:ANew Method for On-line String Searches",1st ACM-SLAM Symposium on Discrete Algorithms”,pp.319−237,1990)は上記の索引の一種である。以下に、例として、文字列“aa.bb.cccc”に対してsuffix arrayを構成する様子を説明する。ただし、文字列の末尾を表す仮想文字として#を用い、これを合わせた文字列“aa.bb.cccc#”を対象とする。また、この文字列は4つの文字{a,b,c,.,#}により構成され、これらの文字を辞書順に整列すると“#.abc”となることを前提とする。
【0004】
step1:表1に示す文字列“aa.bb.cccc”に対し、先頭から一文字づつ除いてできる部分文字列(suffixと呼ぶ)を得る。表1に示す例の場合、10個のsuffixを得る。ただし、各suffixには、元の文字列中での出現位置(先頭からのオフセット)が対応づけられているものとする。例えば、suffix“cc”は、元の文字列の先頭から7番めの位置に出現している。
【0005】
【表1】
【0006】
step2:表1に示したsuffixの集合を辞書順に整列して、表2を得る。
【0007】
【表2】
【0008】
表2の先頭欄にある出現位置の列である表3が求めるsuffix arrayである。
【0009】
【表3】
【0010】
元の文字列“aa.bb.cccc”に対し文字列“b”の出現位置を全て求める(つまり検索する)には、上記のsuffix array上で二分探索を行えばよい。
【0011】
【発明が解決しようとする課題】
suffix arrayは一次元配列という単純な構造、高速な情報検索を可能にする等の長所を持つが、上記step2の文字列の整列に多大な計算時間と記憶量を要し、大規模な文字列については実用問題がある。
【0012】
本発明は、上述のごとき実情に鑑みてなされたもので、上記問題のうち計算時間の問題、記憶量の負荷を軽減すること、索引更新の負荷を軽減することを解決することを課題とする。
【0015】
【課題を解決するための手段】
請求項1の発明は、メモリとCPUを備えたコンピュータで動作する情報索引装置であって、文字列と該文字列を識別する識別子を対応させた複数のsuffixを前記メモリに記憶した文字列バッファと、複数のsuffixを構成する文字又は文字列を辞書順にならべるとともに、各suffixを構成する文字又は文字列は出現確率と累積確率を対応させて前記メモリに記憶された出現度表と、前記文字列バッファ中の各suffixに対して、該suffixに含まれる前記出現度表中のsuffixを構成する文字又は文字列に対応する出現確率と累積確率に基づいて分類番地を算出する番地算出部と、前記文字列バッファ中の各suffixに対して、前記番地算出部が算出した分類番地に該suffixの識別子を対応させて分類表として前記メモリに記憶させる分類部と、前記分類表中の分類番地をキーとして整列して索引表として前記メモリに記憶させる整列部とを有することを特徴とする。
【0017】
請求項2の発明は、メモリとCPUを備えたコンピュータで動作する情報索引装置であって、文字列と該文字列を識別する識別子を対応させた複数のsuffixを前記メモリに記憶した文字列バッファと、複数のsuffixを構成する文字又は文字列を辞書順にならべるとともに、各suffixを構成する文字又は文字列は出現確率と圧縮符号を対応させて前記メモリに記憶された圧縮符号表と、前記文字列バッファ中の各suffixに対して、該suffixに含まれる前記圧縮符号表中のsuffixを構成する文字又は文字列に対応する圧縮符号に基づいて分類番地を算出する番地算出部と、前記文字列バッファ中の各suffixに対して、前記番地算出部が算出した分類番地に該suffixの識別子を対応させて分類表として前記メモリに記憶させる分類部と、前記分類表中の分類番地をキーとして整列して索引表として記憶させる整列部とを有することを特徴とする。
【0019】
請求項3の発明は、請求項1又は2の発明において、前記番地算出部は、前記文字列バッファ中のsuffixの内、suffixを構成する先頭の文字列が所定の文字列についてのみ分類番地を算出することを特徴とする。
【0021】
請求項4の発明は、請求項3の発明において、前記番地算出部は、前記文字列バッファ中のsuffixに対応させて算出した分類番地を番地バッファに記憶することを特徴とする。
【0022】
請求項5の発明は、請求項1乃至3のいずれかの発明において、前記文字列バッファに記憶する各suffixに分類コードを対応させて記憶させておき、前記分類コードに応じて前記文字列バッファ中のsuffixを複数のグループに分割する内容分割部を有し、前記グループ毎に前記索引表を作成することを特徴とする。
【0023】
請求項6の発明は、請求項1乃至4のいずれかの発明において、前記文字列バッファに記憶する各suffixに時系列の分類コードを対応させて記憶させておき、前記時系列の分類コードに応じて前記文字列バッファ中のsuffixを複数のグループに分割する時系列分割部を有し、前記グループ毎に前記索引表を作成することを特徴とする。
【0025】
【発明の実施の形態】
(請求項1の発明)
図1は、請求項1の発明の情報索引装置の一実施形態を説明するための要部構成図で、図中、1は文字列集合を記憶する文字列バッファ、2は辞書順に文字列の出現度を記憶する出現度表、3は文字列バッファ1中の文字列に対して出現度表2から分類番地を算出する番地算出部、4は文字列バッファ1中の文字列を番地計算部3が算出した分類番地に従い分類表5中に対応づける分類部、5は文字列の分類に用いる分類表、6は分類表5中の文字列をその分類番地に従い辞書順に整列する整列部である。
【0026】
図2は、図1に示した情報索引装置の動作説明をするためのフロー図で、以下のstep1〜4からなる。
step1:番地算出部3は、文字列バッファ1から文字列Sと、その識別子iを取り出す。
step2:番地算出部3は、文字列Sと出現度表2から分類番地jを算出する。
step3:分類部4は、分類表5中の分類番地jの位置に文字列Sの識別子iを格納する。以上の、step1−step3を文字列バッファ1中の全ての文字に対して繰り返す。
step4:整列部6は、分類表5の先頭から末尾にかけて操作し、文字列の識別子を検出する度に、その識別子に対応する文字列バッファ中の文字列を出力する。
【0027】
以上の動作ステップに沿った具体例として、文字列“aa.bb.cccc”から得られるsuffix(文字列)の集合を整列する場合の過程を示す。まず、この文字列は4つの文字{a,b,c,.,#}により構成され、これらの文字を辞書順に整列すると“#.abc”となることを前提とし、表4に示すように、これらの文字の出現度が出現度表にそれらの辞書順に格納されているものとする。出現度として、予め定めた各文字の出現確率と、それを辞書順に累積して得られる累積確率を用いる。
【0028】
【表4】
【0029】
上記の例では、文字の出現度を用いているが、一般には、隣接するn個の文字(つまり文字n−gram)等、文字列の出現度を用いても良い。また、文字列バッファ中に、表5に示すようにsuffixが格納されているものとする。最初の欄の番号が各suffixの識別子に相当する。また、suffixは元の文字列の末尾から先頭に向けた順番に格納している。
【0030】
【表5】
【0031】
番地算出部3は、文字列バッファ1の先頭から順に各suffixを取り出し、その番地を算出する。最初はsuffix“c”が取り出され、その識別子は9である。
【0032】
一般に、文字列Sの番地は、以下の式(1)から算出される。
文字列Sの番地=文字列Sの相対番地×スケール …式(1)
ここで、スケールとは分類表の大きさであり、この例では100とする。以降、文字列S=si,si+1,‥sj(siは文字)をS[i,j]で表す。文字列S=S[i,n]の相対番地は以下の式(2)から再帰的に算出される。ただし、文字siの出現確率をP(si)、累積確率をC(si)とする。また、S[n,n]の相対番地は0.0とする。
【0033】
よって、最初のsuffix“c”の番地は、
suffix“c”の相対番地=0.6+0.4×0=0.6
suffix“c”番地=0.6×100=60.0
次のsuffix“cc”の番地は、
suffix“cc”の相対番地=0.6+0.4×0.6=0.84
suffix“cc”番地=0.84×100=84
のようになる。ただし、分類番地は分類表の位置であるので、上記のように算出された番地を、小数点以下を切り下げることで得た整数番地を実際には使用する。
【0034】
表6に、全てのsuffixに対して算出される相対番号と整数化された分類番地を示す。分類部4は、番地算出部3が分類番地を算出する度に、分類表5の該当する番地にsuffixの識別子を格納する。ただし、分類表5の各要素は全体は予め−1に初期化されているものとする。よって、最終的に表7の分類表を得る(ただし、以下では初期値(−1)以外の値が格納されている部分のみを示す)。
【0035】
【表6】
【0036】
【表7】
【0037】
整列部6は、分類表5を先頭から末尾にかけて走査し、初期値以外の値が格納されている場合は、その識別子を出力する。このように整列部6から出力された識別子は、suffix arrayの各要素に対応する(つまり対応する文字列の辞書順に整列されている)。また、この例では出現確率を用いているので、出現度が高いほど上記の相対番地の少数を表現するための桁数を消費せず、必要となる分類表の大きさ(スケール)の増大を最小限にできる。
【0038】
図3は、情報索引装置の他の実施形態を説明するための要部構成図で、図中、1は文字列集合を記憶する文字列バッファ、2は辞書順に文字列の出現度を記憶する出現度表、3は文字列バッファ1中の文字列に対し出現度表2から分類番地を算出する番地算出部、4は文字列バッファ1中の文字列を番地算出部3が算出した分類番地に従い分類表5中に対応づける分類部、5は文字列の分類に用いる分類表、6は分類表5中の文字列をその分類番地に従い辞書順に整列する整列部、7は文字列の出現度を文字列バッファ中の文字列から算出する出現度算出部で、この発明は、図1に示した請求項1の発明に出現度算出部7を設けたものである。
【0039】
図4は、図3に示した情報索引装置の動作説明をするためのフロー図で、以下のstep0〜4からなる。
step0:出現度算出部7は、文字列バッファ1中の文字列から文字列の出現度を算出し出現度表2に格納する。
step1:番地算出部3は、文字列バッファ1から文字列Sと、その識別子iを取り出す。
step2:番地算出部3は、文字列Sと出現度表2から分類番地jを算出する。
step3:分類部4は、分類表5中の分類番地jの位置に文字列のSの識別子iを格納する。以上の、step1−step3を文字列バッファ1中の全ての文字に対して繰り返す。
step4:整列部6は、分類表5の先頭から末尾にかけて操作し、文字列の識別子を検出する度に、その識別子に対応する文字列バッファ1中の文字列を出力する。
【0040】
step1以降は、請求項1の発明と同様の動作となる。出現度表2の出現度は、処理対象となる文字列バッファ1中の文字列集合から算出した方が前述のスケール(つまり分類表の大きさ)を小さくでき、記憶量を節約できる。step0は、文字列バッファ1中の文字列を一つずつ取り出し、それを構成する文字の頻度及び全文字数を計算し、最終的に前述した出現度表2の値を求める。すなわち、出現確率は、各文字の出現頻度を全文字数で割ることで得られる。
【0041】
(請求項2の発明)
図5は、請求項2の情報索引装置の一実施形態を説明するための要部構成図で、図中、1は文字列集合を記憶する文字列バッファ、8は辞書順に文字列の圧縮符号を記憶する圧縮符号表、3は文字列バッファ1中の文字列に対し圧縮符号表8から分類番地を算出する番地算出部、4は文字列バッファ1中の文字列を番地算出部3が算出した分類番地に従い分類表5中に対応づける分類部、5は文字列の分類に用いる分類表、6は分類表5中の文字列をその分類番地に従い辞書順に整列する整列部で、この発明は、図1に示した実施例における出現度表2に代わって圧縮符号表8を用いたものである。
【0042】
図6は、図5に示した情報索引装置の動作説明をするためのフロー図で、以下のstep1〜4からなる。
step1:番地算出部3は、文字列バッファ1から文字列Sと、その識別子iを取り出す。
step2:番地算出部3は、文字列Sと圧縮符号表8から分類番地jを算出する。
step3:分類部4は、分類表5中の分類番地jの位置に文字列のSの識別子iを格納する。以上step1−step3を文字列バッファ1中の全ての文字に対して繰り返す。
step4:整列部6は、分類表5の先頭から末尾にかけて操作し、文字列の識別子を検出する度に、その識別子に対応する文字列バッファ1中の文字列を出力する。
【0043】
請求項1の発明との違いは、出現度表2の代わりに表8に例示する圧縮符号表を用いる点、および、それを用いた分類番地の求め方にある。前述の例における、圧縮符号表を表8に示す。
【0044】
【表8】
【0045】
表8の圧縮符号は次のようにして求める。まず、表中に辞書順に並べた文字からなる集合を、集合中に含まれる文字の出現確率の和がなるべく均等になるように2つの集合に分割し、各々に0と1を圧縮符号として割り当てる。よって、まず、表9の圧縮符号を得る。
【0046】
【表9】
【0047】
上記において、辞書順に並べた4つの文字からなる集合{#,.,a,b,c}は、{#,.,a}と{b,c}という2つの集合に分割される。各々の集合に属する文字の出現確率の和は0.5と0.5であり、他の分割方法に比べて最も均等している(例えば{#,.}と{a,b,c}では0.3と0.7になり、上記の分割より均等していない)。
次に、各々分散された文字集合をさらに同様の方法で分割し、圧縮符号を割り当て、既に得られた圧縮符号と連結することで表10を得る。
【0048】
【表10】
【0049】
表10において、文字集合{#,.}をさらに分割することで、前述の圧縮符号を得る。上記の圧縮符号化法は、いわゆるShanon−Fanoの符号化に類似しているが、本発明の方法では、分割対象となる文字を辞書順に並べておき、この順序を前提として文字列集合を分割してゆく点が異なる(Shanon−Fanoの方法では文字は頻度が高い順に並べられる)。このようにすることで、圧縮前の文字の辞書順と、圧縮符号化された文字(またはそれにより構成される文字列)の辞書順を一致させることができる。
【0050】
以上の方法で各文字に圧縮符号を対応させ、それを記憶した圧縮符号を用い番地算出部は以下のように分類番地を生成する。前述の通り、文字列バッファには以下のようにsuffixが格納されているものとする。
最初にsuffix“c#”を取り出し、圧縮符号表中の“c”と“#”の圧縮符号を、この順番で連結することで“11000”を得る。次に、suffix“cc”を取り出し、直前に得られた圧縮符号列“11000”に先頭文字“c”の圧縮符号“11”を前接することで“1111000”を得る。以下、同様に圧縮符号を各suffixに対して求めることができる。
一方、分類表の大きさを表すスケールとして8を採用し、分類表の大きさを28=256とする。そして、圧縮符号をbit列と見なした場合に、上位8bitを取り分類番地とする。このようにして、各suffixに対して表11の圧縮符号と分類番地を得る。
【0051】
【表11】
【0052】
実際には、suffixに対し、その分類番地を求めるのに必要なbit数の圧縮符号を求めればよい。分類部は、番地算出部が分類番地を算出する度に、分類表の該当する番地にsuffixの識別子を格納する。例えば、上記suffix“c”の番地は二進法で11000000(10進法で192)なので、分類表(大きさは256)の192番目の要素として、識別子9を格納する。以降の動作は、請求項1の発明と同じである。
【0053】
図7は、情報索引装置の他の実施形態を説明するための要部構成図で、図中、1は文字列集合を記憶する文字列バッファ、8は辞書順に文字列の圧縮符号を記憶する圧縮符号表、9は文字列の圧縮符号を文字列バッファ1中の文字列から算出する圧縮符号算出部、3は文字列バッファ1中の文字列に対し圧縮符号表8から分類番地を算出する番地算出部、4は文字列バッファ1中の文字列を番地算出部3が算出した分類番地に従い分類表5中に対応づける分類部、5は文字列の分類に用いる分類表、6は分類表5中の文字列をその分類番地に従い辞書順に整列する整列部で、この発明は、図5に示した請求項3の発明に圧縮符号算出部9を設けたものである。
【0054】
図8は、図7に示した情報索引装置の動作説明をするためのフロー図で、以下のstep0〜4からなる。
step0:圧縮符号算出部9は、文字列バッファ1中の文字列から文字列の圧縮符号を算出し圧縮符号表8に格納する。
step1:番地算出部3は、文字列バッファ1から文字列Sと、その識別子iを取り出す。
step2:番地算出部3は、文字列Sと圧縮符号表8から分類番地jを算出する。
step3:分類部4は、分類表5中の分類番地jの位置に文字列Sの識別子iを格納する。以上step1−step3を文字列バッファ1中の全ての文字に対して繰り返す。
step4:整列部6は、分類表5の先頭から末尾にかけて操作し、文字列の識別子を検出する度に、その識別子に対応する文字列バッファ1中の文字列を出力する。
【0055】
step1以降は、図5に示した請求項2の発明と同様の動作となる。圧縮符号表8の圧縮符号は、処理対象となる文字列バッファ中の文字列集合から算出した方が前述のスケール(つまり分類表の大きさ)を小さくでき、記憶量を節約できる。
step0は、文字列バッファ1中の文字列を一つずつ取り出し、それを構成する文字の頻度および全文字数を計数し、最終的に前述した出現確率の値を求める。すなわち、出現確率は、各文字の出現頻度を全文字数で割ることで得られる。
【0056】
(請求項3の発明)
請求項3の発明は、請求項1の発明に従属する発明で、請求項1の発明に従属する場合は、図1に示した請求項1の発明と同様の構成をとり、番地算出部3において、文字列バッファ1の文字列の内、一部の文字列についてのみ出現度表2から分類番地を算出するようにした点で、請求項1の発明と異なる。
【0057】
上述のように、請求項3の発明は、図1或いは図3に示した請求項1の発明において、番地算出部3は、文字列バッファ1中の一部の文字列についてのみ出現度表2から番地を算出するようにしたものである。例えば、出現度表が表12のように求められているとする。
【0058】
【表12】
【0059】
番地算出部3は、文字{.,a}という2つの文字を先頭とするsuffixに対してのみ、分類番地を算出する。よって、表13の結果を得る。分類番地が算出されなかった場合を“−”で表している。
【0060】
【表13】
【0061】
そして、分類部4は番地が求められたsuffixのみ、分類表5に格納する。この例で必要となる分類表の大きさは24となる(前述の例では大きさが97必要)。また、スケールつまり分類表の大きさを250に設定することで、対象となるsuffixをより広い範囲に分散して格納できることから、異なるsuffixが同じ分類番地に格納される確率(衝突確率)を減少させることができる。以降の動作は、前述の請求項1の発明と同様である。
【0062】
一回の整列の対象となるsuffixを上記のように限定することで、衝突確率を減少させることができる。そして、同様の整列を残りの文字列に対して行い、それらの結果(つまり整列部の出力)を連結することで、suffix arrayの全体を得ることができる。
【0063】
(請求項3の他の発明)
請求項3の他の発明は、図5或いは図7に示した請求項2の発明に従属する発明で、請求項2の発明に従属する場合は、図5に示した請求項2の発明と同様の構成をとるが、番地算出部3において、文字列バッファ1中の文字列の内、一部の文字列についてのみ圧縮符号表8から分類番地を算出するようにした点で、請求項2の発明と異なる。
【0064】
上述のように、請求項3の他の発明は、図5或いは図7に示した請求項2の発明において、請求項3の発明と同様、番地算出部3は文字列バッファ1中の一部の文字列についてのみ出現度表から番地を算出するもので、該番地算出部3は、文字{.,a}という2つの文字を先頭とするsuffixに対してのみ、分類番地を算出する場合、表14の結果を得る。分類番地が算出されなかった場合は“−”を表している。ここで番地としては上位6bitを用いる。必要な分類表の大きさは26=64となる。
【0065】
【表14】
【0066】
(請求項4の発明)
図9は、請求項4の情報索引装置の一実施形態を説明するための図で、図中、10は番地バッファで、この発明は請求項3の発明の構成に、文字列バッファ1中の文字列に対し番地算出部3が算出した番地を記憶する番地バッファ10を加えたものである。而して、この発明においては、請求項4の情報索引装置で、suffix arrayを数回の整列に分けて得る場合、初回に番地算出部が算出した分類番地を番地バッファ10に記憶し、二回目以降は、番地算出部は番地バッファ10を参照して必要な番地を得る。
【0067】
(請求項5の発明)
図10は、請求項5に記載の情報索引装置の一実施形態を説明するための要部構成図で、図中、20は請求項1乃至4に示した情報索引装置のいずれかに記載の装置、21は内容分割部、221〜22nは索引表で、この発明は、図示のように、前述の実施形態1〜4に示した請求項1〜4の発明20に文字列が属する内容分類に応じて文字列集合を分割する内容分割部21、辞書順に整列した文字列の識別番号を記憶する索引表221〜22nを付加したものである。
【0068】
図8に示した実施形態において、内容分割部21は、入力される文字列の集合を各文字列に対応して入力される分類コードに基づいて分割する。この分類コード体系は、文字列の内容に応じて予め決定されているものとする。分割結果は文字列バッファ1に、分類コード毎に格納される文字列の集合として表現される。
請求項1〜4に対応する装置20は各分類コード毎に、それに対応する文字列を整列する。その際、整列部は処理結果である辞書順に整列した文字列の識別番号を各分類コード毎に固有の索引表221〜22nに格納する。
【0069】
(請求項6の発明)
図11は、請求項6の発明の一実施形態を説明するための要部構成図で、図中、23は時系列分割部、221〜22nは索引表で、この発明は、図示のように、前述の実施形態1〜4に示した請求項1〜4の発明20に文字列が属する時系列分類に応じて文字列集合を分割する時系列分割部23、辞書順に整列した文字列の識別番号を記憶する索引表221〜22nを付加したものである。
【0070】
図11に示した実施形態において、時系列分類部23は、入力される文字列の集合を各文字列に対応して入力される分類コードに基づいて分割する。この分類コード体系は、文字列が生成された日時など文字列間の時系列関係を表現するものとする。分割結果は文字列バッファに、分類コード毎に格納される文字列の集合として表現される。請求項1〜4に対応する装置20は各分類コード毎に、それに対応する文字列を整列する。その際、整列部は処理結果である辞書順に整列した文字列の識別番号を各分類コード毎に固有の索引表221〜22nに格納する。
【0071】
図12は、情報索引装置の例を説明するための要部構成図で、図中、31は索引表、32は対応表、33は文字列構成部で、索引表31は辞書順に整列した文字列の識別番号を記憶し、対応表32は索引表中の識別番号と文字列の対応を記憶し、文字列構成部33は索引表と対応表から文字列を構成する。
【0072】
図11に示した実施形態において、以下に、前述の例である文字列“aa.bb.cccc”を用いてその動作例を説明する。この文字列に対する索引表であるsuffix arrayは、表15となる。suffix arrayの各要素は文字列の識別子であり、それら文字列の先頭文字を取り出すと表16のようになる。上記の対応関係が表17に示す対応表に格納されているものとする。
【0073】
【表15】
【0074】
【表16】
【0075】
【表17】
【0076】
上記で、例えば文字aに対応する行は、suffix arrayの2番めの要素を先頭とし3番めの要素を末尾とする識別子の列、すなわち“1,0”に対応する文字列の先頭文字がaであることを表す。文字列構成部33は上記の索引表31と対応表32から、元の文字列を次のようにして文字配列T上に構成することができる。
・索引表と同じ大きさ(この場合10)の文字配列Tを用意する。
・対応表の各行Lについて以下を行う。
行Lが文字Xに対応しているとき、行Lの先頭Bから末尾Eまでの索引表に格納されている識別子Iの各々に対し、文字配列TのI番目に文字Xを格納する。
【0077】
【発明の効果】
請求項1の発明は、文字列の出現度を用いることで文字列のバケット整列を高速化できる。
【0079】
請求項2の発明は、文字列の圧縮符号を用いることで文字列のバケット整列を高速化できる。
【0081】
請求項3の発明は、請求項1又は2の発明において、必要とする計算量の負荷を軽減し、また、分類番地の衝突を抑制できる。
【0083】
請求項4の発明は、請求項3の発明において、必要とする計算時間の負荷を軽減できる。
【0085】
請求項5の発明は、請求項1乃至4のいずれかの発明において、索引表の更新問題を軽減できる。
また、更新の際に対象となる文字列集合が小規模になり、更新時の計算量が軽減されるとともに、検索時に、検索対象となる内容分類が予め限定できる場合には、その限定範囲内で検索を実施することで検索時間を高速化できるという副次的な作用効果が得られる。
【0087】
請求項6の発明は、請求項1乃至4のいずれかの発明において、更新問題を軽減できる。
また、文字列の時系列分類別にsuffix arrayを構成するので、更新の際に対象となる文字列集合が小規模になり、更新時の計算量が軽減されるとともに、検索時に、検索対象となる時系列分類が予め限定できる場合(例えば最近の一年間に追加された文字列に限定する等)、その限定範囲内で検索を実施することで検索時間を高速化できるという副次的な作用効果が得られる。また最新の情報から古い情報の順に検索結果を提示することができる。
【図面の簡単な説明】
【図1】 請求項1の情報索引装置の一実施形態を説明するための要部構成図である。
【図2】 図1に示した情報索引装置の動作説明をするためのフロー図である。
【図3】 情報索引装置の一実施形態を説明するための要部構成図である。
【図4】 図3に示した情報索引装置の動作説明をするためのフロー図である。
【図5】 請求項2の情報索引装置の一実施形態を説明するための要部構成図である。
【図6】 図5に示した情報索引装置の動作説明をするためのフロー図である。
【図7】 情報索引装置の一実施形態を説明するための要部構成図である。
【図8】 図7に示した情報索引装置の動作説明をするためのフロー図である。
【図9】 請求項4の情報索引装置の一実施形態を説明するための図である。
【図10】 請求項5に記載の情報索引装置の一実施形態を説明するための要部構成図である。
【図11】 請求項6の発明の一実施形態を説明するための要部構成図である。
【図12】 情報索引装置の例を説明するための要部構成図である。
【符号の説明】
1…文字列バッファ、2…出現度表、3…番地算出部、4…分類部、5…分類表、6…整列部、7…出現度算出部、8…圧縮符号表、9…圧縮符号算出部、10…番地バッファ、20…請求項1〜7の装置、21…内容分割部、221〜22n…索引表、23…時系列分割部、31…索引表、32…対応表、33…文字列構成部。
Claims (6)
- メモリとCPUを備えたコンピュータで動作する情報索引装置であって、文字列と該文字列を識別する識別子を対応させた複数のsuffixを前記メモリに記憶した文字列バッファと、複数のsuffixを構成する文字又は文字列を辞書順にならべるとともに、各suffixを構成する文字又は文字列は出現確率と累積確率を対応させて前記メモリに記憶された出現度表と、前記文字列バッファ中の各suffixに対して、該suffixに含まれる前記出現度表中のsuffixを構成する文字又は文字列に対応する出現確率と累積確率に基づいて分類番地を算出する番地算出部と、前記文字列バッファ中の各suffixに対して、前記番地算出部が算出した分類番地に該suffixの識別子を対応させて分類表として前記メモリに記憶させる分類部と、前記分類表中の分類番地をキーとして整列して索引表として前記メモリに記憶させる整列部とを有することを特徴とする情報索引装置。
- メモリとCPUを備えたコンピュータで動作する情報索引装置であって、文字列と該文字列を識別する識別子を対応させた複数のsuffixを前記メモリに記憶した文字列バッファと、複数のsuffixを構成する文字又は文字列を辞書順にならべるとともに、各suffixを構成する文字又は文字列は出現確率と圧縮符号を対応させて前記メモリに記憶された圧縮符号表と、前記文字列バッファ中の各suffixに対して、該suffixに含まれる前記圧縮符号表中のsuffixを構成する文字又は文字列に対応する圧縮符号に基づいて分類番地を算出する番地算出部と、前記文字列バッファ中の各suffixに対して、前記番地算出部が算出した分類番地に該suffixの識別子を対応させて分類表として前記メモリに記憶させる分類部と、前記分類表中の分類番地をキーとして整列して索引表として記憶させる整列部とを有することを特徴とする情報索引装置。
- 前記番地算出部は、前記文字列バッファ中のsuffixの内、suffixを構成する先頭の文字列が所定の文字列についてのみ分類番地を算出することを特徴とする請求項1又は2記載の情報索引装置。
- 前記番地算出部は、前記文字列バッファ中のsuffixに対応させて算出した分類番地を番地バッファに記憶することを特徴とする請求項3記載の情報索引装置。
- 前記文字列バッファに記憶する各suffixに分類コードを対応させて記憶させておき、前記分類コードに応じて前記文字列バッファ中のsuffixを複数のグループに分割する内容分割部を有し、前記グループ毎に前記索引表を作成することを特徴とする請求項1乃至4のいずれかに記載の情報索引装置。
- 前記文字列バッファに記憶する各suffixに時系列の分類コードを対応させて記憶させておき、前記時系列の分類コードに応じて前記文字列バッファ中のsuffixを複数のグループに分割する時系列分割部を有し、前記グループ毎に前記索引表を作成することを特徴とする請求項1乃至4のいずれかに記載の情報索引装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05833299A JP4208326B2 (ja) | 1999-03-05 | 1999-03-05 | 情報索引装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05833299A JP4208326B2 (ja) | 1999-03-05 | 1999-03-05 | 情報索引装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000259646A JP2000259646A (ja) | 2000-09-22 |
JP4208326B2 true JP4208326B2 (ja) | 2009-01-14 |
Family
ID=13081367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05833299A Expired - Fee Related JP4208326B2 (ja) | 1999-03-05 | 1999-03-05 | 情報索引装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4208326B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102061413B1 (ko) * | 2018-05-30 | 2019-12-31 | 연세대학교 산학협력단 | 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002269096A (ja) * | 2001-03-08 | 2002-09-20 | Ricoh Co Ltd | 文字列復元方法及びその装置並びに記録媒体 |
JP4513781B2 (ja) * | 2006-05-24 | 2010-07-28 | Sky株式会社 | 文書検索方法および文書検索装置 |
CN101523391A (zh) * | 2006-10-06 | 2009-09-02 | 日本电气株式会社 | 信息检索系统和信息检索方法及程序 |
JP5233233B2 (ja) | 2007-10-05 | 2013-07-10 | 日本電気株式会社 | 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム |
JP5279897B2 (ja) * | 2009-04-13 | 2013-09-04 | 株式会社日立製作所 | ペア文字列検索システム |
JP5472929B2 (ja) * | 2010-12-14 | 2014-04-16 | 株式会社日立製作所 | 文書検索装置、文書検索方法及び文書検索プログラム |
-
1999
- 1999-03-05 JP JP05833299A patent/JP4208326B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102061413B1 (ko) * | 2018-05-30 | 2019-12-31 | 연세대학교 산학협력단 | 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2000259646A (ja) | 2000-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3889762B2 (ja) | データ圧縮方法、プログラム及び装置 | |
JP3077765B2 (ja) | 語彙辞書の検索範囲を削減するシステム及び方法 | |
CN102142038B (zh) | 用于记号空间资料库的多级查询处理系统与方法 | |
US8200646B2 (en) | Efficient retrieval of variable-length character string data | |
US20160321282A1 (en) | Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus | |
US7880648B2 (en) | Information processing apparatus, information processing method, and computer product | |
JP2001345710A (ja) | データ圧縮装置および方法 | |
US20100131476A1 (en) | Computer product, information retrieval method, and information retrieval apparatus | |
US20140229484A1 (en) | Extraction method, computer product, extracting apparatus, and extracting system | |
US5585793A (en) | Order preserving data translation | |
US20140214854A1 (en) | Extracting method, computer product, extracting system, information generating method, and information contents | |
JPH09288676A (ja) | 全文インデックス作成装置および全文データベース検索装置 | |
JP4208326B2 (ja) | 情報索引装置 | |
JP3333549B2 (ja) | 文書検索方式 | |
JP3258063B2 (ja) | データベース検索システム及び方法 | |
US20130332433A1 (en) | Computer product, generating apparatus, and generating method | |
US9501558B2 (en) | Computer product, searching apparatus, and searching method | |
Ferragina et al. | Learned monotone minimal perfect hashing | |
JP3534471B2 (ja) | マージソート方法及びマージソート装置 | |
JP3728264B2 (ja) | インデックス作成装置、検索システム、及び制御方法 | |
JP2993540B2 (ja) | 昇順整数列データの圧縮および復号システム | |
JP2954749B2 (ja) | データ圧縮方式 | |
JP3259781B2 (ja) | データベース検索システムおよびデータベース検索方法 | |
JP2535655B2 (ja) | 辞書検索方式 | |
JP3224917B2 (ja) | 名標辞書作成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 19990310 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080527 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080912 |
|
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: 20081021 |
|
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: 20081021 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111031 Year of fee payment: 3 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080912 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121031 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131031 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |