JPH07168848A - 単語辞書検索装置 - Google Patents

単語辞書検索装置

Info

Publication number
JPH07168848A
JPH07168848A JP5316137A JP31613793A JPH07168848A JP H07168848 A JPH07168848 A JP H07168848A JP 5316137 A JP5316137 A JP 5316137A JP 31613793 A JP31613793 A JP 31613793A JP H07168848 A JPH07168848 A JP H07168848A
Authority
JP
Japan
Prior art keywords
dictionary
word
hash
memory
disk
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.)
Withdrawn
Application number
JP5316137A
Other languages
English (en)
Inventor
Shunichi Kobayashi
俊一 小林
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 JP5316137A priority Critical patent/JPH07168848A/ja
Publication of JPH07168848A publication Critical patent/JPH07168848A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 機械翻訳、音声合成、音声認識、校正支援等
の機械による自然言語処理における単語辞書を高速にサ
ーチできるようにすること。 【構成】 ハッシュ関数計算部と、ハッシュ・インデッ
クス検索手段と、ディスク辞書と、主記憶上のハッシュ
・インデックスを有し、ハッシュ検索によりディスク辞
書から単語を検索する単語辞書検索装置において、ディ
スク辞書の単語が記入されるメモリ辞書23と、メモリ
辞書へのポインタと、ディスク辞書へのポインタと、チ
ェーン結合されている次のハッシュへのポインタが設け
られたハッシュと、単語検索手段14と、メモリ辞書作
成手段15を具備し、ある単語をディスク上の単語辞書
から最初に読み込んだ場合にその単語の内容をメモリ辞
書作成手段15によりメモリ辞書23に記入し、またそ
の単語のハッシュに対してメモリ辞書へのポインタを設
定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は単語辞書検索装置に係
り、特に機械翻訳、音声合成、音声認識、校正支援等の
ような、機械による自然言語処理における単語辞書を高
速にサーチできるようにしたものに関する。
【0002】
【従来の技術】近年、機械翻訳、音声合成、音声認識、
校正支援(例えば送りがなの統一)などのような、機械
による自然言語処理の発展に伴い、処理の高速化が強く
求められている。
【0003】例えば図10(A)に示す如く、「花が咲
く」という文を音声合成する場合、この入力文を形態素
解析して、これを単語C0 〜C3 に分析する。そして各
単語C0 〜C3 を図10(B)に示すディスク辞書10
0にアクセスしてその読み、アクセント等を入手する。
ディスク辞書100には、各単語の表記として文字コー
ドが、フィールドとして文法、読み、アクセント等が記
入されている。
【0004】そしてこの電子化辞書であるディスク辞書
から単語検索を高速化するためにハッシュ法を用いた単
語辞書検索方式が提供されている。ハッシュ法は、単語
の文字コードを特定の関数処理して、得られた数値毎に
チェーンを張り、ディスク辞書を部分的にアクセス可能
にして高速検索をはかるものである。例えば関数処理と
して文字コードを24で割るという処理を行うとき、余
りが0〜23までの24のグループに分けることができ
るので、後述するように各グループ毎にチェーンをはる
ことによりディスク辞書を部分的にアクセス可能とな
る。
【0005】例えば「日」という文字コードを24で割
ったときの余りがCとすると、メモリ上のハッシュ・イ
ンデックス領域101のアドレスCの領域にポインタC
0、CP1 が記入されたハッシュを書き込む。ポイン
タCP0 は「日」のディスクの辞書100へのアドレス
を示し、ポインタCP1 はチェーンの次アドレスを示
す。この例では「日本」、「日本人」がチェーンされて
いるので、ポインタCP 1 は「日本」に対するハッシュ
の位置を示す。なお、「日本人」のハッシュの次アドレ
ス部分のポインタはNULL(空)であり、ポインタは
これどまりであることを示している。
【0006】従って、図10の例では、形態素解析によ
り分析された単語「花」について、まず関数処理して得
た余りがAにより、ハッシュ・インデックス101のア
ドレスAの領域をアクセスしてディスク辞書100より
「花」のフィールドを読み出して、音声合成用の場合に
はその読みとアクセントを得る。そして次に「が」につ
いては関数処理して得た余りがBにより、ハッシュ・イ
ンデックス101のアドレスBの領域をアクセスしてデ
ィスク辞書100より「が」のフィールドを読み出す。
このようなことを他の単語「咲」、「く」についても行
う。
【0007】
【発明が解決しようとする課題】ところで、日本語言語
処理で使用する電子化日本語辞書は単語数が膨大であ
り、その情報量も膨大であって例えば数十メガ〜数百メ
ガバイトという大きさのため通常磁気ディスク、光ディ
スク、光磁気ディスクの如きディスクに置かれ、従って
単語辞書検索を行う場合には、ディスクから毎回アクセ
スする方法が一般的である。
【0008】もし、主記憶上に全ての単語を記憶できれ
ば、辞書検索は非常に高速化することが可能であるが、
現在のコンピュータではまだまだ無理である。電子化辞
書の容量が膨大であるため、電子化辞書はディスク上に
置かれることが多く、従来の如き単純なハッシュ辞書検
索法を用いてもディスクアクセスの処理に時間が多くか
かるため、あまり高速化されない。
【0009】従来のハッシュ法を用いた日本語辞書検索
では、ディスクから毎回検索するために、ハッシュ法と
いう検索方法を使用しているにもかかわらず検索時間が
長いという欠点があった。
【0010】また、ディスクと主記憶との間に、専用の
ディスク・キャッシュを用いた場合でも、ハッシュ辞書
検索との連携は考えられておらず、折角ハッシュ法を用
いているにもかかわらずキャッシュの領域を探すのに時
間がかかったり、必ずしもキャッシングされている単語
にヒットするとは限らないために辞書検索は依然として
高速化していない。
【0011】即ち、従来のディスク・キャッシュでは、
辞書検索の検索方法とは全く独立しているので、ハッシ
ュ検索を用いてもキャッシュはキャッシュとして独立に
そのキャッシュ内で検索を行っており、ハッシュによる
検索とキャッシュ内での検索が2重に行われていたため
に、検索時間が非常にかかってしまうという問題点があ
った。
【0012】日本語処理の特質を考えると言語処理する
文章毎に出現する単語は毎回異なっており、従来のよう
なディスク・キャッシュではキャッシュされている単語
にヒットする確率が非常に低く、折角キャッシュを用意
しているにもかかわらず検索効率の向上にはあまり有効
でなかった。
【0013】本発明の目的は、これらの問題点を改善す
るため、高速にサーチできる単語辞書検索装置を提供す
ることである。
【0014】
【課題を解決するための手段】前記目的を達成するた
め、本発明では、図1(A)に示す如く、ディスク辞書
3、ハッシュ・インデックス21の外にメモリ辞書23
を設ける。メモリ辞書23にはディスク辞書3上の単語
を、実際の運用においてアクセスしたときに記入する。
また、図1(C)に示す如く、ハッシュに3つのポイン
タP0 、P1 、P 2 を設け、ポインタP0 をメモリ辞書
23へのポインタとし、ポインタP1 をディスク上に存
在するディスク辞書3へのポインタとし、ポインタP2
をあふれ領域22に存在する次のハッシュへのポインタ
とする。
【0015】このメモリ辞書23、ハッシュ・インデッ
クス21及びハッシュ・インデックス21のハッシュと
チェーンされているハッシュの存在するあふれ領域22
等は主記憶2上に存在する。
【0016】またCPU1には、検索文字列入力部1
1、ハッシュ関数計算部12、ハッシュ・インデックス
検索部13、検索単語出力部14、メモリ辞書作成部1
5等が設けられている。
【0017】いま、図1(B)に示す如く、文字コード
をハッシュ関数で処理したときの余りがいずれもXの単
語W0 、W1 、W2 、W3 がディスク辞書3に登録され
ているとき、ハッシュ・インデックス21のアドレスX
の領域には、W0 に対するハッシュが記入され、あふれ
領域22にはW1 に対するハッシュH1 、W2 に対する
ハッシュH2 、W3 に対するるハッシュH3 が記入され
ている。そしてこれらのハッシュはポインタP2 により
チェーンされている。
【0018】
【作用】この状態で文章が検索文字列入力部11に入力
され、形態素解析されて最初の単語がW2 のとき、ハッ
シュ関数計算部12が単語W2 の文字コードをハッシュ
関数処理して得られた余りXをハッシュ・インデックス
検索部13に出力する。ハッシュ・インデックス検索部
13はこのXによりハッシュ・インデックス21をアク
セスし、ディスク辞書3に対するアドレスを読み出し、
検索単語出力部14に送出する。
【0019】検索単語出力部14は、このアドレスによ
りディスク辞書3をアクセスし、単語W0 の表記部分を
みて入力された単語W2 の文字コードを一致するか否か
を判断し、不一致であることをハッシュ・インデックス
検索部13に通知する。
【0020】ハッシュ・インデックス検索部13は、こ
れにより次のハッシュH1 のポインタP1 を読み出し検
索単語出力部14はこれにより単語W1 の表記部分をみ
て、これまた単語W2 と不一致であることをハッシュ・
インデックス検索部13に通知する。ハッシュ・インデ
ックス検索部13は、今度はハッシュH2 のポインタP
1 を読み出し、検索単語出力部14はこれによりディス
ク辞書3をアクセスして入力された単語W2 と文字コー
ドが一致したことを判断する。
【0021】これにより検索単語出力部14はディスク
辞書3から読み出した単語W2 のエントリーつまり表記
部分とフィールド部分をメモリ辞書作成部15に渡し、
これがメモリ辞書23に登録される。そしてこの登録先
のアドレスがハッシュH2 のポインタP0 に記入され
る。図1(B)に示す点線はこのポインタP0 の状態を
示す。そして検索単語出力部14から、このW2 に対す
る表記、フィールドの情報が出力される。
【0022】次に再び同じ単語W2 が検索文字列入力部
11に入力されたとき、ハッシュ関数計算部12が単語
2 の文字コードをハッシュ関数処理し、得られた余り
Xをハッシュ・インデックス検索部13に出力する。こ
れにもとづき前記と同様の処理が行われる。そして図1
(B)に示すハッシュH2 がアクセスされたとき、今度
はポインタP0 にメモリ辞書23へのポインタが記入さ
れているので、これを検索単語出力部14に送る。検索
単語出力部14は、これによりメモリ辞書23をアクセ
スしてW2 に対する表記、フィールドの情報を入手し、
出力する。
【0023】このようにして、ハッシュを読み出すのみ
で所望の単語情報がメモリ辞書23に記入されているか
否かを判断でき、メモリ辞書23に記入されているとき
には、高速アクセス可能な主記憶2上のメモリ辞書23
より、その表記、フィールドの情報を得ることができ
る。
【0024】なお、前記の説明では、ディスク辞書3に
対してハッシュ検索された単語を、その品詞等にかかわ
らずメモリ辞書23にコピーする場合について説明し
た。しかし主記憶2の節約のために、日本語言語処理で
必ず使用されるような、使用頻度の高い、予め定めた特
定の品詞のみをディスク辞書から読んだ場合にのみ、メ
モリ辞書にコピーして、ハッシュからポインタを張るよ
うにすることが主記憶2を能率的に使用できる。
【0025】このため、日本語言語処理で使用される頻
度の高い品詞として、助詞、助動詞、用言即ち動詞、形
容詞、形容動詞の活用語尾を対象とし、これらをハッシ
ュ検索を行ってディスク辞書から読み込んだ場合に限り
その単語をメモリ辞書上にコピーし、これに対してポイ
ンタを張るように構成することもできる。
【0026】これにより、全ての単語をメモリ辞書にコ
ピーしていく場合に比較して使用するメモリ量を格段に
減少させることができる。また、すべての単語を毎回デ
ィスクから検索する場合に比べて、使用頻度の高い単語
を主記憶上からハッシュ検索することが可能となり、全
体としての検索時間を大幅に削減することができる。
【0027】
【実施例】ハッシュ法を用いて高速検索を行うために
は、予めハッシュ・インデックスを作成しておくことが
必要であるので、まずハッシュ・インデックスの作成法
について、図2、図3にもとづき簡単に説明する。
【0028】まず「小林」という単語を空のハッシュ・
インデックスに登録する場合について説明する。「小
林」の1文字目の「小」の文字コードを、図2(A)に
示す如く、例えば上位バイトを0、下位バイトを2とす
る。つまり「小」のコード領域を図2(A)の如きもの
とする。またハッシュ関数を、例えば図2(B)に示す
如く、「{(上位バイト)×10+(下位バイト)}÷
24」とする。このように上位バイトに定数を乗ずるこ
とによりハッシュが特定の部分に集中することなく、適
当なバラツキを持つようにすることができる。また24
で割り算することにより、図2(C)に示す如く、ハッ
シュ・インデックス21を0〜23までの24区分に区
分けし、ディスク辞書へのアクセス量を全部アクセスす
る場合に比較して1/24の量に減少できる。
【0029】いま、「小林」の「小」の前記文字コード
を前記ハッシュ関数にかけると、余りが「2」となり、
ハッシュ・インデックス21のアドレスの2番からディ
スク辞書へのポインタを張る。このようにして図2
(C)に示すハッシュがハッシュ・インデックス21に
登録される。
【0030】続いて「小林社長」を登録する場合、その
1文字目の「小」の文字コードをハッシュ関数にかける
と、ハッシュ値「2」が得られるが、すでに「小林」を
登録しているので、ハッシュ・インデックス21上のア
ドレスの2番は記入ずみであり、このため、図3(A)
に示す如く、ハッシュ・インデックス21上のハッシュ
1 からポインタによりハッシュH2 をリンクし、ハッ
シュH2 により「小林社長」に対するディスク辞書への
ポインタを記入する。
【0031】さらに「小林教授」をハッシュ・インデッ
クス21に登録する場合も、同様にして「小」の文字コ
ードをハッシュ関数にかけ、ハッシュ値「2」を得て、
前記と同様にハッシュH2 からポインタによりハッシュ
3 をリンクする。そしてハッシュH3 により「小林教
授」に対するディスク辞書へのポインタを記入する。
【0032】実際にハッシュ・インデックスを作成する
とき、日本語辞書単語例えば図3(B)に示す如き単語
リストを用意する。この単語リストにはディスク辞書に
登録すべきすべての単語が記入されている。オペレータ
はこの単語リストに従って、まず「小林」を、例えばキ
ーボードの如き入力手段により入力する。このとき「小
林」のフィールド情報、例えば文法(この場合は姓とか
固有名詞等)、読み、アクセント等も入力する。これに
より1文字目の「小」の文字コードが前記の如く、ハッ
シュ関数で演算されて得られた余り、例えば「2」が得
られる。
【0033】ところで、前記「小林」とそのフィールド
は、このとき、図1に示す、ディスク辞書3に登録され
るので、その登録先のアドレスを保持し、これをハッシ
ュ・インデックス21のアドレス2番の、ディスク辞書
へのポインタに「小林」の登録先アドレスを記入する。
【0034】次にオペレータが日本語辞書単語、例えば
単語リストに従って「佐藤」の項をディスク辞書に登録
するとき、その1文字目の「佐」の文字コードに対する
ハッシュ関数の演算が行われ、余りが例えば数値1のと
き、ハッシュ・インデックス21のアドレス1番におけ
るディスク辞書へのポインタに、この「佐藤」の項の登
録先のアドレスが記入される。
【0035】そして「小林社長」の項がディスク辞書に
登録するとき、1文字目の「小」の文字コードに対する
ハッシュ関数の演算が行われ、余りが2となる。このと
きすでにハッシュ・インデックス21には「小林」が登
録されているので、このため図3(A)に示す如く、ハ
ッシュ・インデックス21上のハッシュH1 からポイン
タによりハッシュH2 をリンクし、ハッシュH2 に「小
林社長」のディスク辞書登録先アドレスを記入する。
【0036】続いて「はれ」、「伊藤」、「です」、
「は」、「はら」、「小林教授」・・・の項が順次ディ
スク辞書に登録されるとき、同様の処理が行われる。こ
のような操作をすべての単語について行い、ハッシュ・
インデックスを作成する。これによりディスク辞書を作
成するときに、同時にハッシュ・インデックス21も作
成される。しかしこのとき各ハッシュにおけるメモリ辞
書へのポインタはNULLつまり空であり、初期設定状
態である。
【0037】次に検索について、メモリ辞書に助詞、助
動詞、用言の活用語尾をコピーする例について説明す
る。最初、つまり一度も単語検索をしない初期状態では
ハッシュの箱の3つのポインタのうち、ディスク辞書へ
のポインタと次のハッシュへのポインタのみが設定され
ており、メモリ辞書へのポインタは初期状態(NUL
L)のままである。
【0038】いま、助詞「は」を検索することを例にと
り説明する。検索単語として「は」が入力されると、そ
の1文字目の文字コード(この場合は「は」そのものの
文字コード)に対し、前記と同様にハッシュ関数の演算
が行われる。図4(A)に示す如く、「は」の文字コー
ドが、例えば上位バイトが「0」、下位バイトが「3」
としたとき、同(B)に示す如き演算が行われ、同
(C)に示す如く、余りつまりハッシュ値が「3」とな
る。
【0039】これにより図4(C)に示す如く、ハッシ
ュ・インデックス21のアドレス3番のハッシュのチェ
ーンを検索する。なお、この図4(C)の場合は、同一
のハッシュ値「3」を持つ単語が3つあることを示す。
具体的には、ディスク辞書のアドレスAに登録された名
詞「はれ」、アドレスBに登録された助詞「は」、アド
レスCに登録された名詞「はら」の3つが同一ハッシュ
値「3」を持つ単語であることを示している。このと
き、これらの各単語は一度も検索されていない状態であ
り、各ハッシュのメモリ辞書23へのポインタは初期化
された状態(NULL)である。
【0040】はじめにハッシュ・インデックス21上の
1つ目のハッシュの部分が検索され、まずメモリ辞書へ
のポインタがチェックされるがNULLであり、メモリ
辞書には存在しないことがわかるので、ディスク辞書へ
のポインタAからディスク辞書を検索する。しかし1つ
目のハッシュのポインタ先はその表記が「はれ」であ
り、検索対象の「は」ではないことがわかり、注目中の
ハッシュの指している単語は検索したい単語ではないこ
とがわかる。
【0041】次にこの1つ目のハッシュが次のハッシュ
へのポインタを持っているかどうかを調べ、2番目のハ
ッシュに対するポインタがあることを知る。もし次のハ
ッシュへのポインタがない場合には、求める単語がディ
スク辞書には存在しないことがわかるが、この場合は次
の単語のハッシュへのポインタが存在しているので、次
のハッシュをチェックする。
【0042】この場合も、同様に、まずメモリ辞書への
ポインタを調べるが、NULLであることがわかり、メ
モリ辞書に存在しないことを認識し、ディスク辞書への
ポインタBによりディスク辞書を検索し、表記を比較し
てこの単語が検索したい「は」であることを認識する。
【0043】このとき、この単語「は」が助詞であるの
で、主記憶上にディスク辞書の内容をコピーするための
メモリ領域をとり、そのアドレスbに「は」のディスク
辞書の内容つまり表記とフィールドをコピーする。そし
て、このハッシュのメモリ辞書へのポインタとしてbを
設定する。このようにしてコピーした検索したい単語
「は」をメモリ辞書から読み出してその内容を出力す
る。
【0044】もし、検索したい単語が名詞の「はら」で
あれば、次の単語へのハッシュのポインタをみて、ディ
スク辞書へのポインタCからディスク辞書を検索し、表
記の比較を行い、「はら」を認識する。このとき「は
ら」が名詞であるので、メモリ辞書の作成は行わず、デ
ィスク辞書のアドレスCにより「はら」の項を読み出し
これを出力する。
【0045】ところで、前記の如く、助詞「は」がメモ
リ辞書23にコピーされている状態で、「は」を検索す
る場合、ハッシュ関数で「は」の文字コードを演算する
とハッシュ値「3」が得られる。これによりハッシュ・
インデックス21上のアドレス3番のハッシュを検索し
て、そのディスク辞書へのポインタによりディスク辞書
をアクセスしてこれが「は」でないことを知り、次の単
語のハッシュへのポインタにより2つ目のハッシュを検
索して、今度はメモリ辞書へのポインタにアドレスbが
記入されていることにより、メモリ辞書のアドレスbを
アクセスし、所望の「は」の項をアクセス速度の早い主
記憶より得ることができる。
【0046】前記の如き検索を可能とする本発明の一実
施例を図5〜図7に基づき説明する。図5は、メモリ辞
書に助詞、助動詞、用言の活用語尾のみをコピーするよ
うにした本発明の一実施例構成図を示し、図6はその動
作説明図である。そして図7はメモリ辞書23にコピー
された単語と、ハッシュ・インデックス、ディスク辞書
との関連説明図である。
【0047】図5において、他図と同記号部は同一部を
示し、2は主記憶、3はディスク辞書、10は検索単語
指定部、11は検索文字列入力部、12はハッシュ関数
計算部、13はハッシュ・インデックス検索部、14は
検索単語出力部、15はメモリ辞書作成部、16は日本
語辞書単語入力部、17はインデックス・辞書登録部、
21はハッシュ・インデックス、23はメモリ辞書、3
0はハッシュ・インデックス読出部、31はメモリ辞書
用ポインタ識別部、32はディスク辞書検索部、33は
単語識別部、34はメモリ辞書検索部、35は文法識別
部である。
【0048】検索単語指定部10は文章のうちから検索
対策対象となる単語を指定するものであり、例えばディ
スプレイに表示された文章の中から、カーソル等により
単語を指定するものである。これにより例えば「小林社
長は外出しています。」等の文章が指定され、出力され
る。
【0049】検索文字列入力部11は、この出力された
文章を形態素解析して、単語単位に分解して、これを出
力するものである。ハッシュ関数計算部12は、入力さ
れた単語の1文字目の文字コードを前記の如きハッシュ
関数にかけて得られたハッシュ値を、そのときのモー
ド、検索モードかインデックス辞書登録モードかに応じ
て、ハッシュ・インデックス検索部13側あるいはイン
デックス・辞書登録部17側に出力する。
【0050】ハッシュ・インデックス検索部13は、ハ
ッシュ関数計算部12から伝達されたハッシュ値に基づ
き、ハッシュ・インデックス21を検索したり、メモリ
辞書23を検索するものであり、ハッシュ・インデック
ス読出部30、メモリ辞書用ポインタ識別部31、ディ
スク辞書検索部32、単語識別部33、メモリ辞書検索
部34等を有する。
【0051】検索単語出力部14はディスク辞書3又は
メモリ辞書23から所望の単語を読み出すものである。
メモリ辞書作成部15はメモリ辞書23を作成するもの
である。
【0052】日本語辞書単語入力部16は、初めにディ
スク辞書3を作成したりハッシュ・インデックス21を
作成するときに必要な、例えば図3(B)に示す如き単
語リストを順次入力するものである。
【0053】インデックス・辞書登録部17は、最初に
前記単語リストを順次入力するとき、これをディスク辞
書3に登録するとともに、ハッシュのチェーンも含めて
ハッシュ・インデックス21を作成する処理を行うもの
である。
【0054】ハッシュ・インデックス読出部30は、ハ
ッシュ関数計算部12から受け取ったハッシュ値に応じ
てハッシュ・インデックス21をそのハッシュのチェー
ンも含めて読み出すものである。
【0055】メモリ辞書用ポインタ識別部31は、ハッ
シュのメモリ辞書用のポインタをチェックして、メモリ
辞書用のポインタが記入されていればこれをメモリ辞書
検索部34に渡し、なければディスク辞書用のポインタ
をディスク辞書検索部32に渡すものである。
【0056】ディスク辞書検索部32は、このディスク
辞書用のポインタに基づき、ディスク辞書3をアクセス
し、アクセス先の単語の表記部分とフィールド部分を読
み出し、これらを一時保持するものである。
【0057】単語識別部33は、メモリ辞書23又はデ
ィスク辞書3から読み出す単語が所望のものかどうかを
その表記部分を入力の文字コードと比較してチェック
し、不一致のときこれをハッシュ・インデックス読出部
30に通知して次のハッシュを読み出すように制御した
り、一致したときメモリ辞書23に登録されていなけれ
ばこれを文法識別部35に通知し、助詞、助動詞、用言
の活用語尾の場合には、メモリ辞書作成部15に通知し
てメモリ辞書23への記入作成処理を行わせる。そして
メモリ辞書23に記入後、又はメモリ辞書23にすでに
記入ずみの場合は、メモリ辞書23におけるその単語の
アドレスを検索単語出力部14に通知し、ディスク辞書
3にのみ格納されている場合及び、助詞、助動詞、用言
の活用語尾のいずれでもない場合には、ディスク辞書3
のアドレスを検索単語出力部14に通知する。
【0058】メモリ辞書検索部34はメモリ辞書23を
アクセスするものである。文法識別部35は、アクセス
先の単語の文法をチェックして、その単語が助詞、助動
詞、用言の活用語尾か否かを識別するもので、特定品詞
識別手段として動作するものである。
【0059】図5の本発明の一実施例構成を、A、イン
デックス作成の処理、及びB、辞書検索の処理について
説明する。 A、インデックス作成の処理 まずハッシュ関数計算部12をインデックス作成モード
に設定し、オペレータが、図3(B)に示す如き、単語
リストから、「小林」の項(表記部分とフィールド)を
例えばキーボードの如き、日本語辞書単語入力部16か
ら入力する。これによりハッシュ関数計算部12は「小
林」の一文字目の文字「小」の文字コードを前記の如く
ハッシュ関数で処理し、得られたハッシュ値「2」と
「小林」の項をインデックス・辞書登録部17に渡す。
【0060】これによりインデックス・辞書登録部17
は、ディスク辞書3にこの「小林」の項を格納処理する
とともに、得られた格納先アドレスを一時保持する。そ
れからインデックス・辞書登録部17は、ハッシュ・イ
ンデックス21のアドレス2番のディスク辞書用のポイ
ンタに前記ディスク辞書3への格納先アドレスを記入す
る。
【0061】このような処理を単語「佐藤」、「小林社
長」、「はれ」・・・の全単語に対して前記の如く行わ
れ、場合に応じてハッシュのチェーンが形成される。こ
のようにして全単語がディスク辞書3に登録され、同時
にハッシュ・インデックス21が作成される。
【0062】B、辞書検索の処理 (1) 例えば図示省略したディスプレイに表示された複数
の文章、単語の中から、オペレータが検索単語指定部1
0により検索すべきものとして「小林社長は外出してい
る。」を指定する。検索文字列入力部11は、この指定
された文章を形態素解析して、単語単位に「小林社
長」、「は」、「外出」、「して」、「いる」、「。」
に分解し、「小林社長」の文字コードをハッシュ関数計
算部12に送出する。このとき、ハッシュ関数計算部1
2は検索モードに設定されている。
【0063】(2) ハッシュ関数計算部12は、この「小
林社長」の1文字目の文字コードを、前記の如く、ハッ
シュ関数で処理し、得られたハッシュ値「2」と「小林
社長」をハッシュ・インデックス読出部30に渡す。
【0064】(3) ハッシュ・インデックス読出部30
は、これによりハッシュ・インデックス21をアクセス
してそのアドレス2番のハッシュのメモリ辞書へのポイ
ンタをチェックする。このとき該ポインタはNULLで
初期状態を示している。
【0065】(4) このため、このハッシュのディスク辞
書3へのポインタを読み出し、これをディスク辞書検索
部32に送出する。ディスク辞書検索部32はこれによ
りディスク辞書3をアクセスしてその表記部分とフィー
ルド部分を読み出して一時保持し、その表記部分(図3
(A)に示す如く、「小林」)と文法部分を単語識別部
33に送出する。
【0066】(5) このとき単語識別部33には、ハッシ
ュ・インデックス読出部30より、「小林社長」が送出
されているので、これと前記表記部分とを比較し、検索
したい単語でないことがわかる。これがハッシュ・イン
デックス読出部30に通知される。ハッシュ・インデッ
クス読出部30は、これにより同じハッシュ値を持つハ
ッシュの箱がリンク上に存在するか否かを、その次のハ
ッシュへのポインタをみて認識し、存在することを知
る。
【0067】(6) これによりリンクをたどり、同一ハッ
シュ値を持つハッシュに移動する。そしてこのハッシュ
が、前記(3)の如く、メモリ辞書へのポインタを持つ
か否かをチェックし、このポインタが初期状態であるの
で、前記(4)の如く、ディスク辞書3を検索する。
【0068】(7) これにより今度は、ディスク辞書3か
ら読み出した表記部分「小林社長」が検索したい単語で
あることが、単語識別部33で認識される。しかしその
文法部分が文法識別部35により解読されて、この「小
林社長」は名詞であり、助詞、助動詞、用言の活用語尾
でないことが認識され、この認識結果により単語識別部
33は、ディスク辞書3へのアドレスを検索単語出力部
14に送出する。
【0069】(8) 検索単語出力部14は、これによりデ
ィスク辞書3をアクセスし、所望の「小林社長」に対す
るデータを得る。例えば、この検索装置が音声合成用に
使用される場合は、その「小林社長」に対する読みとか
アクセント等のデータを得る。
【0070】(9) 次に「は」が検索文字列入力部11か
らハッシュ関数計算部12に入力されると、前記(2)
〜(7)と同様の処理が行われる。即ち、ハッシュ関数
計算部12は、前記の如く、ハッシュ値「3」を出力
し、ハッシュ・インデックス読出部30がこれによりハ
ッシュ・インデックス21をアクセスし、そのアドレス
3番より、メモリ辞書へのポインタが初期状態であるこ
とを認識して、ディスク辞書3へのポインタを読み出
し、ディスク辞書検索部32がディスク辞書3をアクセ
スしてこれを読み出し、初めは「はれ」であり、次のチ
ェーンにより読み出したものが単語識別部33が得たい
単語「は」であることを認識する。そして文法識別部3
5がその文法部分をチェックして、この「は」が助詞で
あること即ち、助詞、助動詞、用言の活用語尾のもので
あることを認識する。これによりメモリ辞書作成部15
は、ディスク辞書検索部32で一時保持している「は」
の表記部分とフィールド部分をメモリ辞書23に記入
し、メモリ辞書を作成する。
【0071】(10)メモリ辞書作成部15は、この作成し
たメモリ辞書23への書込み先を、「は」のハッシュの
メモリ辞書へのポインタに設定する。そしてこのメモリ
辞書23への書込み先アドレスを検索単語出力部14に
送る。これにより検索単語出力部14はこの送出された
アドレスによりメモリ辞書23をアクセスし、必要とす
るデータを得る。
【0072】(11)次に、メモリ辞書23に登録ずみの単
語、例えば「は」をアクセスする場合について説明す
る。この場合、前記(2)と同様にハッシュ関数計算部
12において、「は」の文字コードがハッシュ関数で演
算され、ハッシュ値「3」が出力される。そしてこれが
ハッシュ・インデックス読出部30に送出され、ハッシ
ュ・インデックス21をアクセスし、前記(9)の如
く、次のチェーンにより読み出したハッシュにメモリ辞
書23へのポインタが記入されている初期状態でないこ
とをメモリ辞書用ポインタ識別部31が認識する。これ
により、メモリ辞書検索部34がメモリ辞書23の前記
ポインタ先を検索し、その表記部分を読み出し、これを
単語識別部33によりチェックして検索したい単語であ
ることが識別される。これにより単語識別部33は、メ
モリ辞書検索部34より受取っていたこのメモリ辞書2
3へのアドレスを検索単語出力部14に送出し、これに
より検索単語出力部14はメモリ辞書23をアクセスし
て必要なデータを読み出し、これを出力する。
【0073】(12)なお、前記各検索において、検索した
い単語がディスク辞書を検出しても存在せず同じハッシ
ュ値のハッシュの箱がリンク上に存在しないとき、検索
単語出力部14に検索単語がないことが通知され、検索
終了となる。
【0074】図5に示す実施例では、文法識別部35
が、単語が助詞、助動詞、用言の活用語尾か否かを識別
して一度ディスク辞書3上においてアクセスされた単語
がこれらの場合にのみメモリ辞書23にコピーされる場
合について説明した。図7は、このような場合にメモリ
辞書23にコピーされた単語を例示したものである。
【0075】ところで前記図5〜図7に示す実施例で
は、使用する主記憶を節約し、かつディスクからのデー
タアクセスをできるだけ減少し、高速に検索できる場合
を説明した。即ち、日本語言語処理の特質を考慮したと
き、できるだけどんな文章を言語処理する場合にも、必
ず使用する使用頻度の高い単語だけを主記憶上に展開す
るようにした。
【0076】日本語の文章中では、助詞、助動詞、用言
の活用語尾が最も出現する頻度が高いと考えられるの
で、これらの品詞を主記憶上においてディスクにアクセ
スする回数を大幅に減少するだけで、辞書検索の処理量
のかなりのものを高速化することが可能であり、全ての
単語をディスクからアクセスするのに比べ大幅に辞書検
索時間が短縮できる。
【0077】なお前記(8)の説明では、検索単語出力
部14の出力をディスク辞書3をアクセスして所望のデ
ータを得るようにしたこと、前記(10)の説明では検
索単語出力部14の出力をメモリ辞書23をアクセスし
て必要とするデータを得るようにした場合について説明
したが、本発明は勿論これらに限定されるものではな
く、前記(4)においてディスク辞書3をアクセスして
得ている表記部分とフィールド部分を出力するように構
成することもできる。
【0078】図5〜図7で説明した本発明の実施例で
は、メモリ辞書にコピーされる単語が特定の場合に限定
されることを示したが、メモリ辞書23が大きなサイズ
の場合には、図8に示す如く、名詞をコピーすることも
できる。
【0079】この場合には、ディスク辞書3で1回検索
された単語はメモリ辞書23にコピーされるので、同じ
単語を検索するとき、主記憶上のメモリ辞書23から高
速に検索することができ、全体の検索速度を向上するこ
とができる。
【0080】また前記各実施例では、ハッシュからディ
スク辞書とメモリ辞書に対して別々のポインタを用意す
る例について説明したが、本発明では図9(A)に示す
如く、ディスク辞書とメモリ辞書を同じポインタ2で指
示し、フラグ1が「0」、「1」にもとづきポインタ2
で指示しているものがディスク辞書へのポインタかメモ
リ辞書へのポインタかを識別するものである。
【0081】この場合、図9(B)に示す如く、例えば
フラグ1が「0」のときポインタ2はディスク辞書3を
示し、フラグ1が「1」のときポインタ2はメモリ辞書
23を示している。そしてポインタ3は、前記と同様に
ハッシュのあふれ領域へのポインタ、つまりチェーン先
を示すものである。なお、この図9に示す装置は、ハッ
シュの内容を除き、図1、図5に示すものと同一構成で
あるので、その具体的構成についての図示説明を省略す
る。
【0082】本発明は、前記の如く、ハッシュ検索法の
うちチェーン法について説明したものであるが、本発明
は勿論これにのみ限定されるものではなく、ハッシュ検
索法のうちのオープンアドレス法においても同様に適用
できる。
【0083】なおここでは本発明の実施例として、日本
語言語処理について説明したが、本発明は勿論これにの
み限定されるものではなく、日本語以外の他の言語処理
においても同様に適用できる。
【0084】
【発明の効果】言語処理で使用する電子化辞書は、辞書
容量が膨大であるために、従来ではディスクに置かれ、
ディスクから毎回検索するのが一般的であった。この場
合に従来は単純なハッシュ検索と、そのハッシュ検索と
は全く独立した形でディスクからの検索の効率化を図る
ためにディスク・キャッシュを使用していた。
【0085】しかし従来では、ハッシュ検索法とディス
ク・キャッシュが全く独立していたために、せっかくハ
ッシュ法を用いているにもかかわらずハッシュ検索とキ
ャッシュ内での検索を2重に行っていて検索時間が非常
にかかってしまっていた。
【0086】特に、日本語言語処理の特質から、処理す
る文章毎に出現する単語が異なるために、単純な従来の
ディスク・キャッシュを用いても殆どディスクからの辞
書検索は効率化していないのが現状であった。
【0087】これに対して本発明では、ハッシュ検索で
用いるハッシュがディスク辞書とメモリ辞書に対してポ
インタを持った新たなフォーマットであり、ハッシュ自
体にメモリ辞書へのポインタが存在するため、一度ディ
スク辞書から読込んだ単語については、2回目以降はメ
モリ辞書からハッシュ検索することが可能となり、辞書
検索の高速化が実現できる。
【0088】また、主記憶の節約をはかるために、ディ
スク辞書にアクセスした全ての単語をメモリ辞書に展開
せずに、言語処理で最も使用頻度の高い助詞、助動詞、
動詞等の用言の活用語尾のみをメモリ辞書に展開してハ
ッシュ検索を行うことにより、使用する主記憶容量は少
くて、かつ、頻繁に使用する単語はメモリ辞書より高速
アクセスできるので、ハッシュの効率を落とすことなく
辞書検索全体として高速化することが可能となり、言語
処理における電子化辞書検索を高速化できる。
【図面の簡単な説明】
【図1】本発明の概略図を示す。
【図2】本発明におけるハッシュ・インデックスの作成
方法説明図(その1)を示す。
【図3】本発明におけるハッシュ・インデックスの作成
方法説明図(その2)を示す。
【図4】本発明におけるハッシュ・インデックスの検索
方法説明図を示す。
【図5】本発明の一実施例構成図を示す。
【図6】本発明の動作説明図を示す。
【図7】メモリ辞書、ハッシュ・インデックス、ディス
ク辞書関連状態説明図である。
【図8】本発明の第2実施例説明図である。
【図9】本発明の第3実施例説明図である。
【図10】従来例説明図である。
【符号の説明】
1 CPU 2 主記憶 3 ディスク辞書 10 検索単語指定部 11 検索文字列入力部 12 ハッシュ関数計算部 13 ハッシュ・インデックス検索部 14 検索単語出力部 15 メモリ辞書作成部 16 日本語辞書単語入力部 17 インデックス辞書登録部 21 ハッシュ・インデックス 22 あふれ領域 23 メモリ辞書 30 ハッシュ・インデックス読出部 31 メモリ辞書ポインタ識別部 32 ディスク辞書検索部 33 単語識別部 34 メモリ辞書検索部 35 文法識別部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ハッシュ関数計算部と、ハッシュ・イン
    デックス検索手段と、ディスク上に格納された単語辞書
    と、主記憶上に設けられたハッシュ・インデックスを有
    し、ハッシュ検索により単語辞書から単語を検索する単
    語辞書検索装置において、 主記憶上に設けられ、前記単語辞書の単語が記入される
    メモリ辞書(23)と、 主記憶上に設けられ、前記メモリ辞書へのポインタと、
    前記単語辞書へのポインタと、チェーン結合されている
    次のハッシュへのポインタが設けられたハッシュと、 単語検索手段(14)と、 メモリ辞書作成手段(15)を具備し、 初期状態ではハッシュ上にはメモリ辞書へのポインタは
    設定されず、ある単語をディスク上の単語辞書から読み
    込んだ場合にその単語の内容を前記メモリ辞書作成手段
    (15)によりメモリ辞書(23)に記入し、またその
    単語のハッシュに対してメモリ辞書へのポインタを設定
    することを特徴とする単語辞書検索装置。
  2. 【請求項2】 前記単語辞書から読み出された単語が予
    め定められた特定の品詞の単語であることを識別する特
    定品詞識別手段(35)を具備したことを特徴とする請
    求項1記載の単語辞書検索装置。
  3. 【請求項3】 ハッシュ関数計算部と、ハッシュ・イン
    デックス検索手段と、ディスク上に格納された単語辞書
    と、主記憶上に設けられたハッシュ・インデックスを有
    し、ハッシュ検索により単語辞書から単語を検索する単
    語辞書検索装置において、 主記憶上に設けられ、前記単語辞書の単語が記入される
    メモリ辞書(23)と、 主記憶上に設けられ、前記メモリ辞書又は前記単語辞書
    のいずれかを示すポインタと、該ポインタが前記2つの
    辞書のいずれに対するものかを示すフラグと、チェーン
    結合されている次のハッシュへのポインタが設けられた
    ハッシュと、 単語検索手段(14)と、 メモリ辞書作成手段(15)を具備し、 初期状態ではハッシュ上にはメモリ辞書へのポインタは
    設定されず、ある単語をディスク上の単語辞書から読み
    込んだ場合にその単語の内容を前記メモリ辞書作成手段
    (15)によりメモリ辞書(23)に記入し、またその
    単語のハッシュに対してメモリ辞書へのポインタを設定
    することを特徴とする単語辞書検索装置。
  4. 【請求項4】 前記単語辞書から読み出された単語が予
    め定められた特定の品詞の単語であることを識別する特
    定品詞識別手段(35)を具備したことを特徴とする請
    求項3記載の単語辞書検索装置。
JP5316137A 1993-12-16 1993-12-16 単語辞書検索装置 Withdrawn JPH07168848A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5316137A JPH07168848A (ja) 1993-12-16 1993-12-16 単語辞書検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5316137A JPH07168848A (ja) 1993-12-16 1993-12-16 単語辞書検索装置

Publications (1)

Publication Number Publication Date
JPH07168848A true JPH07168848A (ja) 1995-07-04

Family

ID=18073674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5316137A Withdrawn JPH07168848A (ja) 1993-12-16 1993-12-16 単語辞書検索装置

Country Status (1)

Country Link
JP (1) JPH07168848A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4911028B2 (ja) * 2005-02-24 2012-04-04 富士ゼロックス株式会社 単語翻訳装置、翻訳方法および翻訳プログラム
WO2014099742A1 (en) * 2012-12-21 2014-06-26 Spansion Llc Hybrid hashing scheme for active hmms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4911028B2 (ja) * 2005-02-24 2012-04-04 富士ゼロックス株式会社 単語翻訳装置、翻訳方法および翻訳プログラム
US9230548B2 (en) 2012-06-06 2016-01-05 Cypress Semiconductor Corporation Hybrid hashing scheme for active HMMS
WO2014099742A1 (en) * 2012-12-21 2014-06-26 Spansion Llc Hybrid hashing scheme for active hmms

Similar Documents

Publication Publication Date Title
US5794177A (en) Method and apparatus for morphological analysis and generation of natural language text
US7516125B2 (en) Processor for fast contextual searching
US8135717B2 (en) Processor for fast contextual matching
US5099426A (en) Method for use of morphological information to cross reference keywords used for information retrieval
JP2783558B2 (ja) 要約生成方法および要約生成装置
JP2001043236A (ja) 類似語抽出方法、文書検索方法及びこれらに用いる装置
US5950184A (en) Indexing a database by finite-state transducer
JP2002117027A (ja) 感情情報抽出方法および感情情報抽出プログラムの記録媒体
US20080040352A1 (en) Method for creating a disambiguation database
JPH08147311A (ja) 構造化文書検索方法及び装置
JP3202381B2 (ja) 文書検索装置及び文書検索方法
JPH07168848A (ja) 単語辞書検索装置
JP2007133682A (ja) 全文検索システム、及び、その全文検索方法
JP2003323425A (ja) 対訳辞書作成装置、翻訳装置、対訳辞書作成プログラム、および翻訳プログラム
JP3483585B2 (ja) 文書検索装置及び文書検索方法
JP2001101184A (ja) 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体
JPH06259423A (ja) 要約自動作成方式
JP2000339342A (ja) 文書検索方法および文書検索装置
JP3329476B2 (ja) かな漢字変換装置
JPH0991297A (ja) 文字列検索方法及び装置
Kadam Develop a Marathi Lemmatizer for Common Nouns and Simple Tenses of Verbs
JPH09185629A (ja) 機械翻訳方法
JPH03118661A (ja) 単語検索装置
KR20030068502A (ko) 번역 메모리를 이용한 번역 처리방법 및 이 번역소프트웨어를 기록한 판독 가능한 기록매체
JPH0232467A (ja) 機械翻訳方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010306