JP2000259646A - 情報索引装置 - Google Patents

情報索引装置

Info

Publication number
JP2000259646A
JP2000259646A JP11058332A JP5833299A JP2000259646A JP 2000259646 A JP2000259646 A JP 2000259646A JP 11058332 A JP11058332 A JP 11058332A JP 5833299 A JP5833299 A JP 5833299A JP 2000259646 A JP2000259646 A JP 2000259646A
Authority
JP
Japan
Prior art keywords
character string
classification
address
character
buffer
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.)
Granted
Application number
JP11058332A
Other languages
English (en)
Other versions
JP4208326B2 (ja
Inventor
Hideo Ito
秀夫 伊東
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP05833299A priority Critical patent/JP4208326B2/ja
Publication of JP2000259646A publication Critical patent/JP2000259646A/ja
Application granted granted Critical
Publication of JP4208326B2 publication Critical patent/JP4208326B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 suffix arrayは一次元配列とい
う単純な構造、高速な情報検索を可能にする等の長所を
持つが、文字列の整列に多大な計算時間と記憶量を要
し、大規模な文字列については実用上問題がある。 【解決手段】 文字列集合を記憶する文字列バッファ1
と、辞書順に文字列の出現度を記憶する出現度表2と、
文字列の分類に用いる分類表5と、文字列バッファ中の
文字列に対し出現度表から分類番地を算出する番地算出
部3と、文字列バッファ中の文字列を番地計算部が算出
した分類番地に従い分類表5中に対応づける分類部4
と、分類表中の文字列をその分類番地に従い辞書順に整
列する整列部6とを有する。文字列の出現度を用いるこ
とで文字列のバケット整列を高速化することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報索引装置、よ
り詳細には、情報検索システム、情報管理システム等に
おいて使用される情報検索技術に関する。
【0002】
【従来の技術】テキストや画像は文字コードまたは画素
の系列として計算機中に表現することができる。これら
の系列をここでは文字列と呼び、その最小構成単位を文
字と呼ぶ。既知の文字列S1に対して、ある文字列S2
が文字列S1中のどの位置に出現しているかを求めるた
めに、従来より文字列S1から索引を構成し、この索引
を利用することで時間的効率化が図られている。
【0003】Suffix array(Udi Manber,Gene Myers."S
uffix Arrays:ANew Method for On-line String Searc
hes",1st ACM-SLAM Symposium on Discrete Algorithm
s”,pp.319−237,1990)は上記の索引
の一種である。以下に、例として、文字列“aa.b
b.cccc”に対してsuffix arrayを構
成する様子を説明する。ただし、文字列の末尾を表す仮
想文字として#を用い、これを合わせた文字列“aa.
bb.cccc#”を対象とする。また、この文字列は
4つの文字{a,b,c,.,#}により構成され、こ
れらの文字を辞書順に整列すると“#.abc”となる
ことを前提とする。
【0004】step1:表1に示す文字列“aa.b
b.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 arr
ayは一次元配列という単純な構造、高速な情報検索を
可能にする等の長所を持つが、上記step2の文字列
の整列に多大な計算時間と記憶量を要し、大規模な文字
列については実用問題がある。
【0012】本発明は、上述のごとき実情に鑑みてなさ
れたもので、請求項1,3の発明は、上記問題のうち計
算時間の問題を解決することを課題とする。請求項2,
4の発明は、請求項1,3の装置が必要とする記憶量の
負荷を軽減することを課題とする。請求項5,6の発明
は、請求項1乃至4の装置が必要とする記憶量の負荷を
軽減することを課題とする。請求項7の発明は、請求項
5,6の装置が必要とする計算時間の負荷を軽減するこ
とを課題とする。
【0013】元の文字列を修正したり新たな文字列の追
加をする場合、suffix arrayは再構築しな
ければならない。請求項8,9の発明は、この索引更新
の負荷を軽減することを課題とする。
【0014】suffix arrayを用いた検索で
は、suffix arrayの他に元の文字列が必要
となる。元の文字列が通信ネットワーク等を介し、遠隔
にある場合は、検索時の二分探索の計算時間が増大し、
実用上の問題になる。請求項10の発明は、この問題を
解決することを課題とする。
【0015】
【課題を解決するための手段】請求項1の発明は、文字
列集合を記憶する文字列バッファと、辞書順に文字列の
出現度を記憶する出現度表と、文字列の分類に用いる分
類表と、文字列バッファ中の文字列に対し出現度表から
分類番地を算出する番地算出部と、文字列バッファ中の
文字列を番地計算部が算出した分類番地に従い分類表中
に対応づける分類部と、分類表中の文字列をその分類番
地に従い辞書順に整列する整列部とを有することを特徴
とし、もって、文字列の出現度を用いることで文字列の
バケット整列を高速化するようにしたものである。
【0016】請求項2の発明は、請求項1の発明におい
て、前記文字列の出現度を前記文字列バッファ中の文字
列から算出する出現度算出部を有することを特徴とし、
もって、文字列の出現度を元の文字列(の集合)から求
めることで、請求項1の発明における記憶量の負荷を軽
減するようにしたものである。
【0017】請求項3の発明は、文字列集合を記憶する
文字列バッファと、辞書順に文字列の圧縮符号を記憶す
る圧縮符号表と、文字列の分類に用いる分類表と、文字
列バッファ中の文字列に対し圧縮符号表から分類番地を
算出する番地算出部と、文字列バッファ中の文字列を番
地計算部が算出した分類番地に従い分類表中に対応づけ
る分類部と、分類表中の文字列をその分類番地に従い辞
書順に整列する整列部とを有することを特徴とし、もっ
て、文字列の圧縮符号を用いることで文字列のバケット
整列を高速化するようにしたものである。
【0018】請求項4の発明は、請求項3の発明におい
て、前記文字列の圧縮符号を文字列バッファ中の文字列
から算出する圧縮符号算出部を有することを特徴とし、
もって、文字列の圧縮符号を元の文字列(の集合)から
求めることで、請求項3の発明における記憶量の負荷を
軽減するようにしたものである。
【0019】請求項5の発明は、請求項1又は2の発明
において、前記文字列バッファ中の文字列の内、一部の
文字列についてのみ前記出現度表から分類番地を算出す
る番地算出部を有することを特徴とし、もって、整列対
象となる文字列の範囲を分割し、その各々を別々に整列
することで、請求項1又は2の発明が必要とする計算量
の負荷を軽減し、また、分類番地の衝突を抑制するよう
にしたものである。
【0020】請求項6の発明は、請求項3又は4の発明
において、前記文字列バッファ中の文字列の内、一部の
文字列についてのみ前記圧縮符号表から分類番地を算出
する番地算出部を有することを特徴とし、もって、整列
対象となる文字列の範囲を分割し、その各々を別々に整
列することで、請求項3又は4の発明が必要とする計算
量の負荷を軽減し、また、分類番地の衝突を抑制するよ
うにしたものである。
【0021】請求項7の発明は、請求項5又は6の発明
において、前記文字列バッファ中の文字列に対し前記番
地算出部が算出した番地を記憶する番地バッファを有す
ることを特徴とし、もって、バケット整列において求め
た分類番地を記憶することで重複した番地計算をなく
し、請求項5又は6の装置が必要とする計算時間の負荷
を軽減するようにしたものである。
【0022】請求項8の発明は、請求項1乃至7のいず
れかの発明において、辞書順に整列した文字列の識別番
号を記憶する索引表及び文字列が属する内容分類に応じ
て文字列集合を分割する内容分割部を有することを特徴
とし、もって、文字列集合を内容別に分割し、その各々
についてsuffix arrayを構成することで、
更新問題を軽減するようにしたものである。
【0023】請求項9の発明は、請求項1乃至7のいず
れかの発明において、辞書順に整列した文字列の識別番
号を記憶する索引表及び文字列が属する時系列分類に応
じて文字列集合を分割する時系列分割部を有することを
特徴とし、もって、文字列集合を時系列で分割し、その
各々についてsuffix arrayを構成すること
で、更新問題を軽減するようにしたものである。
【0024】請求項10の発明は、辞書順に整列した文
字列の識別番号を記憶する索引表と、索引表中の識別番
号と文字列の対応を記憶する対応表と、索引表と対応表
から文字列を構成する文字列構成部からなることを特徴
とし、もって、suffixarrayの各要素と、そ
れに対応する文字列の先頭文字を対応づける表を用いs
uffix arrayから元の文字列を再現すること
で、検索時に遠隔にある元の文字列への参照を回避し、
検索時間を軽減するようにしたものである。
【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を格納する。以上の、step
1−step3を文字列バッファ1中の全ての文字に対
して繰り返す。 step4:整列部6は、分類表5の先頭から末尾にか
けて操作し、文字列の識別子を検出する度に、その識別
子に対応する文字列バッファ中の文字列を出力する。
【0027】以上の動作ステップに沿った具体例とし
て、文字列“aa.bb.cccc”から得られるsu
ffix(文字列)の集合を整列する場合の過程を示
す。まず、この文字列は4つの文字{a,b,c,.,
#}により構成され、これらの文字を辞書順に整列する
と“#.abc”となることを前提とし、表4に示すよ
うに、これらの文字の出現度が出現度表にそれらの辞書
順に格納されているものとする。出現度として、予め定
めた各文字の出現確率と、それを辞書順に累積して得ら
れる累積確率を用いる。
【0028】
【表4】
【0029】上記の例では、文字の出現度を用いている
が、一般には、隣接するn個の文字(つまり文字n−g
ram)等、文字列の出現度を用いても良い。また、文
字列バッファ中に、表5に示すようにsuffixが格
納されているものとする。最初の欄の番号が各suff
ixの識別子に相当する。また、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(s
i)、累積確率をC(si)とする。また、S[n,
n]の相対番地は0.0とする。 S[i,n]の相対番地= C(si)+P(si)×S[i+1,n]の相対番地 …式(2)
【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】(請求項2の発明)図3は、請求項2の情
報索引装置の一実施形態を説明するための要部構成図
で、図中、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を格納する。以上の、ste
p1−step3を文字列バッファ1中の全ての文字に
対して繰り返す。 step4:整列部6は、分類表5の先頭から末尾にか
けて操作し、文字列の識別子を検出する度に、その識別
子に対応する文字列バッファ1中の文字列を出力する。
【0040】step1以降は、請求項1の発明と同様
の動作となる。出現度表2の出現度は、処理対象となる
文字列バッファ1中の文字列集合から算出した方が前述
のスケール(つまり分類表の大きさ)を小さくでき、記
憶量を節約できる。step0は、文字列バッファ1中
の文字列を一つずつ取り出し、それを構成する文字の頻
度及び全文字数を計算し、最終的に前述した出現度表2
の値を求める。すなわち、出現確率は、各文字の出現頻
度を全文字数で割ることで得られる。
【0041】(請求項3の発明)図5は、請求項3の情
報索引装置の一実施形態を説明するための要部構成図
で、図中、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−F
anoの方法では文字は頻度が高い順に並べられる)。
このようにすることで、圧縮前の文字の辞書順と、圧縮
符号化された文字(またはそれにより構成される文字
列)の辞書順を一致させることができる。
【0050】以上の方法で各文字に圧縮符号を対応さ
せ、それを記憶した圧縮符号を用い番地算出部は以下の
ように分類番地を生成する。前述の通り、文字列バッフ
ァには以下のようにsuffixが格納されているもの
とする。最初にsuffix“c#”を取り出し、圧縮
符号表中の“c”と“#”の圧縮符号を、この順番で連
結することで“11000”を得る。次に、suffi
x“cc”を取り出し、直前に得られた圧縮符号列“1
1000”に先頭文字“c”の圧縮符号“11”を前接
することで“1111000”を得る。以下、同様に圧
縮符号を各suffixに対して求めることができる。
一方、分類表の大きさを表すスケールとして8を採用
し、分類表の大きさを2 8=256とする。そして、圧
縮符号をbit列と見なした場合に、上位8bitを取
り分類番地とする。このようにして、各suffixに
対して表11の圧縮符号と分類番地を得る。
【0051】
【表11】
【0052】実際には、suffixに対し、その分類
番地を求めるのに必要なbit数の圧縮符号を求めれば
よい。分類部は、番地算出部が分類番地を算出する度
に、分類表の該当する番地にsuffixの識別子を格
納する。例えば、上記suffix“c”の番地は二進
法で11000000(10進法で192)なので、分
類表(大きさは256)の192番目の要素として、識
別子9を格納する。以降の動作は、請求項1の発明と同
じである。
【0053】(請求項4の発明)図7は、請求項4の情
報索引装置の一実施形態を説明するための要部構成図
で、図中、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に示した請求項3
の発明と同様の動作となる。圧縮符号表8の圧縮符号
は、処理対象となる文字列バッファ中の文字列集合から
算出した方が前述のスケール(つまり分類表の大きさ)
を小さくでき、記憶量を節約できる。step0は、文
字列バッファ1中の文字列を一つずつ取り出し、それを
構成する文字の頻度および全文字数を計数し、最終的に
前述した出現確率の値を求める。すなわち、出現確率
は、各文字の出現頻度を全文字数で割ることで得られ
る。
【0056】(請求項5の発明)請求項5の発明は、請
求項1又は請求項2の発明に従属する発明で、請求項1
の発明に従属する場合は、図1に示した請求項1の発明
と同様の構成をとり、請求項2の発明に従属する場合
は、図3に示した請求項2の発明と同様の構成をとる
が、共に、番地算出部3において、文字列バッファ1の
文字列の内、一部の文字列についてのみ出現度表2から
分類番地を算出するようにした点で、請求項1或いは請
求項2の発明と異なる。
【0057】上述のように、請求項5の発明は、図1或
いは図3に示した請求項1或いは請求項2の発明におい
て、番地算出部3は、文字列バッファ1中の一部の文字
列についてのみ出現度表2から番地を算出するようにし
たものである。例えば、出現度表が表12のように求め
られているとする。
【0058】
【表12】
【0059】番地算出部3は、文字{.,a}という2
つの文字を先頭とするsuffixに対してのみ、分類
番地を算出する。よって、表13の結果を得る。分類番
地が算出されなかった場合を“−”で表している。
【0060】
【表13】
【0061】そして、分類部4は番地が求められたsu
ffixのみ、分類表5に格納する。この例で必要とな
る分類表の大きさは24となる(前述の例では大きさが
97必要)。また、スケールつまり分類表の大きさを2
50に設定することで、対象となるsuffixをより
広い範囲に分散して格納できることから、異なるsuf
fixが同じ分類番地に格納される確率(衝突確率)を
減少させることができる。以降の動作は、前述の請求項
1及び2の発明と同様である。
【0062】一回の整列の対象となるsuffixを上
記のように限定することで、衝突確率を減少させること
ができる。そして、同様の整列を残りの文字列に対して
行い、それらの結果(つまり整列部の出力)を連結する
ことで、suffix arrayの全体を得ることが
できる。
【0063】(請求項6の発明)請求項6の発明は、図
5或いは図7に示した請求項3或いは請求項4の発明に
従属する発明で、請求項3の発明に従属する場合は、図
5に示した請求項3の発明と同様の構成をとり、請求項
4の発明に従属する場合は、図6に示した請求項4の発
明と同様の構成をとるが、共に、番地算出部3におい
て、文字列バッファ1中の文字列の内、一部の文字列に
ついてのみ圧縮符号表8から分類番地を算出するように
した点で、請求項3或いは請求項4の発明と異なる。
【0064】上述のように、請求項6の発明は、図5或
いは図7に示した請求項3或いは請求項4の発明におい
て、請求項5の発明と同様、番地算出部3は文字列バッ
ファ1中の一部の文字列についてのみ出現度表から番地
を算出するもので、該番地算出部3は、文字{.,a}
という2つの文字を先頭とするsuffixに対しての
み、分類番地を算出する場合、表14の結果を得る。分
類番地が算出されなかった場合は“−”を表している。
ここで番地としては上位6bitを用いる。必要な分類
表の大きさは26=64となる。
【0065】
【表14】
【0066】(請求項7の発明)図9は、請求項7の情
報索引装置の一実施形態を説明するための図で、図中、
10は番地バッファで、この発明は請求項5或いは請求
項6の発明の構成に、文字列バッファ1中の文字列に対
し番地算出部3が算出した番地を記憶する番地バッファ
10を加えたものである。而して、この発明において
は、請求項5又は6の情報索引装置で、suffix
arrayを数回の整列に分けて得る場合、初回に番地
算出部が算出した分類番地を番地バッファ10に記憶
し、二回目以降は、番地算出部は番地バッファ10を参
照して必要な番地を得る。
【0067】(請求項8の発明)図10は、請求項8に
記載の情報索引装置の一実施形態を説明するための要部
構成図で、図中、20は請求項1乃至7に示した情報索
引装置のいずれかに記載の装置、21は内容分割部、2
1〜22nは索引表で、この発明は、図示のように、前
述の実施形態1〜7に示した請求項1〜7の発明20に
文字列が属する内容分類に応じて文字列集合を分割する
内容分割部21、辞書順に整列した文字列の識別番号を
記憶する索引表221〜22nを付加したものである。
【0068】図8に示した実施形態において、内容分割
部21は、入力される文字列の集合を各文字列に対応し
て入力される分類コードに基づいて分割する。この分類
コード体系は、文字列の内容に応じて予め決定されてい
るものとする。分割結果は文字列バッファ1に、分類コ
ード毎に格納される文字列の集合として表現される。請
求項1〜7に対応する装置20は各分類コード毎に、そ
れに対応する文字列を整列する。その際、整列部は処理
結果である辞書順に整列した文字列の識別番号を各分類
コード毎に固有の索引表221〜22nに格納する。
【0069】(請求項9の発明)図11は、請求項9の
発明の一実施形態を説明するための要部構成図で、図
中、23は時系列分割部、221〜22nは索引表で、こ
の発明は、図示のように、前述の実施形態1〜7に示し
た請求項1〜7の発明20に文字列が属する時系列分類
に応じて文字列集合を分割する時系列分割部23、辞書
順に整列した文字列の識別番号を記憶する索引表221
〜22nを付加したものである。
【0070】図11に示した実施形態において、時系列
分類部23は、入力される文字列の集合を各文字列に対
応して入力される分類コードに基づいて分割する。この
分類コード体系は、文字列が生成された日時など文字列
間の時系列関係を表現するものとする。分割結果は文字
列バッファに、分類コード毎に格納される文字列の集合
として表現される。請求項1〜7に対応する装置20は
各分類コード毎に、それに対応する文字列を整列する。
その際、整列部は処理結果である辞書順に整列した文字
列の識別番号を各分類コード毎に固有の索引表221
22nに格納する。
【0071】(請求項10の発明)図12は、請求項1
0に記載の情報索引装置の一実施形態を説明するための
要部構成図で、図中、31は索引表、32は対応表、3
3は文字列構成部で、索引表31は辞書順に整列した文
字列の識別番号を記憶し、対応表32は索引表中の識別
番号と文字列の対応を記憶し、文字列構成部33は索引
表と対応表から文字列を構成する。
【0072】図11に示した実施形態において、以下
に、前述の例である文字列“aa.bb.cccc”を
用いてその動作例を説明する。この文字列に対する索引
表であるsuffix arrayは、表15となる。
suffix arrayの各要素は文字列の識別子で
あり、それら文字列の先頭文字を取り出すと表16のよ
うになる。上記の対応関係が表17に示す対応表に格納
されているものとする。
【0073】
【表15】
【0074】
【表16】
【0075】
【表17】
【0076】上記で、例えば文字aに対応する行は、s
uffix arrayの2番めの要素を先頭とし3番
めの要素を末尾とする識別子の列、すなわち“1,0”
に対応する文字列の先頭文字がaであることを表す。文
字列構成部33は上記の索引表31と対応表32から、
元の文字列を次のようにして文字配列T上に構成するこ
とができる。 ・索引表と同じ大きさ(この場合10)の文字配列Tを
用意する。 ・対応表の各行Lについて以下を行う。 行Lが文字Xに対応しているとき、行Lの先頭Bから末
尾Eまでの索引表に格納されている識別子Iの各々に対
し、文字配列TのI番目に文字Xを格納する。
【0077】
【発明の効果】請求項1の発明は、文字列集合を記憶す
る文字列バッファと、辞書順に文字列の出現度を記憶す
る出現度表と、文字列の分類に用いる分類表と、文字列
バッファ中の文字列に対し出現度表から分類番地を算出
する番地算出部と、文字列バッファ中の文字列を番地計
算部が算出した分類番地に従い分類表中に対応づける分
類部と、分類表中の文字列をその分類番地に従い辞書順
に整列する整列部とを有するので、文字列の出現度を用
いることで文字列のバケット整列を高速化できる。
【0078】請求項2の発明は、請求項1の発明におい
て、前記文字列の出現度を前記文字列バッファ中の文字
列から算出する出現度算出部を有するので、文字列の出
現度を元の文字列(の集合)から求めることで請求項1
の発明における記憶量の負荷を軽減できる。
【0079】請求項3の発明は、文字列集合を記憶する
文字列バッファと、辞書順に文字列の圧縮符号を記憶す
る圧縮符号表と、文字列の分類に用いる分類表と、文字
列バッファ中の文字列に対し出現度表から分類番地を算
出する番地算出部と、文字列バッファ中の文字列を番地
計算部が算出した分類番地に従い分類表中に対応づける
分類部と、分類表中の文字列をその分類番地に従い辞書
順に整列する整列部とを有するので、文字列の圧縮符号
を用いることで文字列のバケット整列を高速化できる。
【0080】請求項4の発明は、請求項3の発明におい
て、前記文字列の圧縮符号を文字列バッファ中の文字列
から算出する圧縮符号算出部を有するので、文字列の圧
縮符号を元の文字列(の集合)から求めることで請求項
3の発明における記憶量の負荷を軽減できる。
【0081】請求項5の発明は、請求項1又は2の発明
において、前記文字列バッファ中の文字列の内、一部の
文字列についてのみ前記出現度表から分類番地を算出す
る番地算出部を有するので、整列対象となる文字列の範
囲を分割し、その各々を別々に整列することで、請求項
1又は2の発明が必要とする計算量の負荷を軽減し、ま
た、分類番地の衝突を抑制できる。
【0082】請求項6の発明は、請求項3又は4の発明
において、前記文字列バッファ中の文字列の内、一部の
文字列についてのみ前記圧縮符号表から分類番地を算出
する番地算出部を有するので、整列対象となる文字列の
範囲を分割し、その各々を別々に整列することで、請求
項3又は4の発明が必要とする計算量の負荷を軽減し、
また、分類番地の衝突を抑制できる。
【0083】請求項7の発明は、請求項5又は6の発明
において、前記文字列バッファ中の文字列に対し前記番
地算出部が算出した番地を記憶する番地バッファを有す
るので、バケット整列において求めた分類番地を記憶す
ることで重複した番地計算をなくし、請求項5又は6の
装置が必要とする計算時間の負荷を軽減できる。
【0084】請求項8の発明は、請求項1乃至7のいず
れかの発明において、辞書順に整列した文字列の識別番
号を記憶する索引表及び文字列が属する内容分類に応じ
て文字列集合を分割する内容分割部を有するので、文字
列集合を内容別に分割し、その各々についてsuffi
x arrayを構成することで、更新問題を軽減でき
る。
【0085】また、この請求項8の発明は、文字列の内
容分類別にsuffix arrayを構成するので、
更新の際に対象となる文字列集合が小規模になり、更新
時の計算量が軽減されるとともに、検索時に、検索対象
となる内容分類が予め限定できる場合には、その限定範
囲内で検索を実施することで検索時間を高速化できると
いう副次的な作用効果が得られる。
【0086】請求項9の発明は、請求項1乃至7のいず
れかの発明において、辞書順に整列した文字列の識別番
号を記憶する索引表及び文字列が属する時系列分類に応
じて文字列集合を分割する時系列分割部を有するので、
文字列集合を時系列で分割し、その各々についてsuf
fix arrayを構成することで、更新問題を軽減
できる。
【0087】また、この請求項9の発明は、文字列の時
系列分類別にsuffix arrayを構成するの
で、更新の際に対象となる文字列集合が小規模になり、
更新時の計算量が軽減されるとともに、検索時に、検索
対象となる時系列分類が予め限定できる場合(例えば最
近の一年間に追加された文字列に限定する等)、その限
定範囲内で検索を実施することで検索時間を高速化でき
るという副次的な作用効果が得られる。また最新の情報
から古い情報の順に検索結果を提示することができる。
【0088】請求項10の発明は、辞書順に整列した文
字列の識別番号を記憶する索引表と、索引表中の識別番
号と文字列の対応を記憶する対応表と、索引表と対応表
から文字列を構成する文字列構成部からなるので、su
ffix arrayの各要素と、それに対応する文字
列の先頭文字を対応づける表を用いsuffix ar
rayから元の文字列を再現することで、検索時に遠隔
にある元の文字列への参照を回避し、検索時間を軽減で
きる。
【図面の簡単な説明】
【図1】 請求項1の情報索引装置の一実施形態を説明
するための要部構成図である。
【図2】 図1に示した情報索引装置の動作説明をする
ためのフロー図である。
【図3】 請求項2の情報索引装置の一実施形態を説明
するための要部構成図である。
【図4】 図3に示した情報索引装置の動作説明をする
ためのフロー図である。
【図5】 請求項3の情報索引装置の一実施形態を説明
するための要部構成図である。
【図6】 図5に示した情報索引装置の動作説明をする
ためのフロー図である。
【図7】 請求項4の情報索引装置の一実施形態を説明
するための要部構成図である。
【図8】 図7に示した情報索引装置の動作説明をする
ためのフロー図である。
【図9】 請求項7の情報索引装置の一実施形態を説明
するための図である。
【図10】 請求項8に記載の情報索引装置の一実施形
態を説明するための要部構成図である。
【図11】 請求項9の発明の一実施形態を説明するた
めの要部構成図である。
【図12】 請求項10に記載の情報索引装置の一実施
形態を説明するための要部構成図である。
【符号の説明】
1…文字列バッファ、2…出現度表、3…番地算出部、
4…分類部、5…分類表、6…整列部、7…出現度算出
部、8…圧縮符号表、9…圧縮符号算出部、10…番地
バッファ、20…請求項1〜7の装置、21…内容分割
部、221〜22n…索引表、23…時系列分割部、31
…索引表、32…対応表、33…文字列構成部。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 文字列集合を記憶する文字列バッファ
    と、辞書順に文字列の出現度を記憶する出現度表と、文
    字列の分類に用いる分類表と、文字列バッファ中の文字
    列に対し出現度表から分類番地を算出する番地算出部
    と、文字列バッファ中の文字列を番地計算部が算出した
    分類番地に従って分類表中に対応づける分類部と、分類
    表中の文字列をその分類番地に従って辞書順に整列する
    整列部とを有することを特徴とする情報索引装置。
  2. 【請求項2】 前記文字列の出現度を前記文字列バッフ
    ァ中の文字列から算出する出現度算出部を有することを
    特徴とする請求項1記載の情報索引装置。
  3. 【請求項3】 文字列集合を記憶する文字列バッファ
    と、辞書順に文字列の圧縮符号を記憶する圧縮符号表
    と、文字列の分類に用いる分類表と、文字列バッファ中
    の文字列に対し圧縮符号表から分類番地を算出する番地
    算出部と、文字列バッファ中の文字列を番地計算部が算
    出した分類番地に従って分類表中に対応づける分類部
    と、分類表中の文字列をその分類番地に従って辞書順に
    整列する整列部とを有することを特徴とする情報索引装
    置。
  4. 【請求項4】 前記文字列の圧縮符号を文字列バッファ
    中の文字列から算出する圧縮符号算出部を有することを
    特徴とする請求項3記載の情報索引装置。
  5. 【請求項5】 前記文字列バッファ中の文字列の内、一
    部の文字列についてのみ前記出現度表から分類番地を算
    出する番地算出部を有することを特徴とする請求項1又
    は2記載の情報索引装置。
  6. 【請求項6】 前記文字列バッファ中の文字列の内、一
    部の文字列についてのみ前記圧縮符号表から分類番地を
    算出する番地算出部を有することを特徴とする請求項3
    又は4記載の情報索引装置。
  7. 【請求項7】 前記文字列バッファ中の文字列に対し前
    記番地算出部が算出した番地を記憶する番地バッファを
    有することを特徴とする請求項5又は6記載の情報索引
    装置。
  8. 【請求項8】 辞書順に整列した文字列の識別番号を記
    憶する索引表及び文字列が属する内容分類に応じて文字
    列集合を分割する内容分割部を有することを特徴とする
    請求項1乃至7のいずれかに記載の情報索引装置。
  9. 【請求項9】 辞書順に整列した文字列の識別番号を記
    憶する索引表及び文字列が属する時系列分類に応じて文
    字列集合を分割する時系列分割部を有することを特徴と
    する請求項1乃至7のいずれかに記載の情報索引装置。
  10. 【請求項10】 辞書順に整列した文字列の識別番号を
    記憶する索引表と、索引表中の識別番号と文字列の対応
    を記憶する対応表と、前記索引表と対応表から文字列を
    構成する文字列構成部からなることを特徴とする情報索
    引装置。
JP05833299A 1999-03-05 1999-03-05 情報索引装置 Expired - Fee Related JP4208326B2 (ja)

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 true JP2000259646A (ja) 2000-09-22
JP4208326B2 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269096A (ja) * 2001-03-08 2002-09-20 Ricoh Co Ltd 文字列復元方法及びその装置並びに記録媒体
JP2007316788A (ja) * 2006-05-24 2007-12-06 Sky Kk 文書検索方法および文書検索装置
WO2008044542A1 (fr) * 2006-10-06 2008-04-17 Nec Corporation Système et procédé de recherche d'informations et programme
JP2009093349A (ja) * 2007-10-05 2009-04-30 Nec Corp 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム
WO2010119783A1 (ja) * 2009-04-13 2010-10-21 株式会社日立製作所 ペア文字列検索システム
JP2012128600A (ja) * 2010-12-14 2012-07-05 Hitachi Ltd 文書検索装置、文書検索方法及び文書検索プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102061413B1 (ko) * 2018-05-30 2019-12-31 연세대학교 산학협력단 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269096A (ja) * 2001-03-08 2002-09-20 Ricoh Co Ltd 文字列復元方法及びその装置並びに記録媒体
JP2007316788A (ja) * 2006-05-24 2007-12-06 Sky Kk 文書検索方法および文書検索装置
JP4513781B2 (ja) * 2006-05-24 2010-07-28 Sky株式会社 文書検索方法および文書検索装置
WO2008044542A1 (fr) * 2006-10-06 2008-04-17 Nec Corporation Système et procédé de recherche d'informations et programme
US8301603B2 (en) 2006-10-06 2012-10-30 Nec Corporation Information document search system, method and program for partitioned indexes on a time series in association with a backup document storage
JP5218060B2 (ja) * 2006-10-06 2013-06-26 日本電気株式会社 情報検索システムと情報検索方法ならびにプログラム
JP2009093349A (ja) * 2007-10-05 2009-04-30 Nec Corp 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム
US8452788B2 (en) 2007-10-05 2013-05-28 Nec Corporation Information retrieval system, registration apparatus for indexes for information retrieval, information retrieval method and program
WO2010119783A1 (ja) * 2009-04-13 2010-10-21 株式会社日立製作所 ペア文字列検索システム
JP5279897B2 (ja) * 2009-04-13 2013-09-04 株式会社日立製作所 ペア文字列検索システム
US8788522B2 (en) 2009-04-13 2014-07-22 Hitachi, Ltd. Pair character string retrieval system
JP2012128600A (ja) * 2010-12-14 2012-07-05 Hitachi Ltd 文書検索装置、文書検索方法及び文書検索プログラム

Also Published As

Publication number Publication date
JP4208326B2 (ja) 2009-01-14

Similar Documents

Publication Publication Date Title
CN102142038B (zh) 用于记号空间资料库的多级查询处理系统与方法
US7880648B2 (en) Information processing apparatus, information processing method, and computer product
CN100476800C (zh) 一种切分索引分词的方法及系统
JP3889762B2 (ja) データ圧縮方法、プログラム及び装置
US4959785A (en) Character processing system with spelling check function that utilizes condensed word storage and indexed retrieval
US10389378B2 (en) Computer product, information processing apparatus, and information search apparatus
US20160321282A1 (en) Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus
US20020033762A1 (en) Systems and methods for multiple-file data compression
JP2001345710A (ja) データ圧縮装置および方法
US20140229484A1 (en) Extraction method, computer product, extracting apparatus, and extracting system
CN109299086B (zh) 最优排序键压缩和索引重建
CN1228887A (zh) 与串搜索交错进行即时字典更新的数据压缩和解压缩系统
US5585793A (en) Order preserving data translation
JP2000163442A (ja) 記号辞書作成方法及び記号辞書検索方法
US9542427B2 (en) Computer product, generating apparatus, and generating method for generating Huffman tree, and computer product for file compression using Huffman tree
JP2000259646A (ja) 情報索引装置
JP3258063B2 (ja) データベース検索システム及び方法
US9501558B2 (en) Computer product, searching apparatus, and searching method
WO2009001174A1 (en) System and method for data compression and storage allowing fast retrieval
JP3241787B2 (ja) データ圧縮方式
CN112217521A (zh) 一种基于gzip的大文件分布式压缩方法
JPH05241775A (ja) データ圧縮方式
JP2993540B2 (ja) 昇順整数列データの圧縮および復号システム
Vines et al. Compression techniques for Chinese text
JP3259781B2 (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