JP3526748B2 - 文字列探索装置および方法 - Google Patents

文字列探索装置および方法

Info

Publication number
JP3526748B2
JP3526748B2 JP17364898A JP17364898A JP3526748B2 JP 3526748 B2 JP3526748 B2 JP 3526748B2 JP 17364898 A JP17364898 A JP 17364898A JP 17364898 A JP17364898 A JP 17364898A JP 3526748 B2 JP3526748 B2 JP 3526748B2
Authority
JP
Japan
Prior art keywords
word
characters
registered
character
displacement amount
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
JP17364898A
Other languages
English (en)
Other versions
JP2000010990A (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 JP17364898A priority Critical patent/JP3526748B2/ja
Priority to US09/246,992 priority patent/US6507678B2/en
Priority to CNB991052951A priority patent/CN1171162C/zh
Publication of JP2000010990A publication Critical patent/JP2000010990A/ja
Application granted granted Critical
Publication of JP3526748B2 publication Critical patent/JP3526748B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字列検索に係
り、漢字等の複数の文字列をあらかじめ配列に登録して
おき、与えられた文字列が登録されているかどうかを探
索する文字列探索装置およびその方法に関する。
【0002】
【従来の技術】近年、コンピュータネットワークと電子
メール等の普及に伴い、個人の持つ電子化された文書の
量は飛躍的に増加してきた。例えば、1日に数百〜10
00通近くの電子メールを受け取り、それらを処理する
人も多い。また、1日に1MB(メガバイト)、1年間
で数百MB〜1GB(ギガバイト)の文書データが蓄積
されることも、珍しくない。
【0003】このように、大量のデータを扱うときは、
データの中の冗長な部分を省いてデータ量を圧縮するこ
とで、必要な記憶容量を減らしたり、データをより速く
伝送したりできるようになる。上述した近年の傾向か
ら、データの圧縮技術は必要不可欠となってきており、
様々なデータを1つの方式で圧縮することができる方法
として、例えば、ユニバーサル符号化が提案されてい
る。
【0004】ところが、電子化された日本語、中国語等
の文書データを単語単位で圧縮しようとする場合、ま
ず、文書から入力された文字列が、辞書にあらかじめ登
録された単語であるかどうかを高速に判断する必要があ
る。さらに、これらの言語では辞書に登録される単語が
多いため、なるべく無駄な記憶領域が生じないように辞
書を編成しなければならない。よく知られたトライ(TR
IE)法では、キー(鍵)となる複数の単語を木構造のト
ライ辞書に格納しておき、入力された文字列を1文字ず
つ各ノード(節点)と照合して、文字列に含まれる単語
を探索する。
【0005】以下では、情報理論で用いられている呼称
を踏襲し、1ワード(word)単位のデータを記号(symb
ol)あるいは文字と呼び、それが任意の数だけつながっ
たデータを記号列(string)あるいは文字列と呼ぶこと
にする。
【0006】言語コードの圧縮においては、単語等の文
字列をなるべく記憶容量の小さいデータ構造として格納
し、これを高速に探索するアルゴリズムを開発すること
が重要となる。特に、単語を格納する辞書の場合は、登
録されるキーの集合があらかじめ分かっており、後で適
宜キーを追加して辞書を拡充することも多い。したがっ
て、キーの追加が簡単に行えることも重要な要素とな
る。
【0007】青江は、複数のキーを高速にパターン整合
するためのデータ構造として、ダブル配列を提案した
(青江順一:ダブル配列による高速ディジタル探索アル
ゴリズム,電子情報通信学会論文誌D,Vol.J71-D, No.
9, pp.1592-1600, 1988.)。
【0008】図27は、ダブル配列の例を示している。
このダブル配列は、BASEおよびCHECKの2つの
1次元配列からなり、これらの配列が保持するデータ
は、図28のトライ構造に対応している。図28のトラ
イは、baby#、bachelor#、badger
#、badge#、およびjar#の5つの英単語を表
しており、各ノードの指標は、図27の配列BASE、
CHECKの添字に対応する。また、BASEおよびC
HECKの登録値がともに0の位置は、ノードが未登録
の空き位置に対応する。
【0009】このトライは、図29に示すようなノード
の親子関係の繰り返しを含み、親ノードの指標nはBA
SEの添字に対応し、子ノードの指標mはCHECKの
添字に対応する。言い換えれば、この親子関係は一種の
状態遷移を表しており、親ノードnの状態において、文
字aが入力したとき、子ノードmの状態への遷移が行わ
れる。
【0010】ダブル配列を用いて親ノードnに連なる文
字aに対応する子ノードの指標を探索する際、まず、図
30に示すように、BASE上の添字nに対応する箇所
を参照し、その内容dを得る。この値dは、CHECK
の添字に対する一種の原点移動量(変位量)を表してい
る。
【0011】次に、CHECK上で添字dの箇所を始点
として、文字aの内部表現値の分だけ移動した先の添字
をm(=d+文字aの内部表現値)とする。CHECK
上の添字mに対応する箇所の内容が、親ノードの指標n
に一致すれば、そのノードnの下に文字aが登録されて
おり、対応する子ノードの指標はmであることが分か
る。次に、その子ノードを親ノードとして探索を続ける
場合は、BASE上の添字mに対応する箇所を参照し、
次の変位量を取得して、同様の処理を行う。
【0012】一般に、1つの親ノードには1つ以上の子
ノードが連なっており、通常のトライ構造では、同じ親
ノードに連なる兄弟ノードの数に応じて、子ノードの探
索速度が遅くなる。これに対して、ダブル配列のトライ
構造では、兄弟ノードの数の如何を問わず、高速な探索
が可能である。
【0013】
【発明が解決しようとする課題】しかしながら、上述し
た従来の文字列探索には、次のような問題がある。日本
語や中国語等の漢字辞書にダブル配列を利用しようとす
る場合、漢字熟語の多様性のために、英語等のアルファ
ベット辞書と比べて、1つの親ノードに連なる子ノード
の数が多くなる傾向がある。
【0014】図31は、文字“電”で始まる5つの漢字
熟語“電圧”、“電気”、“電車”、“電脳”、および
“電話”をダブル配列に登録する場合を示している。こ
の場合、“電”に連なる各文字“圧”、“気”、
“車”、“脳”、“話”には、それぞれの漢字コード値
が対応しており、コード値に応じてCHECK上での相
対的な位置関係が一定に保たれる。一方、CHECK上
では、○印の付いた箇所が既に他の漢字が登録されて埋
まっており、“電”に連なる各文字を同時に空き位置に
対応させることは、必ずしも可能とは限らない。
【0015】そこで、これらの各文字を、相対的な位置
関係を保ったままCHECK上に登録するために、図3
2に示すように、BASEとCHECKの両配列を拡大
する。このとき、これらの文字がすべて収まるような最
小の変位量(平行移動量)dを算出し、BASE上の
“電”のコード値nの位置に、この値dを書き込む。次
に、この変位量dに“電”に連なる各文字の内部表現値
を加算して得られた値を、新たな配列の添字p、q、
r、s、tとする。そして、CHECK上のp、q、
r、s、tの位置に、親ノードである“電”のノードの
指標nを書き込む。
【0016】これをトライの木構造で表すと、図33の
ようになる。図33においては、ルートノードの下に
“電”が登録され、そのノードnの下に、“圧”、
“気”、“車”、“脳”、“話”がそれぞれノードp、
q、r、s、tに対応して登録されている。
【0017】ここで、問題となるのは、アルファベット
の場合と異なり、漢字の場合は1つの文字に連なる文字
が多く、それらの文字を、相対的な位置関係を保ったま
までCHECKに登録しようとすると、大抵の場合、配
列を拡大せざるを得ない点である。配列を拡大すると、
既に登録されている文字の間の隙間が埋められずに空い
たままとなり、配列の拡大を繰り返すと、このような隙
間がますます増加することになる。したがって、小さな
記憶容量で多数の漢字熟語を格納することは極めて困難
である。
【0018】本発明の課題は、探索の高速性を失うこと
なく、辞書の無駄な空き領域を削減し、圧縮された辞書
を用いて文字列を探索する文字列探索装置およびその方
法を提供することである。
【0019】
【課題を解決するための手段】図1は、本発明の文字列
探索装置の原理図である。図1の文字列探索装置は、第
1の配列手段1、第2の配列手段2、第3の配列手段
3、および探索手段4を備え、登録文字列の中から与え
られた文字列を探索する。
【0020】配列手段1は、複数の文字が連なる語頭の
指標を添字として、その語頭に対応する追番を登録す
る。配列手段2は、上記語頭に対応する追番を添字とし
て、その語頭に連なる複数の文字を分類して得られる複
数の部類(グループ)の各々に対応する変位量を登録す
る。
【0021】配列手段3は、上記変位量と上記語頭に連
なる文字の値の和を添字として、その語頭の指標を登録
する。探索手段4は、配列手段1、2、3を用いて、与
えられた文字列を探索する。
【0022】語頭とは、文字列の先頭部分を表し、一般
に、1つ以上の文字からなる。例えば、図31の漢字
“電”は語頭に対応し、それには複数の漢字“圧”、
“気”、“車”、“脳”、“話”が連なっている。ま
た、語頭の指標は、例えば、トライにおけるノードの指
標に対応する。配列手段1は、例えば、上述のBASE
に対応し、配列手段2の追番を、語頭の指標に対応する
登録値として格納する。
【0023】語頭に連なる複数の文字は所定の分類方法
で分類され、配列手段2は、部類毎の変位量を、配列手
段1に登録された追番に対応する登録値として格納す
る。また、配列手段3は、例えば、上述のCHECKに
対応し、語頭の指標を、各変位量と各文字の値の和に対
応する登録値として格納する。ここで、文字の値として
は、内部表現値が用いられる。文字の内部表現値は、文
字コードの値またはそれに基づいて算出された適当な数
値に対応する。
【0024】与えられた文字列が上記語頭を含み、それ
に続いて次の文字が入力されたとき、探索手段4は、配
列手段1に登録された追番を用いて、次の文字が属する
部類に対応する変位量を配列手段2から取り出す。そし
て、配列手段3内で、取り出された変位量と次の文字の
値の和を添字とする位置に、上記語頭の指標が登録され
ているかどうかを調べる。
【0025】そして、対応する語頭の指標が登録されて
いれば、次の文字を語頭に連なる文字として認識し、そ
うでなければ、次の文字は語頭に繋がらないものと判断
する。こうして、与えられた文字列が配列手段1、2、
3に登録されているかどうかを調べることができる。
【0026】このような文字列探索装置によれば、語頭
に連なる文字が複数の部類に分類されて、部類毎に変位
量が割り当てられる。各部類に含まれる文字の個数は、
語頭に連なる文字の総個数より少なくなるため、すべて
の文字を一度に登録する場合に比べて、配列手段3内の
空き位置を利用しやすくなる。したがって、より小さな
変位量で文字を登録することが可能になり、配列手段3
の拡大が抑えられる。
【0027】また、語頭に連なる文字を分類しないで登
録する場合、配列手段1は、語頭の指標を添字として、
すべての文字に共通する変位量を登録し、配列手段3
は、その変位量と各文字の値の和を添字として、語頭の
指標を登録する。探索手段4は、配列手段1に登録され
た値が追番と変位量のいずれであるかを識別して、それ
が追番であれば、配列手段2から変位量を取得して配列
手段3をアクセスし、それが変位量であれば、直接配列
手段3をアクセスする。
【0028】このように、分類登録されていない文字を
探索する場合は、処理のステップ数はダブル配列を用い
た探索と同様であり、分類登録された文字を探索する場
合は、配列手段2へのアクセスステップが追加されるだ
けである。したがって、探索の高速性はほとんど損なわ
れない。
【0029】また、本発明の他の原理によれば、文字列
探索装置は、登録手段と探索手段を備え、登録文字列の
中から与えられた文字列を探索する。登録手段は、語頭
に連なる複数の文字を複数の部類に分類して登録し、探
索手段は、登録手段を用いて、与えられた文字列を探索
する。
【0030】このような文字列探索装置によれば、図1
の文字列探索装置と同様に、登録手段内の空き領域を効
率よく利用することができ、探索の高速性を保ったまま
で、登録文字列のデータ構造を圧縮することができる。
【0031】例えば、図1の配列手段1、配列手段2、
配列手段3は、それぞれ、後述する図13のBASE5
2、BASE′55、CHECK62に対応し、図1の
探索手段4は、図23の文書入力部71、判定部72、
照合部73等に対応する。
【0032】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。日本語でも中国語で
も、漢字コードとして登録されている漢字は、第1水準
および第2水準合わせて7,000字弱である。それら
の中で、熟語の生成に用いられるものは数が限られてい
る。例えば、中国語においてさえ、10種類以上の熟語
を生み出している頻出漢字は、約500字以下に過ぎな
い。
【0033】しかし、これらの頻出漢字を辞書に登録す
るとき、トライ上である漢字に連なる漢字が多いほど、
すべての漢字をCHECK上の既存の空き位置に同時に
登録することは困難となり、どうしてもCHECKを拡
大せざるを得なくなる。
【0034】そこで、本発明では、高速、低容量の辞書
の1つである従来のダブル配列をさらに発展させ、頻出
漢字についてはダブル配列と異なる方法で登録/探索す
る。具体的には、トライ上である漢字に連なる漢字が多
いとき、それらの漢字の間の相対的な位置関係を保った
まま辞書登録するのではなく、高速性を維持するという
意味からも、それらの漢字を2つ以上の部類(グルー
プ)に分類し、各部類毎に登録する。
【0035】この場合、1つの部類に含まれる漢字の間
の相対的な位置関係は保たれるが、異なる部類間での位
置関係は必ずしも保たれず、探索の際に入力された漢字
がどの部類に属するかを識別するために、少量の付加情
報が必要となる。しかし、多数の漢字をそのまま1つの
部類として登録する場合より、CHECK上の既存の空
き位置を利用できる可能性が高くなり、記憶領域の利用
効率が向上する。したがって、配列の拡大が抑えられ、
辞書のデータ構造が圧縮される。また、探索処理のステ
ップ数はほとんど増加せず、その高速性が保たれる。
【0036】次に、本実施形態における漢字の分類方法
について説明する。図2および図3は、日本語または中
国語等の2バイト文字のコード空間における文字符号
(コード)の領域を示している。このコード空間は、2
バイト文字の第1バイトが表す数0〜255を第1の座
標とし、第2バイトが表す数0〜255を第2の座標と
する2次元空間に対応する。
【0037】図2は、日本語のJIS(日本工業規格)
コードや中国語のGBコード(7ビットコード)のよう
に、1バイトを7ビットで表すコードの領域11を示し
ており、図3は、日本語のEUC(extended UNIX cod
e)コードや中国語のGBコード(8ビットコード)の
ように、1バイトを8ビットで表すコードの領域12を
示している。これらのコードのベースとして用いられる
区点コードでは、94区×94点の範囲に漢字コードが
制定されており、最大8,836字の文字を表現するこ
とができる。
【0038】図4から図7までは、図2に示した7ビッ
トコードの領域11をいくつかの領域に分割して、2バ
イト文字を分類する方法を示している。これらの図にお
いて、□印は、ある漢字に連なる複数の漢字の位置を表
し、文字の第1バイトおよび第2バイトの第1ビットの
値は、ともに“0”である。
【0039】図4の分類方法Aによれば、第1バイトの
第2ビットと第3ビットの値に応じて、領域11が3つ
の領域21、22、23に分割され、□印の漢字が対応
する3つの部類に分類される。ここでは、第2ビットと
第3ビットが“01”の文字は領域21に属し、それら
が“10”の文字は領域22に属し、それらが“11”
の文字は領域23に属する。
【0040】また、図5の分類方法Bによれば、第2バ
イトの第2ビットと第3ビットの値に応じて、領域11
が3つの領域24、25、26に分割され、□印の漢字
が対応する3つの部類に分類される。ここでは、第2ビ
ットと第3ビットが“01”の文字は領域24に属し、
それらが“10”の文字は領域25に属し、それらが
“11”の文字は領域26に属する。
【0041】また、図6の分類方法Cによれば、第1バ
イトおよび第2バイトの第2ビットの値に応じて、領域
11が4つの領域27、28、29、30に分割され、
□印の漢字が対応する4つの部類に分類される。ここで
は、第1バイトの第2ビットと第2バイトの第2ビット
がともに“0”の文字は領域27に属し、第1バイトの
第2ビットが“0”で第2バイトの第2ビットが“1”
の文字は領域28に属し、第1バイトの第2ビットが
“1”で第2バイトの第2ビットが“0”の文字は領域
29に属し、それらがともに“1”の文字は領域30に
属する。
【0042】また、図7の分類方法Dによれば、第1バ
イトおよび第2バイトの第2ビットと第3ビットの値に
応じて、領域11が4つの領域31、32、33、34
に分割され、□印の漢字が対応する4つの部類に分類さ
れる。
【0043】ここでは、第1バイトの第2ビットと第3
ビットが“01”または“10”の文字のうち、第2バ
イトの第2ビットと第3ビットも“01”または“1
0”の文字は領域31に属し、第2バイトの第2ビット
と第3ビットが“11”の文字は領域32に属する。ま
た、第1バイトの第2ビットと第3ビットが“11”の
文字のうち、第2バイトの第2ビットと第3ビットが
“01”または“10”の文字は領域33に属し、第2
バイトの第2ビットと第3ビットも“11”の文字は領
域34に属する。
【0044】また、図8から図11までは、図3に示し
た8ビットコードの領域12をいくつかの領域に分割し
て、2バイト文字を分類する方法を示している。これら
の図において、□印は、ある漢字に連なる複数の漢字の
位置を表し、文字の第1バイトおよび第2バイトの第1
ビットの値は、ともに“1”である。
【0045】図8の分類方法Eによれば、図4の分類方
法Aと同様に、第1バイトの第2ビットと第3ビットの
値に応じて、領域12が3つの領域35、36、37に
分割され、□印の漢字が対応する3つの部類に分類され
る。
【0046】また、図9の分類方法Fによれば、図5の
分類方法Bと同様に、第2バイトの第2ビットと第3ビ
ットの値に応じて、領域12が3つの領域38、39、
40に分割され、□印の漢字が対応する3つの部類に分
類される。
【0047】また、図10の分類方法Gによれば、図6
の分類方法Cと同様に、第1バイトおよび第2バイトの
第2ビットの値に応じて、領域12が4つの領域41、
42、43、44に分割され、□印の漢字が対応する4
つの部類に分類される。
【0048】また、図11の分類方法Hによれば、図7
の分類方法Dと同様に、第1バイトおよび第2バイトの
第2ビットと第3ビットの値に応じて、領域12が4つ
の領域45、46、47、48に分割され、□印の漢字
が対応する4つの部類に分類される。
【0049】このように、文字コード中の適当なビット
の値を用いて、2バイト文字をいくつかの部類に分類す
ることができる。上述した分類方法のいずれを採用する
かは任意であるが、□印の漢字ができるだけ均等に分割
されるような分類方法を用いるのが望ましい。以下の実
施形態では、語頭に連なる文字を、その文字コードの第
2、第3ビットの値によって、いずれかの分類方法で分
類し、得られた部類毎に変位量を算出する。ここで、語
頭とは、単語の先頭部分を表し、一般に、1つ以上の文
字からなる。
【0050】このとき、各部類に属する文字の個数の偏
り(ばらつき)が少なければ、ほぼ均等に分類できたこ
とになる。また、部類毎に変位量を算出する際にも、文
字の個数が極端に多い部類がない方が、それだけ容易
に、適切な移動先を見つけることができる。例えば、図
31に示した5つの漢字を追加する場合、これらを分類
して登録することで、CHECK上の空き位置を利用で
きる可能性が高くなり、配列の拡大を抑えることができ
る。
【0051】さらに、連なる文字の数がそれほど多くな
くても、それらの文字の内部表現値の範囲が所定のいき
値以上となるものについては、同様に分類して登録した
方が、適切な移動先が見つけやすい。ここで、文字の内
部表現値は、文字コードの値またはそれに基づいて算出
された適当な数値に対応し、コード空間における文字間
の相対的な位置関係を表現する。例えば、図2の領域1
1または図3の領域12内に基準点を設け、その基準点
から文字に対応する位置までの距離を内部表現値として
用いることができる。
【0052】図12は、このような熟語の例を示してい
る。ここでは、“爛漫”と“爛熟”という2つの熟語を
登録する際、“爛”に連なる文字“漫”と“熟”の内部
表現値の差(幅)がかなり大きく、CHECK上の空き
位置にうまく収まらないものとする。この場合、従来の
登録方法では、CHECKを拡大して登録することにな
るが、本発明の登録方法では、“漫”と“熟”をそれぞ
れ異なる部類として登録することにより、CHECK上
の空き位置を利用することが可能になる。
【0053】しかし、連なる文字が少なく、かつ、連な
る文字の内部表現値の差の最大値がいき値より小さい場
合は、このような分類は行わず、従来通りに登録しても
構わない。
【0054】次に、トライ辞書に文字を登録する際の構
成および処理について説明する。図13は、文字列探索
装置の登録時の構成を示している。図13の文字列探索
装置は、頻出漢字一覧表51、BASE配列52、語頭
登録部53、語頭選択部54、BASE′配列55、熟
語辞書56、分類部57、分類結果格納部58、変位量
計算部59、変位量格納部60、登録位置計算部61、
およびCHECK配列62を備える。
【0055】このうち、頻出漢字一覧表51、BASE
配列52、語頭登録部53、BASE′配列55、熟語
辞書56、分類結果格納部58、変位量格納部60、お
よびCHECK配列62は、コンピュータの記憶装置の
特定の記憶領域またはそこに格納されたデジタルデータ
に対応する。また、語頭選択部54、分類部57、変位
量計算部59、および登録位置計算部61は、それらの
データを処理するプログラムにより記述されたソフトウ
ェアコンポーネントに対応し、コンピュータの記憶装置
の特定のプログラムコードセグメントに格納される。
【0056】頻出漢字一覧表51は、熟語によく用いら
れる漢字の一覧表を表し、語頭選択部54は、頻出漢字
一覧表51の漢字からなる1文字以上の語頭を、一定の
上限値以内の数だけ選択する。また、語頭選択部54
は、頻出漢字以外に、図12に示したように、連なる文
字間の幅が大きいような語頭も、処理対象として選択し
ておく。
【0057】分類部57は、処理対象の熟語を登録した
熟語辞書56を参照しながら、選択された各語頭に連な
る漢字の分類方法を語頭毎に決定する。そして、その分
類方法に従って漢字を分類し、分類結果を分類結果格納
部58に格納する。
【0058】文字列探索装置は、語頭選択部54により
選択された語頭の指標(index )を語頭登録部53に登
録する際、登録位置の追番の値の範囲に意味を持たせ
て、各語頭に連なる漢字の分類に用いた分類方法を表現
する。つまり、分類方法に応じて、異なる値の範囲の追
番を用いるようにする。
【0059】図14は、語頭登録部53の登録内容の例
を示している。ここでは、追番1、2の位置は図4の分
類方法Aに対応し、それぞれ語頭W1、W2の指標が格
納されている。したがって、それらの語頭に連なる漢字
は、分類方法Aで分類されたことが分かる。
【0060】また、追番3、4の位置は図5の分類方法
Bに対応し、それぞれ語頭“大”、W3の指標が格納さ
れている。したがって、それらの語頭に連なる漢字は、
分類方法Bで分類されたことが分かる。また、追番5の
位置は図6の分類方法Cに対応し、語頭W4の指標が格
納されている。したがって、その語頭に連なる漢字は、
分類方法Cで分類されたことが分かる。
【0061】ここで、JISコードの第1バイトをxと
し、第2バイトをyとすると、x、yは、区点コードを
用いて次式のように表される。 x=(区コード)+32 (1) y=(点コード)+32 (2) 例えば、“大”の区点コードは(34,71)であるか
ら、そのJISコードは(x,y)=(66,103)
となる。また、JISコードに対応する内部表現値zを
次式のように定義する。
【0062】 z=((区コード)−1)*94+((点コード)−1) (3) このとき、“大”の内部表現値は3,172となる。こ
こで、トライにおける語頭は、ルートノードの次の0次
文脈に対応し、0次文脈の指標は内部表現値に一致する
ため、語頭登録部53に登録される“大”の指標は3,
172となる。
【0063】文字列探索装置は、語頭を語頭登録部53
に登録した後、BASE52上で語頭の指標を添字とす
る位置に、語頭登録部53の追番またはそれに対応する
値を格納する。これにより、各語頭と語頭登録部53の
追番の対応関係、言い換えれば、各語頭と分類方法の対
応関係がBASE52に登録される。
【0064】図15は、BASE52の例を示してい
る。BASE52には、語頭に応じて2種類の数値が格
納される。語頭に連なる文字が少なく、かつ、連なる文
字の内部表現値の差の最大値がいき値より小さい場合
は、分類登録を行わずに、従来通りの変位量が格納され
る。
【0065】一方、それ以外の語頭については、語頭登
録部53の追番に対応するBASE′55の追番が格納
される。ここでは、語頭“大”の指標3,172に対応
する位置に、BASE′55の追番I1 が格納され、別
の語頭“不”の指標3,811に対応する位置に、BA
SE′55の追番I2 が格納されている。
【0066】例えば、BASE′55の追番としては、
BASE52の大きさに語頭登録部53の追番を加算し
た値が用いられ、語頭“大”の場合は、I1 =BASE
52の大きさ+3となる。したがって、BASE52が
1〜64,000ワードの範囲に設定された場合、I1
=64,003となる。
【0067】今、“大”を語頭とする9つの2文字熟語
“大王”、“大概”、“大円”、“大家”、“大河”、
“大火”、“大学”、“大会”、および“大器”が熟語
辞書56に登録されているものとする。このとき、
“大”に連なる漢字“王”、“概”、“円”、“家”、
“河”、“火”、“学”、“会”、および“器”は、図
5の分類方法Bにより、図16、17、18に示す3つ
の部類に分類される。
【0068】分類方法Bでは、第2バイトの第2ビット
と第3ビットの値に応じて漢字が分類されるが、図16
の漢字“王”および“概”の第2ビットと第3ビットは
“01”であり、これらは部類αに分類される。また、
図17の漢字“円”、“家”、“河”、“火”、および
“学”の第2ビットと第3ビットは“10”であり、こ
れらは部類βに分類され、図18の“会”および“器”
の第2ビットと第3ビットは“11”であり、これらは
部類γに分類される。
【0069】これらの部類α、β、γは、図5の領域2
4、25、26にそれぞれ対応しており、分類結果とし
て分類結果格納部58に格納される。また、図16、1
7、18において、各漢字の下方に記された数字は、
(1)、(2)式のJISコード(x,y)と、(3)
式の内部表現値zを表している。例えば、図16の漢字
“王”のJISコードは(50,38)であり、その内
部表現値は1,603である。
【0070】変位量計算部59は、分類結果を参照し
て、各部類毎にCHECK62上の最適な変位量を計算
し、変位量格納部60に格納する。そして、登録位置計
算部61は、変位量を用いて各部類に属する漢字の登録
位置を計算し、文字列探索装置は、CHECK62上の
得られた登録位置に、語頭の指標を登録する。
【0071】図19は、図16、17、18に示した各
部類毎に、変位量を算出する過程を示している。ここで
は、部類α、β、γの順に変位量が算出される。変位量
計算部59は、まず、CHECK62上で、部類αに属
する2つの漢字“王”および“概”を平行移動して、そ
れらを登録できる位置を探し、対応する変位量d1 を求
める。そして、登録位置計算部61は、d1 に各漢字の
内部表現値を加算して、登録位置の添字を求める。
【0072】次に、変位量計算部59は、CHECK6
2上で、部類βに属する5つの漢字“円”、“家”、
“河”、“火”、および“学”を平行移動して、それら
を登録できる位置を探し、対応する変位量d2 を求め
る。そして、登録位置計算部61は、d2 に各漢字の内
部表現値を加算して、登録位置の添字を求める。
【0073】次に、変位量計算部59は、CHECK6
2上で、部類γに属する2つの漢字“会”および“器”
を平行移動して、それらを登録できる位置を探し、対応
する変位量d3 を求める。そして、登録位置計算部61
は、d3 に各漢字の内部表現値を加算して、登録位置の
添字を求める。
【0074】そして、文字列探索装置は、部類α、β、
γに属するすべての漢字の登録位置に、語頭“大”の指
標3,172を登録する。また、分類登録を行わない語
頭については、変位量計算部59は、すべての連なる漢
字に共通する変位量を計算し、登録位置計算部61は、
その変位量に各漢字の内部表現値を加算して、登録位置
を求める。このような処理をすべての語頭について繰り
返すことで、必要な漢字がCHECK62に登録され
る。
【0075】また、文字列探索装置は、BASE′55
上で、BASE52に格納された追番を添字とする位置
に、対応する語頭の各部類の変位量を格納する。また、
分類登録を行わない語頭については、BASE52上で
語頭の指標に対応する位置に、変位量を格納する。
【0076】図20は、BASE′55の例を示してい
る。図20のBASE′55は、図14の語頭登録部5
3と同様に、添字の値の範囲により分類方法を表してお
り、分類された各部類毎に独自の変位量を格納してい
る。例えば、図15の語頭“大”の追番I1 に対応する
位置には、上述の部類α、β、γの変位量d1 、d2
3 が格納されており、これらの部類が分類方法Bによ
り得られたことを表している。
【0077】このように、図13の構成によれば、語頭
に連なる漢字を複数の部類に分類することができ、配列
の添字の値の範囲により、語頭に対応する分類方法が識
別できる。そして、各部類に応じて独自の変位量を与え
ることにより、それらの部類が互いに重なるようにし
て、各漢字に空いた登録位置を与えることが可能にな
る。したがって、語頭に連なるすべての漢字に一定の変
位量を与える場合に比べて、CHECK62の拡大が抑
えられる。
【0078】図21は、図13の文字列探索装置による
登録処理のフローチャートである。まず、語頭選択部5
4は、ユーザからの指示に従って、1つ以上の語頭Wを
選択する(ステップS1)。
【0079】頻出漢字一覧表51には、例えば、10種
類以上の熟語に使用される約500種類の漢字が登録さ
れており、語頭選択部54は、これらの中から処理対象
とすべき漢字を選択する。また、2文字以上の語頭で、
多数の3文字以上の熟語に用いられるものも選択する。
例えば、“自由競争”、“自由主義”、“自由時間”等
のような熟語においては、“自由”が語頭として選択さ
れる。さらに、必要に応じて、図12に示したように、
連なる文字間の幅が大きいような語頭も選択する。そし
て、これらの語頭Wの指標(内部表現値)を語頭登録部
53に格納する。
【0080】次に、文字列探索装置は、トライ辞書に登
録すべき漢字熟語を含む熟語辞書56から熟語の文字列
を入力し(ステップS2)、語頭登録部53を参照し
て、入力文字列中の注目している語頭が、選択された語
頭Wであるか否かを判定する(ステップS3)。
【0081】選択された語頭Wでなければ、変位量計算
部59は、その語頭に連なるすべての漢字に共通する変
位量を計算し(ステップS4)、文字列探索装置は、そ
れをBASE52上の語頭の指標に対応する位置に格納
する(ステップS5)。そして、登録位置計算部61
は、変位量に各漢字の内部表現値を加算して、CHEC
K62上の登録位置を求め、文字列探索装置は、語頭の
指標をその登録位置に登録して(ステップS6)、処理
を終了する。
【0082】また、ステップS3において、入力文字列
から語頭Wが検出されると、文字列探索装置は、まず、
入力文字列をすべての語頭Wと比較したかどうかを判定
する(ステップS7)。そして、すべての語頭Wについ
て処理が終了していなければ、分類部57は、熟語辞書
56を参照して、検出された語頭Wに連なる漢字をそれ
らのコード値に従って分類する(ステップS8)。この
とき、文字列探索装置は、採用された分類方法に対応す
る追番を決定し、それに従って語頭Wの指標を語頭登録
部53に格納し直す。
【0083】次に、文字列探索装置は、BASE52上
の語頭Wの指標に対応する位置に、語頭Wに割り当てら
れたBASE′55の追番を格納する(ステップS
9)。そして、変位量計算部59は、分類により得られ
た部類毎に最適な変位量を計算し(ステップS10)、
文字列探索装置は、BASE′55上で、BASE52
に格納された追番に対応する位置に、得られた変位量を
格納する(ステップS11)。
【0084】このとき、変位量計算部59は、1つの部
類に属する各漢字の内部表現値に任意の加算値を加算
し、得られた各加算結果に対応するCHECK62上の
位置を調べる。そして、すべての加算結果がCHECK
62上の空き位置に対応し、その部類の各漢字がすべて
空き領域に収まるような加算値のうち最小のものを、最
適な変位量として算出する。
【0085】次に、文字列探索装置は、ステップS7以
降の処理を繰り返し、入力文字列をすべての語頭Wと比
較し終えると、登録位置計算部61は、各部類の変位量
に各漢字の内部表現値を加算して、CHECK62上の
登録位置を求める(ステップS6)。そして、文字列探
索装置は、語頭の指標をその登録位置に登録して、処理
を終了する。
【0086】このような処理を、熟語辞書56に登録さ
れたすべての熟語について繰り返すことで、それらの熟
語が、BASE52、BASE′55、およびCHEC
K62を含むトライ辞書に登録される。このとき、ステ
ップS6で得られた登録位置は、ステップS5、S9に
おいて次の語頭の指標として用いられる。
【0087】図22は、図21のステップS8で行われ
る分類処理の例を示すフローチャートである。ここで
は、与えられた文字の集合に、図4、5、6、7または
図8、9、10、11に示した4通りの分類方法を適用
して、得られた各部類に属する文字の個数を算出し、そ
のばらつきが最も小さくなるような分類方法を選択す
る。
【0088】分類部57は、まず、語頭Wに連なる文字
の個数を所定のいき値と比較し(ステップS21)、そ
の個数がいき値以上であれば、次に、それらの文字を分
類する。ここでは、まず、4通りの分類がすべて終了し
たかどうかを判定し(ステップS22)、それが終了し
ていなければ、各文字の第1バイトおよび第2バイトの
第2ビットと第3ビットの値を調べ、特定の分類方法に
従って文字を分類する(ステップS23)。
【0089】次に、得られた各部類に属する文字の個数
を算出し(ステップS24)、そのばらつきを評価する
(ステップS25)。ばらつきの評価には、文字の個数
の分散や標準偏差等に基づく統計処理が用いられる。
【0090】このような処理を各分類方法について繰り
返し、4通りの分類がすべて終了すると、次に、ばらつ
きが最小となる分類方法を選定する(ステップS2
6)。そして、その分類方法に応じて語頭登録部53の
追番を決定し(ステップS27)、その分類方法により
得られた各部類を出力し(ステップS28)、語頭登録
部53の追番を出力して(ステップS29)、処理を終
了する。
【0091】また、ステップS21において、語頭Wに
連なる文字の個数がいき値より小さい場合は、次に、そ
れらの文字の内部表現値の差の最大値を所定のいき値と
比較する(ステップS30)。その最大値がいき値以上
であれば、ステップS22以降の処理を行ってそれらの
文字を分類し、最大値がいき値より小さければ、分類を
行わずに処理を終了する。
【0092】ステップS29において出力された語頭登
録部53の追番は、採用された分類方法を表しており、
図21のステップS9において、BASE′55の追番
に変換されてBASE52に格納される。こうして、採
用された分類方法の情報は、BASE52に登録され、
未知の入力文字列をトライ辞書内で探索する際に利用さ
れる。
【0093】ここでは、図4から図11までに示した分
類方法を用いているが、一般には、これら以外の任意の
分類方法を用いることができ、ばらつきの評価対象とな
る分類方法は4通りには限られない。また、採用する分
類方法を、語頭毎にユーザが指定することも可能であ
る。
【0094】次に、上述のようにして作成されたトライ
辞書を用いて文字列を探索する際の構成および処理につ
いて説明する。図23は、文字列探索装置の探索時の構
成を示している。図23の文字列探索装置は、図13に
示したBASE配列52、BASE′配列55、分類部
57、変位量格納部60、登録位置計算部61、および
CHECK配列62と、文書入力部71、判定部72、
および照合部73を備える。
【0095】文書入力部71、判定部72、および照合
部73は、プログラムにより記述されたソフトウェアコ
ンポーネントに対応し、コンピュータの記憶装置の特定
のプログラムコードセグメントに格納される。
【0096】文書入力部71は、与えられた文書から文
字を1文字ずつ入力し、判定部72は、BASE52を
参照して、処理対象の語頭の指標に対応する登録値を取
り出し、それが追番と変位量のいずれを表しているかを
判定する。処理対象の語頭に連なる文字が分類登録され
ていれば、登録値は追番に対応し、それらが分類登録さ
れていなければ、登録値は変位量に対応する。
【0097】登録値が追番であれば、分類部57は、そ
れに対応する分類方法に従って入力文字のコード値を分
類し、文字列探索装置は、追番に基づいて、BASE′
55から入力文字の部類に対応する変位量を取り出し、
変位量格納部60に格納する。また、登録値が変位量で
あれば、それを変位量格納部60に格納する。
【0098】次に、登録位置計算部61は、変位量格納
部60から変位量を取り出し、それに入力文字の内部表
現値を加算して、CHECK62上の登録位置を求め
る。そして、照合部73は、その位置に登録された数値
を語頭の指標と照合し、照合結果に応じて、新たな語頭
を設定する。
【0099】このような処理を繰り返すことで、文書中
の文字が1文字ずつトライ辞書の文字と照合されてい
き、辞書に登録された単語が順に切り出されていく。こ
のとき、BASE52の登録値を参照することで、分類
登録の有無と分類方法が識別され、BASE′55を参
照することで、各部類の変位量が取得できる。
【0100】図24は、図23の文字列探索装置による
探索処理のフローチャートである。まず、文字列探索装
置は、語頭Wとしてトライのルートノードに対応する
“#”を設定し(ステップS31)、文書入力部71
は、ユーザから与えられた文書から処理対象の文字を入
力する(ステップS32)。
【0101】次に、判定部72は、BASE52上の語
頭Wの指標に対応する位置から数値を取り出し(ステッ
プS33)、それが追番と変位量のいずれを表している
かを判定する(ステップS34)。ここでは、BASE
52から取り出された数値がBASE52の大きさ以内
であるとき、それを変位量とみなし、数値がBASE5
2の大きさを越えているとき、それを追番とみなす。
【0102】数値が追番であれば、分類部57は、その
値から分類方法を識別し、対応する分類方法に従って入
力文字のコード値を分類して、入力文字が属する部類を
求める(ステップS35)。そして、文字列探索装置
は、BASE′55上で、語頭Wの追番と入力文字の部
類に対応する位置から変位量を取り出し、変位量格納部
60に格納する(ステップS36)。
【0103】次に、登録位置計算部61は、得られた変
位量に入力文字の内部表現値を加算して、CHECK6
2上の登録位置を求め、文字列探索装置は、その位置か
ら数値を取り出す(ステップS37)。また、ステップ
S34において、数値が変位量であれば、それをそのま
ま変位量格納部60に格納し(ステップS38)、ステ
ップS37の処理を行う。
【0104】次に、照合部73は、CHECK62から
取り出された数値をキーとして、それを語頭Wの指標と
照合する(ステップS39)。そして、それらが一致す
れば、語頭Wと入力文字を合わせた文字列がトライ辞書
に登録されているものとみなし、文字列がどこまで登録
されているかを調べるために、その文字列を改めて語頭
Wに設定する(ステップS40)。
【0105】また、CHECK62の数値が語頭Wの指
標と一致しなければ、語頭Wと入力文字を合わせた文字
列がトライ辞書に登録されていないものとみなし、入力
文字のみを改めて語頭Wに設定する(ステップS4
1)。これにより、入力文字は、次の単語の先頭文字と
なる。
【0106】次に、文書入力部71は、入力文字が終了
したかどうかを判定し(ステップS42)、次の入力文
字があれば、ステップS32以降の処理を繰り返す。そ
して、次の入力文字がなくなれば、処理を終了する。
【0107】ステップS32において最初の文字が入力
されたときは、語頭Wは“#”であり、自動的にステッ
プS40において入力文字が語頭Wに設定されて、次の
文字が入力される。また、語頭Wが1文字の漢字で、入
力文字も漢字である場合は、それらが2文字熟語を生成
する可能性がある。
【0108】例えば、語頭Wが“大”であるときに漢字
“王”が入力されたとすると、判定部72は、図15の
BASE52上で、“大”の指標3,172に対応する
位置から登録値I1 を取り出す(ステップS33)。こ
こでは、I1 はBASE52の大きさより大きく、図2
0のBASE′55の追番を表していることが分かる。
【0109】さらに、I1 は分類方法Bに対応している
ことが分かるため、分類部57は、入力漢字“王”の第
2バイトの第2ビットと第3ビットを調べ、分類方法B
に従って分類する(ステップS35)。その結果、この
漢字は、図16の部類αに属することが分かる。
【0110】そこで、文字列探索装置は、図20のBA
SE′55上で、追番I1 と部類αに対応する位置から
変位量d1 を取り出し(ステップS36)、登録位置計
算部61は、変位量d1 に入力漢字“王”の内部表現値
1,603を加算して、図19のCHECK62上の登
録位置を求める(ステップS37)。そして、照合部7
3は、その位置に登録された数値を“大”の指標3,1
72と比較する(ステップS39)。
【0111】ここでは、入力漢字“王”に対応する登録
位置に、“大”の指標3,172が登録されているた
め、熟語“大王”がトライ辞書に登録されていることが
分かる。そこで、“大王”を新たな語頭Wとして設定し
(ステップS40)、より長い文字列が登録されている
かどうかを調べる。
【0112】語頭“大”に続いて他の漢字“概”、
“円”、“家”、“河”、“火”、“学”、“会”、お
よび“器”が入力された場合も、同様にして2文字熟語
が認定され、それが新たな語頭Wとして設定される。ま
た、語頭Wが2文字以上の漢字である場合も、同様にし
て文字列探索が行われる。
【0113】ここで、BASEとCHECKの大きさを
それぞれ64,000ワードとし、BASE′の追番の
個数を500とし、部類の最大数を4とした場合を考え
る。このとき、BASE′に格納する各変位量を1ワー
ドとすると、BASE′として必要な記憶容量は2,0
00ワードとなり、これはBASEとCHECKを合わ
せた記憶容量の1/64に過ぎない。一方、従来の登録
方法でBASEとCHECKを拡大した場合、必要とな
る記憶容量の増分ははるかに大きいと推定される。
【0114】しかし、本発明の分類登録を用いることに
より、従来の登録方法では埋められなかった配列の空き
領域を効率よく埋めることが可能になり、ダブル配列の
記憶容量の増大が適度に抑えられる。しかも、探索時に
は、分類登録された文字の場合に限ってBASE′を参
照するステップが1つ増えるだけであり、全体の処理ス
テップ数はほぼ同じである。したがって、ダブル配列を
用いた探索の高速性は、ほとんど損なわれない。
【0115】以上説明した実施形態においては、2文字
以上の漢字熟語を分類登録の対象としているが、同様に
して、平仮名、片仮名、英数字等を含む任意の文字列を
分類登録することが可能である。さらに、文字列の言語
としては、日本語と中国語に限られず、韓国語等の他の
アジア諸国語や、英語、独語、仏語等の欧米諸国語を含
む任意の言語を用いることができ、文字コードとして
は、任意のコードを用いることができる。
【0116】ところで、図13および図23の文字列探
索装置は、図25に示すような情報処理装置(コンピュ
ータ)を用いて構成することができる。図25の情報処
理装置は、CPU(中央処理装置)81、メモリ82、
入力装置83、出力装置84、外部記憶装置85、媒体
駆動装置86、およびネットワーク接続装置87を備
え、それらはバス88により互いに接続されている。
【0117】メモリ82は、例えば、ROM(read onl
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU81は、メモリ82を利用してプログラムを実行
することにより、必要な処理を行う。
【0118】入力装置83は、例えば、キーボード、ポ
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置84
は、例えば、ディスプレイやプリンタ等であり、ユーザ
への問い合わせ、処理結果等の出力に用いられる。
【0119】外部記憶装置85は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等である。この外部記憶装置85に、
上述のプログラムとデータを保存しておき、必要に応じ
て、それらをメモリ82にロードして使用することもで
きる。
【0120】媒体駆動装置86は、可搬記録媒体89を
駆動し、その記録内容にアクセスする。可搬記録媒体8
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。この可搬記録媒体89に
上述のプログラムとデータを格納しておき、必要に応じ
て、それらをメモリ82にロードして使用することもで
きる。
【0121】ネットワーク接続装置87は、LAN(lo
cal area network)等の任意のネットワーク(回線)を
介して外部の装置と通信し、通信に伴うデータ変換を行
う。また、必要に応じて、上述のプログラムとデータを
外部の装置から受け取り、それらをメモリ82にロード
して使用することもできる。
【0122】図26は、図25の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体89や
外部のデータベース90に保存されたプログラムとデー
タは、メモリ82にロードされる。そして、CPU81
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
【0123】
【発明の効果】本発明によれば、トライ辞書の空き領域
を利用して、漢字熟語等の文字列を効率よく登録するこ
とができ、辞書のデータ構造が圧縮される。また、ダブ
ル配列のトライ辞書を利用した探索の高速性を損なうこ
となく、辞書の記憶容量を削減することができる。
【図面の簡単な説明】
【図1】本発明の文字列探索装置の原理図である。
【図2】7ビットコードの領域を示す図である。
【図3】8ビットコードの領域を示す図である。
【図4】分類方法Aを示す図である。
【図5】分類方法Bを示す図である。
【図6】分類方法Cを示す図である。
【図7】分類方法Dを示す図である。
【図8】分類方法Eを示す図である。
【図9】分類方法Fを示す図である。
【図10】分類方法Gを示す図である。
【図11】分類方法Hを示す図である。
【図12】文字間の幅が大きい場合を示す図である。
【図13】登録時の構成を示す図である。
【図14】語頭登録部の登録内容を示す図である。
【図15】BASEを示す図である。
【図16】部類αを示す図である。
【図17】部類βを示す図である。
【図18】部類γを示す図である。
【図19】部類毎の変位量の算出を示す図である。
【図20】BASE′を示す図である。
【図21】登録処理のフローチャートである。
【図22】分類処理のフローチャートである。
【図23】探索時の構成を示す図である。
【図24】探索処理のフローチャートである。
【図25】情報処理装置の構成図である。
【図26】記録媒体を示す図である。
【図27】ダブル配列を示す図である。
【図28】ダブル配列に対応するトライを示す図であ
る。
【図29】トライにおける親子関係を示す図である。
【図30】ダブル配列による探索を示す図である。
【図31】漢字の追加登録を示す図である。
【図32】ダブル配列の拡大を示す図である。
【図33】トライの拡大を示す図である。
【符号の説明】
1 第1の配列手段 2 第2の配列手段 3 第3の配列手段 4 探索手段 11、12、21、22、23、24、25、26、2
7、28、29、30、31、32、33、34、3
5、36、37、38、39、40、41、42、4
3、44、45、46、47、48 領域 51 頻出漢字一覧表 52 BASE配列 53 語頭登録部 54 語頭選択部 55 BASE′配列 56 熟語辞書 57 分類部 58 分類結果格納部 59 変位量計算部 60 変位量格納部 61 登録位置計算部 62 CHECK配列 71 文書入力部 72 判定部 73 照合部 81 CPU 82 メモリ 83 入力装置 84 出力装置 85 外部記憶装置 86 媒体駆動装置 87 ネットワーク接続装置 88 バス 89 可搬記録媒体 90 データベース
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 青江順一,ダブル配列による高速ディ ジタル検索アルゴリズム,電子情報通信 学会論文誌D,日本,社団法人 電子情 報通信学会,1988年 9月25日,VO L.J71−D No.9,第1592頁乃至 第1600頁 新版 情報ハンドブック,日本,株式 会社オーム社,1995年11月25日,第1 版,第1572頁乃至第1574頁 増井俊之,効率の良いトライ/状態遷 移機械の構成方式,情報処理学会研究報 告,日本,社団法人情報処理学会,1994 年 1月21日,第94巻 第7号,第73頁 乃至第80頁 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 JICSTファイル(JOIS)

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 登録文字列の中から与えられた文字列を
    探索する文字列探索装置であって、 複数の文字が連なる語頭の指標を添字として、該語頭に
    対応する追番を登録する第1の配列手段と、 前記語頭に対応する追番を添字として、該語頭に連なる
    複数の文字を分類して得られる複数の部類の各々に対応
    する変位量を登録する第2の配列手段と、 前記変位量と前記語頭に連なる文字の値の和を添字とし
    て、該語頭の指標を登録する第3の配列手段と、 前記第1、第2、および第3の配列手段を用いて、前記
    与えられた文字列を探索する探索手段とを備え、 語頭に連なる1つ以上の文字を分類しないで登録する場
    合、前記第1の配列手段は、該1つ以上の文字が連なる
    語頭の指標を添字として、該1つ以上の文字に共通する
    変位量を登録し、前記第3の配列手段は、該1つ以上の
    文字に共通する変位量と該1つ以上の文字の値の和を添
    字として、該1つ以上の文字が連なる語頭の指標を登録
    し、前記探索手段は、該第1の配列手段に登録された値
    が追番と変位量のいずれであるかを識別する識別手段を
    含むことを特徴とする文字列探索装置。
  2. 【請求項2】 前記第1の配列手段は、前記語頭に連な
    る複数の文字の数が所定値以上のとき、前記語頭に対応
    する追番を登録することを特徴とする請求項1記載の文
    字列探索装置。
  3. 【請求項3】 前記第1の配列手段は、前記語頭に連な
    る複数の文字の値の範囲が所定値以上のとき、前記語頭
    に対応する追番を登録することを特徴とする請求項1記
    載の文字列探索装置。
  4. 【請求項4】 前記第2の配列手段の添字に対応する追
    番を添字として、前記語頭を登録する語頭登録手段をさ
    らに備えることを特徴とする請求項1記載の文字列探索
    装置。
  5. 【請求項5】 前記変位量と前記語頭に連なる文字の値
    を加算する計算手段をさらに備え、前記第1の配列手段
    は、該変位量と該語頭に連なる文字の値の和を次の語頭
    の指標として用いることを特徴とする請求項1記載の文
    字列探索装置。
  6. 【請求項6】 前記語頭に連なる複数の文字を分類し
    て、前記複数の部類を求める分類手段をさらに備えるこ
    とを特徴とする請求項1記載の文字列探索装置。
  7. 【請求項7】 前記与えられた文字列が前記語頭を含
    み、該語頭に続いて次の文字が入力されたとき、前記分
    類手段は、該次の文字に対応する部類を求め、前記探索
    手段は、前記第1の配列手段に登録された追番を用い
    て、該次の文字の部類に対応する変位量を前記第2の配
    列手段から取り出し、前記第3の配列手段内で、取り出
    された変位量と該次の文字の値の和を添字とする位置
    に、前記語頭の指標が登録されているかどうかを調べる
    ことを特徴とする請求項6記載の文字列探索装置。
  8. 【請求項8】 前記分類手段は、前記語頭に連なる複数
    の文字のコードに含まれる1つ以上のビットの値によっ
    て、該複数の文字を分類することを特徴とする請求項6
    記載の文字列探索装置。
  9. 【請求項9】 前記分類手段は、2つ以上の分類方法の
    中から、得られた各部類に含まれる文字の個数の偏りが
    最も小さい分類方法を採用することを特徴とする請求項
    6記載の文字列探索装置。
  10. 【請求項10】 前記第1の配列手段は、前記分類手段
    が採用した分類方法に対応する追番を、前記語頭に対応
    する追番として登録することを特徴とする請求項9記載
    の文字列探索装置。
  11. 【請求項11】 前記複数の部類の各々に対応して、各
    部類に含まれる1つ以上の文字を前記第1および第3の
    配列手段に登録するための変位量を計算する計算手段を
    さらに備えることを特徴とする請求項1記載の文字列探
    索装置。
  12. 【請求項12】 前記計算手段は、各部類に含まれる前
    記1つ以上の文字の値に任意の加算値をそれぞれ加算
    し、得られた1つ以上の和のすべてが前記第3の配列手
    段内の空き位置に対応するような加算値を求め、得られ
    た加算値のうち最小の加算値を前記変位量として求める
    ことを特徴とする請求項11記載の文字列探索装置。
  13. 【請求項13】 登録文字列の中から与えられた文字列
    を探索するコンピュータのためのプログラムを記録した
    記録媒体であって、 前記与えられた文字列の語頭に続いて次の文字が入力さ
    れたとき、該語頭の指標を添字として、第1の配列を参
    照するステップと、 前記第1の配列手段に登録された値が、前記語頭に対応
    する追番と前記語頭に連なる1つ以上の文字に共通する
    変位量のいずれであるかを識別するステップと、 前記登録された値が追番である場合、前記語頭に連なる
    複数の文字を分類して得られる複数の部類のうち該次の
    文字に対応する部類を求め、該追番を添字として、該複
    数の部類の各々に対応する変位量を登録した第2の配列
    を参照し、該次の文字の部類に対応する変位量を求め、
    第3の配列を参照し、得られた変位量と該次の文字の値
    の和を添字とする位置に前記語頭の指標が登録されてい
    るかどうかを調べるステップと、 前記登録された値が変位量である場合、前記第3の配列
    を参照し、該変位量と前記次の文字の値の和を添字とす
    る位置に前記語頭の指標が登録されているかどうかを調
    べるステップとを含む処理を前記コンピュータに実行さ
    せるためのプログラムを記録したコンピュータ読み取り
    可能な記録媒体。
  14. 【請求項14】 登録文字列のデータを記録した記録媒
    体であって、 複数の文字が連なる語頭の指標を添字として、該語頭に
    対応する追番を登録した第1の配列データと、 前記語頭に対応する追番を添字として、該語頭に連なる
    複数の文字を分類して得られる複数の部類の各々に対応
    する変位量を登録した第2の配列データと、 前記変位量と前記語頭に連なる文字の値の和を添字とし
    て、該語頭の指標を登録した第3の配列データとを含
    み、 語頭に連なる1つ以上の文字を分類しないで登録する場
    合、前記第1の配列データは、該1つ以上の文字が連な
    る語頭の指標を添字として、該1つ以上の文字に共通す
    る変位量を登録し、前記第3の配列データは、該1つ以
    上の文字に共通する変位量と該1つ以上の文字の値の和
    を添字として、該1つ以上の文字が連なる語頭の指標を
    登録し、前記登録文字列の中から与えられた文字列を探
    索する際に該与えられた文字列の語頭に続いて次の文字
    が入力されたとき該語頭の指標を添字として該第1の
    配列データを参照して、該第1の配列データに登録され
    た値が追番と変位量のいずれであるかが識別され、該登
    録された値が追番である場合、前記複数の部類のうち該
    次の文字に対応する部類が求められ、該追番を添字とし
    て前記第2の配列データを参照して、該次の文字の部類
    に対応する変位量が求められ、該第3の配列データを参
    照して、得られた変位量と該次の文字の値の和を添字と
    する位置に該語頭の指標が登録されているかどうかが調
    べられるような、前記登録文字列のデータを記録したコ
    ンピュータ読み取り可能な記録媒体。
  15. 【請求項15】 登録文字列の中から与えられた文字列
    を探索する文字列探索方法であって、 複数の文字が連なる語頭の指標を添字として、該語頭に
    対応する追番を第1の配列に登録し、 前記語頭に対応する追番を添字として、該語頭に連なる
    複数の文字を分類して得られる複数の部類の各々に対応
    する変位量を第2の配列に登録し、 前記変位量と前記語頭に連なる文字の値の和を添字とし
    て、該語頭の指標を第3の配列に登録し、 語頭に連なる1つ以上の文字を分類しないで登録する場
    合、該1つ以上の文字が連なる語頭の指標を添字とし
    て、該1つ以上の文字に共通する変位量を前記第1の配
    列手段に登録し、該1つ以上の文字に共通する変位量と
    該1つ以上の文字の値の和を添字として、該1つ以上の
    文字が連なる語頭の指標を前記第3の配列手段に登録
    し、 前記与えられた文字列の語頭に続いて次の文字が入力さ
    れたとき、該語頭の指標を添字として、前記第1の配列
    を参照し、 前記第1の配列手段に登録された値が、前記語頭に対応
    する追番と前記1つ以上の文字に共通する変位量のいず
    れであるかを識別し、 前記登録された値が追番である場合、前記複数の部類の
    うち該次の文字に対応する部類を求め、該追番を添字と
    して前記第2の配列を参照し、該次の文字の部類に対応
    する変位量を求め、前記第3の配列を参照し、得られた
    変位量と該次の文字の値の和を添字とする位置に前記語
    頭の指標が登録されているかどうかを調べ、 前記登録された値が変位量である場合、前記第3の配列
    を参照し、該変位量と前記次の文字の値の和を添字とす
    る位置に前記語頭の指標が登録されているかどうかを調
    べることを特徴とする文字列探索方法。
JP17364898A 1998-06-19 1998-06-19 文字列探索装置および方法 Expired - Fee Related JP3526748B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP17364898A JP3526748B2 (ja) 1998-06-19 1998-06-19 文字列探索装置および方法
US09/246,992 US6507678B2 (en) 1998-06-19 1999-02-08 Apparatus and method for retrieving character string based on classification of character
CNB991052951A CN1171162C (zh) 1998-06-19 1999-04-30 基于字符分类检索字符串的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17364898A JP3526748B2 (ja) 1998-06-19 1998-06-19 文字列探索装置および方法

Publications (2)

Publication Number Publication Date
JP2000010990A JP2000010990A (ja) 2000-01-14
JP3526748B2 true JP3526748B2 (ja) 2004-05-17

Family

ID=15964519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17364898A Expired - Fee Related JP3526748B2 (ja) 1998-06-19 1998-06-19 文字列探索装置および方法

Country Status (1)

Country Link
JP (1) JP3526748B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI720086B (zh) * 2015-12-10 2021-03-01 美商艾斯卡瓦公司 儲存在區塊處理儲存系統上的音頻資料和資料的縮減

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
増井俊之,効率の良いトライ/状態遷移機械の構成方式,情報処理学会研究報告,日本,社団法人情報処理学会,1994年 1月21日,第94巻 第7号,第73頁乃至第80頁
新版 情報ハンドブック,日本,株式会社オーム社,1995年11月25日,第1版,第1572頁乃至第1574頁
青江順一,ダブル配列による高速ディジタル検索アルゴリズム,電子情報通信学会論文誌D,日本,社団法人 電子情報通信学会,1988年 9月25日,VOL.J71−D No.9,第1592頁乃至第1600頁

Also Published As

Publication number Publication date
JP2000010990A (ja) 2000-01-14

Similar Documents

Publication Publication Date Title
US6507678B2 (en) Apparatus and method for retrieving character string based on classification of character
US7269547B2 (en) Tokenizer for a natural language processing system
JP4421134B2 (ja) 文書画像検索装置
US5706496A (en) Full-text search apparatus utilizing two-stage index file to achieve high speed and reliability of searching a text which is a continuous sequence of characters
US5748953A (en) Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols
US5590317A (en) Document information compression and retrieval system and document information registration and retrieval method
US6473754B1 (en) Method and system for extracting characteristic string, method and system for searching for relevant document using the same, storage medium for storing characteristic string extraction program, and storage medium for storing relevant document searching program
US5745745A (en) Text search method and apparatus for structured documents
JP3263963B2 (ja) 文書検索方法及び装置
JPH096799A (ja) 文書分類装置及び文書検索装置
JPH11316764A (ja) 構造化文書の検索方法および装置および構造化文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
CN111428494A (zh) 专有名词的智能纠错方法、装置、设备及存储介质
JP2833580B2 (ja) 全文インデックス作成装置および全文データベース検索装置
US5560037A (en) Compact hyphenation point data
WO2020037794A1 (zh) 一种英文地名的索引建立方法及其查询方法和装置
JP3220865B2 (ja) フルテキストサーチ方法
JP3258063B2 (ja) データベース検索システム及び方法
JP3428068B2 (ja) 文書処理装置および方法,ならびにデータ・ベース検索装置および方法
JP3303881B2 (ja) 文書検索方法および装置
JP3526748B2 (ja) 文字列探索装置および方法
JP3151730B2 (ja) データベース検索システム
JP3975825B2 (ja) 文字認識誤り訂正方法、装置及びプログラム
JPH11328318A (ja) 確率テーブル作成装置、確率方式言語処理装置、認識装置、及び、記録媒体
WO1996011442A1 (fr) Procede de traitement de donnees de caracteres, et appareil associe
JP2585951B2 (ja) コードデータ検索装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040123

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: 20040217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040217

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: 20080227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees