JP3152868B2 - 検索装置および辞書/テキスト検索方法 - Google Patents

検索装置および辞書/テキスト検索方法

Info

Publication number
JP3152868B2
JP3152868B2 JP23084395A JP23084395A JP3152868B2 JP 3152868 B2 JP3152868 B2 JP 3152868B2 JP 23084395 A JP23084395 A JP 23084395A JP 23084395 A JP23084395 A JP 23084395A JP 3152868 B2 JP3152868 B2 JP 3152868B2
Authority
JP
Japan
Prior art keywords
node
trie
code
key
pointer
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
JP23084395A
Other languages
English (en)
Other versions
JPH08194719A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP23084395A priority Critical patent/JP3152868B2/ja
Priority to US08/557,430 priority patent/US5721899A/en
Publication of JPH08194719A publication Critical patent/JPH08194719A/ja
Application granted granted Critical
Publication of JP3152868B2 publication Critical patent/JP3152868B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は検索装置および辞書
/テヰスト検索方法、特に高速かつ記憶容量の小さい検
索装置およびそれを用いた辞書検索方法、テキスト検索
方法に関する。
【0002】機械翻訳、自然言語解析または音声認識等
に用いる各種の辞書や、データベースをテキストのキー
ワードで検索する装置では、検索速度が高速で、かつイ
ンデックスサイズが小さいことが要求されている。
【0003】
【従来の技術】従来の検索装置としては、ハッシュ法、
B−Tree法、トライ(TRIE:tree retrieval)
法などに基づく検索方式が提案され、利用されている。
【0004】従来のトライ法を用いた検索装置の基本概
念について説明する。図21は、従来のトライ辞書検索
装置の例を示している。図21において、70はトライ
ノード選択機構、71はトライノード格納装置を表す。
【0005】例えば英文字見出しを持つ辞書検索では、
1つのトライノードは終了記号(例えば♯)を含めた
(26+1)個のトライノード要素からなり、辞書検索
装置はこれらを格納するトライノード格納装置71と、
トライノード選択機構70とからなる。
【0006】図21のトライノード格納装置71では、
a♯、able♯、agree♯(♯はキーの終了記
号)をキーとするトライノードの構成例を示している。
最初のトライノードNlは、1文字目のキー情報を表し
ており、文字“a”が有効で、その位置に次のトライノ
ードN2へのポインタが格納されている。2段目のトラ
イノードN2では、2文字目の“♯”と“b”と“g”
の文字が有効であり、“♯”の位置から検索目的のデー
タまたはそのデータヘのアクセス情報がポイントされて
いる。そして、トライノードN2の“b”の位置から次
のトライノードN3を、“g”の位置からトライノード
N6をポイントする。以下同様に、有効な文字について
のトライノードの連鎖が続く。
【0007】トライノード選択機構70は、入カキーに
対して1文字ずつ取り出し、トライノード格納装置71
における最初のトライノードNlから順番に、該当する
文字位置が有効なポインタ情報を保持しているかを確認
し、トライノードの連鎖をたどって目的とするデータへ
のアクセス情報を得る。
【0008】トライ法では、以上のようにキーの検索を
先頭から1単位ずつトライノードと比較して行う。トラ
イノード要素と文字との照合は、トライノードの文字番
目の照合で行うことができるため、検索速度が高速であ
る。
【0009】
【発明が解決しようとする課題】従来の検索装置で用い
られているハッシュ法には、キーの衝突が多く生じるよ
うな場合には制御が煩雑であり、オーバーヘッドが生じ
て検索速度が遅くなるか、またはキーの衝突を回避する
ために予め十分な大きさの記憶領域を用意しなければな
らないという、キーの衝突と記憶容量の問題があった。
【0010】また、B−Tree法では、記憶容量の問
題はないが、検索速度の高速性に欠けるという問題があ
った。一方、従来のトライ法は、検索速度は高速である
が、多くのトライノードが必要になるとともにトライノ
ード内に無駄な領域が多いため、多大な記憶容量を必要
とするという問題があり、キー数が多い場合などにはす
べてのキーに対してトライ法で辞書を構成することは実
際上不可態であるという問題があった。
【0011】本発明は上記問題点の解決を図り、トライ
法を用いる検索装置において検索の高速性を保ったまま
で、記憶容量の削減を可能とすることを目的とする。
【0012】
【課題を解決するための手段】図1は本発明の構成例を
示す。図1において、10は検索処理を実行するCPU
やメモリなどからなる処理装置、11は検索キーを入力
するキー入力部、12は入力キーの単位コードをトライ
の内部コードに変換するコード変換処理部、13はトラ
イノードを選択して検索を進めるノード選択処理部、1
4はあらかじめ入力キーの単位コードとトライの内部コ
ードとの対応情報を記憶するコード変換テーブル、20
は検索キーとデータとの対応情報を管理するインデック
ス格納装置、21は圧縮されたトライのノードを格納す
るノード格納部、22は圧縮されたトライのノードの照
合の際に検索対象となる単位コードがノードに含まれる
か否かを判定するためのトライのノードに対するラベル
を格納するノード要素の確認用ラベル格納部、23はト
ライ中のキー固有のコード列を格納する固有コード列格
納部、30は検索目的のデータを格納するデータ本体格
納装置を表す。
【0013】キー入力部11は、検索対象となるキーを
受理し、その入力キーをコード変換処理部12に渡す。
コード変換処理部12は、入力キーを1単位コードずつ
取り出し、所定の計算により、またはコード変換テーブ
ル14を用いることにより、各単位コードをトライの内
部コードに変換し、ノード選択処理部13に渡す。
【0014】ノード格納部21には、従来のトライノー
ドを重ね合わせるようにして圧縮したトライのノードが
格納されている。また、確認用ラベル格納部22には、
現在検索している単位コードがノード格納部21のノー
ド上にあるかどうかの確認用ラベルが格納されている。
また、固有コード列格納部23には、トライ中のキー固
有のコード列が格納されている。 ノード選択処理部1
3は、ノード格納部21および確認用ラベル格納部22
を参照し、現在入力されている単位コードがトライノー
ド中にあるかどうかを判断し、単位コードがあれば次の
トライノードに移り、コード変換処理部12から次の単
位コードを受け取る。トライノード中に単位コードがな
ければ入力キーがデータ中にないと判断する。また、着
目しているトライノードに固有コード列格納部23にお
けるキーの固有コード列へのポインタが格納されている
場合には、入力キーの残りのコード列またはその内部コ
ード列を固有コード列格納部23内のキーの固有コード
列と照合する。コード列が一致してキーの照合ができれ
ば、入力キーに対応するデータ本体格納装置30中のデ
ータへのアクセス情報を得る。そうでなければ入力キー
に対応するデータは、データ本体格納装置30中に存在
しないと判断する。
【0015】本発明では、従来の個々のトライノードを
有効な要素が重複しないように重ね合わせて、圧縮した
トライノードを構成する。これに伴い、現在検索してい
る単位コードがノード上にあるかどうかを確認できるよ
うに、各ノード要素に対応して確認用のラベルを格納す
る。また、入力キーにおけるそのキーに固有の部分は、
その部分だけを取り出し、ノード格納部21とは別に設
けた固有コード列格納部23に格納する。
【0016】こうすることにより、検索速度は従来とほ
ぼ同様に維持したまま記憶容量を削減することができ
る。図1に示す検索装置と自然言語の単語とを組み合わ
せることにより圧縮したトライを構成し、辞書の見出し
を管理することによって、検索速度が高速でインデック
スサイズが小さい仮名漢字変換辞書、形態素解析装置、
構文解析装置などを実現することができる。
【0017】また、図1に示す検索装置と自然言語の音
声データとを組み合わせることにより圧縮したトライを
構成し、音声データに対応する認識カテゴリを管理する
ことによって、検索速度が高速でインデックスサイズが
小さい音声認識用の辞書を実現することができる。
【0018】さらにまた、図1に示す検索装置とテキス
トデータとを組み合わせることにより圧縮したトライを
構成し、データベースヘのインデックスとすることによ
って、検索速度が高速でインデックスサイズが小きいデ
ータベースのテキスト検索装置を実現することができ
る。
【0019】
【発明の実施の形態】図2は本発明の実施形態における
コード変換テーブルとインデックス格納装置の構成例を
示す図である。
【0020】例えば英文字見出しを持つ辞書検索装置の
場合、図2(A)に示すように、キーの終了を示す記号
♯と英文字a〜zの文字コードとを、1〜27のトライ
の内部コードに変換するための情報を持つコード変換テ
ーブル14を用意する。なお、コード変換処理部12で
は、コード変換テーブル14を用いないで、文字コード
を2進数の数値とみた算術演算により、入力キーの単位
コードをトライの内部コードに変換するようにしてもよ
い。
【0021】図2(B)は、キーとして“a♯”、“a
bnomal♯”、“agree♯”、“bachel
or♯”、“bcs♯”の5個のキーが存在する場合の
ノード格納部21(TRIEと表す)と、確認用ラベル
格納部22(CHECKと表す)における格納状態を示
している。
【0022】“a♯”、“abnomal♯”、“ag
ree♯”、“bachelor♯”、“bcs♯”の
各キーの中で他のキーとの区別に影響のない部分につい
ては、その部分を該当するキーの固有コード列として抽
出し、図2(C)に示すように、固有コード列格納部2
3に格納する。
【0023】図2に示す辞書の作成方法について、図3
に従って説明する。上述のようにキーとしては、図3
(A)に示す5個のキーがあるものとする。説明を簡単
にするために、これらのキーの各文字を図3(B)に示
すように木構造に展開した場合を想定する。この木構造
で、各キーの技分かれのない文字列部分を抽出すること
により、図3(C)に示すような固有コード列格納部2
3に格納すべきキーの固有コード列が得られる。なお、
固有コード列格納部23における各コード列は、入力キ
ーの元の文字コード列であっても、それをトライの内部
コードに変換した後の内部コード列であっても、どちら
でもよい。
【0024】ノード格納部21と確認用ラベル格納部2
2は、次のように作成する。まず、図3(B)に示す木
構造における従来のトライノードに相当するトライノー
ドN1、N2、N3の部分に着目する。ノード要素の無
効な部分を“0”で表し、有効な部分をその文字記号で
表すと、図3(D)に示すようなトライノードN1〜N
3になる。これらを有効な部分が重複しないようにずら
して、1本のトライノードに重ね合わせる。これをもと
に、図3(D)に示すノード格納部21を作成する。な
お、このノード格納部21のトライノードにおける先頭
には処理の便宜上、“1”のインデックス値を持つノー
ド要素を付加する。
【0025】例えばノード格納部21の3番目のエント
リ(最初の“a”の部分)には、次のトライノードN2
に相当するノード列が、トライノードNlの4番目(ノ
ード格納部21の5番目)のエントリから始まるので、
インデックス値として“4”を格納する。また、ノード
格納部21の4番目のエントリ(“b”の部分)には、
次のトライノードN3に相当するノード列が、トライノ
ードN1の6番目(ノード格納部21の7番目)のエン
トリから始まるので、インデックス値として“6”を格
納する。
【0026】また、ノード格納部21における各ノード
要素に対応する単位コードの後に続くコードが、固有コ
ード列のみからなるとき、そのノード要素に固有コード
列格納部23における固有ノード列へのポインタKl〜
K5を格納する。なお、ノード要素がトライノードヘの
ポインタであるか固有コード列へのポインタであるか
は、例えば先頭ビットをフラグとして用いて区別するこ
とができる。より具体的には、トライノードへのポイン
タとして正の値を用い、固有ノード列へのポインタとし
て負の値を用いることが考えられる。
【0027】確認用ラベル格納部22の各エントリに
は、ノード格納部21における各ノード要素に対応する
キーの文字コードまたは内部コードを確認用ラベルとし
て格納する。ノード格納部21および確認用ラベル格納
部22における無効のエントリにはその旨を示すnul
lコード(“0”)などを設定する。
【0028】以上のようにすることによって、図2
(B)、(C)に示すようなTRIE、CHECKおよ
び固有コード列を持つインデックス格納装置20を作成
することができる。なお、ここではTRIEは、圧縮し
たトライのノードを格納した整数配列であり、CHEC
Kは、文字がトライのノードに含まれるか否かを確認す
るための文字ラベルを格納した要素確認用の各1バイト
の文字配列である。
【0029】従来のトライで構成すると、トライノード
の領域として128×22要素の領域が必要であるのに
対し、本実施形態では、図2から明らかなように12要
素+12文字+22文字分の領域で済んでいる。
【0030】図4は、本発明の実施形態による検索処理
のフローチャートである。まず、ステップS1では、入
力装置または検索要求プログラム等から検索のキーを入
力する。ステップS2では、トライ検索のためのポイン
タをノード格納部21および確認用ラベル格納部22に
おける最初のノードにセットし、以下、ステップS3以
降を実行する。
【0031】ステップS3では、入力キーを比較するた
めに先頭から1単位コードずつ要素を取り出す。例えば
入力キーが文字列で構成される場合には、文字コードを
1文字ずつ取り出すことになる。ステップS4では、取
り出した単位コードをコード変換テーブル14を用い
て、または算術演算もしくはビット操作により、トライ
の内部コードに変換する。
【0032】次にステップS5により、トライ検索のた
めのポインタを内部コード分進める。そして、ステップ
S6により、確認用ラベル格納部22を参照し、ポイン
タの指す確認用のラベルが現在のコードと一致するかど
うかを判定する。一致しない場合には、ステップS9に
より検索失敗として検索要求元へ通知する。
【0033】確認用のラベルが現在のコードと等しい場
合、ステップS7によってノード格納部21におけるポ
インタの示す要素が辞書中のキーの固有コード列格納部
23を指しているかどうかを判定する。固有コード列格
納部23を指していない場合、ステップS8によって、
ノード格納部21のノード要素から得た値をポインタの
値として、次のトライのノードにポインタを進める。そ
の後、ステップS3に戻り、次の単位コードについて同
様に処理を繰り返す。
【0034】ステップS7において、ポインタの先が辞
書中の固有コード列格納部23を指していると判定され
た場合には、ステップSl0へ進み、キーの残りとポイ
ントされた固有コード列とを照合する。キーの残りと固
有コード列とが等しい場合、ステップS11によって検
索成功とし、入力キーに対するデータヘのアクセス情報
を得て、検索要求元へ通知する。一方、キーの残りと固
有コード列とが等しくない場合、ステップS12により
検索失敗として検索要求元へ通知する。
【0035】次に、図4に示す処理の流れに従って、図
2に示すインデックス格納装置を用いた場合の具体的な
検索例について説明する。 〔キー“a♯”の検索要求があった場合(検索の成功
例)〕 (1)キー“a♯”を入力する(図4のS1)。 (2)ポインタの値を最初のノードを示すように“1”
とする(S2)。 (3)入力キー“a♯”から文字コード“a”を取り出
す(S3)。 (4)文字コード“a”をトライの内部コード“2”に
変換する(S4)。 (5)ポインタ“1”に内部コード“2”を加算し、ポ
インタの値を“3”に進める(S5)。 (6)ポインタの値が“3”であることから、CHEC
Kの第3要素に格納されている確認用ラベル“a”と現
在のコード“a”とが等しいかどうかを判定する(S
6)。 (7)ここでは等しいので、次にTRIEの第3要素が
固有コード列を指しているかどうかを判定する(S
7)。 (8)TRIEの第3要素は“4”であり、固有コード
列を指していないので、ポインタの値を“4”にする
(S8)。 (9)入力キー“a♯”から次の文字コード“♯”を取
り出す(S3)。 (10)文字コード“♯”をトライの内部コード“1”
に変換する(S4)。 (11)ポインタ“4”に内部コード“1”を加算し、
ポインタの値を“5”に進める(S5)。 (12)ポインタの値が“5”であることから、CHE
CKの第5要素に格納された確認用ラベル“♯”と現在
のコード“♯”とが等しいかどうかを判定する(S
6)。 (13)ここでは等しいので、次にTRIEの第5要素
が固有コード列を指しているかどうかを判定する(S
7)。 (14)TRIEの第5要素は固有コード列格納部23
の“K1”を指しているので、キーの残りと“K1”の
固有コード列の内容とが等しいかを判定する(S1
0)。 (15)キーの残りはなく、また“K1”の固有コード
列の内容も空(φ)であるので、等しいと判定され、検
索成功となる(S11)。
【0036】〔キー“ac♯”の検索要求があった場合
(検索の失敗例)〕 (1)キー“ac♯”を入力する(図4のS1)。 (2)ポインタの値を最初のノードを示すように“1”
とする(S2)。
【0037】以下、(3)から(8)までの処理は上述
のキー“a♯”の検索と同様である。 (9)入力キー“ac♯”から次の文字コード“c”を
取り出す(S3)。 (10)文字コード“c”をトライの内部コード“4”
に変換する(S4)。 (11)ポインタ“4”に内部コード“4”を加算し、
ポインタの値を“8”に進める(S5)。 (12)ポインタの値が“8”であることから、CHE
CKの第8要素に格納された確認用ラベル“a”と現在
のコード“c”とが等しいかどうかを判定する(S
6)。 (13)確認用ラベル“a”と現在のコード“c”とは
等しくないので、キー“ac♯”はないことが分かり、
検索失敗となる(S9)。
【0038】図5は、本発明の実施形態による日本語の
単語をキーとする辞書検索装置のコード変換テーブルと
インデックス格納装置の構成例を示す図である。図5の
例では、“あ♯”、“あさがお♯”、“いろ♯”、“居
る♯”、“居住♯”、“嘘♯”、“嘘つき♯”の日本語
文字列をキーとする辞書を構成している。
【0039】コード変換テーブル14は、図5(A)に
示すように構成され、ノード格納部21および確認用ラ
ベル格納部22は、図5(B)に示すように構成され、
固有コード列格納部23は、図5(C)に示すように構
成される。これを従来のトライで構成すると約6000
×13要素の領域が必要であるのに対し、本実施形態で
は15要素+15文字+11文字分の領域で済んでい
る。
【0040】図6は、図5に示す辞書の作成方法を示し
ている。図6(A)は、上述の7つの日本語のキーを示
している。これらのキーは、図7(B)に示すような木
構造に展開される。図7(B)の木構造において、トラ
イノードN1、N2、N3、N4に含まれない文字列部
分を抽出することにより、図7(C)に示すような固有
コード列が得られる。
【0041】以下に、この辞書の検索例を説明する。 〔キー“あさがお♯”の検索要求があった場合(検索の
成功例)〕 (1)キー“あさがお♯”を入力する(図4のS1)。 (2)ポインタの値を最初のノードを示すように“1”
とする(S2)。 (3)入力キー“あさがお♯”から文字コード“あ”を
取り出す(S3)。 (4)文字コード“あ”をトライの内部コード“2”に
変換する(S4)。 (5)ポインタ“1”に内部コード“2”を加算し、ポ
インタの値を“3”に進める(S5)。 (6)ポインタの値が“3”であることから、CHEC
Kの第3要素に格納された確認用ラベル“あ”と現在の
コード“あ”とが等しいかどうかを判定する(S6)。 (7)ここでは等しいので、次にTRIEの第3要素が
固有コード列を指しているかどうかを判定する(S
7)。 (8)TRIEの第3要素は“4”であり、固有コード
列を指していないので、ポインタの値を“4”にする
(S8)。 (9)入力キーの“あさがお♯”から次の文字コード
“さ”を取り出す(S3)。 (10)文字コード“さ”をトライの内部コード“4”
に変換する(S4)。 (11)ポインタ“4”に内部コード“4”を加算し、
ポインタの値を“8”に進める(S5)。 (12)ポインタの値が“8”であることから、CHE
CKの第8要素に格納された確認用ラベル“さ”と現在
のコード“さ”とが等しいかどうかを判定する(S
6)。 (13)ここでは等しいので、次にTRIEの第8要素
が固有コード列を指しているかどうかを判定する(S
7)。 (14)TRIEの第8要素は固有コード列格納部23
の“K3”を指しているので、キーの残りと“K3”の
固有コード列の内容とが等しいかを判定する(S1
0)。 (15)キーの残りは“がお♯”であり、また“K3”
の位置の固有コード列も“がお♯”であるので、等しい
と判定され、検索成功となる(S11)。
【0042】〔キー“あさ♯”の検索要求があった場合
(検索の失敗例)〕 (1)キー“あさ♯”を入力する(図4のS1)。 (2)ポインタの値を最初のノードを示すように“1”
とする(S2)。
【0043】以下、(3)から(13)までの処理は上
述のキー“あさがお♯”の検索と同様である。 (14)TRIEの第8要素は固有コード列格納部23
の“K3”を指しているので、キーの残りとその固有コ
ード列“K3”とが等しいかを判定する(S10)。 (15)キーの残りは“♯”であり、また“K3”の位
置の固有コード列は“がお♯”であるので、等しくない
と判定され、検索失敗となる(S12)。
【0044】次に、本発明の圧縮されたトライの作成方
法について詳細に説明する。図7は、トライノードを圧
縮して配列TRIEとCHECKを生成するトライ圧縮
処理のフローを示している。
【0045】まず、ステップS21では、処理装置10
はトライの作成対象となるキー集合をソートする。次
に、ステップS22で、キー集合を構成する文字をカウ
ントし、各文字に対して頻度の大きいものから順に、
1,2,3,...,nという数字を内部コードとして
割り振り、コード変換テーブル14を作成する。そし
て、ステップS23で、ソートされたキー集合の2進木
を作成する。このとき、最小接辞部分から構成され、圧
縮されたトライのノードへのポインタを持った2進木を
作成する。
【0046】図3(A)に示すようなキー集合からは、
例えば図8のような2進木が作成される。図8の最小接
辞・データ領域には、図3(C)の固有コード列に対応
する最小接辞部またはデータが格納されている。また、
このときのコード変換テーブル14は図2(A)のよう
になる。
【0047】次に、ステップS24以降の処理により、
2進木を圧縮されたトライへ変換する。ステップS24
では、配列TRIEとCHECKを初期化し、ステップ
S25で、2進木内の位置を示すポインタの初期状態と
して、それを2進木のルートノードにセットする。ま
た、ステップS26で、2進木のルートノードが挿入さ
れる配列内の位置を、index=1の位置に設定す
る。
【0048】ここでは、配列TRIEとCHECKの初
期状態は図9のようになる。次に、ステップS27で、
現在のポインタが指す2進木のノード(ポインタノー
ド)を先頭とするノード列(ノードリスト)が挿入可能
な、TRIEとCHECK内の位置を求める。挿入しよ
うとしているノードリスト中の各要素の位置に対応する
配列の領域が使用されていなければ、そのときのノード
リストの先頭に対応する位置が挿入可能位置となる。こ
の挿入可能位置は、配列の先頭から最後尾に向かって順
に捜していき、最初に見つかった位置とする。
【0049】次に、ステップS28で、TRIE内の2
進木挿入位置に、ステップS27で求めた挿入可能位置
のindex値を設定する。例えば、2進木のポインタ
ノードが図8のルートノードを指す場合は、ルートノー
ドが挿入される位置はステップS26でindex=1
に決まっている。このときステップS28で、inde
x=1の位置に、挿入するリストの開始位置の値を入れ
る必要があるが、ルートノードの場合には初期化処理に
より既に設定されているので、S28の処理は省略され
る。
【0050】次に、ステップS29で、2進木のポイン
タノードより始まるリストに連なる各ノードのラベル
を、CHECK内の対応する部分に書き込む。ここで
は、リストに繋がっているラベルはaとbであり、それ
らのトライの内部コードはそれぞれ2と3である。ま
た、ノードの挿入可能位置はindex=1の位置であ
るので、aの書込み位置は1+2=3となり、bの書込
み位置は1+3=4となる。したがって、ステップS2
9の処理の結果は図10のようになる。
【0051】また、ステップS30で、2進木のポイン
タノードより始まるリストに連なる各ノードに、ステッ
プS29でセットしたCHECKに対応するTRIEへ
のポインタをセットする。そして、これらのポインタが
指すTRIE内の位置を2進木挿入位置とする。
【0052】ここでは、ラベルa、bに対応して、2進
木のノードa、bからTRIEへポインタが張られる。
これらをそれぞれ@1a、@1bと表すと、ステップS
30の処理の結果は図11のようになる。
【0053】次に、ステップS31で、2進木のポイン
タノードがデータを持っているかどうかを確認する。そ
れがデータを持っていなければ、ステップS32で、2
進木のポインタに現在のノードの子ノードをセットし
て、ステップS27以降の処理を再帰的に繰り返す。
【0054】ステップS31の条件判定で、2進木のポ
インタノード(a→b→NULLのうちのaのノード)
はデータを持っていないので、処理はステップS32に
移る。ステップS32では、ポインタノードの子ノード
を2進木のポインタノードとしてセットする。この結
果、ポインタノードは♯→b→g→NULLのうちの♯
のノードとなる。このステップS32からの処理は再帰
処埋となり、その終了後はステップS34から処理が始
まる。
【0055】ステップS27では、2進木の挿入可能位
置を次のようにして求める。ポインタノードより始まる
2進木のリスト♯→b→g→NULLの各ノードのラベ
ルを、図2(A)のコード変換テーブル14を用いてト
ライの内部コードに対応させると、図12のようにな
る。求める挿入可能位置は、上のラベルがCHECK内
のラベルと重複せず、かつ、トライのノードの先頭位置
となっていない位置である。ここで、トライのノードの
先頭位置とは、index=1のようにそこから始まる
ノードリストが存在する位置である。
【0056】挿入可能位置を探索するには、原理的に
は、indexの値が1の位置から順にラベルの重複が
ないかどうかをチェックし、候補となる位置がノードの
先頭位置となっていないかどうかををチェックし、これ
らの条件に合う位置のindexの値を返せばよい。こ
の方法による探索は、要素がまだ挿入されていない位置
に到達した時点で必ず停止するので、その終了は保証さ
れている。
【0057】しかし、実際には計算時間が(index
サイズ×挿入するノードの数)に比例し、indexの
数が大きくなるにつれ現実的な時間ではなくなる。そこ
で、配列がindexの値の小さい方から詰められ、か
つ1度挿入されたノードの移動、削除がないことを利用
して、配列TRIE、CHECKの使用率をモニターし
ながら、探索を開始する位置を調整すればよい。言い換
えれば、探索開始位置のindexの値を段々大きくし
ていけばよい。これにより、実際の探索範囲を小さく
し、実用に供することができる。
【0058】こうして、ここでは図13のように、リス
ト♯→b→g→NULLの挿入可能位置が求められる。
図13より、ラベル♯の直前の位置が挿入可能位置とな
り、そのindexの値は4となる。
【0059】ステップS28では、ポインタ@1aが指
す2進木挿入位置へステップS27で得られた挿入可能
位置のindexの値4を入れる。この結果、図14の
ようになる。
【0060】ステップS29では、ステップS27で得
られた挿入可能位置から2進木のポインタノードより始
まるリストのラベルをCHECKに書き込む。リストに
繋がっているラベルは♯、b、gであり、それらのトラ
イの内部コードはそれぞれ1、3、8である。また、ノ
ードの挿入可能位置はindex=4であるので、ステ
ップS29の結果は図15のようになる。
【0061】ステップS30では、2進木から配列CH
ECKに対応する配列TRIEの位置ヘポインタを張
る。これらを@2♯、@2b、@2gと表すと、ステッ
プS30の結果は図16のようになる。
【0062】ステップS31の条件判定で、2進木のポ
インタノード(♯→b→g→NULLの♯のノード)は
データを持っているので、処理はステップS33に移
る。ステップS33では、2進木のポインタノードが指
すデータへのポインタを、ステップS30でセットした
ポインタが指すTRIEの要素にセットする。
【0063】ここでは、2進木の♯のノードから最小接
辞部へのポインタを、対応するTRIEの要素にセット
する。この場合、最小接辞部の要素は空である。最小接
辞・データ領域内の要素(データもしくは最小接辞部)
へのポインタをK1と表すと、ステップS33の結果は
図17のようになる。図17では、K1=空である。
【0064】次に、ステップS34では、2進木のポイ
ンタノードを同じリスト内で1つ進め、次の要素にセッ
トする。ここでは、ポインタノードはリスト♯→b→g
→NULLのうちのbのノードとなる。 次に、ステッ
プS35で、2進木のポインタノードがデータを持って
いるかどうかをチェックする。データがあれば処理はス
テップS33に移り、なければステップS36に移る。
ステップS36では、ポインタがNULLかどうかをチ
ェックし、NULLであれば処理を終了し、NULLで
なければ処理はステップS37に移る。
【0065】ステップS37では、2進木のポインタに
現在のノードの子ノードをセットして、ステップS27
以降の処理を再帰的に繰り返す。ステップS35の条件
判定で、2進木のポインタノード(♯→b→g→NUL
Lのbのうちのノード)はデータを持っているので、処
理はステップS33に移る。以下、gのノードまで同様
の処理が続く。その結果、図18に示すように、K1=
空へのポインタ、K2=normal♯へのポインタ、
K3=ree♯へのポインタがそれぞれTRIEに格納
される。ここで、2進木ポインタがNULLとなり処理
は一旦終了するが、再帰処理なので呼び出し元にもど
り、ステップS34から処理が再び始まる。この場合に
は、2進木のポインタノードはa→b→NULLのうち
のbのノードとなる。
【0066】その後、ステップS35、S36の処理が
行われ、bのノードの子ノードに対してステップS27
からの一連の再帰処理が行われる。その結果、配列TR
IE、CHECKは図19のようになる。図19におい
て、K1=空へのポインタ、K2=normal♯への
ポインタ、K3=ree♯へのポインタ、K4=che
lor♯へのポインタ、K5=s♯へのポインタを表
す。
【0067】この処理が終った段階で、2進木のポイン
タノードはa→b→NULLのNULLのノードとな
り、ステップS36でポインタが空の条件に適合するた
め、処理は終了する。この場合には、対応する再帰処理
の呼び出し元がないので、全処理が完了することにな
る。こうして生成された図19のTRIE、CHECK
は、図2(B)のTRIE、CHECKと一致してい
る。
【0068】このように、処理装置10は2進木のルー
トから処理を開始して、2進木のルートの圧縮トライ配
列への挿入場所の確保、2進木の各ノードから圧縮トラ
イ配列へのポインタのセットの順に処理を進める。そし
て、ノードにデータがなければ、現在のポインタノード
の子ノードを新たにポインタノードとして、再帰的に処
理を行う。それ以外の場合には、2進木の各ノードから
圧縮トライ配列へのポインタに対して、データへのポイ
ンタをセットし、ポインタノードをリスト上で次のノー
ドに進める。2進木のリストの終端ノードは空であるた
め、2進木のルートノードからのリストの最後の処理が
終了した時点で、トライ圧縮処理は終了する。
【0069】図20は、本発明の適用例を示す図であ
る。図20(A)の例では、自然言語の単語40を入力
キーとし、本発明を用いた辞書検索装置41により、辞
書42の検索を行うようにしている。例えば、ワードプ
ロセッサの仮名漢字変換辞書、自然言語解析装置や機械
翻訳装置における形態素解析または構文解析に用いる辞
書への応用が可能である。
【0070】図20(B)の例では、マイクロフォンな
どからの音声入力50の信号をA/D変換装置51によ
りアナログ/ディジタル変換し、それからデータ抽出装
置52によって抽出した音声特徴パラメータなどの音声
データを入力キーとして、本発明を用いた辞書検索装置
53により辞書54の検索を行うようにしている。本発
明の技術と音声データとを組み合わせることにより圧縮
したトライを構成し、効率的な音声認識等のための辞書
の検索を実現することができる。
【0071】図20(C)の例では、入力キーとしてテ
キスト60を入力し、本発明を用いたテキスト検索装置
61によりデータベース62を検索できるようにしてい
る。これにより、テキストをキーとする日本語文書など
のデータベース62の検索を、効率的に行うことが可能
になる。
【0072】
【発明の効果】以上説明したように、本発明によれば、
日本語文字でも、英語文字でも、速度および記憶容量の
両側面において電子化辞書の検索を効率よく行うことが
できるようになる。また、このような辞書システムを用
いることにより、ワードプロセッサの仮名漢字変換辞
書、形態素解析装置、構文解析装置などの基本機能を、
より効率化することが可能となる。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の実施形態におけるコード変換テーブル
とインデックス格納装置の構成例を示す図である。
【図3】図2に示す辞書の作成方法説明図である。
【図4】本発明の実施形態による検索処理のフローチャ
ートである。
【図5】本発明の実施形態による日本語の単語をキーと
する辞書検索装置のコード変換テーブルとインデックス
格納装置の構成例を示す図である。
【図6】図5に示す辞書の作成方法説明図である。
【図7】トライ圧縮処理のフローチャートである。
【図8】英語の2進木の例を示す図である。
【図9】トライノード圧縮時の配列データの例を示す図
(その1)である。
【図10】トライノード圧縮時の配列データの例を示す
図(その2)である。
【図11】トライノード圧縮時の配列データの例を示す
図(その3)である。
【図12】ラベルから内部コードへの変換例を示す図で
ある。
【図13】トライノード圧縮時の配列データの例を示す
図(その4)である。
【図14】トライノード圧縮時の配列データの例を示す
図(その5)である。
【図15】トライノード圧縮時の配列データの例を示す
図(その6)である。
【図16】トライノード圧縮時の配列データの例を示す
図(その7)である。
【図17】トライノード圧縮時の配列データの例を示す
図(その8)である。
【図18】トライノード圧縮時の配列データの例を示す
図(その9)である。
【図19】トライノード圧縮時の配列データの例を示す
図(その10)である。
【図20】本発明の適用例を示す図である。
【図21】従来のトライ辞書検索装置の例を示す図であ
る。
【符号の説明】
10 処理装置 11 キー入力部 12 コード変換処理部 13 ノード選択処理部 14 コード変換テーブル 20 インデックス格納装置 21 ノード格納部 22 確認用ラベル格納部 23 固有コード列格納部 30 データ本体格納装置
フロントページの続き (56)参考文献 特開 平7−200622(JP,A) 特開 平6−251070(JP,A) 特開 平6−168270(JP,A) 特開 平4−77967(JP,A) 特開 平2−139665(JP,A) 特開 平1−36329(JP,A) 特開 昭59−47669(JP,A) 青江順一,安留誠吾,「行置換による 動的スパース行列の縮小アルゴリズ ム」,電子情報通信学会論文誌Vol. J71−D,No.12(昭和63年12月25 日),pp.2508−2516 青江 順一,「トライとその応用」, 情報処理Vol.34,No.2(平成5 年2月15日),pp.244−251 森本 勝士,入口浩一、青江順一, 「二つのトライを用いた辞書検索アルゴ リズム」,電子情報通信学会論文誌 V ol.J76−D−▲II▼,No.11 (平成5年11月25日),pp.2374− 2383 Titus D.M.Purdi n,”Compressing Tri es for Storing Dic tionaries”,Applied Computing,1990.(5−6 April 1990),pp.336− 340,IEEE Toshiyuki Masui," Keyword Dictionary Compression Using Efficient Trie Im plementation”,Data Compression Confe rence,1991,DCC 791.(8 −11 April 1991),p438,I EEE Kurt Maly,”Compre ssed Tries”,Commun ication of the AC M,Vol.19,No.7(July 1976),pp.409−415 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 170 G06F 17/30 230 G06F 17/30 415 JICSTファイル(JOIS)

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 キーを入力し、キーに対応するデータを
    トライ法により検索する検索装置において、 圧縮されたトライのノードを格納するノード格納部と、 圧縮されたトライのノードの照合の際に検索対象となる
    単位コードがノードに含まれるか否かを判定するための
    トライのノードに対するラベルを格納するノード要素の
    確認用ラベル格納部と、 トライ中のキー固有のコード列を格納する固有コード列
    格納部と、 入カキーを1単位コードずつ取り出し、各単位コードを
    トライの内部コードに変換するコード変換処理部と、 単位コードがノードに含まれるか否かを前記ノード要素
    の確認用ラベル格納部を用いて確認し、単位コードがノ
    ードに含まれることを確認した場合に、前記ノード格納
    部から次のトライのノード情報または前記固有コード列
    格納部へのポインタ情報を得て、次の単位コードに対す
    る照合処理に進むノード選択処理部とを備えたことを特
    徴とする検索装置。
  2. 【請求項2】 請求項1記載の検索装置において、 前記ノード格納部の各トライのノードには、次のトライ
    のノードの起点となるポインタまたは前記固有コード列
    格納部内のキーの固有コード列へのポインタが格納さ
    れ、 前記ノード選択処理部は、着目するトライのノードに次
    のトライのノードの起点となるポインタが格納されてい
    る場合には、その起点となるポインタと次の単位コード
    から得られた内部コードとによって定まるノードに前進
    し、着目するトライのノードに前記固有コード列格納部
    内のキーの固有コード列へのポインタが格納されている
    場合には、次の単位コード以降をポインタで示されるキ
    ーの固有コード列と照合するように構成されていること
    を特徴とする検索装置。
  3. 【請求項3】 請求項2記載の検索装置において、 前記ノード選択処理手段は、前記起点となるポインタの
    値に前記次の単位コードから得られた内部コードの値を
    加算して、次に着目すべきノードの位置を求め、該着目
    すべきノードに前記次の単位コードが対応するか否かを
    判定するように構成されることを特徴とする検索装置。
  4. 【請求項4】 請求項1記載の検索装置において、 入力キーとして使用される頻度の高い単位コードから順
    に並べたコード変換テーブルを格納するコード変換テー
    ブル格納手段をさらに備え、 前記コード変換処理手段は、前記コード変換テーブルを
    用いて、使用頻度の高い単位コードほど順位の高い内部
    コードに変換するように構成され、前記ノード格納手段
    は、内部コードが表す順位に従って、対応するトライの
    ノードを格納するように構成されることを特徴とする検
    索装置。
  5. 【請求項5】 請求項1記載の検索装置において、 前記確認用ラベル格納手段は、2進木を構成する複数の
    ノード列のラベルを互いに重複しないように格納したラ
    ベル配列を格納するように構成され、前記ノード格納手
    段は、該ラベル配列に対応して前記次のトライの情報ま
    たは前記固有コード列格納手段へのポインタ情報を格納
    するように構成されることを特徴とする検索装置。
  6. 【請求項6】 請求項1または請求項2記載の検索装置
    を用いた辞書検索方法であって、 自然言語の単語をキーとして圧縮されたトライを構成
    し、 自然言語の単語に対応するデータを、圧縮されたトライ
    を用いて検索することを特徴とする辞書検索方法。
  7. 【請求項7】 請求項1または請求項2記載の検索装置
    を用いた辞書検索方法であって、 自然言語の音声データをキーとして圧縮されたトライを
    構成し、 自然言語の音声データに対応するデータを、圧縮された
    トライを用いて検索することを特徴とする辞書検索方
    法。
  8. 【請求項8】 請求項1または請求項2記載の検索装置
    を用いたテキスト検索方法であって、 テキストデータをキーとして圧縮されたトライを構成
    し、 テキストデータに対応するデータベースのテキストを、
    圧縮されたトライを用いて検索することを特徴とするテ
    キスト検索方法。
  9. 【請求項9】 キーを入力し、キーに対応するデータを
    トライ法により検索する方法において、 検索対象となる単位コードがノードに含まれるか否かを
    判定するためのラベルを含む圧縮されたトライのノード
    を作成し、 トライ中のキー固有のコード列を表す固有コード列を作
    成し、 入力キーを1単位コードずつ取り出し、各単位コードを
    トライの内部コードに変換し、 単位コードがノードに含まれるか否かを前記ラベルを用
    いて確認し、 単位コードがノードに含まれることを確認した場合に、
    前記トライのノードから次のトライのノード情報と前記
    固有コード列へのポインタ情報のうちの1つを得て、次
    の単位コードに対する照合処理に進むことを特徴とする
    検索方法。
  10. 【請求項10】 請求項9記載の検索方法において、 複数のキーの集合を表す2進木を作成し、 該2進木を構成する複数のノード列のラベルを、互いに
    重複しないようにラベル配列に格納し、 該ラベル配列に対応して、前記次のトライの情報と前記
    固有コード列へのポインタ情報のうちの1つをトライ配
    列に格納し、 前記ラベル配列とトライ配列から前記圧縮されたトライ
    のノードを作成することを特徴とする検索方法。
  11. 【請求項11】 請求項10記載の検索方法において、 前記ラベル配列内の第1の位置に前記2進木の第1のノ
    ード列のラベルを格納し、 前記圧縮されたトライのノード内で前記2進木の第2の
    ノード列が挿入可能な第2の位置を求め、 該第2の位置に該第2のノード列を挿入し、 前記トライ配列内の前記第1の位置に、前記第2の位置
    を指す位置情報を格納することを特徴とする検索方法。
JP23084395A 1994-11-16 1995-09-08 検索装置および辞書/テキスト検索方法 Expired - Fee Related JP3152868B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23084395A JP3152868B2 (ja) 1994-11-16 1995-09-08 検索装置および辞書/テキスト検索方法
US08/557,430 US5721899A (en) 1994-11-16 1995-11-14 Retrieval apparatus using compressed trie node and retrieval method thereof

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP28105494 1994-11-16
JP6-281054 1994-11-16
JP23084395A JP3152868B2 (ja) 1994-11-16 1995-09-08 検索装置および辞書/テキスト検索方法

Publications (2)

Publication Number Publication Date
JPH08194719A JPH08194719A (ja) 1996-07-30
JP3152868B2 true JP3152868B2 (ja) 2001-04-03

Family

ID=26529570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23084395A Expired - Fee Related JP3152868B2 (ja) 1994-11-16 1995-09-08 検索装置および辞書/テキスト検索方法

Country Status (2)

Country Link
US (1) US5721899A (ja)
JP (1) JP3152868B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6508891B2 (en) 2000-02-15 2003-01-21 Sanyo Electric Co., Ltd. Method of manufacturing hydrogen-absorbing alloy electrode
US6740450B2 (en) 1998-02-19 2004-05-25 Matsushita Electric Industrial Co., Ltd. Hydrogen-absorbing alloy for battery, method for producing the same, and alkaline storage battery using the same
JP2014090569A (ja) * 2012-10-30 2014-05-15 Sharp Corp 電力変換装置、電力供給システム、及び電源供給方法

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU620994B2 (en) * 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
JP3475009B2 (ja) * 1996-05-24 2003-12-08 富士通株式会社 情報検索装置
FI102426B1 (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
FI102424B (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
FI102425B1 (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
US6507678B2 (en) * 1998-06-19 2003-01-14 Fujitsu Limited Apparatus and method for retrieving character string based on classification of character
FI982095A (fi) * 1998-09-29 2000-03-30 Nokia Networks Oy Menetelmä muistin toteuttamiseksi ja muistijärjestely
US6304878B1 (en) * 1998-11-23 2001-10-16 Microsoft Corporation Method and system for improved enumeration of tries
US6298321B1 (en) 1998-11-23 2001-10-02 Microsoft Corporation Trie compression using substates and utilizing pointers to replace or merge identical, reordered states
US6460033B1 (en) * 1999-02-03 2002-10-01 Cary D. Perttunen Browsing methods, articles and apparatus
JP3570323B2 (ja) * 1999-05-11 2004-09-29 日本電気株式会社 アドレスに関するプレフィクスの格納方法
FI991262A (fi) * 1999-06-02 2000-12-03 Nokia Networks Oy Digitaaliseen trie-rakenteeseen perustuva muisti
FI991261A (fi) 1999-06-02 2000-12-03 Nokia Networks Oy Trie-rakenteeseen perustuva funktionaalinen muisti
CA2379817C (en) * 1999-07-20 2007-12-11 Inmentia, Inc Method and system for organizing data
US6424969B1 (en) 1999-07-20 2002-07-23 Inmentia, Inc. System and method for organizing data
US6560610B1 (en) * 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
US7249149B1 (en) 1999-08-10 2007-07-24 Washington University Tree bitmap data structures and their use in performing lookup operations
US6671856B1 (en) * 1999-09-01 2003-12-30 International Business Machines Corporation Method, system, and program for determining boundaries in a string using a dictionary
US6675169B1 (en) 1999-09-07 2004-01-06 Microsoft Corporation Method and system for attaching information to words of a trie
US7013304B1 (en) * 1999-10-20 2006-03-14 Xerox Corporation Method for locating digital information files
US7796998B1 (en) * 2000-08-01 2010-09-14 At&T Intellectual Property, I, L.P. Method and system for delivery of a calling party's location
US6725326B1 (en) 2000-08-15 2004-04-20 Cisco Technology, Inc. Techniques for efficient memory management for longest prefix match problems
JP2002304418A (ja) * 2001-04-06 2002-10-18 Fujitsu Ltd 検索装置、検索方法および検索プログラム
US6944619B2 (en) * 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
EP1405211A1 (en) * 2001-06-26 2004-04-07 Nokia Corporation Indexing method and system for relational databases
EP1433084A1 (en) * 2001-10-02 2004-06-30 Sony Deutschland GmbH Word database compression
US6775737B1 (en) 2001-10-09 2004-08-10 Cisco Technology, Inc. Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US7899067B2 (en) 2002-05-31 2011-03-01 Cisco Technology, Inc. Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match
US7299317B1 (en) 2002-06-08 2007-11-20 Cisco Technology, Inc. Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure
US7558775B1 (en) 2002-06-08 2009-07-07 Cisco Technology, Inc. Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations
US7441074B1 (en) 2002-08-10 2008-10-21 Cisco Technology, Inc. Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation
US20040158561A1 (en) * 2003-02-04 2004-08-12 Gruenwald Bjorn J. System and method for translating languages using an intermediate content space
US7415472B2 (en) * 2003-05-13 2008-08-19 Cisco Technology, Inc. Comparison tree data structures of particular use in performing lookup operations
US7415463B2 (en) * 2003-05-13 2008-08-19 Cisco Technology, Inc. Programming tree data structures and handling collisions while performing lookup operations
US7478109B1 (en) 2004-03-15 2009-01-13 Cisco Technology, Inc. Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US20050256823A1 (en) * 2004-05-13 2005-11-17 Seward Robert Y Memory, method, and program product for organizing data using a compressed trie table
WO2006090732A1 (ja) * 2005-02-24 2006-08-31 Fuji Xerox Co., Ltd. 単語翻訳装置、翻訳方法および翻訳プログラム
JP4404211B2 (ja) * 2005-03-14 2010-01-27 富士ゼロックス株式会社 マルチリンガル翻訳メモリ、翻訳方法および翻訳プログラム
JP5387371B2 (ja) * 2009-11-30 2014-01-15 富士通株式会社 トライ木分類プログラムおよびトライ木分類方法
US9002859B1 (en) 2010-12-17 2015-04-07 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
EP2663939A4 (en) 2011-01-10 2016-12-07 Roy W Ward SYSTEMS AND METHODS FOR HIGH SPEED SEARCHING AND FILTERING OF LARGE DATA SETS
WO2012117544A1 (ja) 2011-03-02 2012-09-07 富士通株式会社 検索プログラム、検索装置、および検索方法
US8484218B2 (en) * 2011-04-21 2013-07-09 Google Inc. Translating keywords from a source language to a target language
US9171054B1 (en) 2012-01-04 2015-10-27 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
US8990204B1 (en) 2012-01-17 2015-03-24 Roy W. Ward Processing and storage of spatial data
CN103577394B (zh) * 2012-07-31 2016-08-24 阿里巴巴集团控股有限公司 一种基于双数组搜索树的机器翻译方法和装置
CN107085501B (zh) * 2016-02-16 2020-04-03 杭州海康威视数字技术股份有限公司 一种数据存储、数据迁移方法及装置
US10521411B2 (en) 2016-08-10 2019-12-31 Moonshadow Mobile, Inc. Systems, methods, and data structures for high-speed searching or filtering of large datasets
US11204905B2 (en) * 2018-06-27 2021-12-21 Datastax, Inc. Trie-based indices for databases

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640551A (en) * 1993-04-14 1997-06-17 Apple Computer, Inc. Efficient high speed trie search process

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Kurt Maly,"Compressed Tries",Communication of the ACM,Vol.19,No.7(July 1976),pp.409−415
Titus D.M.Purdin,"Compressing Tries for Storing Dictionaries",Applied Computing,1990.(5−6 April 1990),pp.336−340,IEEE
Toshiyuki Masui,"Keyword Dictionary Compression Using Efficient Trie Implementation",Data Compression Conference,1991,DCC 791.(8−11 April 1991),p438,IEEE
森本 勝士,入口浩一、青江順一,「二つのトライを用いた辞書検索アルゴリズム」,電子情報通信学会論文誌 Vol.J76−D−▲II▼,No.11(平成5年11月25日),pp.2374−2383
青江 順一,「トライとその応用」,情報処理Vol.34,No.2(平成5年2月15日),pp.244−251
青江順一,安留誠吾,「行置換による動的スパース行列の縮小アルゴリズム」,電子情報通信学会論文誌Vol.J71−D,No.12(昭和63年12月25日),pp.2508−2516

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6740450B2 (en) 1998-02-19 2004-05-25 Matsushita Electric Industrial Co., Ltd. Hydrogen-absorbing alloy for battery, method for producing the same, and alkaline storage battery using the same
US6508891B2 (en) 2000-02-15 2003-01-21 Sanyo Electric Co., Ltd. Method of manufacturing hydrogen-absorbing alloy electrode
JP2014090569A (ja) * 2012-10-30 2014-05-15 Sharp Corp 電力変換装置、電力供給システム、及び電源供給方法

Also Published As

Publication number Publication date
US5721899A (en) 1998-02-24
JPH08194719A (ja) 1996-07-30

Similar Documents

Publication Publication Date Title
JP3152868B2 (ja) 検索装置および辞書/テキスト検索方法
US7031910B2 (en) Method and system for encoding and accessing linguistic frequency data
US7269547B2 (en) Tokenizer for a natural language processing system
JP3234104B2 (ja) 圧縮データをサーチする方法及びシステム
JP3196868B2 (ja) テキストをインデックス及び検索するための関連ワード形態の限定状態トランスジューサ
US6873986B2 (en) Method and system for mapping strings for comparison
US20020165707A1 (en) Methods and apparatus for storing and processing natural language text data as a sequence of fixed length integers
JPH02271468A (ja) データ処理方法
JP2001517823A (ja) 減少されたキーボード明瞭化システム
JP2009266244A (ja) 簡潔言語学データを生成かつ使用するシステムおよび方法
GB2259596A (en) Compressed language dictionary
US5560037A (en) Compact hyphenation point data
US6535886B1 (en) Method to compress linguistic structures
JPH0567144A (ja) 前編集支援方法およびその装置
JP4493397B2 (ja) テキスト圧縮装置
CN110795617A (zh) 一种搜索词的纠错方法及相关装置
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
US8478732B1 (en) Database aliasing in information access system
JPH09245045A (ja) 鍵検索方法および装置
JPH0140372B2 (ja)
JP2001101184A (ja) 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体
JP2795038B2 (ja) データ検索装置
JPS6246029B2 (ja)
JPH0140370B2 (ja)
JP3358100B2 (ja) 日本語質問メッセージ解析方法及び装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010116

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

Free format text: PAYMENT UNTIL: 20080126

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120126

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140126

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees