JPH06223107A - 辞書検索装置 - Google Patents

辞書検索装置

Info

Publication number
JPH06223107A
JPH06223107A JP5086803A JP8680393A JPH06223107A JP H06223107 A JPH06223107 A JP H06223107A JP 5086803 A JP5086803 A JP 5086803A JP 8680393 A JP8680393 A JP 8680393A JP H06223107 A JPH06223107 A JP H06223107A
Authority
JP
Japan
Prior art keywords
character
dictionary
index
search
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5086803A
Other languages
English (en)
Inventor
Hirokawa Hayashi
大川 林
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 JP5086803A priority Critical patent/JPH06223107A/ja
Publication of JPH06223107A publication Critical patent/JPH06223107A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 中程度の辞書あるいは辞書に類する文書の検
索に好適な辞書検索装置を実現する。 【構成】 辞書索引検索制御部10は、辞書検索制御部
9から検索キー情報をもらい、対象となる辞書の索引を
検索し、検索条件に適合する辞書のレコードの候補を探
し、候補の辞書本体15のアドレスを辞書検索制御部9
に渡す。辞書本体検索制御部11は、検索キー情報と候
偏の辞書本体のアドレスをもらい、辞書本体15を検索
し、検索キー情報と最終的な照合を行う。1文字索引に
その文字のレコード上の文字位置を併せて記録し、検索
文字列の位置を限定した一致検索の際に参照し、1文字
索引から辞書本体のレコードを実際に検査する候補の数
を限定する。

Description

【発明の詳細な説明】
【0001】
【技術分野】本発明は、辞書検索装置に関し、より詳細
には、文書作成、文書校正、文章推敲を行うための辞書
検索装置に関する。例えば、ワープロ、パソコン、パー
ソナルワープロなどのOA機器全般に適用されるもので
ある。
【0002】
【従来技術】検索を高速化するため、各種の索引を使用
することは広く行われている。また、1文字や多文字の
索引を持つことも非常に一般的である。また、検索高速
化のため、検索キーとなりそうな部分を全て持つ索引も
一般的である。さらに、検索キーの性質、検索キーの指
定内容(前方一致、後方一致、任意など)により、索引
の作り方および検索方法が異なるのが一般的である。例
えば、「電子ブック版広辞苑を読む」(ASCII, Vol.15,
#12 December 1991 pp.331-332)に記載されている。
さらに、辞書作成の方法等については、例えば「日本語
情報処理」(社団法人電子情報通信学会発行,昭.59.5.
30,P178〜223)に記載されている。
【0003】辞書や大量の文字列データでは必要とする
中身の検索を高速化するため、各種の索引を使用するこ
とは広く行われている。辞書に関しては以下のような方
法が一般的である。通常、辞書はなんらかの見出しがあ
り、その見出しは、文字コード順またはそれに近い形で
ソートされている。例えば、日本語の国語辞典の場合見
出しに読みと表記があり、その後に、品詞名、語釈など
が記載されている。通常見出しは辞書順(辞典により多
少異なるが)と呼ばれる読みの順に並んでいる。国語辞
典では辞書の検索で一番使われるのは見出しの読みによ
る検索である。これは、ある読みの語とその前後や附近
の語を調べるときも使われる。一方、見出しの表記につ
いては、その読みに対応しているので、辞書全体として
みると、一定の順序に並んではいない。特に、表記の順
に並べた辞書は別として、表記のみで検索するのは難し
い。ある程度表記で引けるように索引を設けた辞書や辞
書に類するものがある。
【0004】上記の辞書の説明は紙の辞書について述べ
たものだが、最近の電子化された辞書についても当ては
まる。電子化された辞書も、そのほとんどが紙の辞書の
イメージを保っている。しかし、検索については計算機
の力を借りて、より多様な引き方が簡単にできるように
なった。例えば、目的の語がはっきりしていてその物を
キーとし、目的の語そのものを取りだす完全一致検索、
キーを頭部に含む前方一致検索、キーを尾部に持つ後方
一致検索、キーを一部にもつ任意検索、見出しだけでな
く語釈などの記述に含まれるキーワードから関連づけて
引ける条件検索、あいまいな記述でもそれに類似する語
を探すあいまい検索などがある。
【0005】例えば、読みの前方一致を実現するには、
見出しの読みの索引(1文字から最大読み文字までの多
段階の索引)を設ければよい。また、読みの後方一致検
索では、読みを逆さにした見出しを持つ索引を設けて、
検索キーも文字列を逆さにすればよい。あいまい検索の
簡単なものは、あらかじめ索引を作る際に、あいまいに
成りやすい文字列から変換して登録する方法がある。条
件検索では、あらかじめ、キーワードと関連する語を対
応づけて持てばよい。また、これらの機能を計算機上で
ある程度容易に実現できるツールとしてデータベース構
築ツールが一般に提供されている。
【0006】容量の小さな辞書や文書では、検索は比較
的簡単にできる。辞書や文書の本文のデータを頭から総
なめにしてキーの条件にあうものを探していけばよい。
これらの検索ツールも一般の計算機上の付帯ツールやエ
ディタやワードプロセッサの機能で提供されている。し
かし、辞書のデータは一般に大きく、多くの記憶容量を
必要とする。また、現状では、記憶装置を含めた計算機
のスピードが、辞書のデータを頭から総なめにして扱う
には十二分に速いとは言えず、上記の多様な検索機能を
実現するには、速く引くための大量の索引データと場合
によっては、かなり複雑な検索機構を使って目的を満た
している。さらに、充実した検索機能を持つためには、
ときには辞書の(もともとの内容記述である)本来の中
身よりも索引の方が大きくなることもある。
【0007】
【目的】本発明は、上述のごとき実情に鑑みなされたも
ので、現状の計算機の能力を借りて中程度の辞書あるい
は辞書に類する文書の検索に好適な検索装置を提供する
こと、特に、辞書の保守や改良場面で他の辞書データを
参照する場合に適切な辞書検索装置を提供することを目
的としてなされたものである。
【0008】
【構成】本発明は、上記目的を達成するために、(1)
読みまたは表記を有するデータ、あるいはそのほかの情
報がレコード単位で収納されている辞書の検索を行う辞
書検索装置において、検索キーの対象となる読みまたは
表記の各文字と、辞書上のレコード位置を関連づけた索
引である1文字索引を持ち、検索キーを指定すると、検
索キー中の文字を抽出し、その文字を含む辞書上のレコ
ード位置を抽出する抽出手段と、レコード位置の辞書上
のレコードと検索キーと比較する比較手段と、検索キー
に適合するレコードを抽出表示する表示手段とから成る
こと、更には、(2)前記1文字索引は、各文字別にソ
ートされ、辞書上のレコード位置を登録した索引2と、
その索引の文字別のブロック先頭位置を登録した索引1
からなること、更には、(3)前記辞書のレコードが可
変長の場合、辞書の各レコード位置を登録した、辞書レ
コード位置索引を持ち、検索時の辞書レコードの取りだ
しに1文字索引から得た辞書上のレコード位置と同レコ
ード位置索引とから辞書のレコードを取り出すこと、更
には、(4)前記(2)において、前記1文字索引にお
いて、同一文字で辞書上の同じレコード位置が複数ある
場合、これを1つにしたこと、更には、(5)前記
(2)において、前記索引1において、任意の文字が、
辞書上の検索キーの対象となる部分に無い場合でも登録
し、その文字の索引2のブロック先頭位置を示す欄に
は、その文字が未登録であることを示す情報を設定し、
索引1の文字コードが連続するようにしたこと、更に
は、(6)前記(1)において、前記各文字の索引登録
時に検索に不要な文字を除去し、検索時はその文字を照
合の対象としないこと、更には、(7)前記(1)にお
いて、前記辞書上の各レコードの索引作成の範囲の限定
を文字位置で指定すること、更には、(8)前記(1)
において、前記辞書上の各レコードの索引作成の範囲の
限定を区切り記号で指定すること、更には、(9)前記
(1)において、前記検索の際に検索レコード範囲を限
定すること、更には、(10)前記(1)において、検
索結果の表示データ構造を指定できること、或いは、
(11)読みまたは表記を有するデータ、あるいはその
ほかの情報がレコード単位で収納されている辞書の検索
を行う辞書検索装置において、検索キーの対象となる読
みまたは表記の各文字と、辞書上のレコード位置を関連
づけた索引である1文字索引を持ち、検索キーを指定す
ると、検索キー中の文字を抽出する文字抽出手段と、前
記1文字索引の各々の文字を含む辞書レコードの総数を
計算する演算手段と、該演算手段による値が最小の文字
の索引を使って、その文字を含む辞書上のレコード位置
を抽出する位置抽出手段と、該位置抽出手段によるレコ
ード位置の辞書上のレコードと検索キーと比較する比較
手段と、検索キーに適合するレコードを抽出表示する表
示手段とから成ること、或いは、(12)読みまたは表
記を有するデータ、あるいはそのほかの情報がレコード
単位で収納されている辞書の検索を行う辞書検索装置に
おいて、検索キーの対象となる読みまたは表記の各文字
と、辞書上のレコード位置を関連づけた索引である1文
字索引を持ち、検索キーを指定すると、検索キー中に複
数の文字が含まれる場合に、該複数の文字から任意の文
字を選び、選ばれた文字の索引に含まれる辞書本体のレ
コード位置が同じものを抽出し、1文字索引から辞書本
体のレコードを実際に検査する候補の数を限定して、辞
書上のレコード位置を抽出する位置抽出手段と、該位置
抽出手段によるレコード位置の辞書上のレコードと検索
キーと比較する比較手段と、検索キーに適合するレコー
ドを抽出表示する表示手段とから成ること、更には、
(13)前記(12)において、辞書本体のレコード位
置が同じものを抽出する文字は、検索キー中の各文字を
含む辞書レコードの総数を計算し、計算された値が最小
の文字から順に選ぶこと、或いは、(14)読みまたは
表記を有するデータ、あるいはそのほかの情報がレコー
ド単位で収納されている辞書の検索を行う辞書検索装置
において、検索キーの対象となる読みまたは表記の各文
字と、辞書上のレコード位置を関連づけた索引である1
文字索引を有し、検索キーを指定すると該検索キー中の
文字を抽出する文字抽出手段と、該文字抽出手段により
抽出された文字を含む辞書上のレコード位置を抽出する
位置抽出手段と、該位置抽出手段により抽出された位置
の辞書上のレーコードと検索キーとを比較する比較手段
と、前記検索キーに適合するレコードを抽出表示する表
示手段とから成り、前記1文字索引にその文字のレコー
ド上の文字位置を併せて記録し、検索文字列の位置を限
定した一致検索の際に参照し、1文字索引から辞書本体
のレコードを実際に検査する候補の数を限定するように
したこと、更には、(15)前記検索キー中の文字に該
当する1文字索引の候補の数が一定数よりも少ない場合
は、検索文字列の位置を限定した一致検索の際であって
も、検索文字位置情報を使った候補の数の限定を行わず
に検索すること、更には、(16)前記検索キーの内容
が文字位置を限定する一致検索の場合は文字位置情報を
使用し、それ以外は文字位置情報を使用しないこと、更
には、(17)前記1文字索引の文字位置情報には、そ
の文字が辞書本体キー部の頭部または尾部であるかを記
憶すること、或いは、(18)読みまたは表記を有する
データ、あるいはそのほかの情報がレコード単位で収納
されている辞書の検索を行う辞書検索装置において、検
索キーの対象となる読みまたは表記の各文字と、辞書上
のレコード位置を関連づけた索引である1文字索引を有
し、検索キーを指定すると該検索キー中の文字を抽出す
る文字抽出手段と、該文字抽出手段により抽出された文
字を含む辞書上のレコード位置を抽出する位置抽出手段
と、該位置抽出手段により抽出された位置の辞書上のレ
コードと検索キーとを比較する比較手段と、前記検索キ
ーに適合するレコードを抽出表示する表示手段とから成
り、前記1文字索引にその文字のレコード上の文字位置
を併せて記録し、検索キー中に複数の文字が含まれる場
合に、該複数の文字の任意の文字を選び、選ばれた文字
の索引に含まれる辞書本体のレコード位置が同じものを
抽出し、抽出された文字の各文字間の距離と、1文字索
引に記録された各文字位置から得られる各文字間の距離
が一致するものを抽出し、1文字索引から辞書本体のレ
コードを実際に検査する候補の数を限定するようにした
こと、更には、(19)前記(18)において、前記検
索キー中の文字に該当する1文字索引の候補の数が一定
数よりも少ない場合は検索キー中に複数の文字が含まれ
る場合であっても、検索文字位置情報を使った各文字位
置から得られる各文字間の距離が一致する候補の数の限
定を行わずに検索すること、更には、(20)前記(1
8)において、前記1文字索引には、指定検索キー内の
先頭文字からの相対位置をその文字のレコード上の位置
情報として使用すること、更には、(21)前記(1
8)において、前記1文字索引の文字位置情報には、指
定検索キー内の先頭文字からの相対位置とその文字がキ
ーの終端かどうかの識別情報を併せて記載すること、更
には、(22)前記(14)〜(21)いずれかにおい
て、前記文字位置情報は、辞書行番号に重ねて記録する
こと、更には、(23)前記(21)において、その文
字がキーの終端かどうかの識別情報は、相対文字位置情
報に重ねて記録すること、或いは、(24)読みまたは
表記を有するデータ、あるいはそのほかの情報がレコー
ド単位で収納されている辞書の検索を行う辞書検索装置
において、検索キーの対象となる読みまたは表記の各文
字と、辞書上の文字位置を関連づけた索引である1文字
索引を有し、検索キーを指定すると該検索キー中の文字
を抽出する文字抽出手段と、該文字抽出手段により抽出
された文字を含む辞書上のレコード位置を抽出する位置
抽出手段と、該位置抽出手段により抽出された位置の辞
書上のレーコードと検索キーとを比較する比較手段と、
前記検索キーに適合するレコードを抽出表示する表示手
段とから成り、前記1文字索引は、各文字別にソートさ
れ、辞書上の文字位置を登録した索引2と、その索引の
文字別のブロック先頭条位置を登録した索引1からなる
こと、更には、前記1文字索引において、(25)各文
字を含む行先頭位置の探索範囲を索引文字位置範囲情報
により限定すること、更には、(26)各文字を含む行
番号情報を得るための索引を設けること、更には、(2
7)各文字を含む行番号情報を得るための各文字を含む
行番号情報を辞書上の文字位置を登録した索引2に併せ
て記載すること、更には、(28)各文字を含む行先頭
位置を得るための位置情報を辞書上の文字位置を登録し
た索引2に併せて記載すること、更には、(29)各文
字を含む行番号情報を得るための各文字を含む行番号情
報、および、各文字を含む行先頭位置を得るための位置
情報を辞書上の文字位置を登録した索引2に併せて記載
すること、更には、(30)1文字索引の文字位置情報
に併せて、その文字が辞書本体キー部の頭部または尾部
であるかを記憶すること、更には、(31)前記(2
6)記載の各文字を含む行番号情報を得るための索引に
おいて、各行の先頭または終了位置情報を持つ索引3
と、その索引の文字位置別のブロック先頭位置を登録し
た索引4からなることを特徴としたものである。
【0009】図1は、本発明による辞書検索装置の一実
施例を説明するための構成図で、図中、1は表示部、2
は入力部、3は外部記憶部、4は印刷部、5は制御部、
6は入力/編集制御部、7は辞書検索支援部、8は出力
制御部、9は辞書検索制御部、10は辞書索引検索制御
部、11は辞書本体検索制御部、12は出力表示制御
部、13は設定情報管理表、14は辞書索引、15は辞
書本体である。一般のOA機器であるパソコン、ワード
プロセッサなどと同様な構成となっている。中心に全体
を制御する制御部5があり、汎用マイクロコンピュー
タ、あるいは、専用LSIなどで実現されている。それ
に入出力、記憶を受持つ周辺装置のディスプレイ、キー
ボード、フロッピー、プリンタなどがある。また、制御
部5の下にデータの入力、編集、保管、印刷を制御する
部分があり、これらはファームウェア、専用LSIなど
で実現されている。
【0010】図1の例では、辞書検索支援部7のもとに
辞書検索制御部9、辞書索引検索制御部10、辞書本体
検索制御部11、出力表示制御部12で構成されてい
る。辞書検索制御部9は辞書の参照検索全体を担当す
る。また、各種辞書について参照検索に必要な設定情報
の解釈と管理を行う。辞書索引検索制御部10は辞書検
索制御部9の指示のもとに、辞書検索制御部9から検索
キー情報をもらい、対象となる辞書の1つまたは複数の
索引を検索し、検索条件に適合する辞書のレコードの候
補を探し、候補の辞書本体のアドレスを辞書検索制御部
9に渡す。辞書本体検索制御部11は辞書検索制御部9
の指令のもとに、検索キー情報と候補の辞書本体15の
アドレスをもらい、辞書本体15を検索し、検索キー情
報と最終的な照合を行う。出力表示制御部12は辞書検
索制御部9から辞書レコードの出力表示方法の設定情報
を受け取り、辞書出力するレコードを設定情報に合せて
加工し、レコード出力情報として辞書検索制御部9に送
る。辞書検索制御部9はレコード出力情報を制御部5を
介して出力制御部8に送ることで検索結果の表示を行
う。このほか上記のキーボードからくる入力情報や日本
語入力の際の仮名漢字変換は入力/編集制御部6のもと
で、また、データの編集、保管、印刷などは入力/編集
制御部6、出力制御部8のもとで行われる。
【0011】図2は本発明で検索を行う辞書の一例であ
る。この例では「読み」「表記」「品詞」「語釈」が辞
書の内容となっている。「通番」は辞書レコード(行)
の通し番号を表す(普通、通番は辞書の内容には含まれ
ていない)。図3は、図2の辞書の例から請求項1〜2
3における検索索引を造る過程を示したデータの一例で
ある。ここでは「読み」部分の1文字索引を作る例を示
している。図2の読み部分から順次1文字づつ取りだ
し、表の形でその文字を含む辞書の行番号を記録する。
これを辞書の全レコードについて行う(図3(a))。
次に、この表を「読み各文字」と「辞書行番号」を対と
して文字のコード順、辞書の行番号順でソートする。そ
の結果、文字と行番号を対とする1文字の索引を得る
(図3(b))。この索引は、各文字について、その文
字を含む辞書の行番号を知ることができる。図3では
「読み」の索引作成の例を示したが、同様にして「表
記」の索引を作成できる。この索引を用いて検索キーの
文字を含む部分の索引範囲を参照すれば辞書の検索が可
能である。しかし、辞書レコード数がある程度多い場合
は、索引の量も多くなり、索引の検索に時間がかかる。
以下、この点を補う索引構成を使う例で、請求項1〜1
0における実際の検索方法を説明する。
【0012】図4(a)〜(d)は、検索例で示した請
求項1〜10における検索方法の概念を説明する図であ
る。例えば、読みの検索キー「あい」を与える(図4
(a))と、検索キー中の先頭の1文字「あ」をキーに
して索引1を検索する(図4(b))。索引1は図4
(b)で示した索引で各文字の開始位置(より正確には
索引2の行番号「通番」)を記録したもので、次の索引
2は図4(b)と同じ内容の辞書行番号(位置)を記録
した表である。ただし、図4(b)の「文字」の欄は、
索引1で辞書行記載欄との対応が分るので省略してあ
る。索引1は図4の索引作成時に同時に作成することが
できる(後述図5参照)。
【0013】索引1の検索は、図示した文字の欄の先頭
「ー」から順にキー「あ」との一致を調べる(順検索、
図4(b)で示す矢印)。この他、順検索以外にバイナ
リサーチ(2分探索)の方法を用いてもよい。その結
果、索引2の「あ」の開始位置(索引2行番号)「00
2770」を得る。また、索引2の「ぃ」に開始位置
「007938」から、「あ」の終了位置「00793
7」を得る。これら先は、索引2の「あ」の「辞書行番
号(位置)」欄に記載の全ての辞書行番号(索引2「通
番」002770〜007937)を使って、辞書本体
のレコードを順次読み出し、検索キー「あい」と一致し
ているかを照合し、その結果適合したレコードを出力す
る。以上が、図4の例に基づく請求項1〜10における
検索方法の実施例の1つである。
【0014】図5は、図3と図4で説明した索引作成の
処理の概略フローを示す図である。ここでは、辞書や索
引を外部記憶装置のファイルとしておくことを想定して
説明する。step1 ;辞書データをファイルからバッファに1レコー
ド読む。step2 ;辞書レコード読み部分に該当する全ての文字を
順次取りだし、辞書レコード番号と対にして、ファイル
に書き出す(索引元データ1)。step3 ;索引元データ1を文字コード順、辞書レコード
番号順にソートする(索引元データ2)。step4 ;索引元データ2を順次読み出し、辞書レコード
番号のみを索引2に書き出すとともに、文字部のコード
の変り目で文字と索引2の行番号を対にして、索引1に
書き出す。
【0015】図6は、図4で説明した検索の処理の概略
フローを示す図である。step1 ;検索キー“あい”を解析し、索引を検索する文
字を1文字キー(あ)としてセットする。step2 ;索引1を読み、文字欄を先頭から順次サーチ
し、1文字キー(あ)と一致するものを探す。一致した
行の、索引2の行開始位置を記憶する。次の行の索引2
の(行開始位置−1)を索引2の探索終了位置として記
憶する。step3 ;記憶した索引2の行開始位置から探索終了位置
まで、索引2の辞書行位置を順次読み出し、その行番号
のレコートデータを辞書本体のファイルからバッファに
読み込み、読み部分と検索キーとを照合し、合致するレ
コードを表示またはファイルに書き出す。
【0016】次に、行番号から辞書本体を検索する方法
について説明する。辞書レコードが固定長の場合、ある
行のファイル上の位置(行の先頭文字位置:単位 byt
e)が次の式でわかる。辞書行番号が1から始まり、辞
書ファイル上の位置0から始まるとすると、 (辞書ファイル上の位置)=(辞書レコード長)×(辞
書行番号−1) 辞書レコードが可変長の場合、図4で説明した索引1と
索引2の他に、辞書のレコード先頭位置を登録した索引
3を作成する。可変長の場合、索引2で得た辞書番号が
示す索引3の行に登録されている「辞書行位置」が辞書
ファイル上の辞書レコードの先頭文字の位置となる。図
7に、辞書が可変長の場合の辞書行位置索引(索引3)
の例を示す。
【0017】図8は、上記索引3の作成処理概略フロー
を示す図である。step1 ;ファイル内辞書レコード先頭位置を0に初期化
する。ファイル内辞書レコード先頭位置索引(索引3)
の初期設定をする。step2 ;辞書データをファイルからレコード区切りまで
の1レコード読み、レコード長を記憶する。step3 ;辞書データは全て読んだかどうかを調べる。全
て読んであれば終了する。step4 ;前記step3において、辞書データを全て読んで
なければ、ファイル内辞書レコード先頭位置に上記レコ
ード長を加算し、ファイル内辞書レコード先頭位置を次
のレコードの先頭としてファイル内辞書レコード先頭位
置索引(索引3)に書き出し、前記step2へ戻る。
【0018】図9は、図3と図4で説明した索引作成の
処理の別の概略フローを示す図である。step1 ;辞書データをファイルからバッファに1レコー
ド読む。step2 ;辞書レコード読み部分に該当する全の文字を順
次取りだし、辞書レコード番号と対にして、ファイルに
書き出す(索引元データ1)。step3 ;索引元データ1文字コード順、辞書レコード番
号順にソートする(索引元データ2)。step4 ;索引データ2の重複レコートを除去する(索引
元データ3)。step5 ;索引元データ3を順次読み出し、辞書レコード
番号のみを索引2に書き出すとともに、文字部のコード
の変り目で文字と索引2の行番号を対にして、索引1に
書き出す。
【0019】ここで、図5の処理に加え、ソート後に索
引元データ2の重複レコードの除去処理を行っている。
索引対象となる「読み」や「表記」の欄の文字列に重複
が多い場合は索引の量が減少する。また、図6の処理概
略フローでは説明を省略したが、合致するレコードをそ
のまま出力すると、索引2の内容によっては同じレコー
ドを重複して表示することがある。該当レコードの出力
を単一にしたい場合には出力の時点で重複を避ける処理
を行う必要がある。この場合、図6の処理を取るか、図
9の処理を取るか目的に合せて選択する必要がある。図
6の処理では、辞書レコードに同一文字が含まれている
とき、そのまま出力するだけで、ちょうどその数だけレ
コードを出力できる。
【0020】図10は、図4で示した索引1の異なる作
成方法を示す図である。図4では辞書上索引の対象とな
りそこから取りだされた文字のみを登録したが、図10
では索引の対象となる可能性のある文字群、例えば、漢
字コード全体を全て登録する。この場合、索引2の行間
開位置のみ登録し、文字そのものの登録は省略する。図
10の例では取りだされなかった文字およびコードに対
応する文字がない部分の索引2の行開始位置には0を設
定して、索引2に登録されていないことを表す。この索
引1を検索する時は検索する1文字の文字コードから、
例えば、次の式に従って索引1の行位置を求め、そこに
記載の索引2の行開始位置を求める。その他は図4で示
した方法と同じである。漢字コード(シフトJISの場
合)全体を対象とする変換例(写像の例) (索引1行位置)=(数値に変換した文字コード)−
(オフセット値) (数値に変換した文字コード)=D1×256+D2 ここで、D1は文字コードの上位バイトで、D1(16
進で00〜FF)を正整数値(0〜255)に対応させ
た値、D2は文字コードの下バイトで、D1と同じ対応
〔オフセット値〕=漢字空白文字コードを上記変換によ
り算出した数値。
【0021】図11は、索引作成の際に索引を作成しな
い文字を登録する表の例を示す図である。辞書の「読
み」、「表記」、その他の部分には、検索キーの指定上
あまり意味がなく、かつ、その文字の有無で検索できな
くなる文字がある。この様な場合、それらの文字列を除
外して索引を作成し、検索時のキーにそれらの文字が含
まれていてもそれらを除外して検索する。図11の例は
辞書の表記部分に含まれる除外文字を示している。図5
の索引作成の処理で、辞書レコードの文字を取りだす際
この表を参照し、登録された文字はファイルに書き出さ
ない。また、図6の検索の処理で、検索キーを解析する
際この表を参照し登録された文字は索引を検索するキー
から除外するとともに、辞書本体のレコードと照合する
際照合の対象としない。
【0022】図12は、索引作成の際にレコード上のデ
ータの範囲を文字位置で限定する設定を行う指定表の例
を示す図である。図5の索引作成の処理で、辞書レコー
ドの文字を取りだす際この表を参照し、この範囲の文字
しか索引を作成しない。また、図6の検索の処理で、検
索キーを解析する際この表を参照し、この範囲の文字し
か検索の対象としない。この指定をすることで自由に検
索の対象範囲を変えることができる。また、索引作成時
と検索時に異なった指定をすることで種々の条件検索に
利用できる。特に固定長の辞書の場合、条件指定が正確
にできるので、先頭文字だけの検索や2文字目を先頭文
字としてみなす検索などに利用できる。可変長の辞書の
場合、前述の除外文字や後述の区切り記号の指定と組合
わせより範囲を限定することで、辞書データにかなりの
あいまいさがあってもより精度の高い索引作成と対応す
る検索が可能となる。
【0023】図13は、索引作成の際にレコード上のデ
ータの範囲を区切り記号で限定する設定を行う指定表の
例を示す図である。ここでは可変長の辞書の、表記部分
の「開始区切り」と「終了区切り」を設定している。図
5の索引作成の処理で、辞書レコードの文字を取りだす
際この表を参照し、この範囲の文しか索引を作成しな
い。また、図5の検索の処理で、検索キーを解析する際
この表を参照し、この範囲の文字しか検索の対象としな
い。
【0024】図14は、索引作成の際にレコード上のデ
ータの範囲を区切り記号で限定する設定を行う指定表の
別の例を示す図である。ここでは可変長の辞書の、読み
部分の「終了区切り」を設定している。この例では前述
のような「開始区切り」はなく、開始区切りは文字位置
で設定する。図15は、検索の際に検索レコード範囲を
限定する設定を行う指定表の例を示す図である。ここで
は検索の対象とする辞書上のレコード範囲を「開始位
置」と「終了位置」で指定している。この意味は例え
ば、検索結果を辞書上の物理的なある範囲に限定して得
たい場合である。辞書が大きく、物理的には辞書が複数
のボリュームに分れている場合や、これから分割しよう
とするとき、分けてデータを取り出したい。また、辞書
全体の検索データを得ると量が膨大となり、これを限定
したい時などに使用する。
【0025】図16は、検索結果の表示データ構造の設
定を行う指定表の例を示す図である。ここでは、固定長
および可変長に共通して指定できる例である。各指定の
意味は表の通りである。これらの指定は、検索の実行の
際、制御ファイルからあからじめ読み込んでおく。図1
7は、検索結果の表示データ構造の設定を行う別の指定
表の例を示す図である。ここでは、固定長の例で、レコ
ード上の任意の欄を自由に指定できる。図18は、検索
結果の表示データ構造の設定を行うさらに別の指定表の
例である。ここでは、半固定長の例で、レコードの前半
部は固定長で残りが可変長となっている。図19は、検
索結果の表示データ構造の設定を行うさらに別の指定表
の例である。ここでは、可変長の例で、レコードの各欄
は区切り記号で明確に区切られていることを想定してい
る。
【0026】図20(a)〜(d)は、請求項11〜1
3における検索方法の概念を説明する図で、例えば、読
みの検索キー「あい」を与える(図20(a))と、検
索キー中の先頭の1文字「あ」をキーにして索引1を検
索する(図20(b))。索引1は図20(b)で示し
た索引で各文字の開始位置(より正確には索引2の行番
号「通番」)を記録したもので、次の索引2は図20
(b)と同じ内容の辞書行番号(位置)を記録した表で
ある。ただし、図20(b)の「文字」の欄は、索引1
で辞書行記載欄との対応が分るので省略してある。索引
1は図20の索引作成時に同時に作成することができる
(後述図21参照)。
【0027】索引1の検索は、図示した文字の欄の先頭
「ー」から順にキー「あ」との一致を調べる(順検索、
図20(b)で示す矢印)。この他、順検索以外にバイ
ナリサーチ(2分探索)やキーを写像するハッシュ等の
方法を用いてもよい。その結果、索引2の「あ」の開始
位置(索引2行番号)「002770」を得る。また、
索引2の「ぃ」に開始位置「007938」から、
「あ」の終了位置「007937」を得る(図20
(b))の)。同様にして、検索キー中の2文字目の
「ぃ」の開始位置「008291」、終了位置「026
765」を得る(図20(b)の)。ここで、これら
の情報から検索キーの各文字(「あ」と「い」)それぞ
れに登録されている辞書本体のレコード数を調べると次
のようになる。 (「あ」の辞書本体レコード数) =(索引2「ぃ」の行開始位置)−(索引2「あ」の行
開始位置) =007938−002770=5168レコード (「い」の辞書本体レコード数) =(索引2「う」の行開始位置)−(索引2「い」の行
開始位置) =026766−008291=18475レコード これらの結果から、索引2に登録されている辞書本体レ
コード数の一番少ない文字は「あ」であることが分る。
これから先は、索引2の「あ」の「辞書行番号(位
置)」欄に記載の全ての辞書行番号(索引2「通番」0
02770〜007937)を使って、辞書本体のレコ
ードを順次読み出し、検索キー「あい」と一致している
かを照合し、その結果適合したレコードを出力する。
【0028】図21は、図3及び図20で説明した索引
作成の処理の概略フローを示す図である。ここでは、辞
書や索引を外部記憶装置のファイルとしておくことを想
定して説明する。step1 ;辞書データをファイルからバッファに1レコー
ド読む。step2 ;辞書レコード読み部分に該当する全ての文字を
順次取りだし、辞書レコード番号と対にして、ファイル
に書き出す(索引元データ1)。step3 ;索引元データ1を文字コード順、辞書レコード
番号順にソートする(索引元データ2)。step4 ;索引元データ2の重複レコードを除去する(索
引元データ3)。step5 ;索引元データ2を順次読み出し、辞書レコーデ
番号のみを索引2に書き出すとともに、文字部のコード
の変り目で文字と索引2の行番号を対にして、索引1に
書き出す。
【0029】図22は、図20で説明した検索の処理の
概略フローを示す図である。step1 ;検索キー(例:“あい”)を解析する(条件検
索、文字数など)。step2 ;キー文字数が1文字かどうかを判断する。step3 ;前記step2において、キー文字数が1文字でな
ければ、以下の処理を行う。 辞書本体レコード数最小値記憶域に取り得る最大値で初
期化する。検索キーの1文字(例:“あ” or “い”)
を索引1の検索キーにセットし、以下の処理を繰り返
し、辞書本体レコード数が最小の文字の索引2の行開始
位置と探索終了位置をセットする。索引1を読み、文字
欄を先頭から順次サーチし、索引1の検索キーと一致す
るものを探す。一致した行の索引2の行開始位置を記憶
する。索引2の行開始位置と次の行の索引2の行開始位
置からその文字の辞書本体レコード数を得る。と記
憶してある辞書本体レコード数最小値を比較し、<
のときはを新たな辞書本体レコード数最小値として
記憶する。合せて、行開始位置と次の行の索引2の(行
開始位置−1)を同最小値の索引2の行開始位置、探
索終了位置として記憶する。step4 ;前記step2において、キー文字数が1文字であ
れば、キー文字で索引1を検索し、索引2の行開始位
置、探索終了位置を記憶する。step5 ;記憶した、索引2の行開始位置から探索終了
位置まで、索引2の辞書行位置を順次読み出し、その
行番号のレコードデータを辞書本体のファイルからバフ
ァに読み込み、読み部分と検索キーとを照合し、合致す
るレコードを表示またはファイルに書き出す。
【0030】次に、行番号から辞書本体を検索する方法
について説明する。辞書レコードが固定長の場合、ある
行のファイル上の位置(行の先頭文字位置:単位 byt
e)が次の式でわかる。 (辞書ファイル上の位置)=(辞書レコード長)×(辞
書行番号−1) 辞書行番号が1から始まり、辞書ファイル上の位置0か
ら始まるとすると、辞書レコードが可変長の場合、図2
0で説明した索引1と索引2の他に、辞書のレコード先
頭位置を登録した索引3を作成する。可変長の場合、索
引2で得た辞書番号が示す索引3の行に登録されている
「辞書行位置」が辞書ファイル上の辞書レコードの先頭
文字の位置となる。この場合の辞書位置索引(索引3)
の例は、図7に示した例と同様であり、従って、その作
成処理フローは、図8と同じである。
【0031】図23,図24は、1文字索引を用いた請
求項11〜13における検索方法の他の例を説明する。
概要フロー図である。step1 ;検索キー(例:“あい”)す解析する(条件検
索、文字数など)。step2 ;キー文字数が1文字かどうかを判断する。step3 ;前記step2において、キー文字数が1文字でな
ければ、以下の処理を行う。
【0032】N個までの各文字の行開始位置と探索終了
位置の記憶域を設定する。検索キーの先頭からN個ま
での1文字(例:“あ” or “い”)を、順次索引1の
検索キーにセットし、以下の処理を繰り返し、N個まで
の各文字の索引2の行開始位置と探索終了位置をセット
する。索引1を読み、文字欄を先頭から順次サーチし、
索引1の検索キーと一致するものを探す。一致した行
の、索引2の行開始位置を記憶する。次の行の索引2の
(行開始位置−1)を探索終了位置として記憶する。st
ep4;記憶したN個の各文字の索引2行開始位置から探
索終了位置まで、索引2の辞書行位置データを順次並列
して読みだし、N個全部が一致する辞書行位置を以下の
ように探す。先頭文字の辞書行位置記憶域に先頭文字
の行開始位置の辞書行位置データをセットし、2文字目
の辞書行位置記憶域に2文字目の行開始位置の辞書行
位置データをセット、の内容を比較し、一致した
ら、同様にして先頭文字のとN文字目の記憶域とを
比較、全て一致するまで繰り返す。一致しないときは、
N文字目の記憶域に、次の行のデータをセットし、さ
らに、一致するまで比較する。一致した行番号のレコー
ドデータを辞書本体のファイルからバファに読み込み、
読み部分と検索キーとを照合し、合致するレコードを表
示またはファイルに書き出す。
【0033】step5;前記step2において、キー文字数
が1文字であれば、キー文字で索引1を検索し、索引2
の行開始位置、探索終了位置を記憶する。step6 ;記憶した、索引2の行開始位置から探索終了位
置まで、索引2の辞書行位置を順次読み出し、その行番
号のレコードデータを辞書本体のファイルからバファに
読み込み、読み部分と検索キーとを照合し、合致するレ
コードを表示またはファイルに書き出す。
【0034】この例は、検索キーに含まれる文字が複数
個ある場合、索引1の索引で得られる辞書本体の行開始
位置および終了位置を複数個記憶し、各文字の索引2の
情報を使って辞書本体を検索する前に検索候補を絞る方
法の一つを示している。請求項11〜13においては、
辞書上のキーとなる部分の文字列は1文字だけを取り出
すと、それらは辞書中のあらゆる場所に存在するのが普
通であるから、検索要求の文字列に対し、該当する候補
が非常に増える。検索文字列が1文字であれば、その全
てが要求に該当する候補となるが、検索文字列が複数の
ときは、1文字索引で得られる情報は一般的に要求に該
当しないものの方が多い。従って、候補が増える必然性
が高い。辞書について言えば、表記の部分をキーにする
場合は、候補の数はそれほど多くならないため、1文字
索引での検索は非常に有効である。しかし、辞書本体の
データが非常に多い場合や、図3で例としてあげた読み
をキーとする場合は、特に候補の数が多くなる。この場
合にも、高速に検索するには、なんらかの補助手段を必
要とする。
【0035】一般に索引よりも辞書本体の部分が大きい
ので、候補が多い場合は、辞書本体を直接引いて検索キ
ーと比較するよりも、索引の中である程度候補を絞った
方が処理時間が短くて済む可能性がある。特に、辞書本
体が低速の記憶装置に置かれている場合に有効である。
辞書本体が小さいか、高速の記憶装置に置かれている場
合は、索引で候補を絞るよりも簡単な索引で直接候補を
探す方が速くなる場合がある。この場合は、索引で候補
を絞る処理時間が障害となる。従って、検索する対象や
条件によって検索手段を選んだ方がよい。また、索引で
候補を絞る場合も全てを調べるのではなく、ある程度候
補を絞ったらそこで打ち切り、その候補で辞書本体を直
接検索した方がよい場合がある。
【0036】図23では、検索キーの文字列についてN
文字までの記憶域を用意し、そこに各文字の索引1から
得られる索引2の位置情報を設定し、最大N文字までの
索引2の辞書本体の行位置情報を見て、同じ行位置情報
がN文字全てに存在するとき、その行位置情報で辞書本
体を検索し、検索要求にあったものを探す方法である。
フローで詳しく説明していないが、検索文字列がN文字
未満の場合は、その数だけ比較する。また、検索文字列
に同一の文字が含まれている場合は、重複を避けて検索
をするようにしている。例えば、検索キーが「ああ」だ
とすると、フローの「検索キーを解析する」で、キー文
字数は1文字に相当するとして判断し、以後の処理を行
う。
【0037】図25,図26は、1文字索引を用いた請
求項11〜13における検索方法の更に他の例を説明す
る概要フロー図である。step1 ;検索キー(例:“あい”)を解析する(条件検
索、文字数など)。step2 ;キー文字数が1文字かどうかを判断する。step3 ;前記step2において、キー文字数が1文字でな
ければ、以下の処理を行う。 各文字の行開始位置と探索終了位置およびその辞書本体
レコード数の記憶域を設定する。N個までの各文字の
行開始位置を探索終了位置の記憶域を設定する。検索
キーの先頭からN個までの1文字(例:“あ” or
“い”)を、順次索引1の検索キーにセットし、以下の
処理を繰り返し、N個までの各文字の索引2の行開始位
置と探索終了位置をセットする。索引1を読み、文字欄
を先頭から順次サーチし、索引1の検索キーと一致する
ものを探す。一致した行の索引2の行開始位置、次の
行の索引2の(行開始位置−1)を探索終了位置とし
て、また、辞書本体レコード数をそれぞれ記憶域にセ
ットする。記憶した各文字の辞書本体レコード数を調
べ、その一番小さいものから順にN個を記憶域にセッ
トする。
【0038】step4;記憶したN個の各文字の索引2の
行開始位置から探索終了位置まで、索引2の辞書行
位置データを順次並列に読みだし、N個全部が一致す
る辞書行位置を以下のように探す。先頭文字の辞書行位
置記憶域に先頭文字の行開始位置の辞書行位置デー
タをセット、2文字目の辞書行位置記憶域に2文字
目の行開始位置の辞書行位置データをセット、
の内容を比較し、一致したら同様にして先頭文字のと
N文字目の記憶域とを比較、全て一致するまで繰り返
す。一致しないときは、N文字目の記憶域に、次の行
のデータをセットし、さらに一致するまで比較する。一
致した行番号のレコードデータを順次辞書本体のファイ
ルから順次バファに読み込み、読み部分と検索キーとを
照合し、合致するレコードを表示またはファイルに書き
出す。step5 ;前記step2において、キー文字数が1文字であ
れば、キー文字で索引1を検索し、索引2の行開始位
置、探索終了位置を記憶する。step6 ;記憶した、索引2の行開始位置から探索終了位
置まで、索引2の辞書行位置を順次読み出し、その行番
号のレコードデータを辞書本体のファイルからバファに
読み込み、読み部分と検索キーとを照合し、合致するレ
コードを表示またはファイルに書き出す。
【0039】この例は、図23,図24の例と同様に、
検索キーに含まれる文字が複数個ある場合、索引1の検
索で得られる辞書本体の行開始位置および終了位置を複
数個記憶し、各文字の索引2の情報を使って辞書本体を
検索する前に検索候補を絞る方法の一つを示している。
ここでは、索引上で候補を絞る1〜N個の文字を選ぶ際
に、辞書本体のレコード数が最小のものからN個を選ん
でいる。他は図23で説明した内容と同じである。
【0040】図27(a)〜(d)は、請求項14〜2
3における検索方法の概念を説明する図である。例え
ば、読みの検索キー「あい」を与える(図27(a))
と、検索キー中の先頭の1文字「あ」又は「い」をキー
にして索引1を検索する(図27(b))。索引1の検
索結果から、辞書本体のレコード数が最小の文字をキー
(この例では「あ」)にして、次の索引2を検索し(図
27(c))、さらに、辞書本体を検索する(図27
(d))。索引1は図27(b)で示した索引で各文字
の開始位置(より正確には索引2の行番号「通番」)を
記録したもので、次の索引2は図27(b)と同じ内容
の辞書行番号(位置)を記録した表である。ただし、図
27(b)の「文字」の欄は、索引1で辞書行記載欄と
の対応が分るので省略してある。索引1は図27の索引
作成時に同時に作成することができる(後述図28参
照)。
【0041】索引1の検索は、図示した文字の欄の先頭
「ー」から順にキー「あ」との一致を調べる(順検索、
図27(b)で示す矢印)。この他、順検索以外にバイ
ナリサーチ(2分探索)やキーを写像するハッシュ等の
方法を用いてもよい。その結果、索引2の「あ」の開始
位置(索引2行番号)「002770」を得る。また、
索引2の「ぃ」に開始位置「007938」から、
「あ」の終了位置「007937」を得る(図27
(b))の)。同様にして、検索キー中の2文字目の
「ぃ」の開始位置「008291」、終了位置「026
765」を得る(図27(b)の)。
【0042】これらの結果から、索引2に登録されてい
る辞書本体レコード数の一番少ない文字は「あ」である
ことが分る。これから先は、索引2の「あ」の「辞書行
番号(位置)」欄に記載の全ての辞書行番号(索引2
「通番」002770〜007937)を使って、辞書
本体のレコードを順次読み出し、検索キー「あい」と一
致しているかを照合し、その結果適合したレコードを出
力する。この場合、検索キーは2文字であるので、索引
2の文字「い」の「辞書行番号」欄を使って照合しても
よい。どちらを使うかは検索キーの検索条件や索引2の
各文字に対応する辞書行番号の登録数で決まる。検索キ
ーの検索条件には、いろいろあるが、指定したキーその
ものが辞書のキーと一致するものを取り出す完全一致検
索と指定したキーを部分的に含むものを取り出す部分一
致検索があり、さらに部分一致検索には指定キーが辞書
のキーの頭部と一致する前方一致、尾部と一致する後方
一致、辞書のキーの頭部や尾部といった位置に特に限定
されず任意の部分に一致する部分一致の3種類に分ける
のが一般的である。
【0043】ここで、図27(c)の索引2には、先に
述べた「辞書行位置」の他に、「文字位置」、「終端」
の2つの情報が記録されている。「文字位置」はその文
字が辞書レコードの中でどこにあるかを示す情報で、ま
た「終端」はその文字が辞書のキーの最後の文字であっ
たかどうかを示す情報である。図27(c)の例では、
「文字位置」はレコード上の先頭から数えて何番目の文
字であるか、「終端」はキー部の意味のある文字の最後
の文字(図2で読みの最後部、空白の直前の文字)であ
るとき「1」を、そうでない時「0」で表わしている。
このとき、前方一致の条件で「あい」を検索する場合、
先頭の文字「あ」を1文字索引のキーにして、索引2を
引き、「文字位置」を参照し、その文字位置が「00
1」のものだけを拾って辞書本体を引けばよいことが分
る。また、後方一致の条件で「あい」を検索する場合、
尾部の文字「い」を1文字索引のキーにして、索引2を
引き、「終端」を参照し、その終端が「1」のものだけ
を拾って辞書本体を引けばよいことが分る。完全一致の
場合も、この例では、前方一致か後方一致の方法をとれ
ばよいことが分る。図27で文字位置情報をレコードの
先頭からの位置と述べたが、これは、辞書本体のキー部
の先頭からの位置でもよい。
【0044】図28は、図3及び図27で説明した索引
作成の処理の概略フローを示す図である。ここでは、辞
書や索引を外部記憶装置のファイルとしておくことを想
定して説明する。step1 ;辞書データをファイルからバッファに1レコー
ド読む。step2 ;辞書レコード読み部分に該当する全ての文字を
順次取りだし、辞書レコード番号と文字位置を対にし
て、ファイルに書き出す(索引元データ1)。step3 ;索引元データ1を文字コード順、辞書レコード
番号順にソートする(索引元データ2)。step4 ;索引元データ2を順次読み出し、辞書レコード
番号と文字位置のみを索引2に書き出すとともに、文字
部のコードの変り目で文字と索引2の行番号を対にし
て、索引1に書き出す。
【0045】図29は、図27で説明した検索の処理の
概略フローを示す図である。step1 ;検索キー(例:“あい”)を解析する(条件検
索、文字数など)。step2 ;一致検索かどうかを判断する。step3 ;前記step2において、一致検索であれば、以下
の処理を行う。 前方一致検索、完全一致検索の場合は先端文字“あ”
を、後方一致検索の場合は末尾文字“い”を索引1の検
索キーにセットし、以下の処理で索引2の行開始位置と
探索終了位置をセットする。
【0046】処理 索引1を読み、文字欄を先頭から順次サーチし、索引1
の検索キーと一致するものを探す。一致した行の、索引
2の行開始位置を行開始位置、索引1の次の行の索引2
の行開始位置−1を探索終了位置とする。step4 ;前記 step2において、一致検索でなければ、
キー先頭文字で索引1を検索し、前記処理で索引2の
行開始位置と探索終了位置をセットする。step5 ;記憶した、索引2の行開始位置から探索終了位
置まで、索引2のレコードを順次読みだし、以下の処理
を繰り返えす。 処理 一致検索の場合、索引2の文字位置情報と先頭or末尾
文字の条件が一致していたら以下の処理を行う。一致
検索でない場合、以下の処理を行う。 処理 索引2の行番号に対応するレコードデータを辞書本体の
ファイルからバファに読み込み、読み部分と検索キーと
を照合し、合致するレコードを表示またはファイルに書
き出す。
【0047】次に、行番号から辞書本体を検索する方法
について説明する。辞書レコードが固定長の場合、ある
行のファイル上の位置(行の先頭文字位置:単位 byt
e)が次の式でわかる。 (辞書ファイル上の位置)=(辞書レコード長)×(辞
書行番号−1) 辞書行番号が1から始まり、辞書ファイル上の位置0か
ら始まるとすると、辞書レコードが可変長の場合、図2
7で説明した索引1と索引2の他に、辞書のレコード先
頭位置を登録した索引3を作成する。可変長の場合、索
引2で得た辞書番号が示す索引3の行に登録されている
「辞書行位置」が辞書ファイル上の辞書レコードの先頭
文字の位置となる。この場合の辞書位置索引(索引3)
の例は図7に示した例と同様であり、従って、その作成
処理フローは図8と同じである。
【0048】図30は、1文字索引を用いた請求項14
〜23における他の検索方法の概要を説明するためのフ
ロー図である。step1 ;検索キー(例:“あい”)を解析する(条件検
索、文字数など)。step2 ;キー文字数が1文字かどうかを判断する。step3 ;前記step2において、キー文字数が1文字でな
ければ、以下の処理を行う。 最大検索キー文字数までの文字を順次索引1の検索キー
にセットし、以下の処理を繰り返して索引2の行開始位
置と探索終了位置を文字数分記憶する。 処理 索引1を読み、文字欄を先頭から順次サーチし、索引1
の検索キーと一致するものを探す。一致した行の、索引
2の行開始位置を、行開始位置、索引1の次の行の索引
2の行開始位置−1を探索終了位置とする。
【0049】step4;前記 step2において、キー文字
数が一文字であれば、キー1文字で索引1を検索し、前
記の処理で索引2の行開始位置と探索終了位置を記憶
する。 step5 ;記憶した、索引2の行開始位置から探索終了位
置まで、索引2のレコードを順次読みだし、以下の処理
を繰り返えす。 処理 検索キー文字数が複数の場合、索引2から読み出した各
文字の辞書行が一致し、かつ、位置情報から、各文字間
の相対距離を順次計算し、全て一致していたら以下の処
理を行う。検索キー文字数が1文字の場合、以下の処
理を行う。 処理 索引2の行番号に対応するレコードデータを辞書本体の
ファイルからバファに読み込み、読み部分と検索キーと
を照合し、合致するレコードを表示またはファイルに書
き出す。
【0050】この例は、検索キーに含まれる文字が複数
個ある場合、索引1の索引で得られる辞書本体の行開始
位置および終了位置を複数個記憶し、各文字の索引2の
情報を使って辞書本体を検索する前に検索候補を絞る方
法の一つを示している。請求項14〜23においては、
辞書上のキーとなる部分の文字列は1文字だけを取り出
すと、それらは辞書中のあらゆる場所に存在するのが普
通であるから、検索要求の文字列に対し、該当する候補
が非常に増える。検索文字列が1文字であれば、その全
てが要求に該当する候補となるが、検索文字列が複数の
ときは、1文字索引で得られる情報は一般的に要求に該
当しないものの方が多い。従って、候補が増える必然性
が高い。辞書について言えば、表記の部分をキーにする
場合は、候補の数はそれほど多くならないため、1文字
索引での検索は非常に有効である。しかし、辞書本体の
データが非常に多い場合や、図3で例としてあげた読み
をキーとする場合は、特に候補の数が多くなる。この場
合にも、高速に検索するには、なんらかの補助手段を必
要とする。
【0051】一般に索引よりも辞書本体の部分が大きい
ので、候補が多い場合は、辞書本体を直接引いて検索キ
ーと比較するよりも、索引の中である程度候補を絞った
方が処理時間が短くて済む可能性がある。特に、辞書本
体が低速の記憶装置に置かれている場合に有効である。
辞書本体が小さいか、高速の記憶装置に置かれている場
合は、索引で候補を絞るよりも簡単な索引で直接候補を
探す方が速くなる場合がある。この場合は、索引で候補
を絞る処理時間が障害となる。従って、検索する対象や
条件によって検索手段を選んだ方がよい。また、索引で
候補を絞る場合も全てを調べるのではなく、ある程度候
補を絞ったらそこで打ち切り、その候補で辞書本体を直
接検索した方がよい場合がある。
【0052】図30では、検索キーの文字列が複数ある
場合、2つの文字の索引2の辞書行位置と文字位置情報
を調べ、辞書行位置が2つの文字で一致し、かつ各文字
間の相対距離を計算し、検索キーの各文字間の相対距離
と一致したものだけを辞書本体を引く候補とすればよ
い。図27の例では、検索キー「あい」は2文字で構成
され、「あ」と「い」の相対距離は「1」と計算でき
る。一方、索引2の例にある文字「あ」と「い」でこの
条件を満たすものは辞書行位置「000027」の
「あ」と「い」である。これらを式で表わすと、索引2
の検査で調べる相対距離は、 〔相対距離〕=|〔文字1文字位置〕−〔文字2の文字
位置〕| となる。
【0053】図29のフローで、一致検索が「はい」の
場合でも、1文字索引の索引1の検索によって、処理
の結果から〔探索終了位置−行開始位置+1〕で計算で
きる索引2の検査対象行数(候補数)が一定数以下のと
きは、以後の処理で文字位置情報と先頭or末尾文字
の条件判定を行わずに処理を行う。この一定数は本発
明の辞書検索装置の(CPUや周辺記憶装置のデータの
交換)性能にもよるが、現状の実用的な装置では候補が
数十から数百のオーダである。同様に、図30のフロー
で、検索キー文字数が複数の場合でも、候補数が一定数
以下の場合は各文字間の相対距離を計算せずに処理を
行う方がよい。
【0054】図31から図37は、図27に示した索引
2の構成方法の他の例を示したもので、図31は、「辞
書行位置」と「文字位置」のみのものを示し、辞書デー
タの内容によっては「終端」情報は必要がない場合があ
る。図32は、「辞書行位置」の他に「先頭」「終端」
があり、情報が独立してフラグ情報として設けたものを
示し、「文字位置」情報はない。前方、後方一致条件の
判定が容易である。この例では相対距離計算は行わな
い。図33は、図32の「先頭」「終端」情報を一緒に
したものを示し、同様の処理に使う。
【0055】図34は、情報としては「辞書行位置」と
「文字位置」を持ち、両者を合成したものを示し、取り
出し処理は多少面倒にはなるが、記憶域を節約できる場
合がある。この例では、数字列の頭に文字位置を付加し
ている。図35は、「辞書行位置」と「先頭」「終端」
を合成したものを示す。この例では、数字列の頭1桁に
「先頭」「終端」を更している。図36は、「辞書行位
置」と「文字位置」を合成し、かつ、「終端」情報を別
に持っている。図37は、「辞書行位置」と「文字位
置」を合成し、かつ、「先頭」と「終端」を合成した情
報を別に持っている。
【0056】図38は、図2の辞書の例から請求項24
〜31における検索索引を造る過程を示したデータの一
例である。ここでは「読み」部分の1文字索引を造る例
を示している。図2の読み部分から順次1文字づつ取り
だし、表の形でその文字の辞書内の文字位置(辞書ファ
イル上の位置)を記録する。これを辞書の全レコードに
ついて行う(図38(a))。次に、この表を「読み各
文字」と「辞書文字位置」を対として文字のコード順、
辞書内文字位置順でソートする。その結果、文字と文字
位置を対とする1文字の索引を得る(図38(b))。
この索引は、各文字について、辞書文字位置が連続して
記録されている。この索引を使って、任意の読み1文字
の辞書内の文字位置を知ることができる。図38では
「読み」の索引作成の例を示したが、同様にして「表
記」の索引を作成できる。この索引を用いて検索キーの
文字を含む部分の索引範囲を参照すれば辞書の検索が可
能である。しかし、辞書レコード数やキーとなる部分の
データ量がある程度多い場合は、索引の量も多くなり、
索引の検索に時間がかかる。
【0057】図39(a)〜(d)は、請求項24〜3
1における検索方法の概念を説明するための図である。
例えば、読みの検索キー「あい」を与える(図39
(a))と、検索キー中の各1文字(「あ」または
「い」)をキーにして索引1を検索する(図39
(b))。索引1の検索結果から、索引2のレコード数
が最小の文字をキー(この例では「あ」)にして、次の
索引2を検索し(図39(c))、さらに、辞書本体を
検索する(図39(d))。索引1は図39(b)で示
した索引で各文字の開始位置(より正確には索引2の行
番号「通番」)を記録したもので、次の索引2は図38
(b)と同じ内容の辞書文字位置を記録した表である。
ただし、図39(b)の「文字」の欄は、索引1で対応
が分るので省略してある。索引1は図39の索引作成時
に同時に作成することができる(後述図40参照)。
【0058】索引1の検索は、図示した文字の欄の先頭
「ー」から順にキー「あ」との一致を調べる(順検索、
図39(b)で示す矢印)。この他、順検索以外にバイ
ナリサーチ(2分探索)やキーを写像するハッシュ等の
方法を用いてもよい。その結果、索引2の「あ」の開始
位置(索引2行番号)「002770」を得る。また、
索引2の「ぃ」の開始位置「007938」から、
「あ」の終了位置「007937」を得る(図39
(b)の)。同様にして、検索キー中の2文字目の
「い」の開始位置「008291」、終了位置「026
765」を得る(図39(b)の)。これから先は、
例えば、索引2の「あ」の「辞書行番号(位置)」欄に
記載の全ての辞書行番号(索引2「通番」002770
〜007937)を使って、辞書本体のレコードを順次
読み出し、検索キー「あい」と一致しているか照合し、
その結果適合したレコードを出力する。この場合、検索
キーは2文字であるので、索引2の文字「い」の「辞書
行番号」欄を使って照合してもよい。どちらを使うかは
検索キーの検索条件や索引2の各文字に対応する辞書行
番号の登録数で決まる。辞書の登録数からみて最適な方
法については、前述の請求項11〜13の実施例におい
て記したので、以下の説明を簡単にするため、ここでは
省略する。
【0059】検索キーの検索条件には、いろいろある
が、指定したキーそのものが辞書のキーと一致するもの
を取り出す完全一致検索と指定したキーを部分的に含む
ものを取り出す部分一致検索があり、さらに部分一致検
索には指定キーが辞書のキーの頭部と一致する前方一
致、尾部と一致する後方一致、辞書のキーの頭部や尾部
といった位置に特に限定されず任意の部分に一致する部
分一致の3種類に分けるのが一般的である。
【0060】図40は、図38及び図39で説明した索
引作成の処理の概略フローを示す図である。ここでは、
辞書や索引を外部記憶装置のファイルとしておくことを
想定して説明する。step1 ;辞書データをファイルからバッファに1レコー
ドを読む。step2 ;辞書レコード読み部分に該当する全ての文字を
順次取りだし、各文字とその文字の辞書内の文字位置を
対にして、ファイルに書き出す(索引元データ1)。step3 ;索引元データ1を文字コード順、辞書文字位置
順にソートする(索引元データ2)。step4 ;索引元データ2を順次読み出し、辞書文字位置
のみを索引2に書き出すとともに、文字部のコードの変
り目で文字と索引2の行番号を対にして、索引1に書き
出す。
【0061】図41は、図39で説明した検索の処理の
概略フローを示す図である。step1 ;検索キー(例:“あい”)を解析する(条件検
索、文字数など)。step2 ;一致検索かどうかを判断する。step3 ;前記step2において、一致検索であれば、以下
の処理を行う。 前方一致検索、完全一致検索の場合は先頭文字“あ”
を、後方一致検索の場合は末尾文字“い”を索引1の検
索キーにセットし、以下の処理で索引2の行開始位置と
探索終了位置をセットする。 処理 索引1を読み、文字欄を先頭から順次サーチし、索引1
の検索キーと一致するものを探す。一致した行の、索引
2の行開始位置を、行開始位置、索引1の次の行の索引
2の行開始位置−1を探索終了位置とする。
【0062】step4;前記 step2において、一致検索
でなければ、キー先頭文字で索引1を検索し、前記の処
理で索引2の行開始位置と探索終了位置をセットす
る。step5 ;記憶した、索引2の行開始位置から探索終了位
置まで、索引2の辞書文字位置を順次読みだし、以下の
処理を繰り返えす。 処理 索引2の辞書文字位置に対応するレコードデータの位置
を処理で求め、辞書本体のファイルからバッファに読
み込み、読み部分と検索キーとを照合し、合致するレコ
ードを表示またはファイルに書き出す。 処理 辞書レコードが固定長の場合は 〔辞書ファイル上の位置〕=〔辞書文字位置〕−{(〔辞
書文字位置〕/〔辞書レコード長〕)の余り} 辞書レコードが可変長の場合は、辞書文字位置の前方ま
たは後方の文字例を順次調べる。
【0063】次に、行番号から辞書本体を検索する方法
について説明する。辞書レコードが固定長の場合、ある
行のファイル上の位置(行の先頭文字位置:単位 byt
e)が次の式でわかる。行の先頭文字位置および辞書文
字位置の辞書ファイル上の位置が0から始まるとする
と、 〔辞書ファイル上の位置〕=〔辞書文字位置〕−{(〔辞
書文字位置〕/〔辞書レコード長〕)の余り} である。ここで、記号「/」は整数の割り算を表わす。
また、辞書行番号が1から始まるとすると、 〔辞書行番号〕={(〔辞書文字位置〕/〔辞書レコード
長〕)の商}+1 である。辞書レコードが可変長の場合、辞書文字位置の
前方または後方の文字列を順次調べることで、その文字
を含む、レコードの切りだしを行なうことができる。ま
た、レコード番号が必要な場合は、辞書ファイルの先頭
から辞書文字位置までのレコード数を順次カウントする
ことで求めることができる。また、前方または後方の文
字列を調べる範囲は、前記の文字索引作成時のキー部の
存在範囲(レコード上のどこにあるかの目安の位置)の
指定情報やレコード長を使って限定できる。レコード長
は最大長などを陽に指定するか、索引作成的にレコード
長情報を入手できる。
【0064】例えば、レコード長と索引作成の対象とす
るキー文字列の存在範囲のようすがあらかじめ分かって
いる場合は、その文字位置から前方または後方のどちら
を探索した方が早くレコード区切りを見つけられるかど
うかを検索時に指定できるようにする。また、最大レコ
ード長と文字範囲から自動的に指定できるようにしても
よい。この場合、次のような判定基準で判断する。 A=(最大レコード長)−(キーの存在範囲上限位置) B=(キーの存在範囲下限位置) A>Bのとき前方(文字位置の値が小さい方)にレコー
ド区切りを見つける。A<Bのとき後方(文字位置の値
が大きい方)にレコード区切りを見つける。
【0065】また、辞書レコードが可変長の場合、辞書
行位置を図39で説明した索引1と索引2の他に、辞書
のレコードの先頭位置を登録した索引3を作成してもよ
い。索引3に登録されている索引2で得た辞書文字位置
が示す値と等しいかまたは小さく、一番近い値の「辞書
行開始位置」が辞書ファイル上の辞書レコードの先頭文
字の位置となる。この索引は検索は、前述の索引1の検
索と同様に順検索、バイナリサーチ、ハッシュ等の方法
で行なう(処理フローは省略する)。この際、索引の登
録位置が辞書行番号情報となる。この場合の辞書位置索
引(索引3)の例は図7に示した例と同様であり、従っ
て、その作成処理フローは図8と同じである。
【0066】図42は辞書行番号情報を付加した索引2
の例を示す図、図43は辞書行先頭位置情報を付加した
索引2の例を示す図、図44は辞書行番号情報および辞
書行先頭位置情報を付加した索引2の例を示す図で、図
42,図43の例は便宜上いずれも固定長の辞書データ
の例で説明しているが、可変長のデータの場合も表記載
の数値が変動するだけで同様である。
【0067】図45は辞書本体キー部の頭部または尾部
であるかの情報を得るための索引2の一例を示す図で、
この例では、図の「先頭&終端」の項に、頭部の場合は
「1」、尾部の場合は「2」、それ以外の文字の場合は
「0」を示す。図46は各文字を含む行番号情報を得る
ための別の索引の例を示す図で、索引3((a)図)の
ような辞書行開始位置情報があった場合、この索引作成
時に索引4((b)図)のように辞書ファイル上の位置
が一定長(ブロック)毎にその長さを越え一番近い索引
3の行位置を記録する(索引4)。検索時に辞書行開始
位置を求める場合、例えば、そのキー辞書文字位置を含
むブロックを索引4で探す。そのブロックの索引3の始
まる行を索引4の「索引3行位置」で求め、後は、前述
の索引3の説明と同様にして辞書行番号を求める。な
お、以上には、辞書を例に索引の作成と検索方法につい
て述べたが、これを辞書以外の類似の文書や文字列デー
タに摘要することもできる。
【0068】
【効果】以上の説明から明らかなように、本発明による
と、以下のような効果がある。 (1)請求項1に対応する効果:比較的簡便な方法で中
程度の辞書あるいは辞書に類する文書の検索を頭から総
なめして検索する方法に較べ非常に高速で行うことがで
きる。また、任意文字列の検索を高速に行う検索装置と
しては、従来のものに較べかなり簡便で索引の量が非常
に少なくて済む。 (2)請求項2に対応する効果:請求項1に較べ、やや
索引の量は多くなるが、索引構成を2段階とすること
で、辞書データが多い場合は、かなり高速に検索でき
る。 (3)請求項3に対応する効果:可変長の辞書データで
辞書のレコード位置索引を介することで、固定長と同等
な高速検索ができる。 (4)請求項4に対応する効果:同一文字で辞書上の同
じレコード位置が複数個ある場合、これを1つにしたこ
とで、索引の量を減らすことができる。 (5)請求項5に対応する効果:索引1の構造を、簡単
なデータ変換で高速に検索できる構造としたため、索引
容量がやや増加したが、より高速な検索ができる。 (6)請求項6に対応する効果:索引作成時に検索に不
要な文字除去することで、索引量を大幅に減らすととも
に、検索キー指定にともなうあいまいさを軽減すること
ができる。 (7)請求項7に対応する効果:辞書レコード上の文字
位置を指定し索引作成の範囲を限定できるので、索引作
成時のあいまいさを少しでも軽減できる。 (8)請求項8に対応する効果:区切り記号を使って辞
書レコード上の文字位置を指定し索引作成の範囲を限定
できるので、より的確な索引作成と検索ができる。 (9)請求項9に対応する効果:検索レコード範囲を限
定できるので、より辞書の保守改良の場合できめ細かい
対応ができる。 (10)請求項10に対応する効果:検索結果の表示デ
ータ構造をかなり任意に指定できるため、より目的にあ
ったデータ表示ができる。 (11)請求項11に対応する効果:比較的簡便な方法
で中程度の辞書あるいは辞書に類する文書の検索を頭か
ら総なめして検索する方法に較べ、非常に高速で行うこ
とができる。また、任意文字列の検索を高速に行う検索
装置としては、従来のものに較べかなり簡便で索引の量
が非常に少なくて済む。また、検索キーに複数の文字列
が含まれているときは、その中で一番候補の少ない文字
を選んで辞書本体を検索するようにしたので、従来の先
頭の1文字から検索する方法に較べ、より高速に検索で
きる。 (12)請求項12に対応する効果:請求項11に較
べ、選んだ複数の文字の索引に渡る全体の検査のため、
構成が複雑で記憶容量を必要とし、索引に関する処理量
も増加するが、検索キーに複数の文字列が含まれている
場合は、辞書本体の検索がより少なくて済み、辞書本体
の検索に時間が掛かるようにシステム条件のときにより
高速に検索ができる。 (13)請求項13に対応する効果:請求項11と請求
項12を組合せることで、構成がより複雑となるが、検
索キーに複数の文字列が含まれている場合は、平均でみ
ると辞書本体を検索する数が請求項11,請求項12の
場合よりさらに少なくて済み、より高速に検索ができ
る。 (14)請求項14に対応する効果:前記(11)に加
え、1文字索引にその文字のレコード上の文字位置を併
せて記録し、検索文字列の位置を限定した一致検索の際
に参照し、1文字索引から辞書本体のレコードを実際に
検査する候補の数を限定するようにしたので、文字位置
を限定する一致検索の場合、単に1文字索引にある候補
を全て辞書本体を引いて検査して検索する方法に較べ、
構成が複雑となるが、1文字索引で得られる候補が多い
場合により高速に検索できる。 (15)請求項15に対応する効果:検索キー中の文字
に該当する1文字索引の候補の数が一定数よりも少ない
場合は、検索文字列の位置を限定した一致検索であって
も、検索文字位置情報を使った候補の数の限定を行わ
ず、1文字索引にある候補を全て辞書本体を引いて検査
する方法を組合わせることで、請求項14の候補数が少
ない時に、検索文字位置情報を使った候補の数の限定に
かかる処理時間が相対的に大きな部分を占める欠点を補
い、総合的に検索を高速にできる。 (16)請求項16に対応する効果:検索キーの内容が
文字位置を限定する一致検索の場合は文字位置情報を使
用し、それ以外は文字位置情報を使用しないことで、無
駄な処理を省き一致検索以外の検索速度を向上すること
ができる。 (17)請求項17に対応する効果:1文字索引の文字
位置情報にはその文字が辞書本体キー部の頭部または尾
部であるかを記憶することで、1文字索引から得られた
候補をすぐに限定することができ、一致検索を高速にで
きる。 (18)請求項18に対応する効果:前記(11)に加
え、1文字索引にその文字のレコード上の文字位置を併
せて記録し、検索キー中に複数の文字が含まれる場合
に、それらの任意の文字を選び、それらの索引に含まれ
る辞書本体のレコード位置が同じものを抽出し、さら
に、それらの文字の各文字間の距離と、1文字索引に記
録された各文字位置から得られる各文字間の距離が一致
するものを抽出し、1文字索引から辞書本体のレコード
を実際に検査する候補の数を限定するようにしたので、
単に1文字索引にある候補を全て辞書本体を引いて検査
する検索する方法に較べ、構成が複雑となるが、1文字
索引で得られる候補が多い場合にはより高速に検索でき
る。 (19)請求項19に対応する効果:検索キー中の文字
に該当する1文字索引の候補の数が一定数よりも少ない
場合は、検索キー中に複数の文字が含まれる場合でも、
検索文字位置情報を使った文字間距離一致検査による候
補の数の限定を行わず、1文字索引にある候補を全て辞
書本体を引いて検査する方法を組合わせることで請求項
18の候補数が少ない時に文字間距離一致検査の処理時
間が相対的に大きな部分を占める欠点を補い、総合的に
検査を高速にできる。 (20)請求項20に対応する効果:1文字索引には、
レコード内の先頭文字からの相対位置をその文字のレコ
ード上の位置情報として使用するようにしたので、レコ
ード上の位置情報を記憶する容量を少なくできる。 (21)請求項21に対応する効果:1文字索引の文字
位置情報には、指定検索キー内の先頭文字からの相対位
置とその文字がキーの終端かどうかの識別情報を併せて
記載することで、検索キーの内容が一致検索の場合に1
文字索引から得られた候補をすぐに限定することがで
き、一致検索を高速にできる。 (22)請求項22に対応する効果:文字位置情報を辞
書行番号に重ねて記録することで、処理は複雑となる
が、索引の記憶容量を減らし、かつ、高速に検索ができ
る。 (23)請求項23に対応する効果:その文字がキーの
終端かどうかの識別情報を、相対文字位置情報に重ねて
記録することで処理は複雑となるが、索引の記憶容量を
減らし、かつ、高速に検索ができる。 (24)請求項24〜31に対応する効果:比較的簡便
な方法で中程度の辞書あるいは辞書に類する文書の検索
を頭から総なめして検索する方法に較べ非常に高速で行
うことができる。また、任意文字列の検索を高速に行う
検索装置としては、従来のものに較べかなり簡便で索引
の量が非常に少なくて済む。 (25)請求項25に対応する効果:各文字を含む行先
頭位置の探索範囲を索引作成時の索引文字位置範囲情報
により行先頭位置決めの際に、不要な探索を防止でき。
検索結果の行の切りだしをより高速化できる。 (26)請求項26に対応する効果:検索結果に行番号
情報が必要な場合、あらかじめ各文字を含む行番号情報
を得るための簡便な索引を設けることで、各文字位置の
行番号を先頭より順次検索し行番号を特定するよりも高
速に行番号情報が得られる。 (27)請求項27に対応する効果:検索結果に行番号
情報が必要な場合、請求項26より総合の索引量は大幅
に増えるが、あらかじめ各文字を含む行番号情報を辞書
上の文字位置を登録した索引2に併せて記載すること
で、請求項26よりもさらに高速に行番号情報が得られ
る。 (28)請求項28に対応する効果:請求項25より総
合の索引量は大幅に増えるが、あらかじめ各文字を含む
行先頭位置を得るための位置情報を辞書上の文字位置を
登録した索引2に併せて記載することで、検索結果の行
の切りだしを請求項25よりもさらに高速化にできる。 (29)請求項29に対応する効果:検索結果に行番号
情報が必要な場合、かつ行の切りだしにより高速性を狙
う場合は、前記(26),(27)に記載の索引を併せ
て持つことで、総合の索引量はさらに増えるが、行番号
情報および行の切りだしをそれぞれをより高速に行なう
ことができる。 (30)請求項30に対応する効果:1文字索引の文字
位置情報に併せて、その文字が辞書本体キー部の頭部ま
たは尾部であるかを記憶することで、1文字索引から得
られた候補をすぐに限定することができ、一致検索をよ
り高速にできる。 (31)請求項31に対応する効果:検索結果に行番号
情報が必要な場合、請求項26より総合の索引量はさら
に増えるが、各文字を含む行番号情報を得るための索引
は各行の先頭または終了位置情報を持つ索引4と、その
索引の文字位置別のブロック先頭位置を登録した索引を
設けることで、請求項26よりさらに高速に行番号情報
が得られる。
【図面の簡単な説明】
【図1】 本発明による辞書検索装置の一実施例を説明
するための構成図である。
【図2】 本発明の辞書の例を示す図である。
【図3】 本発明の索引作成の例を示す図である。
【図4】 請求項1〜10における検索方法の概念図を
示す図である。
【図5】 請求項1〜10における索引作成の処理概略
フロー1を示す図である。
【図6】 請求項1〜10における検索の処理概念フロ
ー1を示す図である。
【図7】 本発明の辞書が可変長の場合の辞書行位置索
引を示す図である。
【図8】 本発明の索引3作成の処理概略フロー1を示
す図である。
【図9】 請求項1〜10における索引作成の処理概略
フロー2を示す図である。
【図10】 請求項1〜10における異なる索引1の例
を示す図である。
【図11】 請求項1〜10における索引を作成しない
文字を登録する表の例を示す図である。
【図12】 請求項1〜10における索引作成データ範
囲文字位置限定指定書の例を示す図である。
【図13】 請求項1〜10における索引作成データ範
囲区切り記号限定指定表の例1を示す図である。
【図14】 請求項1〜10における索引作成データ範
囲区切り記号限定指定表の例2を示す図である。
【図15】 請求項1〜10における検索レコード範囲
設定指定表の例を示す図である。
【図16】 請求項1〜10における検索結果表示デー
タ構造の指定の例1を示す図である。
【図17】 請求項1〜10における検索結果表示デー
タ構造の指定の例2を示す図である。
【図18】 請求項1〜10における検索結果表示デー
タ構造の指定の例3を示す図である。
【図19】 請求項1〜10における検索結果表示デー
タ構造の指定の例4を示す図である。
【図20】 請求項11〜13における検索方法の概念
図を示す図である。
【図21】 請求項11〜13における索引作成の処理
概略フロー1を示す図である。
【図22】 請求項11〜13における検索の処理概念
フロー1を示す図である。
【図23】 請求項11〜13における索引作成の処理
概略フロー2(その1)を示す図である。
【図24】 請求項11〜13における索引作成の処理
概略フロー2(その2)を示す図である。
【図25】 請求項11〜13における検索の処理概略
フロー3(その1)を示す図である。
【図26】 請求項11〜13における検索の処理概略
フロー3(その2)を示す図である。
【図27】 請求項14〜23における検索方法の概念
図を示す図である。
【図28】 請求項14〜23における索引作成の処理
概略フロー1を示す図である。
【図29】 請求項14〜23における検索の処理概念
フロー1を示す図である。
【図30】 請求項14〜23における検索の処理概略
フロー2を示す図である。
【図31】 請求項14〜23における索引2の構成方
法1を示す図である。
【図32】 請求項14〜23における索引2の構成方
法2を示す図である。
【図33】 請求項14〜23における索引2の構成方
法3を示す図である。
【図34】 請求項14〜23における索引2の構成方
法4を示す図である。
【図35】 請求項14〜23における索引2の構成方
法5を示す図である。
【図36】 請求項14〜23における索引2の構成方
法6を示す図である。
【図37】 請求項14〜23における索引2の構成方
法7を示す図である。
【図38】 請求項24〜31における索引作成の例を
示す図である。
【図39】 請求項24〜31における検索方法の概念
図を示す図である。
【図40】 請求項24〜31における索引作成の処理
概略フロー1を示す図である。
【図41】 請求項24〜31における検索の処理概略
フロー1を示す図である。
【図42】 請求項24〜31における行番号情報付き
の索引2の例を示す図である。
【図43】 請求項24〜31における行先頭位置情報
付き索引2の例を示す図である。
【図44】 請求項24〜31における行番号情報およ
び行先頭位置情報付きの索引2の例を示す図である。
【図45】 請求項24〜31における辞書本体キー頭
部ままた尾部情報付きの索引2の例を示す図である。
【図46】 請求項24〜31における行番号情報を得
るための別の索引の例を示す図である。
【符号の説明】
1…表示部、2…入力部、3…外部記憶部、4…印刷
部、5…制御部、6…入力/編集制御部、7…辞書検索
支援部、8…出力制御部、9…辞書検索制御部、10…
辞書索引検索制御部、11…辞書本体検索制御部、12
…出力表示制御部、13…設定情報管理表、14…辞書
索引、15…辞書本体。

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 読みまたは表記を有するデータ、あるい
    はそのほかの情報がレコード単位で収納されている辞書
    の検索を行う辞書検索装置において、検索キーの対象と
    なる読みまたは表記の各文字と、辞書上のレコード位置
    を関連づけた索引である1文字索引を持ち、検索キーを
    指定すると、検索キー中の文字を抽出し、その文字を含
    む辞書上のレコード位置を抽出する抽出手段と、レコー
    ド位置の辞書上のレコードと検索キーと比較する比較手
    段と、検索キーに適合するレコードを抽出表示する表示
    手段とから成ることを特徴とする辞書検索装置。
  2. 【請求項2】 前記1文字索引は、各文字別にソートさ
    れ、辞書上のレコード位置を登録した索引2と、その索
    引の文字別のブロック先頭位置を登録した索引1からな
    ることを特徴とする請求項1記載の辞書検索装置。
  3. 【請求項3】 前記辞書のレコードが可変長の場合、辞
    書の各レコード位置を登録した、辞書レコード位置索引
    を持ち、検索時の辞書レコードの取りだしに1文字索引
    から得た辞書上のレコード位置と同レコード位置索引と
    から辞書のレコードを取り出すことを特徴とする請求項
    1記載の辞書検索装置。
  4. 【請求項4】 前記1文字索引において、同一文字で辞
    書上の同じレコード位置が複数ある場合、これを1つに
    したことを特徴とする請求項2記載の辞書検索装置。
  5. 【請求項5】 前記索引1において、任意の文字が、辞
    書上の検索キーの対象となる部分に無い場合でも登録
    し、その文字の索引2のブロック先頭位置を示す欄に
    は、その文字が未登録であることを示す情報を設定し、
    索引1の文字コードが連続するようにしたことを特徴と
    する請求項2記載の辞書検索装置。
  6. 【請求項6】 前記各文字の索引登録時に検索に不要な
    文字を除去し、検索時はその文字を照合の対象としない
    ことを特徴とする請求項1記載の辞書検索装置。
  7. 【請求項7】 前記辞書上の各レコードの索引作成の範
    囲の限定を文字位置で指定することを特徴とする請求項
    1記載の辞書検索装置。
  8. 【請求項8】 前記辞書上の各レコードの索引作成の範
    囲の限定を区切り記号で指定することを特徴とする請求
    項1記載の辞書検索装置。
  9. 【請求項9】 前記検索の際に検索レコード範囲を限定
    することを特徴とする請求項1記載の辞書検索装置。
  10. 【請求項10】 検索結果の表示データ構造を指定でき
    ることを特徴とする請求項1記載の辞書検索装置。
  11. 【請求項11】 読みまたは表記を有するデータ、ある
    いはそのほかの情報がレコード単位で収納されている辞
    書の検索を行う辞書検索装置において、検索キーの対象
    となる読みまたは表記の各文字と、辞書上のレコード位
    置を関連づけた索引である1文字索引を持ち、検索キー
    を指定すると、検索キー中の文字を抽出する文字抽出手
    段と、前記1文字索引の各々の文字を含む辞書レコード
    の総数を計算する演算手段と、該演算手段による値が最
    小の文字の索引を使って、その文字を含む辞書上のレコ
    ード位置を抽出する位置抽出手段と、該位置抽出手段に
    よるレコード位置の辞書上のレコードと検索キーと比較
    する比較手段と、検索キーに適合するレコードを抽出表
    示する表示手段とから成ることを特徴とする辞書検索装
    置。
  12. 【請求項12】 読みまたは表記を有するデータ、ある
    いはそのほかの情報がレコード単位で収納されている辞
    書の検索を行う辞書検索装置において、検索キーの対象
    となる読みまたは表記の各文字と、辞書上のレコード位
    置を関連づけた索引である1文字索引を持ち、検索キー
    を指定すると、検索キー中に複数の文字が含まれる場合
    に、該複数の文字から任意の文字を選び、選ばれた文字
    の索引に含まれる辞書本体のレコード位置が同じものを
    抽出し、1文字索引から辞書本体のレコードを実際に検
    査する候補の数を限定して、辞書上のレコード位置を抽
    出する位置抽出手段と、該位置抽出手段によるレコード
    位置の辞書上のレコードと検索キーと比較する比較手段
    と、検索キーに適合するレコードを抽出表示する表示手
    段とから成ることを特徴とする辞書検索装置。
  13. 【請求項13】 辞書本体のレコード位置が同じものを
    抽出する文字は、検索キー中の各文字を含む辞書レコー
    ドの総数を計算し、計算された値が最小の文字から順に
    選ぶことを特徴とする請求項12記載の辞書検索装置。
  14. 【請求項14】 読みまたは表記を有するデータ、ある
    いはそのほかの情報がレコード単位で収納されている辞
    書の検索を行う辞書検索装置において、検索キーの対象
    となる読みまたは表記の各文字と、辞書上のレコード位
    置を関連づけた索引である1文字索引を有し、検索キー
    を指定すると該検索キー中の文字を抽出する文字抽出手
    段と、該文字抽出手段により抽出された文字を含む辞書
    上のレコード位置を抽出する位置抽出手段と、該位置抽
    出手段により抽出された位置の辞書上のレーコードと検
    索キーとを比較する比較手段と、前記検索キーに適合す
    るレコードを抽出表示する表示手段とから成り、前記1
    文字索引にその文字のレコード上の文字位置を併せて記
    録し、検索文字列の位置を限定した一致検索の際に参照
    し、1文字索引から辞書本体のレコードを実際に検査す
    る候補の数を限定するようにしたことを特徴とする辞書
    検索装置。
  15. 【請求項15】 前記検索キー中の文字に該当する1文
    字索引の候補の数が一定数よりも少ない場合は、検索文
    字列の位置を限定した一致検索の際であっても、検索文
    字位置情報を使った候補の数の限定を行わずに検索する
    ことを特徴とする請求項14記載の辞書検索装置。
  16. 【請求項16】 前記検索キーの内容が文字位置を限定
    する一致検索の場合は文字位置情報を使用し、それ以外
    は文字位置情報を使用しないことを特徴とする請求項1
    4記載の辞書検索装置。
  17. 【請求項17】 前記1文字索引の文字位置情報には、
    その文字が辞書本体キー部の頭部または尾部であるかを
    記憶することを特徴とする請求項14記載の辞書検索装
    置。
  18. 【請求項18】 読みまたは表記を有するデータ、ある
    いはそのほかの情報がレコード単位で収納されている辞
    書の検索を行う辞書検索装置において、検索キーの対象
    となる読みまたは表記の各文字と、辞書上のレコード位
    置を関連づけた索引である1文字索引を有し、検索キー
    を指定すると該検索キー中の文字を抽出する文字抽出手
    段と、該文字抽出手段により抽出された文字を含む辞書
    上のレコード位置を抽出する位置抽出手段と、該位置抽
    出手段により抽出された位置の辞書上のレコードと検索
    キーとを比較する比較手段と、前記検索キーに適合する
    レコードを抽出表示する表示手段とから成り、前記1文
    字索引にその文字のレコード上の文字位置を併せて記録
    し、検索キー中に複数の文字が含まれる場合に、該複数
    の文字の任意の文字を選び、選ばれた文字の索引に含ま
    れる辞書本体のレコード位置が同じものを抽出し、抽出
    された文字の各文字間の距離と、1文字索引に記録され
    た各文字位置から得られる各文字間の距離が一致するも
    のを抽出し、1文字索引から辞書本体のレコードを実際
    に検査する候補の数を限定するようにしたことを特徴と
    する辞書検索装置。
  19. 【請求項19】 前記検索キー中の文字に該当する1文
    字索引の候補の数が一定数よりも少ない場合は検索キー
    中に複数の文字が含まれる場合であっても、検索文字位
    置情報を使った各文字位置から得られる各文字間の距離
    が一致する候補の数の限定を行わずに検索することを特
    徴とする請求項18記載の辞書検索装置。
  20. 【請求項20】 前記1文字索引には、指定検索キー内
    の先頭文字からの相対位置をその文字のレコード上の位
    置情報として使用することを特徴とする請求項18記載
    の辞書検索装置。
  21. 【請求項21】 前記1文字索引の文字位置情報には、
    指定検索キー内の先頭文字からの相対位置とその文字が
    キーの終端かどうかの識別情報を併せて記載することを
    特徴とする請求項18記載の辞書検索装置。
  22. 【請求項22】 前記文字位置情報は辞書行番号に重ね
    て記録することを特徴とする請求項14〜21いずれか
    1項に記載の辞書検索装置。
  23. 【請求項23】 その文字がキーの終端かどうかの識別
    情報は、相対文字位置情報に重ねて記録することを特徴
    とする請求項21記載の辞書検索装置。
  24. 【請求項24】 読みまたは表記を有するデータ、ある
    いはそのほかの情報がレコード単位で収納されている辞
    書の検索を行う辞書検索装置において、検索キーの対象
    となる読みまたは表記の各文字と、辞書上の文字位置を
    関連づけた索引である1文字索引を有し、検索キーを指
    定すると該検索キー中の文字を抽出する文字抽出手段
    と、該文字抽出手段により抽出された文字を含む辞書上
    のレコード位置を抽出する位置抽出手段と、該位置抽出
    手段により抽出された位置の辞書上のレーコードと検索
    キーとを比較する比較手段と、前記検索キーに適合する
    レコードを抽出表示する表示手段とから成り、前記1文
    字索引は、各文字別にソートされ、辞書上の文字位置を
    登録した索引2と、該索引の文字別のブロック先頭位置
    を登録した索引からなるこを特徴とする辞書検索装置。
  25. 【請求項25】 前記1文字索引において、各文字を含
    む行先頭位置の探索範囲を索引文字位置範囲情報により
    限定することを特徴とする請求項24に記載の辞書検索
    装置。
  26. 【請求項26】 前記1文字索引において、各文字を含
    む行番号情報を得るための索引を設けることを特徴とす
    る請求項24記載の辞書検索装置。
  27. 【請求項27】 前記1文字索引において、各文字を含
    む行番号情報を得るための各文字を含む行番号情報を辞
    書上の文字位置に登録した索引2に併せて記載すること
    を特徴とする請求項24記載の辞書検索装置。
  28. 【請求項28】 前記1文字索引において、各文字を含
    む行先頭位置を得るための位置情報を辞書上の文字位置
    を登録した索引2に併せて記載することを特徴とする請
    求項24記載の辞書検索装置。
  29. 【請求項29】 前記1文字索引において、各文字を含
    む行番号情報を得るための各文字を含む行番号情報、お
    よび、各文字を含む行先頭位置を得るための位置情報を
    辞書上の文字位置を登録した索引2に併せて記載するこ
    とを特徴とする請求項24記載の辞書検索装置。
  30. 【請求項30】 前記1文字索引において、1文字索引
    の文字位置に併せて、その文字が辞書本体キー部の頭部
    または尾部であるかを記憶することを特徴とする請求項
    24記載の辞書検索装置。
  31. 【請求項31】 前記各文字を含む行番号情報を得るた
    めの索引において、各行の先頭または終了位置情報を持
    つ索引3と、その索引の文字位置別のブロック先頭位置
    を登録した索引4からなることを特徴とする請求項26
    記載の辞書検索装置。
JP5086803A 1992-03-25 1993-03-22 辞書検索装置 Pending JPH06223107A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5086803A JPH06223107A (ja) 1992-03-25 1993-03-22 辞書検索装置

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP10051092 1992-03-25
JP14326292 1992-05-07
JP4-350762 1992-12-04
JP35076292 1992-12-04
JP4-143262 1992-12-04
JP4-100510 1992-12-04
JP5086803A JPH06223107A (ja) 1992-03-25 1993-03-22 辞書検索装置

Publications (1)

Publication Number Publication Date
JPH06223107A true JPH06223107A (ja) 1994-08-12

Family

ID=27467301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5086803A Pending JPH06223107A (ja) 1992-03-25 1993-03-22 辞書検索装置

Country Status (1)

Country Link
JP (1) JPH06223107A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034870A (ja) * 2005-07-29 2007-02-08 Team Lab Inc 距離の概念に基づく言語処理装置
WO2014174599A1 (ja) * 2013-04-24 2014-10-30 株式会社日立製作所 計算機、記録媒体及びデータ検索方法
CN111180082A (zh) * 2019-12-30 2020-05-19 泰康保险集团股份有限公司 医疗信息系统数据初始化方法、系统、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034870A (ja) * 2005-07-29 2007-02-08 Team Lab Inc 距離の概念に基づく言語処理装置
WO2014174599A1 (ja) * 2013-04-24 2014-10-30 株式会社日立製作所 計算機、記録媒体及びデータ検索方法
JP5978393B2 (ja) * 2013-04-24 2016-08-24 株式会社日立製作所 計算機、記録媒体及びデータ検索方法
JPWO2014174599A1 (ja) * 2013-04-24 2017-02-23 株式会社日立製作所 計算機、記録媒体及びデータ検索方法
CN111180082A (zh) * 2019-12-30 2020-05-19 泰康保险集团股份有限公司 医疗信息系统数据初始化方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
JP3160201B2 (ja) 情報検索方法、情報検索装置
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
US5523946A (en) Compact encoding of multi-lingual translation dictionaries
US5745745A (en) Text search method and apparatus for structured documents
US5794177A (en) Method and apparatus for morphological analysis and generation of natural language text
JPH0797373B2 (ja) 文書フアイリングシステム
US7010519B2 (en) Method and system for expanding document retrieval information
JPH0782504B2 (ja) 情報検索処理方式および検索ファイル作成装置
JPH0869476A (ja) 検索システム
JPH07287716A (ja) 辞書検索装置
JPH06223107A (ja) 辞書検索装置
JPH08314966A (ja) 文書検索装置のインデックス作成方法及び文書検索装置
JPH05101102A (ja) 検索装置
JP2005011078A (ja) 類似単語検索装置、この方法、このプログラム、このプログラムを記録した記録媒体、および情報検索システム
JP2519129B2 (ja) マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2519130B2 (ja) マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2560656B2 (ja) 文書ファイリングシステム
JP2002132789A (ja) 文書検索方法
JPH08272813A (ja) ファイリング装置
JPH0750486B2 (ja) キ−ワ−ド抽出装置
JPH07296005A (ja) 日本語テキスト登録・検索装置
JPH09245051A (ja) 自然言語事例検索装置及び自然言語事例検索方法
JP2967995B2 (ja) 文書処理装置および文書処理方法
JPH01106263A (ja) 文書の格納検索装置
JPH07109603B2 (ja) 情報検索処理方式および検索ファイル作成装置