JP3427679B2 - 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体 - Google Patents

単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体

Info

Publication number
JP3427679B2
JP3427679B2 JP16145897A JP16145897A JP3427679B2 JP 3427679 B2 JP3427679 B2 JP 3427679B2 JP 16145897 A JP16145897 A JP 16145897A JP 16145897 A JP16145897 A JP 16145897A JP 3427679 B2 JP3427679 B2 JP 3427679B2
Authority
JP
Japan
Prior art keywords
word
node
words
storage means
search
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
JP16145897A
Other languages
English (en)
Other versions
JPH117451A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP16145897A priority Critical patent/JP3427679B2/ja
Publication of JPH117451A publication Critical patent/JPH117451A/ja
Application granted granted Critical
Publication of JP3427679B2 publication Critical patent/JP3427679B2/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】
【従来の技術】何らかのキーから単語を検索するという
処理は、辞書の検索やかな漢字変換といったテキスト情
報処理システムにおける基本的な過程である。それだけ
に、キーから単語を検索するために必要な処理速度や記
憶容量は、そのような処理システム全体の性能を大きく
左右する。したがって、このような処理をより高速に、
かつより少ない記憶容量から実現することによって、非
常に大きな実用的効果を得ることができる。
【0003】さて、単語をキーとして文書を検索するシ
ステムはすでに多く存在しているが、このような文書検
索システムにおいても、検索の結果として単語を出力す
る機能は、必須ではないが非常に有効な場合がある。
【0004】文書検索システムにおいて多くの場合、キ
ーである単語は、文書中に含まれているか、もしくはシ
ステムの管理者や文書の作成者によってあらかじめ選定
される。この場合、検索システムを利用する立場のユー
ザからは、登録してあるキーの単語が何であるか分から
ないことがしばしばある。そのため、ユーザを支援する
ために、文書ではなくキーワードを何らかの方法で検索
できることが必要となる。
【0005】キーワードを検索する具体的な方法とし
て、たとえば、よみから表記の単語を検索する方法、ま
たは、ある文字もしくは文字列を含む単語を検索する方
法、さらには、任意の正規表現を満たす単語を検索する
方法などが考えられる。
【0006】また、キーワードによる文書検索システム
においては、単語から所望の文書もしくは文書へのポイ
ンタを高速に得るために、インデックスとしてトライと
呼ばれる木構造(トライ・インデックス)を用いること
が多い。このトライを用いれば、高速に単語の検索を行
うことができる。トライから単語を検索するときには、
ほぼ入力文字列の長さに比例する程度の処理ステップ数
しか必要としない。またデータ圧縮率も比較的良いた
め、トライは大量の索引単語を格納するという用途に向
いている。加えて、トライを用いる場合、単語の先頭部
分の文字列を指定すると、その文字列から始まるすべて
の単語を、簡単な処理によって求めることができるとい
う利点もある。
【0007】ところが、トライから、単語の先頭以外の
任意の位置の部分文字を含む単語を、高速に探し出すこ
とはできない。ここで、これらの場合には、単語を表す
トライとは別個にインデックスを設けることによって、
任意の位置の部分文字から、その文字を含む単語を検索
することが行われている。
【0008】いま、文字を検索キーとして、その文字か
ら綴りの中の任意の位置に含む単語を検索する場合を考
えることにしよう。単語は複数の文字によって構成され
ているので、ある1つの単語は、複数の検索キー(文
字)に対応付けられている。この場合のように、検索対
象が複数のキーにリンクされているときは、検索対象の
集合を1つのデータ構造の中に格納し、検索キーにはそ
のデータ構造中のポインタの値を対応させると、必要な
記憶容量は少なくて済む。
【0009】そこで、単語集合のデータを少ない記憶容
量で表すことができ、かつ、ポインタによって単語を特
定できるデータ構造について以下に考察する。単語の集
合を格納するデータ構造として一般的なのは、固定長ま
たは可変長の文字列として格納するレコード構造であ
る。このレコード構造を用いた単語検索方式を「第1の
従来例」と呼ぶことにする。このレコード構造であれ
ば、任意の単語に対して、単語の総数によらずほぼ一定
の時間で高速にアクセスすることができる。したがっ
て、単語集合をこのようなレコード構造として格納する
ことによって、単語検索システムにおける高速なキーワ
ード検索を実現することができる。
【0010】また、第1の従来例とは別に、トライ・イ
ンデックスを単語集合のデータとみなして、単語の末尾
に対応するトライ中のノードの識別番号を単語へのポイ
ンタとすることが考えられる。これを「第2の従来例」
と呼ぶことにする。トライのような木構造においては、
根を除くすべてのノードの親ノードは一意に存在する。
したがって、親ノードへのリンク情報をすべてのノード
に持たせることによって、1つのノードを指定したとき
に、そのノードから根に至るまでの経路は一意に決定す
ることができる。
【0011】
【発明が解決しようとする課題】しかし、単語をキーと
するトライ・インデックスが存在し、なおかつそのイン
デックス中の単語を何らかのキーから検索する場合にお
いて、上記の従来の方式には以下のような問題点があっ
た。
【0012】上記の第1の従来例、すなわち、単語の集
合を固定長または可変長の文字列として格納するレコー
ド構造のデータを、インデックスとは別個に用意する方
法では、キーから単語への高速な検索は実現できるが、
すでにトライ形式で格納されている単語の集合のデータ
とは別個にあらたなデータが必要となる。そのために必
要な記憶容量は無視し得ないほど大きくなってしまうと
いう問題点がある。
【0013】上記の第2の従来例、すなわち、トライ・
インデックスを単語集合のデータとみなして、単語の末
尾に対応するトライ中のノードの識別番号を単語へのポ
インタとする方法では、第1の従来例と比べて単語集合
を表すためのデータが不要な分だけ、キーから単語への
検索自体に必要な記憶容量は第1の従来例に比べて少な
くて済むが、トライ・インデックスに対して本来ならば
不要な、親ノードへのリンク情報を追加することになっ
てしまう。したがって、検索システム全体としてみた場
合、第2の従来例は第1の従来例に比べて、記憶容量の
面で著しく改善されているとは言えない。
【0014】本発明はこのような点に鑑みてなされたも
のであり、少ない記憶容量で高速に単語を検索できる単
語検索装置を提供することを目的とする。また、本発明
の他の目的は、コンピュータに対して、少ない記憶容量
で高速に単語を検索させるための単語検索プログラムを
記録した媒体を提供することである。
【0015】
【課題を解決するための手段】本発明では上記課題を解
決するために、単語集合から単語を検索する単語検索装
置において、深さ優先順にノードが記録されるトライ形
式にしたがって、ノードに対応付けられた単語の集合が
格納された単語格納手段と、前記単語格納手段における
ノードの位置が入力されると、前記単語格納手段のトラ
イを根から順にたどっていき、入力された位置のノー
での経路を求め、求められた経路以降の全ての経路を
たどって到達するノードに対応する全ての単語を取得
し、取得した単語の集合を出力する単語検索手段と、
記単語格納手段に含まれる単語に対応するキーと、各単
語を構成しているノードの位置とを対応付けて格納する
キーインデックス格納手段と、前記キーインデックス格
納手段中の任意のキーが入力されると、前記キーインデ
ックス格納手段から、入力されたキーに対応するノード
の位置の集合を取得し、取得したノードの位置の集合を
前記単語検索手段に対して出力するノード位置検索手段
と、を有し、前記キーインデックス格納手段は、前記単
語格納手段に含まれる単語を構成する全ての文字と、各
文字を表しているノードの位置とを対応付け、かつ前記
単語格納手段に含まれる単語を構成する文字のうち、単
語の先頭文字および末尾文字を除いたすべての文字と、
各文字を表しているノードの位置とを対応付けている
とを特徴とする単語検索装置が提供される。
【0016】この単語検索装置によれば、単語格納手段
における格納先の位置情報が入力されると、単語検索手
段が、単語格納手段のトライを根から順にたどってい
き、入力された位置のノードまでの経路を求め、求めら
れた経路以降の全ての経路をたどって到達するノードに
対応する全ての単語を取得し、取得した単語の集合が出
力される。キーインデックス格納手段は、単語格納手段
に含まれる単語に対応するキーと、各単語を構成してい
るノードの位置とを対応付けて格納する。ノード位置検
索手段は、キーインデックス格納手段中の任意のキーが
入力されると、キーインデックス格納手段から、入力さ
れたキーに対応するノードの位置の集合を取得し、取得
したノードの位置の集合を単語検索手段に対して出力す
る。さらに、キーインデックス格納手段は、単語格納手
段に含まれる単語を構成する全ての文字と、各文字を表
しているノードの位置とを対応付け、かつ単語格納手段
に含まれる単語を構成する文字のうち、単語の先頭文字
および末尾文字を除いたすべての文字と、各文字を表し
ているノードの位置とを対応付けている。その結果、入
力された位置に対応する単語を含む複数の単語を、高速
に検索することができるとともに、単語格納手段に必要
な記憶容量は少なくてすむ。
【0017】
【0018】
【0019】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本発明の原理構成図であ
る。本発明に係る単語検索装置は、単語格納手段1と単
語検索手段2とを有している。
【0020】単語格納手段1には、単語の集合1aが、
深さ優先順にノードが記録されるトライ形式(トライ・
インデックス)で格納されている。ここで、ノードの深
さとは、トライの根からそのノードまでの経路の長さで
ある。そして、ノードの深さ優先順とは、できる限り探
索を深さ方向に進めたときにたどるノードの順番であ
る。あるノードの子孫のノードと、弟のノードとを比較
した場合、常に、子孫のノードの方が優先順が高い(ア
ドレスの値が小さい)。また、兄弟同士で比べると、兄
となるノードの方が優先順が高い。
【0021】単語検索手段2は、単語格納手段1におけ
る格納先の位置情報が入力されると、単語格納手段1の
トライを根から順にたどっていき、入力された位置のノ
ードまでの経路を求め、求められた経路以降の全ての経
路をたどって到達するノードに対応する全ての単語を取
得し、取得した単語集合を出力する。ノードの位置から
そのノードを含む単語または単語の集合を求めるアルゴ
リズムを以下に記述する。
【0022】図2は、ノードの位置からそのノードを含
む単語または単語の集合を求めるアルゴリズムを示すフ
ローチャートである。これは、ノードの位置情報を受け
取った単語検索手段2が行う処理である。 [S1]単語格納手段1のトライにおいて、開始ノード
から遷移することを考える。まず、トライにおけるラベ
ルの列を格納するために空のラベルスタックを用意し、
開始ノードを「ノードA」とおき、与えられたノード位
置に相当するノードを「ノードX」とおく。 [S2]ノードAの長子のノードを「B1」とする。ノ
ードAの次の位置に存在するため、長子のノードである
ノードB1は直ちに求まる。 [S3]ノードB1の隣接する弟ノードをノードB2と
する。トライを根からたどることによって、任意のノー
ドの隣接する弟のノードB2も直ちに求まる。 [S4]ノードXがノードB1と等しいか否かを判断す
る。等しければステップS8に進み、等しくなければス
テップS5に進む。 [S5]ノードXがノードB2よりも前か否かを判断す
る。前であるならステップS6に進み、前でないならス
テップS6に進む。 [S6]ノードXがノードB2よりも前にある場合、ノ
ードXは、ノードB1までの経路をたどることが分か
る。そこで、ノードAからノードB1に至るまでのアー
クに付加されたラベルをラベルスタックに格納し、ノー
ドAにノードB1を代入して、ステップS2に戻る。 [S7]ノードXがノードB2以降にある場合、ノード
Xが、ノードB1の経路をたどらないことが分かる。そ
こで、ノードB1にノードB2を代入して、ステップS
3に戻る。 [S8]ノードXがノードB1と等しい場合、ノードB
1以降の全ての経路をたどり、それらの経路となるアー
クに付加されたラベル列を求める。 [S9]ラベルスタックに格納されているラベル列とノ
ードB1以降の経路から得られたラベル列の連結し、処
理を終了する。これにより、求めるべき単語が表され
る。
【0023】このような処理を単語検索手段2が行うこ
とにより、ノード位置から、そのノードを含む単語の集
合を得ることができる。しかも、トライ中のノードが深
さ優先順に記録され、かつトライを根からたどることに
よって任意のアークに関してその隣接する弟アークが特
定できるため、トライ中のノードを指定されたときに、
親のノードへのリンク情報を用いることなく、そのノー
ドを含む経路を特定することができる。その理由を以下
に説明する。
【0024】まず、前提として、トライ中のあるノード
をノードAとし、ノードAの長子のノードをB1とし、
ノードB1の隣接する弟ノードをB2とし、ノードB1
の長子のノードをCとする。いま、ノードXの位置が指
定され、ノードAからノードXに至るまで経路を求めた
いとする。このとき、ノードXはノードAからたどれる
ことは分かっているものとする。
【0025】本発明に係るトライでは、ノードは深さ優
先順に記録されているので、ノードCは、ノードB1と
ノードB2との間にある。仮に、ノードXがノードCと
等しいとき、ノードXは、ノードB1よりも後にあり、
かつ、ノードB2よりも前にあることになる。したがっ
て、ノードXはノードB1からたどれることになる。以
上のことから、ノードXがノードB1とノードB2との
間にある場合、ノードXにはノードAからノードB1に
遷移する経路をたどって到達できることがわかる。
【0026】また、ノードXがノードB2よりも後にあ
る場合、ノードXは、ノードAからノードB1に遷移す
る経路をたどらないことがわかる。この場合、ノードX
にはノードAから、ノードB1の弟のノードのいずれか
を遷移する経路をたどって到達できることが分かる。以
上の考察を繰り返すことによって、ノードAからノード
Xまで到達できる経路が分かる。
【0027】以上の結果、ノードの位置を指定されたと
きに、トライの根から遷移することによって、そのノー
ドを含む単語を求めることができる。しかも、トライに
おける単語を、トライにおけるノードの位置をポインタ
として参照することによって、トライ・インデックス以
外に単語集合を表すデータを設けておく必要がなく、情
報の記憶容量が少なくてすむ。
【0028】また、単語に対する検索キー(文字)の入
力に応じて、単語の集合が出力されるようにすることも
できる。そのような単語検索装置について、以下に説明
する。
【0029】図3は、単語へのキーを入力とする単語検
索装置の原理構成図である。この単語検索装置は、単語
格納手段11、キーインデックス格納手段12、ノード
位置検索手段13及び単語検索手段14で構成されてい
る。なお、単語格納手段11と単語検索手段14とは、
図1中の単語格納手段1と単語検索手段2と同じ機能有
しているため、ここでは説明を省略する。
【0030】キーインデックス格納手段12は、単語へ
のキー(文字)と、そのキーと同じラベルが付加されて
いるノードの位置情報とを対応付けて格納している。こ
のように、キーとノード位置との対応関係のすべてをも
とにキーインデックス格納手段12が構成されている。
なお、1つのキーに対して複数の単語が対応している場
合、キーインデックス格納手段12において、そのキー
にはノードの位置の集合が対応している。
【0031】ノード位置検索手段13は、単語へのキー
が入力されると、キーインデックス格納手段12の中か
ら、対応するノードの位置の集合を検索する。そして、
得られたノードの位置の集合を単語検索手段14へ入力
する。
【0032】以後、単語検索手段14が、単語格納手段
11から各ノード位置に対応する単語集号を検索し、単
語集合を出力する。これにより、単語を構成している文
字を検索キーとして入力し、その文字を含む単語の集合
を得ることができる。すなわち、単語の先頭以外の任意
の位置の部分文字を含む単語の集合を探し出すことがで
きる。
【0033】なお、キーインデックス格納手段12は、
単語格納手段11に含まれる単語を構成する文字のう
ち、単語の先頭文字および末尾文字を除いたすべての文
字と、単語格納部中でのその文字を表しているノードの
位置とを対応付けているものであってもよい。それは、
単語の先頭文字あるいは末尾文字から始まる単語は、従
来の技術を用いて検索できるため、特にキーインデック
ス格納手段12において管理する必要がないからであ
る。このように、単語の先頭文字および末尾文字に対応
するノードの位置の情報を省略すれば、キーインデック
ス格納手段12に必要な記憶容量をさらに減らすことが
できる。
【0034】また、単語格納手段11には、単語に対応
する情報(例えば、その単語を含む文書)へのポインタ
とそれに対応する単語とを組にして格納しておき、単語
検索手段14は、単語格納手段11から各々のノードが
表す単語および単語に対応する情報へのポインタの集合
を出力するようにしてよい。これにより、任意のキー
(文字)を入力することにより、そのキーを含む単語を
取得し、さらに、取得した単語に対応する情報(文書な
ど)を得ることができる。
【0035】以上が本発明の基本となる原理構成であ
る。以下に、上記の構成をより具体化した単語検索装置
の実施の形態を説明する。図4は、本発明の第1の実施
の形態を示すブロック図である。これは、単語を入力と
して、その単語に関連する単語の集合を検索する単語検
索装置である。
【0036】この実施の形態に係る単語検索装置は、関
連単語インデックス部21、ノード位置検索部22及び
単語検索部23で構成されている。関連単語インデック
ス部21には、図3の原理構成で示した単語格納手段1
1とキーインデックス格納手段12との情報を保持して
いるとともに、ある単語とその単語に対する関連語集合
との対応関係をも保持している。
【0037】ノード位置検索部22は、単語の入力を受
けると、その単語に関連する単語(その単語自身も含
む)のノードの位置の集合を受け取り、単語検索部23
に入力する。単語検索部23は、入力されたノードの位
置の集合に基づいて、関連単語インデックス部21を検
索し、関連単語の集合を取得し、出力する。
【0038】ここで、本発明の実施の形態の詳細を説明
する前に、木に関する用語をあらためて定義する。木
は、ノードとよばれる要素の集合に対して階層関係を与
えたものである。以下、木において与えられる階層関係
は、親子親戚関係を表すことばで表現することにする。
木においては、自らを含むすべてのノードを子孫とする
ノードが1つ存在する。これを開始ノードとよぶことに
する。開始ノード以外のすべてのノードに対して、その
親であるノードが必ず1つ存在する。ノードとノードと
の間の親子関係のつながりを示すものを、アークとよぶ
ことにする。そして、ノードは、特別な状態として、終
了状態を持つことができることにし、終了状態ではない
他のノードと区別することにする。また、自分自身以外
の子孫を持たないノードは、終了状態であるとする。
【0039】トライは木構造の一種であり、開始ノード
から終了状態のノードまでを、任意個のノードを経由し
てアークによって結ばれている経路の1本1本に、集合
の中の1つの単語が対応している。本説明文中では、ト
ライにおいて、単語を構成する要素である文字を、アー
クに対して割りつけることにする。また、1つのノード
から派生している各々のアークに対応する文字は、すべ
て異なるようにノードを構成する。トライにおいては、
開始ノードを除いて1つのノードに遷移するアークは必
ず1つ存在するので、このようなノードとアークの組を
1つの辺節という単位と見なすことにする。以下にある
単語の集合を表したトライの例を示す。
【0040】図5は、単語の集合の例を示す図である。
この単語集合には、6個の単語「解」「解析」「解像
度」「解像力」「現像」「像」がある。それぞれの単語
には、ポインタが対応付けられている。ポインタは、そ
の単語を含む文書の識別子集合の位置を指し示すもので
あるが、この実施の形態では、関連語のノード位置の集
合を指し示すのにも用いられる。「解」のポインタは
「T1」であり、「解析」のポインタは「T2」であ
り、「解像度」のポインタは「T3」であり、「解像
力」のポインタは「T4」であり、「現像」のポインタ
は「T5」であり、「像」のポインタは「T6」であ
る。この単語の集合を基に、深さ優先順のノードが記録
されたトライを生成する。
【0041】図6は、深さ優先順にノードが記録された
トライの例を示す図である。これは、図5に示した6個
の単語「解」「解析」「解像度」「解像力」「現像」
「像」をトライによって表したものである。図中、丸印
若しくは2重丸で表しているのがノード30〜38であ
る。2重丸は終了状態のノード(対応する単語が存在す
るノード)を表している。根であるノード30が単語検
索時の「開始ノード」となる。終了状態のノードの右下
にある記号はその終了状態のノードによって示されるこ
とばに関連する単語の集合を意味する識別子をそれぞれ
表している。なお、図中の開始ノード以外の各ノード3
1〜38の近傍に表示しているのが、それぞれのノード
のアドレス(位置)である。また、各ノード31〜38
を接続している矢印がアーク41〜48である。各アー
ク41〜48の上にある文字( ここでは漢字1文字) は
ラベルである。
【0042】図6におけるトライのノードを深さ優先順
に並べると、根のノード30から派生する「解」のラベ
ルをもつアーク41を遷移してきたノード31、ノード
31から派生する「析」のラベルをもつアーク42を遷
移してきたノード32、ノード31から派生する「像」
のラベルをもつアーク43を遷移してきたノード33、
…の順となる。
【0043】このように、辺節を深さ優先順に記録し、
かつ、ある辺節からそのすぐとなりの弟の位置が特定で
きるようにする。図7は、トライ・インデックスの例を
示す図である。この図には、辺節の情報が格納されたア
ドレス、その辺節の直下の弟ノードの位置(アドレ
ス)、その辺節に対応するラベル、ノードの状態及び対
応する文書集合へのリンク情報を示している。この例で
は、ラベルは漢字1文字である。ノードの状態は、「終
了」「継続」のいずれか一方、若しくは双方が設定され
ている。「終了」は、そのノードに対応する単語が存在
することを示し、「継続」は、そのノードが子供を有し
ていることを示す。
【0044】このようにトライを構成することによっ
て、ある「辺節A」が指定されたときに、「辺節A」の
長男および「辺節A」のすぐとなりの弟の辺節を直ちに
特定できる。
【0045】具体的な事例データを想定して、本実施例
の動作を説明しよう。簡単のために、図5に示す単語の
集合が与えられ、そのうち「解像度」と「解像力」が互
いに関連しているとする。
【0046】まず、すべての単語を表すトライを作成
し、単語の末尾に相当する最終ノードには、その単語に
関連する単語の集合へのリンクを張っておく。これをト
ライ1とよぶ。図5の単語集合が与えられた場合であれ
ば、図6のトライを構成する。
【0047】次に、単語の集合へのリンク情報から単語
を対応付けるテーブルを用意する。これを関連語対応テ
ーブルとよぶことにする。図8は、関連語対応テーブル
を示す図である。このテーブルは、単語から関連語集合
へのリンク情報とノード位置の集合とが対応付けられて
いる。この例では、「解像度」と「解像力」が互いに関
連していることから、リンク情報「T3」「T4」には
ノードの位置「14,19」が対応している。
【0048】次に、本実施の形態の検索を実行する動作
を、例を交えて説明する。検索キーとして単語が入力さ
れ、入力単語に関連する単語集合を求める場合を考える
ことにする。いま想定している事例データのもとで、
「解像度」が検索キーとして入力された場合を考える。
【0049】まず、ノード位置検索部22によって、検
索キーの単語「解像度」に対応するノード位置の集合、
すなわち、関連単語集合へのリンク情報を求められる。
具体的には次のように行う。トライから単語を検索する
通常の方法によって、トライ・インデックスから「T
3」というリンク情報を求める。そして、関連語対応テ
ーブルから、「T3」に対応するノード位置集合とし
て、「14,19」を得る。
【0050】次に、単語検索部23が、ノード位置検索
部22によって得られたノード位置集合から、対応する
単語集合を求める。以下に、図6のトライに基づいて、
1つのノード位置をキーとして対応する単語を検索する
手順を説明する。
【0051】図9は、第1の実施の形態における単語検
索手順を示すフローチャートである。 [S11]検索キーのノードアドレスは「A」であたえ
られたとする。まず、単語の文字列を記録するためのラ
ベル記録部を用意しておく。はじめはトライの先頭にあ
る辺節に注目する。注目している辺節を「現在の辺節」
と、その辺節に含まれるアークとノードとを、それぞれ
「現在のアーク」、「現在のノード」とよぶことにす
る。 [S12]現在の辺節が「A」と等しいか否かを判断す
る。等しければステップS13に進み、等しくなければ
ステップS14に進む。 [S13]現在の辺節のアドレスが、「A」と等しいと
き、現在のアークのラベルをラベル記録部にプッシュ
(格納)し、ラベル記憶部の内容を出力し、正常に処理
を終了する。 [S14]現在の辺節が弟を有しているか否かを判断す
る。弟を有していればステップS15に進み、有してい
なければステップS17に進む。 [S15]現在の辺節が弟を有している場合には、隣接
する弟の辺節のアドレスが「A」以下か否かを判断す
る。「A」以下であればステップS16に進み、「A」
以下でなければステップS17に進む。 [S16]隣接する弟の辺節のアドレスが「A」以下の
場合、隣接する弟の辺節に注目し、ステップS12に進
む。 [S17]現在の辺節が子を有しているか否かを判断す
る。子を有していればステップS18に進み、子を有し
ていなければ不正終了として処理を終了する。 [S18]現在の辺節が子を有している場合には、長子
の辺節のアドレスが「A」以下であるか否かを判断す
る。「A」以下であればステップS19に進み、「A」
以下でなければ、不正終了として処理を終了する。 [S19]現在のアークのラベルをラベル記録部にプッ
シュして、長子の辺節に注目し、ステップS12に進
む。
【0052】以上の処理によって、ノード位置をキーと
して対応する関連単語が出力される。例として、単語へ
のリンク情報としてアドレス「14」が得られたとき、
上記のアルゴリズムにしたがって図7のように記録され
たトライから対応する関連単語を求めることにする。
【0053】まず、ステップS11より、「A」に「1
4」を代入し、アドレス「0」の辺節に注目する。ラベ
ル記録部は空にしておく。以下、辺節はそのアドレスに
よって識別することにする。すなわち、アドレス「0」
の辺節は、辺節「0」とよぶことにする。ノードとアー
クに関しても辺節と同様に識別することにする。
【0054】ステップS12において、現在の辺節
「0」は「A(=14)」に等しくないので、ステップ
S14に進む。ステップS14において、現在の辺節
「0」には弟の辺節が存在するので、ステップS15に
進む。ステップS15において、隣接する弟=24、A
=14であり、隣接する弟≦Aは成り立たないので、ス
テップS17に進む。
【0055】ステップS17において、現在の辺節
「0」には子の辺節が存在するので、ステップS18に
進む。ステップS18において、長子=5、A=14で
あり、長子≦Aが成り立つので、ステップS19に進
む。
【0056】ステップS19において、現在のアーク
「0」のラベル「解」をラベル記録部にプッシュし、長
子の辺節「5」に注目する。そして、ステップS12に
進む。再びステップS12において、現在の辺節「5」
は「A(=14)」に等しくないので、ステップS14
に進む。
【0057】ステップS14では、現在の辺節「5」に
対して弟の辺節が存在するので、ステップS15に進
む。ステップS15では、隣接する弟(=10)≦A
(=14)が成り立つので、隣接する弟「10」に注目
し、ステップS12に進む。
【0058】ステップS12において、現在の辺節「1
0」は「A(=14)」と等しくないので、ステップS
14に進む。ステップS14において、現在の辺節「1
0」に対して弟の辺節が存在しないので、ステップS1
7に進む。
【0059】ステップS17において、現在の辺節「1
0」には子の辺節が存在するので、ステップS18に進
む。ステップS18において、長子=14、A=14で
あり、長子≦Aが成り立つので、ステップS19に進
む。
【0060】ステップS19において、現在のアーク
「10」のラベル「像」をラベル記録部にプッシュし、
長子の辺節「14」に注目する。そして、ステップS1
2に進む。
【0061】ステップS12において、現在の辺節「1
4」は「A(=14)」と等しいのでステップS13に
進む。ステップS13において、現在のアーク「14」
のラベル「度」をラベル記録部にプッシュし、ラベル記
録部の内容である「解、像、度」を出力し、正常に処理
を終える。
【0062】以上の処理によって、ノードの位置「1
4」から、対応する単語である「解像度」を得ることが
できる。同様にして、ノードの位置「19」からは、
「解像力」が得られる。すなわち、「解像度」の入力に
対して、「解像度、解像力」の出力が得られたことにな
る。
【0063】このようにして、トライを用いて、関連語
の検索処理を少ない記憶容量で高速に行うことが可能と
なる。次に、第2の実施の形態について説明する。第2
の実施の形態は、文字からその文字を含むキーワードを
検索する単語検索装置である。
【0064】図10は、第2の実施の形態の概略構成を
示す図である。この実施の形態に係る単語検索装置は、
単語格納部51、文字インデックス部52、ノード位置
検索部53、及び単語検索部54とから構成されてい
る。この構成要素のうち、単語格納部51、ノード位置
検索部53及び単語検索部54は、図3に示した、単語
格納手段11、ノード位置検索手段14及び単語検索手
段12の機能を有している。また、文字インデックス部
52は、図3のキーインデックス格納手段13のキーイ
ンデックスを具体的な文字インデックスとしたものであ
る。
【0065】はじめに、索引単語の集合をトライで表現
し、単語格納部51を構成する。索引単語を表す最終ノ
ードには、その索引単語に関連する文書の集合をたどれ
るようにリンクを張っておく。第1の実施の形態と同様
に、図5のように与えられた索引単語に対応して図6の
トライによる単語インデックス(トライ・インデック
ス)を構成する。この単語インデックスは、単語格納部
51に格納される。
【0066】さらに、索引単語を構成する文字からその
索引単語を導くことができる文字インデックスを構成す
る。この文字インデックスは、文字インデックス部52
に格納される。図5の索引単語集合の場合、索引単語を
構成する全ての文字の集合は、{解, 現, 析, 像, 度,
力}である。この文字集合の各文字について、図6のト
ライを先頭からたどることによって、各々の文字の位置
を求める。その結果から、文字インデックスを作成す
る。
【0067】図11は、文字インデックスの例を示す図
である。図のように、文字とその文字を含む索引単語を
対応させる。この例では、トライ55を文字インデック
スのデータ構造として採用している。
【0068】図5から、文字「解」を含む索引単語は
「解」「解析」「解像度」「解像力」と複数あることが
分かるが、これらへのリンク情報は「解」という文字を
表す1つのノードの位置「0」だけで済んでいる。この
ように、トライ・インデックス中での文字のノードの位
置を用いると、単語の末尾のノード位置を単語へのポイ
ンタとする場合に比べて、文字インデックスの容量を小
さくすることができる。
【0069】さて、検索を実行する動作を例を交えて説
明する。検索キーとして1文字が入力され、この文字を
含む索引単語と文書集合へのリンクとを求める場合を考
えることにする。具体例として、図11および図6のイ
ンデックスを用いて、検索キーとして「像」が入力され
た場合を想定する。
【0070】まず、ノード位置検索部53によって、文
字インデックス部52から検索キーの文字( 例では
「像」) を含んでいる索引単語へのリンクを見つける。
図11より、「10」、「28」、「33」というリン
ク情報が得られることが分かる。
【0071】次に、単語検索部54によって、リンク情
報から、単語インデックスを用いて索引単語およびその
索引単語が指し示す文書集合を求める。以下に、その手
順を説明する。
【0072】図12〜図14は、第2の実施の形態にお
いて文書集合を求めるための処理手順を示すフローチャ
ートである。図12ではステップS21〜S27の処理
を示しており、図13ではステップS31〜S36の処
理を示しており、図14ではステップS41〜S48の
処理を示している。以下、各ステップの処理内容を説明
する。 [S21]求める索引単語へのリンク情報は、トライの
辺節アドレスが「A」で与えられたとする。索引単語の
文字列を記録するためのラベル記録部、ラベル記録部に
記録した文字列を一時的に待避させておくためのラベル
スタック、及びラベルを待避させたときの辺節を保存し
ておくための辺節スタックをそれぞれ用意し、内容をク
リアしておく。開始ノードに移動し、トライの先頭にあ
る辺節に注目する。注目している辺節を現在の辺節とよ
ぶことにする。 [S22]現在の辺節が、与えられたリンク情報「A」
と等しいか否かを判断する。等しければステップS23
に進み、等しくなければステップS31(図13に示
す)へ進む。 [S23]現在の辺節が、与えられたリンク情報「A」
と等しい場合、現在のアークのラベルをラベル記録部に
プッシュする。 [S24]現在のノードが終了状態か否かを判断する。
終了状態であればステップS25に進み、終了状態でな
ければステップS26に進む。 [S25]現在のノードが終了状態の場合、ラベル記録
部の内容と、現在の終了状態ノードに対応する文書集合
へのリンクとをそれぞれ出力する。 [S26]現在の辺節が子を持っている否かを判断す
る。子をもっていればステップS27に進み、子をもっ
ていなければ、処理を正常終了する。 [S27]現在の辺節が子をもっている場合、長子の辺
節に注目し、ステップS41(図14に示す)に進む。 [S31]ステップS22において、現在の辺節が弟を
もっていると判断された場合、ステップS32に進み、
弟をもっていなければステップS34に進む。 [S32]隣接する弟の辺節のアドレスが「A」以下か
否かを判断する。「A」以下であればステップS33に
進み、「A」以下でなければステップS34に進む。 [S33]隣接する弟の辺節のアドレスが「A」以下の
場合、隣接する弟の辺節に注目し、ステップS22(図
12に示す)に進む。 [S34]隣接する弟の辺節のアドレスが「A」以下で
ない場合、現在の辺節が子をもっているか否かを判断す
る。子をもっていればステップS35に進み、子をもっ
ていなければ不正終了として処理を終了する。 [S35]長子の辺節のアドレスが「A」以下か否かを
判断し、「A」以下であればステップS36に進み、
「A」以下でなければ不正終了として処理を終了する。 [S36]現在のアークのラベルをラベル記録部にプッ
シュして、長子の辺節に注目する。そして、ステップS
22(図12に示す)に進む。 [S41]現在の辺節が弟をもっているか否かを判断す
る。弟をもっていればステップS42に進み、弟をもっ
ていなければステップS43に進む。 [S42]現在の辺節が弟をもっている場合には、ラベ
ル記録部の内容をラベルスタックに、隣接する弟の辺節
を辺節スタックにそれぞれプッシュする。 [S43]現在のノードが終了状態か否かを判断する。
終了状態であればステップS44に進み、終了状態でな
ければステップS45に進む。 [S44]現在のノードが終了状態の場合、ラベル記録
部の内容と現在のアークのラベルをつなげたもの、現在
の終了状態ノードに対応する文書集合へのリンクとをそ
れぞれ出力する。 [S45]現在の辺節が子をもっているか否かを判断す
る。子をもっていればステップS46に進み、子をもっ
ていなければステップS47に進む。 [S46]現在の辺節が子をもっている場合、現在のア
ークのラベルをラベル記録部にプッシュして、長子の辺
節に注目する。そして、ステップS41に進む。 [S47]ラベルスタックと辺節スタックが空か否かを
判断する。空でなければステップS48に進み、空であ
れば正常終了する。 [S48]ラベルスタックと辺節スタックが空ではない
とき、ラベルスタックからラベル記録部にポップし、辺
節スタックからポップした辺節に注目する。そして、ス
テップS41に進む。
【0073】以上の処理によって、索引単語の文字列
と、その索引単語から対応する文書集合へのリンクが出
力される。例として、索引単語へのリンク情報として
「10」が得られたとき、上記のアルゴリズムにしたが
って図7のトライをたどることにする。
【0074】まず、ステップS21より、「A」に「1
0」を代入し、辺節「0」に注目する。ラベル記録部、
ラベルスタック、辺節スタックはいずれも空にしてお
く。ステップS22において、現在のノード「0」は
「A(=10)」に等しくないので、ステップS31に
進む。
【0075】ステップS31において、現在のノード
「0」には弟が存在するので、ステップS32に進む。
ステップS32において、隣接する弟=24、A=10
であり、隣接する弟≦Aは成り立たないので、ステップ
34に進む。
【0076】ステップS34において、現在のノード
「0」には子が存在するので、ステップS35に進む。
ステップS35において、長子=5、A=10であり、
長子≦Aが成り立つので、現在のアーク「0」のラベル
「解」をラベル記録部にプッシュし、長子の辺節「5」
に注目する。そして、ステップS22に進む。
【0077】再びステップS22において、現在の辺節
「5」は「A(=10)」に等しくないので、ステップ
S31に移る。ステップS31では、現在の辺節「5」
に対して弟の辺節「10」が存在するので、ステップS
32に進む。ステップS32では、隣接する弟(=1
0)≦A(=10)は成り立つので、隣接する弟「1
0」に注目し、ステップS22に進む。
【0078】ステップS22において、現在の辺節「1
0」は「A(=10)」と等しいので、現在のアーク
「10」のラベル「像」をラベル記録部にプッシュす
る。現時点のラベル記録部の内容は「解像」である。ス
テップS24に進む。ステップS24において、現在の
ノード「10」は終了状態ではないので、ステップS2
6に進む。ステップS26において、現在の辺節「1
0」は子をもっているので、長子の辺節「14」に注目
し、ステップS41に進む。
【0079】ステップS41において、現在のノード
「14」は弟をもっているので、ステップS42に進
む。ステップS42において、ラベル記録部の内容であ
る「解像」をラベルスタックにプッシュし、隣接する弟
の辺節「19」を辺節スタックにプッシュする。そし
て、ステップ43に進む。
【0080】ステップS43において、現在のノード
「14」は終了状態なので、ステップS44に進む。ス
テップS44において、ラベル記憶部の内容である「解
像」とアーク「14」のラベルである「度」をつなげた
「解像度」と、ノード「14」に対応する文書集合への
リンク情報である「T3」を出力する。そして、ステッ
プS45に進む。
【0081】ステップS45において、現在のノード
「14」は子をもたないので、ステップS47に進む。
ステップS47において、ラベルスタックと辺節スタッ
クは空ではないので、ステップS48に進む。ステップ
S48において、ラベルスタックからポップして「解
像」を取り出し、これをラベル記録部に代入し、辺節ス
タックからポップして辺節「19」を取り出し、この辺
節「19」に注目する。現時点では、ラベルスタックと
辺節スタックは空である。そして、ステップS41に進
む。
【0082】再びステップS41において、現在のノー
ド「19」は弟をもたないので、ステップS43に進
む。ステップS43では、現在のノード「19」は終了
状態なので、ステップS44に進む。ステップS44に
おいて、ラベル記憶部の内容である「解像」とアーク
「19」のラベルである「力」をつなげた「解像力」
と、ノード「19」に対応する文書集合へのリンク情報
である「T4」を出力する。そして、ステップS45に
進む。
【0083】ステップS45において、現在のノード
「19」は子をもたないので、ステップS47に進む。
ステップS47において、ラベルスタックと辺節スタッ
クは空なので、正常に処理を終わる。
【0084】以上の処理によって、「像」という文字を
含む索引単語へのリンクである「10」から、2つの索
引単語( 「解像度」と「解像力」) 、および対応する文
書集合へのリンク情報(「T3」と「T4」)を求めこ
とができる。
【0085】次に第3の実施の形態について説明する。
図15は、第3の実施の形態の概略構成を示すブロック
図である。これは、任意の正規表現からその正規表現を
満たすキーワードを検索する単語検索装置である。
【0086】この実施の形態に係る単語検索装置は、単
語格納部61、文字インデックス部62、ノード位置検
索部63、単語検索部64、及び正規表現解析部65で
構成されている。このうち、単語格納部61、文字イン
デックス部62、ノード位置検索部63、及び単語検索
部64は、図10に示した単語格納部51、文字インデ
ックス部52、ノード位置検索部53、及び単語検索部
54とほぼ同じ機能を有している。
【0087】正規表現解析部65は、正規表現の検索キ
ーが入力されると、検索キーを解析し、その検索キーに
適合する単語集合を得る。その際、必要に応じて、ノー
ド位置検索部63へ文字列を入力し、その戻り値として
各文字列のノード位置を得る。また、ノード位置を単語
検索部64に入力して、単語集合を得る。
【0088】以下に、正規表現解析部65が検索を実行
する際の動作を説明する。なお、トライにおいて、2つ
のノード「N1」、「N2」を指定したときに、ノード
「N1」からたどることができ、ノード「N2」からは
たどることのできないような、「N1」を開始ノードと
するトライの部分木を、「N1」と「N2」から規定さ
れるサブトライとよぶことにする。
【0089】ここで、以下の3つの手続き関数「F
1」、「F2」、「F3」を定義する。これらの関数の
処理は、正規表現解析部65で行われる。まず、関数
「F1」について説明する。関数「F1」は、サブトラ
イ「T」と正規表現「R」を引数とし、文字列の集合
「S」を値として返す関数である。
【0090】図16、図17は、関数「F1」の処理手
順を示すフローチャートである。図16は、ステップS
51〜S58の処理を示し、図17は、ステップS61
〜S68の処理を示している。 [S51]正規表現「R」の先頭が、確定している文字
列「B」または文字集合「B」で始まるか否かを判断す
る。確定文字列等で始まる場合にはステップS52に進
み、確定文字列で始まらない場合にはステップS61に
進む。 [S52]正規表現「R」の先頭が確定している文字列
「B」または文字集合「B」から始まる場合、「R」か
ら「B」の部分を除く正規表現を「R1」とし、以下の
処理を行う。 [S53]文字列または文字集合「B」を入力としてサ
ブトライ「T」をたどることができるか否かを判断す
る。たどることができた場合には、ステップS55に進
み、たどることができない場合にはステップS54に進
む。 [S54]エラーを関数「F1」の値「S」として返
し、処理を終了する。 [S55]「B」から「T」をたどることができた場
合、正規表現「R1」が空か否かを判断する。空であれ
ばステップS56に進み、空でなければステップS58
へ進む。 [S56]正規表現「R1」が空の場合、サブトライ
「T」を入力「B」でたどった先が終了状態のノードか
否かを判断する。終了状態であればステップS57に進
み、終了状態でなければステップS54に進む。 [S57]サブトライ「T」を入力「B」でたどった先
が終了状態のノードの場合、文字列「B」を関数「F
1」の値「S」として返し、処理を終了する。 [S58]正規表現「R1」が空でない場合、文字列
「B」を入力としてサブトライ「T」をたどったとき、
更にたどることのできる残りのサブトライを「T1」と
する。関数「F1」に、引数としてサブトライ「T1」
と正規表現「R1」を渡し、文字列「B」と関数「F
1」の評価した値である文字列集合の各々とを連結し、
得られた文字列集合を値「S」として返す。そして、処
理を終了する。 [S61]正規表現「R」の中に、確定している文字
「C1,C2,C3,・・・」が含まれているか否かを
判断する。確定している文字が含まれていればステップ
S62に進み、含まれていなければステップS68に進
む。 [S62]確定している文字Ci( ただし、i=1,
2,3,・・・)をトライにおいて表しているノードが
出現する数をAiとし、A1,A2,A3,... の中で
最小値をとる文字「Cj」を、ノード位置検索部63の
出力から決定する。 [S63]文字「Cj」を表しているノード位置の各々
「Pi( ただし、i=1,2,3,・・・)」につい
て、正規表現「R」において文字「Cj」を最後に含む
「R」の一部を正規表現「R1」とし、残りの正規表現
を「R2」とし、「R1」を受理する有限状態オートマ
トン「M」をつくり、ステップS64に進む。すべての
ノード位置「Pi」について処理を終えたとき、ステッ
プS67に進む。 [S64]関数「F2」に、引数として有限状態オート
マトン「M」、サブトライ「Ti」、ノード位置「P
i」を渡し、関数「F2」を評価した値である文字列
「s」を得る。 [S65]関数「F2」の値である文字列「s」が正常
出力か否かを判断する。正常出力であればステップS6
6に進み、正常出力でなければ(文字列「s」がエラー
の場合)ステップS63に進む。 [S66]ノード位置「Pi」からたどることのできる
サブトライを「Ti」とする。関数「F1」に、引数と
してサブトライ「Ti」と正規表現「R2」を渡し、文
字列「s」と、関数「F1」を評価した値である文字列
集合「S1」の各々の要素を連結した文字列の集合を求
め、文字列集合「S」としてプッシュする。そして、ス
テップS63へ進む。 [S67]文字列集合「S」を出力し、処理を終える。 [S68]「R」を満たす文字数「N」を求め、関数
「F3」に、引数としてサブトライ「T」と文字数
「N」を渡し、関数「F3」を評価した値である文字列
集合を求め、文字列集合「S」として出力し、処理を終
える。
【0091】次に、関数「F2」について説明する。関
数「F2」は、有限状態オートマトン「M」とサブトラ
イ「T」、ノード位置「P」を引数とし、文字列「s」
を値として返す関数である。
【0092】図18は、関数F2の処理手順を示すフロ
ーチャートである。 [S71]サブトライ「T」において、ノード位置
「P」を指定すると、そのノードに至るまでの経路は一
意に定まる。そこで、サブトライ「T」をノード位置
「P」に至るまでたどることによって得られるラベル列
「L」を、有限状態オートマトン「M」の入力とする。 [S72]ラベル列「L」が有限状態オートマトン
「M」に受理されるか否かを判断する。受理される場合
はステップS73に進み、受理されない場合はステップ
S74に進む。 [S73]ラベル列「L」が有限状態オートマトン
「M」に受理される場合、ラベル列「L」を出力し、処
理を終了する。 [S74]ラベル列「L」が有限状態オートマトン
「M」に受理されない場合、エラーを出力し、処理を終
了する。
【0093】次に、関数「F3」について説明する。関
数「F3」は、サブトライ「T」と文字数「N」を引数
とし、文字列の集合「S」を値として返す。図19は、
関数F3の処理手順を示すフローチャートである。 [S81]開始ノードが終了状態であり、かつ文字数
「N」として「0」をとることができる場合、空の文字
列を文字列の集合「S」にプッシュする。 [S82]サブトライ「T」を文字数「N」分だけすべ
てたどり、たどった先が終了状態のノードとなるラベル
列の集合「L」を求め、「L」を文字列の集合「S」に
プッシュする。 [S83]「S」が空か否かを判断する。「S」が空で
あればステップS85に進み、「S」が空でないならス
テップS84に進む。 [S84]「S」が空でない場合、「S」を出力し、処
理を終了する。 [S85]「S」が空の場合、エラーを出力し、処理を
終了する。
【0094】以上のように関数を定義すると、関数「F
1」に、引数として単語インデックスのトライと任意の
正規表現を渡し、関数「F1」を評価することによっ
て、与えた正規表現に適合する単語の集合を得ることが
できる。
【0095】具体例として、正規表現「?アイデ?ア
?」に合致する単語を探す場合を考えることにする。正
規表現において、「?」は0個以上の任意の文字に該当
するワイルドカードを意味する。検索の意図は、「アイ
デア」に対して「アイディア」などといった表記の揺れ
を考慮し、かつ「アイデ?ア」という文字列を含む単語
を検索することである。このように、正規表現に合致す
る単語を検索できることによって、検索洩れを少なくす
ることが期待できる。
【0096】例えば、以下のような単語インデックスが
単語格納部61に格納されている場合を考える。図20
は、第3の実施の形態におけるトライ66の例を示す図
である。この例では、各辺節のラベルとして、カタカナ
1文字が与えられている。
【0097】図21は、第3の実施の形態における文字
インデックスの例を示す図である。この文字インデック
スでは、各文字に対して、「出現数」と「対応するノー
ド位置」とが対応付けられている。
【0098】ここで、関数「F1」に、引数として単語
インデックスのトライ「T」と正規表現「?アイデ?ア
?」(R)を渡した場合の、関数「F1」の値の評価手
順を説明する。
【0099】ステップS51において、正規表現「R」
は確定文字列から始まっていなので、ステップS61へ
進む。ステップS61において、正規表現「R」の中
に、確定している文字( 「ア」「イ」「デ」) が含まれ
ているので、ステップS62へ進む。
【0100】ステップS62において、「R」の確定し
ている3つの文字{C1,C2,C3}={ア, イ,
デ}を表すノードの出現数をそれぞれ求める。図21の
文字インデックスからそれぞれ、「5」「2」「2」で
あると分かる。
【0101】ステップS63において、これらの中で最
小値をとる文字として「イ」をとりあげる。そして、文
字「イ」を表しているすべてのノード位置{P1,P
2}={10,120}について、以下の処理を行う。
【0102】ステップS63で、正規表現「?アイデ?
ア?」から、「R1」を「?アイ」、「R2」を「デ?
ア?」とし、「R1」を受理する有限オートマトンを
「M」を作る。
【0103】図22は、「イ」をとりあげた場合の有限
オートマトン67の遷移図である。図に示すように、文
字列の途中(最初でもよい)で「ア」、「イ」が連続し
て出現した場合に、終了状態のノードへ遷移する。
【0104】ステップS64で、関数「F2」に、引数
として有限状態オートマトン「M」、サブトライ
「T」、ノード位置「P1」を渡し、関数「F2」を評
価する。さて、関数「F2」の処理(図18に示す)の
ステップS71において、サブトライ「T1」をノード
位置「P1(=10)) に至るまでに得られるラベル列
「L」は「アイ」である。
【0105】ステップS72の判断において、「L」は
有限状態オートマトン「M」に受理されることが分か
る。ステップS73で、ラベル列「L」(=「アイ」)
を出力し、関数「F2」の処理を完了する。
【0106】関数「F2」の値は、文字列「アイ」であ
る。したがって、ステップS64では、これを「s」と
する。ステップS65で、文字列「s」(=「アイ」)
はエラーではないので、ステップS66へ進む。
【0107】ステップS66で、関数「F1」に、引数
としてサブトライ「T1」と正規表現「R2」(=「デ
? ア? 」)を渡し、関数「F1」を評価する。以後、こ
の関数「F1」に関しては関数「F1’」などと表記す
る。
【0108】図23は、ノード位置P1(=10)から
たどることのできるサブトライ「T1」を示す図であ
る。このサブトライ68は、図20のトライ66におけ
るノード位置P1(=10)の子孫に該当する全ての経
路を抽出したものである。
【0109】さて、関数「F1’」のステップS51に
おいて、正規表現「R’」の先頭は確定している文字
「B’」(=「デ」)から始まっている。ステップS5
2において、「R1’」を「?ア?」とし、ステップS
53へ進む。
【0110】関数「F1’」のステップS53で、文字
「B’」(=「デ」)を入力としてサブトライ「T’」
をたどることができるので、ステップS55へ進む。関
数「F1’」のステップS55の判断において、正規表
現「R1’」「?ア?」は空ではないので、ステップS
58へ進む。
【0111】関数「F1’」のステップS58で、文字
「B’」(=「デ」)を入力としてサブトライ「T’」
をたどり、更にたどることのできる残りのサブトライを
「T1’」とする。関数「F1」に、引数としてサブト
ライ「T1’」と正規表現「R1’」(=「?ア?」)
を渡し、関数「F1」を評価する。以後、このF1に関
してはF1’’などと表記する。
【0112】さて、関数「F1’’」のステップS51
において、正規表現「R’’」(=「?ア?」)の先頭
は確定文字列から始まっていないので、ステップS61
へ進む。
【0113】関数「F1’’」のステップS51におい
て、正規表現「R’’」(=「?ア?」)の中に確定文
字「C1’’」(=「ア」)が含まれているので、ステ
ップS62へ進む。
【0114】関数「F1’’」のステップS62で、
「Cj’’」として「C1’’」(=「ア」)が相当
し、ノード位置の集合{P1’’,P2’’}={3
0,80}が得られる。
【0115】「C1’’」(=「ア」)について、関数
「F1’’」のステップS63以下の処理を行う。関数
「F1’’」のステップS63で、「R1’’」として
「?ア」、「R2’’」として「?」をとる。「R
1’’」を受理する有限状態オートマトン「M’’」を
つくる。
【0116】関数「F1’’」のステップS64で、関
数「F2」に、引数として有限状態オートマトン
「M’’」、サブトライ「T’’」、ノード位置「P
1’’」(=30)を渡し、関数「F2」を評価する。
以後、この関数「F2]に関して関数「F2’’」など
と表記する。
【0117】さて、関数「F2’’」のステップS71
において、サブトライ「T’’」をノード位置「P
1’’」(=30)に至るまでに得られるラベル列
「L’’」を「ア」として、有限状態オートマトン
「M’’」に入力する。
【0118】ステップS72において、「L’’」(=
「ア」)は有限状態オートマトン「M’’」に受理され
ることが分かる。関数「F2’’」のステップS73
で、ラベル列「L’’](=「ア」)を出力し、関数
「F2’’」の処理を完了する。
【0119】関数「F2’’」の値「ア」は、文字列で
ある。関数「F1’’」のステップS64では、これを
「S’’」とする。関数「F1’’」のステップS65
で、文字列「S’’」(=「ア」)はエラーではないの
で、ステップS66へ進む。
【0120】関数「F1’’」のステップS66で、ノ
ード位置「P1’’」(=30)からたどることのサブ
トライを「T1’’」とし、関数「F1」に、引数とし
てサブトライ「T1’’」と正規表現「R2’’」(=
「?)を渡し、関数「F1」を評価する。以後、この関
数「F1」に関しては関数「F1’’’」などと表記す
る。
【0121】さて、関数「F1’’’」のステップS5
1において、正規表現「R’’’」(=「?」)の先頭
は確定文字列から始まっていないので、ステップS61
へ進む。
【0122】関数「F1’’’」のステップS61で、
正規表現「R’’’」(=「?」)の中に確定文字は含
まれていないので、ステップS68へ進む。関数「F
1’’’」のステップS68で、「R’’’」(=
「?」)を満たす文字数「N’’’」は無制限である。
関数「F3」に、引数としてサブトライ「T’’’」と
文字数「N’’’]を渡し、関数「F3」を評価した値
である文字列集合は{「」, 「リズム」}であり、関数
「F1’’’」の値として返す。
【0123】文字列「s’’」(=「ア」)と、関数
「F1’’’」を評価した値である文字列集合{「」,
「リズム」}の各々の要素を連結した文字列の集合は
{「ア」, 「アリズム」}である。関数「F1’’」の
ステップS66で、これを文字列集合「S’’」にプッ
シュする。現時点での「S’’」の内容は、{「ア」,
「アリズム」}である。そして、ステップS63へ進
む。
【0124】関数「F1’’」のステップS63以後の
処理で、ノード位置「P1」(=30)についての処理
を終えたことになる。次に同様に「P2’’」について
の処理を行い、再びステップS63に戻ってきて、結果
として、「S’’」={「ア」, 「アリズム」, 「ィ
ア」}を出力する。
【0125】関数「F1’」のステップS58に戻り、
文字「B’」(=「デ」)と関数「F1’’」の値
{「ア」, 「アリズム」, 「ィア」}の各々の要素とを
連結し、関数「F1’」の値として{「デア」, 「デア
リズム」, 「ディア」}を返す。
【0126】関数「F1」のステップS66に戻り、文
字列「s」(=「アイ」)と関数「F1’」の値{「デ
ア」, 「デアリズム」, 「ディア」}の各々の要素とを
連結し、文字列集合「S」に{「アイデア」, 「アイデ
アリズム」, 「アイディア」}をプッシュする。現時点
での「S」の内容は、{「アイデア」, 「アイデアリズ
ム」, 「アイディア」}である。ステップS63へ進
む。
【0127】関数「F1」のステップS63において、
文字「イ」を表しているノード位置「P2」(=12
0)について以下の処理を行う。関数「F1」のステッ
プS64で、関数「F2」に、引数として有限状態オー
トマトン「M」、サブトライ「T」、ノード位置「P
2」を渡し、関数「F2」を評価した値である文字列
「s」(=「ネオアイ」)を得る。
【0128】関数「F1」のステップS65で、文字列
「s」(=「ネオアイ」)はエラーはないので、ステッ
プS66に進む。F1のステップS66で、「P2」
(=120)からたどることのできるサブトライを「T
2」とし、関数「F1」に、引数としてサブトライ「T
2」と正規表現「R2」(=「デ?ア?」)を渡し、関
数「F1」を評価する。関数「F1」から文字列集合
{「デア」, 「デアリズム」}が得られ、「S」に
{「ネオアイデア」, 「ネオアイデアリズム」}をプッ
シュし、ステップS63へ進む。現時点での「S」の内
容は、{「アイデア」, 「アイデアリズム」, 「アイデ
ィア」, 「ネオアイデア」, 「ネオアイデアリズム」}
である。
【0129】関数「F1」のステップS63で、すべて
のノード位置「P1」, 「P2」について処理を終えた
ので、ステップS67で、文字列集合「S」(={「ア
イデア」, 「アイデアリズム」, 「アイディア」, 「ネ
オアイデア」, 「ネオアイデアリズム」})を関数「F
1」の値として返し、処理を終える。
【0130】以上のように、単語インデックスのトライ
と正規表現「?アイデ?ア?」から、単語集合{「アイ
デア」, 「アイデアリズム」, 「アイディア」, 「ネオ
アイデア」, 「ネオアイデアリズム」}が求まる。
【0131】なお、上記の原理構成若しくは実施の形態
は、以下のような変形例が考えられる。図24は、第4
の実施の形態の概略構成を示すブロック図である。これ
は、第1の実施の形態(図4に示す)における関連単語
インデックス部21を複数設けたものである。
【0132】この実施の形態では、2つの関連単語イン
デックス部71,72のそれぞれに、関連単語インデッ
クスが格納されている。ノード位置検索部73は、単語
が入力されると、双方の関連単語インデックス部71,
72からノードの位置集合を取得する。そのノードの位
置の集合は、どちらの関連単語インデックス部71,7
2から取得したのかを示す情報と共に、単語検索部74
に渡される。
【0133】単語検索部74は、ノード位置検索部73
から受け取ったノード位置の集合に基づいて、関連単語
インデックス部71,72から関連単語の集合を取得
し、出力する。
【0134】図25は、第5の実施の形態の概略構成を
示すブロック図である。これは、第4の実施の形態(図
24に示す)を具体化したものである。この実施の形態
では、よみインデックス部71aと表記インデックス部
72aが設けられている。よみインデックス部71a
は、表記によって表された表記単語の集合を、深さ優先
順にノードが記録されるトライ形式で格納していると共
に、表記単語と各表記単語に対応する文字列を構成して
いるよみ単語のノードの位置の集合とを対応付けて格納
している。表記インデックス部72aは、よみによって
表された単語の集合を、深さ優先順にノードが記録され
るトライ形式で格納していると共に、よみ単語と各よみ
単語に対応する表記単語の文字列を構成しているノード
の位置の集合とを対応付けて格納している。
【0135】ノード位置検索部73aと単語検索部74
aとは、第4の実施の形態のノード位置検索部73と単
語検索部74と同様の機能を有してる。図26は、第6
の実施の形態の概略構成を示すブロック図である。これ
は、第4の実施の形態の関連語インデックス部71,7
2をさらに増やしたものである。
【0136】この実施の形態では、多数の関連単語イン
デックス部81a,81b,81c,・・・が設けられ
ている。ノード位置検索部82は、単語の入力を受け取
ると、各関連単語インデックス部81a,81b,81
c,・・・から、該当するノードの位置の集合を受け取
る。単語検索部83は、ノード位置検索部82から受け
取ったノード位置の集合に基づいて、関連単語インデッ
クス部81a,81b,81c,・・・から関連単語の
集合を取得し、出力する。
【0137】以上のように、本発明においては、単語の
集合を、深さ優先順にノードが記録されるトライ形式に
したがって格納し、単語格納部を構成すると共に、トラ
イにおいて単語を構成しているノードの位置をトライ中
の単語を一意に識別できる値として用いることによっ
て、親のノードへのリンク情報を用いることなく、任意
のノードを含む経路を特定することができる。また、ト
ライにおける単語を、トライにおけるノードの位置をポ
インタとして参照することによって、トライ・インデッ
クス以外に別個に単語集合を表すデータは不要になる。
その結果、必要な記憶容量は、従来技術の場合に比べ
て、著しく少なくて済む。
【0138】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、システム構築
支援装置が有するべき機能の処理内容は、コンピュータ
で読み取り可能な記録媒体に記録されたプログラムに記
述されており、このプログラムをコンピュータで実行す
ることにより、上記処理がコンピュータで実現される。
コンピュータで読み取り可能な記録媒体としては、磁気
記録装置や半導体メモリ等がある。市場を流通させる場
合には、CD−ROM(Compact Disc Read Only Memor
y) やフロッピーディスケット等の可搬型記録媒体にプ
ログラムを格納して流通させたり、ネットワークを介し
て接続されたコンピュータの記憶装置に格納しておき、
ネットワークを通じて他のコンピュータに転送すること
もできる。コンピュータで実行する際には、コンピュー
タ内のハードディスク装置等にプログラムを格納してお
き、メインメモリにロードして実行する。
【0139】
【実施例】本発明の実施例として、必要な記憶容量を、
第5の実施の形態による場合と、従来技術の場合とを定
量的に比較することにする。
【0140】図27は、表記の単語とそれに対応するよ
みの単語の集合との対応関係を示す図である。図中左側
に「表記で表される単語」が示されており、右側に「対
応するよみ」が示されている。例えば、表記が「A」の
場合、「あるふぁ」とよむ場合もあれば、「えー」とよ
む場合もある。
【0141】図28は、よみの単語とそれに対応する表
記の単語の集合との対応関係を示す図である。図中左側
に「よみで表される単語」が示されており、右側に「対
応する表記」が示されている。例えば、よみが「あ」の
場合、その表記は、「あ」「ア」「亜」「阿」「在」
「有」など多数ある。
【0142】図27、図28には、先頭の8語について
示しているが、全体では、表記単語は93,452語、
よみ単語は68,819語から成る。図29は、第5の
実施の形態におけるインデックス部の情報量を示す図で
ある。このように、本発明を用いて、表記単語とよみ単
語の対応データから、表記単語からよみ単語集合へのイ
ンデックスおよびよみ単語から表記単語へのインデック
スをそれぞれ作成した結果、トライは1,257,57
9.0バイト、ポインタ・テーブルは494,085.
0バイト、インデックス全体は1,751,664.0
バイトの記憶容量となった。
【0143】そこで、従来技術の説明における第1の従
来例、すなわち、単語の集合を固定長または可変長の文
字列として格納するレコード構造のデータをインデック
スとは別個に用意する方法で、同様の機能を果すための
情報を格納した。
【0144】図30は、第1の従来例における情報量を
示す図である。第1の従来例では、テキストとその参照
テーブルは2,042,570.5バイト、トライは
1,257,579.0バイト、ポインタ・テーブルは
494,085.0バイト、インデックス全体は3,7
94,234.5バイトの記憶容量となった。
【0145】また、従来技術の説明における第2の従来
例、すなわち、トライ・インデックスを単語集合のデー
タとみなして、単語の末尾に対応するトライ中のノード
の識別番号を単語へのポインタとする方法で,同様の機
能を果すための情報を格納した。
【0146】図31は、第2の従来例における情報量を
示す図である。第2の従来例では、トライ・インデック
スに、2,469,996.5バイト程度、ポインタ・
テーブルは494,085.0バイト、そしてインデッ
クス全体として2,964,081.5バイトの記憶容
量を必要とすると予想できる。予想において、おおよそ
のトライデータのサイズから親ノードへのリンクに必要
なデータ幅は2.5バイトと仮定し、トライのノードの
数Nとし、親ノードへのリンクに必要なデータ容量L
を、L=N×2.5( バイト) と計算した。
【0147】以上の結果に基づいて、第5の実施の形態
と従来例とを比較した。図32は、第5の実施の形態と
従来技術との情報量の比較結果を示す図である。
【0148】この比較結果から、本発明の第5の実施の
形態は、第1の従来例に比べてトライを除くインデック
スは19.5%、全体のインデックスは46.2%、第
2の従来例に比べてトライは50.9%、全体のインデ
ックスは59.1%の記憶容量しか必要としないことが
分かる。したがって、本発明によって、必要な記憶容量
の著しい削減効果が得られたと言える。
【0149】
【発明の効果】以上説明したように本発明では、単語の
集合を、深さ優先順にノードが記録されるトライ形式に
したがって格納し、トライにおいて単語を構成している
ノードの位置をトライ中の単語を一意に識別できる値と
して用いたため、親のノードへのリンク情報を用いるこ
となく、任意のノードを含む経路を特定することができ
る。また、トライにおけるノードの位置をポインタとし
て、トライにおける単語を参照するようにしたため、ト
ライ形式の単語集合とは別個に単語集合を表すデータを
用意する必要がない。その結果、必要な記憶容量は、従
来技術の場合に比べて、著しく少なくて済む。特に、キ
ーインデックス格納手段を単語格納手段に含まれる単語
を構成する文字のうち、単語の先頭文字および末尾文字
を除いたすべての文字と、各文字を表しているノードの
位置とを対応付けるようにしたので、キーインデックス
格納手段に必要な記憶容量を減らすことができる。
【0150】
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】ノードの位置からそのノードを含む単語または
単語の集合を求めるアルゴリズムを示すフローチャート
である。
【図3】単語へのキーを入力とする単語検索装置の原理
構成図である。
【図4】本発明の第1の実施の形態を示すブロック図で
ある。
【図5】単語の集合の例を示す図である。
【図6】深さ優先順にノードが記録されたトライの例を
示す図である。
【図7】トライ・インデックスの例を示す図である。
【図8】関連語対応テーブルを示す図である。
【図9】第1の実施の形態における単語検索手順を示す
フローチャートである。
【図10】第2の実施の形態の概略構成を示す図であ
る。
【図11】文字インデックスの例を示す図である。
【図12】第2の実施の形態において文書集合を求める
ための処理手順を示すフローチャート(その1)であ
る。
【図13】第2の実施の形態において文書集合を求める
ための処理手順を示すフローチャート(その2)であ
る。
【図14】第2の実施の形態において文書集合を求める
ための処理手順を示すフローチャート(その3)であ
る。
【図15】第3の実施の形態の概略構成を示すブロック
図である。
【図16】関数F1の処理手順を示すフローチャート
(その1)である。
【図17】関数F1の処理手順を示すフローチャート
(その2)である。
【図18】関数F2の処理手順を示すフローチャートで
ある。
【図19】関数F3の処理手順を示すフローチャートで
ある。
【図20】第3の実施の形態におけるトライの例を示す
図である。
【図21】第3の実施の形態における文字インデックス
の例を示す図である。
【図22】「イ」をとりあげた場合の有限オートマトン
の遷移図である。
【図23】ノード位置P1(=10)からたどることの
できるサブトライ「T1」を示す図である。
【図24】第4の実施の形態の概略構成を示すブロック
図である。
【図25】第5の実施の形態の概略構成を示すブロック
図である。
【図26】第6の実施の形態の概略構成を示すブロック
図である。
【図27】表記の単語とそれに対応するよみの単語の集
合との対応関係を示す図である。
【図28】よみの単語とそれに対応する表記の単語の集
合との対応関係を示す図である。
【図29】第5の実施の形態におけるインデックス部の
情報量を示す図である。
【図30】第1の従来例における情報量を示す図であ
る。
【図31】第2の従来例における情報量を示す図であ
る。
【図32】第5の実施の形態と従来技術との情報量の比
較結果を示す図である。
【符号の説明】
1 単語格納手段 2 単語検索手段 11 単語格納手段 12 キーインデックス格納手段 13 ノード位置検索手段 14 単語検索手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−12043(JP,A) 特開 平1−214970(JP,A) 増市博、他3名,形態素解析を用いた 全文検索システムとその応用,情報処理 学会研究報告 自然言語処理NL−102 −3,1994年 7月21日,第94巻,第63 号,p.17−24 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 単語集合から単語を検索する単語検索装
    置において、 深さ優先順にノードが記録されるトライ形式にしたがっ
    て、ノードに対応付けられた単語の集合が格納された単
    語格納手段と、 前記単語格納手段におけるノードの位置が入力される
    と、前記単語格納手段のトライを根から順にたどってい
    き、入力された位置のノードまでの経路を求め、求めら
    れた経路以降の全ての経路をたどって到達するノードに
    対応する全ての単語を取得し、取得した単語の集合を出
    力する単語検索手段と、前記単語格納手段に含まれる単語に対応するキーと、各
    単語を構成しているノードの位置とを対応付けて格納す
    るキーインデックス格納手段と、 前記キーインデックス格納手段中の任意のキーが入力さ
    れると、前記キーインデックス格納手段から、入力され
    たキーに対応するノードの位置の集合を取得し、取得し
    たノードの位置の集合を前記単語検索手段に対して出力
    するノード位置検索手段と、を有し、 前記キーインデックス格納手段は、前記単語格納手段に
    含まれる単語を構成する全ての文字と、各文字を表して
    いるノードの位置とを対応付け、かつ前記単語格納手段
    に含まれる単語を構成する文字のうち、単語の先頭文字
    および末尾文字を除いたすべての文字と、各文字を表し
    ているノードの位置とを対応付けている ことを特徴とす
    る単語検索装置。
  2. 【請求項2】 正規表現が入力されると、入力された正
    規表現を解析し、前記ノード位置検索手段に対し、正規
    表現中の文字を渡してノードの位置の集合を受け取ると
    共に、前記単語検索手段に対し、ノードの位置の集合を
    渡して単語の集合を受け取り、入力された正規表現に合
    致する単語の集合を出力する正規表現解析手段を更に有
    することを特徴とする請求項1記載の単語検索装置。
  3. 【請求項3】 前記単語格納手段は、単語と各単語に対
    応する情報へのポインタとを組にして格納しており、前
    記単語検索手段は、前記単語格納手段から各々のノード
    が表す単語および単語に対応する情報へのポインタの集
    合を出力することを特徴とする請求項1記載の単語検索
    装置。
  4. 【請求項4】 前記単語格納手段は、深さ優先順にノー
    ドが記録されるトラ イ形式にしたがって、ノードに対応
    付けられた単語の集合を格納していると共に、単語と各
    単語に関連する関連単語のノードの位置の集合とを対応
    付けて格納しており、 単語が入力されると、前記単語格納手段から、入力され
    た単語に関連する単語のノードの位置の集合を取得し、
    取得したノードの位置の集合を前記単語検索手段に対し
    て出力するノード位置検索手段を更に有することを特徴
    とする請求項1記載の単語検索装置。
  5. 【請求項5】 前記単語格納手段は、表記によって表さ
    れた表記単語の集合を、深さ優先順にノードが記録され
    るトライ形式で格納していると共に、表記単語と各表記
    単語に対応する文字列を構成しているよみ単語のノード
    の位置の集合とを対応付けて格納するよみインデックス
    格納手段と、よみによって表された単語の集合を、深さ
    優先順にノードが記録されるトライ形式で格納している
    と共に、よみ単語と各よみ単語に対応する表記単語の文
    字列を構成しているノードの位置の集合とを対応付けて
    格納している表記インデックス格納手段と、から構成さ
    れていることを特徴とする請求項4記載の単語検索装
    置。
  6. 【請求項6】 コンピュータに単語集合から単語を検索
    させるための単語検索プログラムを記録したコンピュー
    タ読取り可能な記録媒体において、 深さ優先順にノードが記録されるトライ形式にしたがっ
    て、ノードに対応付けられた単語の集合が格納された単
    語格納手段、 前記単語格納手段におけるノードの位置が入力される
    と、前記単語格納手段のトライを根から順にたどってい
    き、入力された位置のノードまでの経路を求め、求めら
    れた経路以降の全ての経路をたどって到達するノードに
    対応する全ての単語を取得し、取得した単語の集合を出
    力する単語検索手段、 前記単語格納手段に含まれる単語に対応するキーと、各
    単語を構成しているノードの位置とを対応付けて格納
    し、前記単語格納手段に含まれる単語を構成する全ての
    文字と、各文字を表しているノードの位置とを対応付
    け、かつ前記単語格納手段に含まれる単語を構成する文
    字のうち、単語の先頭文字および末尾文字を除いたすべ
    ての文字と、各文字を表しているノードの位置とを対応
    付けるキーインデックス格納手段、 前記キーインデックス格納手段中の任意のキーが入力さ
    れると、前記キーインデックス格納手段から、入力され
    たキーに対応するノードの位置の集合を取得し、取得し
    たノードの位置の集合を前記単語検索手段に対して出力
    するノード位置検索手段、 としてコンピュータを機能させるための単語検索プログ
    ラムを記録したコンピュータ読取り可能な記録媒体。
JP16145897A 1997-06-18 1997-06-18 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体 Expired - Fee Related JP3427679B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16145897A JP3427679B2 (ja) 1997-06-18 1997-06-18 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16145897A JP3427679B2 (ja) 1997-06-18 1997-06-18 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPH117451A JPH117451A (ja) 1999-01-12
JP3427679B2 true JP3427679B2 (ja) 2003-07-22

Family

ID=15735500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16145897A Expired - Fee Related JP3427679B2 (ja) 1997-06-18 1997-06-18 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP3427679B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501558B2 (en) 2011-03-02 2016-11-22 Fujitsu Limited Computer product, searching apparatus, and searching method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5258631B2 (ja) * 2009-03-05 2013-08-07 三菱電機株式会社 辞書検索装置
JP5278534B2 (ja) 2009-03-19 2013-09-04 富士通株式会社 記憶媒体
JP5521064B1 (ja) * 2013-01-22 2014-06-11 日本電信電話株式会社 Id付与装置、方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
増市博、他3名,形態素解析を用いた全文検索システムとその応用,情報処理学会研究報告 自然言語処理NL−102−3,1994年 7月21日,第94巻,第63号,p.17−24

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501558B2 (en) 2011-03-02 2016-11-22 Fujitsu Limited Computer product, searching apparatus, and searching method

Also Published As

Publication number Publication date
JPH117451A (ja) 1999-01-12

Similar Documents

Publication Publication Date Title
US7519903B2 (en) Converting a structured document using a hash value, and generating a new text element for a tree structure
US7788287B2 (en) System and method for storing and accessing data in an interlocking trees datastore
JP5376163B2 (ja) 文書管理・検索システムおよび文書の管理・検索方法
JP4365162B2 (ja) 構造化文書のデータを検索する装置および方法
JP4997749B2 (ja) 文書処理方法、プログラム及びシステム
JP4656868B2 (ja) 構造化文書作成装置
CN100561480C (zh) 结构化文档管理***和管理在所述***中的索引的方法
Akkiraju et al. Semaplan: Combining planning with semantic matching to achieve web service composition
US20060026496A1 (en) Methods, apparatus and computer programs for characterizing web resources
CN110377884A (zh) 文档解析方法、装置、计算机设备及存储介质
JP3022539B1 (ja) 文書検索装置
CN109165373A (zh) 一种数据处理方法及装置
JP3427679B2 (ja) 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体
JPH11149484A (ja) シソーラス検索合成システム
JP2005242416A (ja) 自然言語文の検索方法および検索装置
JP2962287B2 (ja) 構造化文書検索装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2000250908A (ja) 電子書籍の作成支援装置
JP2002202973A (ja) 構造化文書管理装置
JP3156613B2 (ja) 文書編集方式
JP3239845B2 (ja) 全文検索装置および方法
Burget Information Extraction from HTML Documents Based on Logical Document Structure
JP3431618B2 (ja) データ検索装置および検索方法
CN118114660A (zh) 文本检测方法、***及计算机可读存储介质
Carrer et al. A Tcl/Tk-Based Video Annotation Engine.
JP2005011215A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees