JP3566111B2 - 記号辞書作成方法及び記号辞書検索方法 - Google Patents
記号辞書作成方法及び記号辞書検索方法 Download PDFInfo
- Publication number
- JP3566111B2 JP3566111B2 JP34076598A JP34076598A JP3566111B2 JP 3566111 B2 JP3566111 B2 JP 3566111B2 JP 34076598 A JP34076598 A JP 34076598A JP 34076598 A JP34076598 A JP 34076598A JP 3566111 B2 JP3566111 B2 JP 3566111B2
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- meta
- covering
- character
- dictionary
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Description
【発明の属する技術分野】
本発明は、電子化されて蓄積された記号情報を、計算機を利用して管理・検索する、データベース装置や文書検索装置等に使用される機械検索可能な記号辞書の作成と検索に関するものである。
【0002】
【従来の技術】
近年、ワードプロセッサやパーソナルコンピュータの普及、CD−ROM等の大容量かつ低価格な記憶媒体の普及、イーサネットに代表されるネットワークの発達により、リレーショナルデータベースや全文検索データベース等のデータベースシステムが実用化され、広く利用されるようになってきた。
その中で、人名,地名,組織名,住所,分類コード,部品コード等、数文字〜数百文字程度の比較的短い文字列を「記号」として扱い、記号のCSVリスト(カンマ「,」によって連結された記号の列で、例えば取引き会社名のフィールドとして「森下電器産業,森下通信工業,九州森下電器」など)をデータベースの1項目(フィールド)に格納し、このフィールドに対して、記号単位の完全一致照合,前方一致照合,後方一致照合,中間一致照合(部分一致照合,任意一致照合とも言う)によるレコードの検索(前方一致照合の例では「取引き会社名フィールドに『森下』で始まる記号を含むレコードを検索せよ」といった条件の検索)を高速に行うことが求められている。
【0003】
上記の4種類の照合方法のうち、完全一致照合,および前方一致照合のみ行えれば十分である用途には、「アルゴリズム第2巻(R.セジウィック著,野下浩平他訳,近代科学社,1992年刊,ISBN4−7649−0189−7,52頁〜72頁)」や「アルゴリズムとデータ構造ハンドブック(G.H.Gonnet著,玄 光男他訳,啓学出版,1987年刊,ISBN4−7665−0326−0,111頁〜122頁)」等の成書に記述されているTRIE(基数探索木とも呼ぶ)というデータ構造を使用すれば、効率のよい検索処理が実現できる。これに加えて後方一致照合が必要な場合には、記号の文字順序を反転させたデータに対してTRIEを作成し、検索すればよい。
【0004】
中間一致照合をも行う必要がある場合には、TRIEでは効率的な検索処理は困難で、従来は、例えば特開平3−42774号広報に開示されているような方法が用いられていた。
【0005】
この方法では、記号辞書作成の際には、記号の文字列を文字単位に分割し、文字毎に、記号の番号と、記号中での当該文字の出現文字位置の対を記録した辞書情報を作成し、記号辞書検索の際には、質問文字列を文字単位に分解し、各文字に対応する辞書情報を検索して、記号番号が同一で、出現文字位置が連続する記号番号の集合を検索結果として出力する。
【0006】
しかしながら、上記の従来の記号辞書作成方法では、記号の種類が数万種類以上に達する場合には、作成する記号辞書ファイルが検索対象の記号データの2倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である、という課題があった。
【0007】
また、上記の従来の記号辞書検索方法では、文字列が長く、高頻出の文字を多数含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【0008】
この従来の記号辞書検索方法の欠点は、記号辞書の記録を、1文字単位ではなく、2文字以上のN文字連鎖について行うことによってある程度緩和することが可能だが、その場合でも、例えば「199800000123A」のような、先頭に年度を記述し、多数桁の整数値で、ほとんどの記号の先頭部分数桁が0の連続であるような記号を多数集めた記号データを検索するような場合には、先頭の10文字以上が一致する記号が数多く存在するため、N文字連続のNが2〜4程度である場合には、やはり記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【0009】
さらに、文字連鎖数のNを大きくすると、出現するN文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加するという課題があった。また、この従来の記号辞書検索方法では、文字列が長く、高頻出の文字を多数含む記号を検索する場合には、完全一致検索が最も処理時間がかかるため、完全一致照合が質問の大部分を占めるような用途では、平均検索速度が低下するという課題があった。
【0010】
【発明が解決しようとする課題】
このように、上記の従来の記号辞書作成方法では、作成する記号辞書ファイルが検索対象の記号データの2倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である、という課題があった。
【0011】
また、上記の従来の記号辞書検索方法では、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【0012】
さらに、文字連鎖数Nを大きくすると、出現するN文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加するという課題があった。
【0013】
本発明の記号辞書作成方法は、記号データ中の記号を被覆する、記号より短い部分文字列の集合である「メタ記号」と呼ぶ文字列(いわゆる記号)を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成することで、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にし、本発明の記号辞書検索方法は、質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左,右,両延長メタ記号の検索結果を追加し、質問文字列あるいはその左,右,両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、中間一致照合まで含めた高速な検索が可能で、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索を可能にするものである。
【0014】
【課題を解決するための手段】
この目的を達成するため、本発明の第1の様態による記号辞書作成方法は、記号データ中の各記号を、メタ記号辞書を検索して、極大単語切り出し法などの切り出し手法によって被覆結果を求める、記号被覆手段と、被覆結果を集計するメタ記号集計手段と、記号データ中での各メタ記号の総出現度数を蓄積するメタ記号度数表と、メタ記号度数表を参照し、前記メタ記号度数表中の度数が0のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、また、停止条件を満足するか否かを判定するメタ記号辞書更新判定手段と、被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出するメタ記号出現情報作成手段と、メタ記号辞書とメタ記号出現情報とから、機械検索可能な記号辞書を作成する記号辞書作成手段とを有することにより、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にするという効果を奏するものである。
【0015】
また、本発明の第2の様態による、完全一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列に対して、重複最長一致単語切り出し法によって被覆結果を求める質問文字列被覆手段と、前記記号辞書中のメタ記号出現情報を検索し、第1ステップで求めた被覆結果中の各要素に対して、当該メタ記号を当該位置に含む記号番号の集合を求めるメタ記号出現情報検索手段と、被覆結果中の全要素について、対応する記号番号集合の共通部分を求め、求めた共通部分が空でないなら、その要素である記号番号を検索結果として出力して検索処理を終了し、空集合ならば検索結果なしとして検索処理を終了する記号番号算定手段とを有することにより、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な完全一致照合による記号辞書検索が可能になるという効果を奏するものである。
【0016】
また、本発明の第3の様態による、前方一致照合の記号辞書検索方法は、前記記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録する右延長メタ記号算定手段と、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにより、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な前方一致照合による記号辞書検索が可能になるという効果を奏するものである。
【0017】
また、本発明の第4の様態による、後方一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録する左延長メタ記号算定手段と、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにより、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な後方一致照合による記号辞書検索が可能になるという効果を奏するものである。
【0018】
また、本発明の第5の様態による、中間一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録する右延長メタ記号算定手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録する左延長メタ記号算定手段と、前記メタ記号辞書を検索して、Qの両延長メタ記号xを全て検索して、要素(x,1−j,1−j+|x|)を前記被覆結果に追加して記録する両延長メタ記号算定手段と、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにり、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な中間一致照合による記号辞書検索が可能になるという効果を奏するものである。
【0019】
【発明の実施の形態】
本発明の請求項1記載の発明は、記号辞書作成方法として、
ある定められた文字セットに含まれる文字のN個(一定個数)以下の並びのうち相異なるものを記号として有限個登録した記号データに対して機械検索可能な記号辞書を作成する方法であって、記号辞書作成の第1ステップでは、記号被覆手段が前記記号データ中の各記号に対して、前記文字セット中の各文字について、当該1文字の文字列だけからなる初期状態のメタ記号として登録した、初期状態のメタ記号辞書を用いた極大単語切り出し法(ある記号Sのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出し方法)によって照合するメタ記号を検索し、被覆結果(すなわち被覆対象の前記記号中の部分文字列と照合するメタ記号と照合開始文字位置の対を要素とし、前記記号中のどの位置の文字も、被覆結果中のいずれかの前記記号の部分文字列に含まれるような集合)を求め、前記被覆結果をメタ記号集計手段が集計して、前記記号データ中での各メタ記号の総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段がメタ記号度数表を参照し、前記メタ記号度数表中の度数が0のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、記号辞書作成の第2ステップでは、前記記号被覆手段が前記記号データ中の各記号に対して、現時点のメタ記号辞書を用いた前記極大単語切り出し法によって照合するメタ記号を検索して被覆結果を求め、この被覆結果をメタ記号集計手段が集計して、各メタ記号の前記記号データ中での総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、度数が記号データ内容と第2ステップの繰り返し回数で決まる所定の定数以上であるものについて、末尾に、定められた文字セット中の任意の一文字を追加するとともに、メタ記号辞書更新判定手段におけるメタ記号の追加と削除がまったくない場合に停止する停止条件を満足するまで、前記第2ステップを繰り返し行い、記号辞書構築の第3ステップでは、前記メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、メタ記号度数表中の度数が所定の定数未満の、2文字以上のメタ記号の削除を行い、記号辞書構築の第4ステップでは、前記記号被覆手段が第3ステップで算出した前記メタ記号辞書を用いて前記記号データに対して前記極大単語切り出し法によって被覆結果を求め、メタ記号出現情報作成手段が前記被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出し、記号辞書作成の第5ステップでは、記号辞書作成手段が、前記メタ記号辞書と前記メタ記号出現情報とから、メタ記号情報とメタ記号出現情報とを格納した、機械検索可能な記号辞書を作成するようにしたものであり、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にするという作用を有する。
【0026】
本発明の請求項2記載の発明は、請求項1記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって完全一致検索(すなわち質問文字列と同一の記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を作業域に格納し、記号辞書検索の第2ステップでは、記号番号集合算定手段が、前記記号辞書中のメタ記号出現情報を検索して、前記被覆結果中の全ての要素に共通して含まれる記号番号(高々1つ)があれば、検索結果として出力して検索処理を終了し、前記被覆結果中の全ての要素に共通して含まれる記号番号がなければ検索結果なしとして検索処理を終了するようにしたものであり、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な完全一致照合による記号辞書検索が可能になるという作用を有する。
【0027】
本発明の請求項3記載の発明は、請求項1記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって前方一致検索(すなわち質問文字列を先頭部分に持つ全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力するようにしたものであり、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な前方一致照合による記号辞書検索が可能になるという作用を有する。
【0028】
本発明の請求項4記載の発明は、請求項1記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって後方一致検索(すなわち質問文字列を末尾部分に持つ全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力するようにしたものであり、文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な後方一致照合による記号辞書検索が可能になるという作用を有する。
【0029】
本発明の請求項5記載の発明は、請求項1記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって中間一致検索(すなわち質問文字列を含む全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録し、記号辞書検索の第4ステップでは、両延長メタ記号算定手段が前記メタ記号情報を検索して、Qの両延長メタ記号(すなわち文字列Qを第j文字から第j+|Q|文字の部分(1<j)に含むメタ記号)Xを全て検索して、要素(X,1−j,1−j+|X|)を前記被覆結果に追加して記録し、記号辞書検索の第5ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力する文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合でも、高速な中間一致照合による記号辞書検索が可能になるという効果を奏するものである。
【0030】
(実施の形態1)
以下、本発明の第1の実施の形態について、図面を参照しながら説明する。図1は本発明の請求項1乃至7にかかる、記号辞書作成装置の一実施の形態の全体構成を表わすブロック図である。図1において、101は辞書の作成対象である記号データ、102はメタ記号辞書、103はメタ記号辞書102を検索して、極大単語切り出し法によって記号データ中の各記号の被覆結果を求める記号被覆手段、104は記号被覆手段103の出力する被覆結果を受け取って、被覆要素として切り出されたメタ記号を集計するメタ記号集計手段、105はメタ記号集計手段104の集計結果を蓄えるメタ記号度数表、106はメタ記号度数表105の集計結果をもとに、メタ記号辞書102へのメタ記号の追加、メタ記号辞書102からのメタ記号の削除、およびメタ記号辞書更新処理の停止条件の判定をおこなうメタ記号辞書更新判定手段、107は記号被覆手段103の出力する被覆結果を受け取って、メタ記号毎に、当該メタ記号が被覆要素として切り出された記号番号と、切り出された文字位置とを記録したメタ記号出現情報を作成するメタ記号出現情報作成手段、108はメタ記号出現情報作成手段107が作成したメタ記号出現情報、109はメタ記号辞書102とメタ記号出現情報108とから、検索可能な記号辞書を作成する記号辞書作成手段、110は記号辞書作成手段109が作成する、検索可能な記号辞書である。また、図6は、記号被覆手段103における記号データ101中の各被覆対象記号から、メタ記号辞書102を用いて、極大単語切り出し法によって被覆結果を求める際の処理の手順を表す流れ図である。
【0031】
以上の構成の記号辞書作成装置において、その動作を、日付、15分刻みの時刻、ローマ字表記の苗字をつなげた記号データから、検索可能な記号辞書を作成する例を用いて説明する。図15は、記号データの例である。この図では一部の記号を省略しており、実際には合計1000個の相異なる記号が、日付、時刻の順に記号データとして格納されているとする。各記号の最大文字数は1000文字とする。また、第1ステップにおけるメタ記号の追加のしきい値C1は記号数の1/20とする。この例では、記号数が1000なので、C1=50となる。第2ステップでのk回目の繰り返しにおけるメタ記号の追加のしきい値Ckはk<10では記号数の1/10とし、10≦kでは、記号数の1/5とする。この例では、k<10ではCk=100,10≦kでは、Ck=200となる。第3ステップでのしきい値Eの値は5と定める。なお、この記号データ中では、「−」、「/」の2種の特殊記号、「0」〜「9」の数字、「A」〜「Z」までの英字のみを使用するものとし、その他の文字は使用されることはないとする。このような記号を被覆するためのメタ記号辞書として、記号辞書の作成に先立って、予め、図16のような、記号中で出現する可能性のあるすべての1文字からなる内容のメタ記号辞書を用意する。記号被覆手段において、効率よく被覆を求めることができるように、メタ記号辞書は、図30のようなディジタル木のデータ構造(すなわちTRIE)として保持するものとする。ある文字列に最長一致するメタ記号の検索処理は、このようなTRIEを用いることにより、TRIEの根(左端の黒丸)から、文字列の1文字目,2文字目,…を鍵にして木構造をたどり、最も根から遠い2重丸のノードまでの部分文字列を出力することで、効率よく行うことが可能になる。記号辞書作成の第1ステップでは、記号被覆手段103が、記号データ101に格納された、図15の記号データを、順に読み込んで、メタ記号辞書102に格納された図30の内容のメタ記号辞書を検索して、極大単語切り出し法によって被覆結果を求める。「極大単語切り出し法」とは、ある記号Sのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出しの方法である。例えば、記号「東京都議会」を、6個のメタ記号を含むメタ記号辞書{東,東京,東京都,京都,都議会,議会}を検索して極大単語切り出しを行うと、図6に示した流れ図のように被覆処理を行うことにより、
{(東京都,1,4),(都議会,3,6)}という被覆結果が得られる。
【0032】
ただし、(X,s,e)は、Xがメタ記号を、sが照合開始文字位置を、eが照合終了文字位置(すなわち照合している部分のすぐ右の文字の文字位置)を、それぞれ表し、この3つ組みを「被覆要素」と呼ぶ。「東」や「東京」や「京都」というメタ記号は、「東京都議会」の部分文字列と照合するものの、メタ記号辞書にはあるが、「東京都」という照合部分(1文字目から3文字目まで)に完全に含まれてしまうので、被覆結果には入らない。この「他の照合部分に完全に含まれてしまう照合を取り除く」処理は、図6では603で判定しており、記号Sのi文字目からi+j−1文字目までと照合するメタ記号Mに対して、1〜i−1文字目からの、すでに求めた照合結果のうち、照合終了位置(=照合部分右隣の文字位置)eが、i+j以上ならば、その照合(X,s,e)の照合文字区間[s,e−1]は文字区間[i,i+j−1]を完全に含むことになり、その場合には603の判定が「yes」となって、被覆結果集合Cには、照合した結果は加えない。
【0033】
さて、図16のメタ記号辞書中のメタ記号はいずれも1文字であるから、第1ステップでの記号被覆手段の被覆処理においては、切り出したメタ記号は必ず1文字であり、図6の603の判定が「yes」になることはなく、例えば、記号
「1998−JAN−01/AM0200/KAWAYASU」
は、
{(1,1,2),(9,2,3),…,(S,26,27),(U,27,28)}
のように、1文字ずつ被覆される。記号中に出現する可能性のある文字はすべてメタ記号辞書に含まれているので、必ず空でない被覆結果を求めることができる。各記号の被覆結果は、メタ記号集計手段104に渡され、各メタ記号が、被覆要素として何回切り出されたかが、メタ記号度数表105に記録される。例えば、記号データ中の最初の記号「1998−JAN−01/AM0200/KAWAYASU」の処理の後では、メタ記号度数表の内容は、「−」が2回,「/」が2回,「0」が4回,「1」が2回,「2」が1回,「8」が1回,「9」が2回,「A」が5回,「J」が1回,「K」が1回,「M」が1回,「N」が1回,「S」が1回,「U」が1回,「W」が1回,「Y」が1回となる。その他の文字の度数は0回である。記号データ101中の1000個の記号を処理した後のメタ記号度数表の内容は図17のようになる。この例では、どの記号も「yyyy−mmm−dd/XXhhmm/name」の形をしているので、「−」と「/」は2000度数(1記号に2回*1000記号分)となる。また、メタ記号「H」,「I」,「Q」,「X」,「Z」は図15の記号データ中には1度も表れないことがわかる。この時点で、メタ記号表度数表中の、度数が0である上記の5種のメタ記号が、メタ記号辞書から削除される。図18は、削除後の各メタ記号についての度数表である。しきい値C1が50であり、図18中の全てのメタ記号が文字数が1と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図18中の全てのメタ記号について、図18中の各メタ記号を末尾に追加した「――」,「−/」,「−0」などの2文字のメタ記号を追加し、図19のようなメタ記号を含むメタ記号辞書に更新する。メタ記号辞書の実際の構造は、図31のようなディジタル木のデータ構造(すなわちTRIE)として構築し、保持される。以上で記号辞書作成の第1ステップを終了する。
【0034】
記号辞書作成の第2ステップでは、上述した第1ステップでの各記号の被覆と切り出したメタ記号の度数の集計が、図19のメタ記号辞書を用いて再度行われる。例えば、記号
「1998−JAN−01/AM0200/KAWAYASU」
は、
{(19,1,3),(99,2,4),…,(AS,25,27),(SU,26,28)}
のように、2文字ずつ被覆される。記号中に出現する可能性のある文字はすべてメタ記号辞書に含まれているので、必ず空でない被覆結果を求めることができる。なお、第2ステップでの被覆処理では、文字数の異なるメタ記号がメタ記号辞書102に混在するため、第1ステップと異なり、図6の流れ図において、ステップ603の判定が「yes」になる場合があり、最長一致で切り出した全てのメタ記号が被覆結果に入るわけではない(上記の例では、末尾の(U,27,28)は、(SU,26,28)があるので、被覆結果には入らない)。記号データ101中の1000個の記号を処理した後のメタ記号度数表のうち、度数が0でないメタ記号の部分は図20のようになる。これを図18と比べると、例えば図18で2000度数のメタ記号「−」は、図20では「−0」〜「−S」の「−」で始まる12種の2文字のメタ記号と、「8−」,「B−」,「C−」,「G−」,「L−」,「N−」,「P−」,「R−」,「T−」,「V−」,「Y−」の「−」で終わる11種のメタ記号の、合計23種のメタ記号に度数が分散していることがわかる。「−」で始まる12種の2文字のメタ記号の度数の合計値と、「−」で終わる11種の2文字のメタ記号の度数の合計値は、共にちょうど2000で、記号中の文字「−」は、この文字「−」を共有する「−」で始まるメタ記号と、「−」で終わるメタ記号の2つのメタ記号に含まれることが見て取れる。しきい値C2が100であり、図20中の全てのメタ記号が文字数が2と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図20中の「−0」,「−1」,「−2」,「−A」等、度数が100以上の、62種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加した「―0―」,「−0/」,「−00」などの3文字のメタ記号を追加し、メタ辞書を更新する。また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図21のようになる。例えば、記号
「1998−JAN−01/AM0200/KAWAYASU」
は、
{(199,1,4),(998,2,5),(98−,3,6),(8−J,4,7),(−JA,5,8),(AN−,7,10),(N−0,8,11),…,(YAS,24,27),(ASU,25,28)}
のように被覆され、文字「J」からの最長一致メタ記号「JA」は被覆結果には含まれないことがわかる。また、図21では、2文字のメタ記号と3文字のメタ記号が混在しており、記号を被覆する際に、出現度数の大きい部分は3文字のメタ記号で、出現度数の比較的少ない部分は2文字のメタ記号を使って被覆が行われていることが確認できる。しきい値C3が100であり、図21中の全てのメタ記号が文字数が3文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図21中の「−01」,「−02」,「−03」,「−04」等、度数が100以上の、42種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加した「―01―」,「−01/」,「−010」などのメタ記号を追加し、メタ辞書を更新する。また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図22のようになる。しきい値C4が100であり、図22中の全てのメタ記号が文字数が4文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図22中の「−NOV」,「/AM0」,「/AM1」,「/KAW」等、度数が100以上の、31種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加した「―NOV―」,「−NOV/」,「−NOV0」などのメタ記号を追加し、メタ辞書を更新する。
【0035】
また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図23のようになる。図23を図22を比較すると、度数が1以上のメタ記号の種類は、メタ記号を追加したにも関わらず、2種類減少しており、文字数の多いメタ記号による極大単語切り出しによって、より文字数の少ないメタ記号が切り出し結果から「締め出されていく」ことが確認できる。しきい値C5が100であり、図23中の全てのメタ記号が文字数が5文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図23中の「−NOV−」,「/KAWA」,「/SUDA」,「/SUKA」等、度数が100以上の、20種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加した「―NOV――」,「−NOV−/」,「−NOV−0」などのメタ記号を追加し、メタ記号辞書を更新する。
【0036】
また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図24のようになる。図24を図22を比較すると、度数が1以上のメタ記号の種類はさらに減少しており、文字数の多いメタ記号による極大単語切り出しによって、より文字数の少ないメタ記号が切り出し結果から「締め出されていく」ことが確認できる。しきい値C6が100であり、図24中の全てのメタ記号が文字数が6文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図24中の度数が100以上の、16種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加したメタ記号を追加し、メタ記号辞書を更新する。
【0037】
また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図25のようになる。しきい値C7が100であり、図25中の全てのメタ記号が文字数が7文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図25中の度数が100以上の、9種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加したメタ記号を追加しようとするが、「/SUDA」,「/SUKAWA」,「/SUWA」,「98−NOV」,「WADA」の5種のメタ記号については、すでにメタ記号辞書中に末尾に1文字を追加したメタ記号がすべて含まれているので、残りの4種のメタ記号について追加処理を行い、メタ記号辞書を更新する。また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。なお、図25と図24とを比較すると、メタ記号「SUKAWA」の度数が187から81と減少している。これは図25のメタ記号「/SUKAWA」の存在で、「1998…/SUKAWA」という記号の「SUKAWA」が被覆結果から除かれ、「1998…YASUKAWA」という記号の「SUKAWA」のみの度数になったことによることが確認できる。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図26のようになる。しきい値C8が100であり、図26中の全てのメタ記号が文字数が8文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図26中の度数が100以上の、6種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加したメタ記号を追加しようとするが、「/SUDA」,「/SUKAWA」,「/SUWA」,「998−NOV」,「WADA」の5種のメタ記号については、すでにメタ記号辞書中に末尾に1文字を追加したメタ記号がすべて含まれているので、残りのメタ記号「1998−NOV」について追加処理を行い、メタ記号辞書を更新する。
【0038】
また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図27のようになる。しきい値C9が100であり、図27中の全てのメタ記号が文字数が9文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図27中の度数が100以上の、5種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加したメタ記号を追加しようとするが、「/SUDA」,「/SUKAWA」,「/SUWA」,「WADA」の4種のメタ記号については、すでにメタ記号辞書中に末尾に1文字を追加したメタ記号がすべて含まれているので、残りのメタ記号「1998−NOV−」について追加処理を行い、メタ記号辞書を更新する。また同時に、メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が1つ以上発生しているので、第2ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書102を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が1以上のメタ記号の部分は図28のようになる。しきい値C10が100であり、図28中の全てのメタ記号が文字数が10文字以下と、最大文字数1000未満なので、メタ記号辞書更新判定手段106は、図28中の度数が100以上の、4種のメタ記号について、図18中の各メタ記号(すなわち、1文字のメタ記号)を末尾に追加したメタ記号を追加しようとするが、「/SUDA」,「/SUKAWA」,「/SUWA」,「WADA」の4種のメタ記号は、すでにメタ記号辞書中に末尾に1文字を追加したメタ記号がすべて含まれているので、追加処理は行われず、メタ記号辞書は更新されない。メタ記号辞書更新判定手段106は、上記のように、メタ記号の追加が発生していないので、第2ステップを終了する。
【0039】
記号辞書作成の第3ステップでは、メタ記号辞書参照更新手段106が、メタ記号度数表105を参照し、しきい値E(すなわち5)未満の度数を持つ、2文字以上のメタ記号を、メタ記号辞書102から削除する。図28を見ると、度数が1以上のメタ記号のうち、度数が5未満のものはなく、この場合には、度数が0である、2文字以上のメタ記号がすべて削除され、結果的にメタ記号辞書102の内容は、図28のメタ記号に、図18のメタ記号を加えたものになる。メタ記号辞書の実際の構造は、図32のようなディジタル木のデータ構造(すなわちTRIE)として構築し、保持される。以上で記号辞書作成の第3ステップを終了する。
【0040】
記号辞書作成の第4ステップでは、記号被覆手段103が第3ステップで算出した図32のメタ記号辞書102を用いて記号データ101中の各記号データを被覆して被覆結果を求め、メタ記号出現情報作成手段108が、被覆結果から各メタ記号が出現する記号の番号と、出現文字位置とを記録したメタ記号出現情報108を作成する。この場合には、図29のようなメタ記号出現情報が作成される。ただし、図29では、解釈を容易にするため、記号の番号の代わりに記号の文字列を用いている。この作成処理は、本質的にはいわゆる転置処理(inversion)であり、情報検索システムで通常用いられる手法によって、効率よく行うことができる。照合文字位置は、照合部分の左側の文字数(図29の「左文字数」)と、照合部分の右側の文字数(図29の「右文字数」)によって表されている。図29のような内容が、メタ記号ごとにまとまった表として記録され、メタ記号と、照合文字位置を鍵にして検索することで、指定したメタ記号を指定した文字位置に含む記号の番号の列(集合)を効率よく求めることができる。以上で記号辞書作成の第4ステップを終了する。
【0041】
記号辞書作成の第5ステップでは、記号辞書作成手段109が、メタ記号辞書102と、メタ記号出現情報108とから、機械検索可能な記号辞書110を作成する。その際、メタ記号出現情報108は、図29のような内容の表をそのまま記号辞書110内に格納するが、メタ記号辞書102については、図32のようなTRIE構造の情報の他に、図33のようなメタ記号の延長情報を付加したメタ記号延長表を、メタ記号情報として、記号辞書110に格納する。図33のメタ記号延長表は、メタ記号辞書中の各メタ記号M毎に、Mを文字列として含んだメタ記号辞書中のメタ記号と、左右の延長部分の文字数の3つ組を記録した表で、例えばメタ記号「−」の延長情報は、
{(−,0,0),(−01,0,2),…,(−29,0,2),(−3,0,1),…,
(R−0,1,1),(R−3,1,1)}
のようになる。このメタ記号の延長表の作成も、先のメタ記号出現情報108の作成処理と同様にして行うことができる。以上で記号辞書作成の第4ステップが終了し、記号辞書110が作成され、記号辞書作成が完了する。
以上の説明のように、本発明の第1の実施の形態の記号辞書作成方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号辞書を作成し、このメタ記号辞書を使って記号の被覆情報を記録するので、より少ない情報量で記号辞書が作成でき、記号辞書検索の際にも、高頻度で出現する部分文字列を含んだ記号の検索が、従来の記号辞書の検索に比べて高速に行えるようになる。さらに、このメタ記号辞書の作成は、しきい値を設定すれば機械的に実行可能なので、人手をかけずに、記号データの文字列分布の偏りに適応した、最適な記号辞書を作成することが可能になる。
【0042】
(実施の形態2)
以下、本発明の第2の形態について、図面を参照しながら説明する。図2は、本発明の請求項8にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図2において、201はメタ記号情報とメタ記号出現情報とを格納した記号辞書、202は検索条件である文字列を入力する検索条件入力手段、203は、検索条件入力手段202から入力された検索条件である質問文字列を、記号辞書201を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、204は質問文字列被覆手段203の求めた被覆結果、205は被覆結果204と、記号辞書201のメタ記号出現情報とから、質問文字列と完全一致する、すなわち、質問文字列をまったく同一な記号の番号を算定する記号番号算定手段、206は記号番号算定手段205の算定した記号の番号などを出力する検索結果出力手段である。
【0043】
以上の構成の記号辞書検索装置において、その動作を、実施の形態1で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。図7は質問文字列被覆手段203における被覆結果を求める処理の手順を記述した流れ図、図8は記号番号算定手段205における記号番号の算定処理の手順を記述した流れ図、図34は、検索条件として、質問文字列「1998−NOV−01/PM1030/KAWAYASU 」と完全一致する記号の番号を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。
【0044】
まず、記号辞書検索の第1ステップでは、質問文字列被覆手段203が、記号辞書201中のメタ記号情報を検索し、質問文字列「1998−NOV−01/PM1030/KAWAYASU」に対して、重複最長一致単語切り出し法によって被覆を求め、図34の*STEP1のCの被覆結果を得る。「重複最長一致単語切り出し法」とは、被覆対象文字列の左側から最長一致するメタ記号を求めていくが、メタ記号同士の部分的重複を許し、かつ、あるメタ記号Aの照合文字区間が、1つ以上のほかのメタ記号群B,…,Xの照合文字区間の和からなる区間に完全に含まれる場合には、そのメタ記号Aは被覆要素として記録しない、という被覆方法である。具体的には、図7のステップ702で、直前の切り出し結果より末尾側で、「間があかない」ような照合文字区間をもつメタ記号のうちで、最も末尾側までカバーするメタ記号の集合Hをまず求め、Hの中から、照合開始位置がもっとも先頭側のもの、すなわち最も文字数の多いメタメタ記号を被覆要素として用い、この被覆要素の照合文字区間を基準にして、次の末尾側の被覆要素をさらに決定する、という、先頭から末尾への一連の切り出し処理で、極大単語切り出し法で得られる被覆結果の部分集合が得られる被覆方法である。この質問文字列の場合には被覆結果204が空でないので記号番号算定手段205での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。以降の処理は、図8に沿って進められる。まずステップ801で、被覆結果中で、照合開始文字位置sが1である要素(C中で高々1つ)を探す。この例では(1998−NOV−0,1,11)が見つかる。続いて記号辞書中のメタ記号出現情報の中で、M=「1998−NOV−0」の出現記号情報で(X,0,n−e+1)の形のもの(nは質問文字列の文字数で、この例では14)を残らず探し、その記号Xの記号番号の集合をAとして記録する。なお、図34では、読みやすさを考慮して、記号番号でなく、記号文字列を用いて集合A,Bを記述している。この例では 1998−NOV−01/AM0830/NODA 等の記号の記号番号が求まる。Aが求まった後、Cから今選択した要素(1998−NOV−0,1,11)を削除する。Cは、図34の*STEP2のCのようになり、図8のステップ802の「Cが空集合か?」という条件判定は「no」となって、ステップ803に進む。ステップ803では、この例の場合には、Cの先頭の要素(1/P,11,14)を選択し、Bとして、「1998−JAN−01/PM065/NODA」などを含む、図34の*STEP3のBのような記号(に対応する記号の番号)を求める。その後、AとBとの共通部分を求めて、Aに格納する。すなわちAの内容を、Bにあるものだけに絞り込む。この例の場合には、Aの内容は、4つの記号(の番号)に絞り込まれる。続いて、図8のステップ804で判定処理が行われ、Aが空ではないので、ステップ805に進み、Cからステップ803で選択した要素(1/P,11,14)を削除し、ステップ802に戻る。以降、*STEP4〜*STEP6まで、同様にして次々とCから要素を選択して、メタ記号出現情報からBを求め、中間結果Aを絞り込んでいく。その間、AもCも空にはならないので、処理が途中で終了することはない。
【0045】
最後に、*STEP7の処理が終了した、図8のステップ805の終了時点で、Cが空となって、ステップ802の判定が「yes」になって、記号番号算定手段205における処理が終了し、Aの要素である、記号「1998−NOV−01/PM1030/KAWAYASU」の番号が、検索結果表示手段206に出力され、記号検索処理が終了する。
【0046】
以上の説明のように、本発明の第2の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【0047】
(実施の形態3)
以下、本発明の第3の形態について、図面を参照しながら説明する。図3は、本発明の請求項9にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図3において、301はメタ記号情報とメタ記号出現情報とを格納した記号辞書、302は検索条件である文字列を入力する検索条件入力手段、303は、検索条件入力手段302から入力された検索条件である質問文字列を、記号辞書301を使い、極大単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、304は質問文字列被覆手段303の求めた被覆結果、305は被覆結果304と、記号辞書301のメタ記号出現情報とから、質問文字列と前方一致する、すなわち、質問文字列を先頭部分に含む記号の番号の集合を算定する記号番号集合算定手段、307は、記号辞書301のメタ記号情報を検索して、被覆結果304のうちで、最も照合開始文字位置の大きい被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、質問文字列の最右部分文字列Rの右延長メタ記号(すなわちRを先頭部分に含むメタ記号)になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果304に追加格納する右延長メタ記号算定手段、306は記号番号集合算定手段305の算定した記号の番号などを出力する検索結果出力手段である。なお、図3の構成要素301乃至304は、第2の実施の形態のブロック図である図2の構成要素201乃至204と対応する。
【0048】
以上の構成の記号辞書検索装置において、その動作を、実施の形態1で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。図7は質問文字列被覆手段303における被覆結果を求める処理の手順を記述した流れ図、図9,図10は記号番号集合算定手段305における記号番号集合の算定処理の手順を記述した流れ図、図35,図36は、検索条件として、質問文字列「1998−NOV−01/PM」と前方一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。
【0049】
まず、記号辞書検索の第1ステップでは、質問文字列被覆手段303が、記号辞書301中のメタ記号情報を検索し、質問文字列「1998−NOV−01/PM」に対して、重複最長一致単語切り出し法によって被覆を求め、図35の*STEP1のCの被覆結果を得る。被覆処理の手順は、実施の形態2で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果304が空でないので右延長メタ記号算定手段307での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、右延長メタ記号算定手段307が、記号辞書301のメタ記号情報を検索して、被覆結果304のうち、最も照合開始位置の大きい被覆要素のメタ記号Zに対して、その延長メタ記号(すなわちZを含む文字列のメタ記号)を求める。求めた延長メタ記号のうちで、質問文字列の第j最右部分文字列R(すなわち質問文字列の第j文字から最終文字までの部分文字列)の右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号Xだけを選別し、
(X,j,|R|+j)
を被覆結果304に追加する。この例の場合には、Z=「M」となり、その延長メタ記号は、「/AM01」,… ,「/AM12」,「/PM01」,「/PM02」,…,「/PM12」,「1998−MAR」,「1998−MAY」
の26種が求まる。このうちで、質問文字列「1998−NOV−01/PM」の最右部分列の右延長メタ記号にもなっている、
「/PM01」,「/PM02」,…,「/PM12」
の12種のメタ記号が、右延長メタ記号算定手段307によって、被覆結果304に追加される。図35の*STEP2が、この様子を示している。こうして、右延長メタ記号まで含めた被覆が求まったならば、記号番号集合算定手段305が、記号番号集合を求める。以降の処理は、図9,図10に沿って進められる。まずステップ901で、被覆結果中で、照合開始文字位置sが1である要素からなる集合Dを求める。この例ではD={(1998−NOV−0,1,11)}となる。また、最終結果の集合SCを空に初期化する。Dが空でないので、ステップ903に進み、Dからただ1つの要素(1998−NOV−0,1,11)を選択し、記号辞書301中のメタ記号出現情報の中で、M=「1998−NOV−0」の出現記号情報で(X,0,*)の形のものを残らず探し、その記号Xの記号番号の集合をAとして記録する。ただし、「*」は、任意の値(don’t care)を表す。なお、図35,図36では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてA,C,D等の集合を記述している。この例では*STEP4で、 1998−NOV−01/AM0830/NODA 等の記号の記号番号が求まる。Aが求まった後、Dから今選択した要素(1998−NOV−0,1,11)を削除する。ステップ904の「Aが空集合か?」という条件判定は「no」となって、ステップ905に進む。ステップ905では、qが質問文字列の文字数nより大きいか否かを判定し、大きければ最終結果の集合SCに、この時点での集合Aの要素を加え、大きくなければ、図10の手続き select_cover1(A,p,q) を呼び出す。この場合には、n=14,q=11なので q<nであり、ステップ907に移って、図10の手続き select_cover1(A,p,q)を呼び出して、処理を進める。図10のステップ908では、手続きの引数である文字位置p,qに対して、照合開始文字位置sがpより大きく、q以下であるような被覆結果C中の要素からなる集合Dpを求める。
【0050】
この例の場合には、p=1,q=11であり、Cから1<s≦11である要素を求めると、図35の*STEP5のように、D1={ (1/P,11,14)}となる。D1が空ではないので、ステップ909は「no」となり、ステップ910に進む。D1から、最初の要素(1/P,11,14)を選び、メタ記号「1/P」の出現メタ記号情報から、(X,10,*)の形の要素をもれなく探して、Aとの共通部分をとって、中間結果Aを絞り込んで、結果をA1に格納する。ただし、「*」は、任意の値を表す。この例の場合には、図35の*STEP6のように、Aが3要素にまで絞り込まれる。さらに、D1から、今選択したD1の要素 (1/P,11,14 )を削除する。A1が空でないので、ステップ911の判定は「no」となり、ステップ912に進む。n=14に対して、u=12であり、ステップ912の判定は「no」となる。
【0051】
ステップ914では、A1,t=11,u=14を引数として、図10の手続き select_cover1を再帰的に呼び出し、処理を続け、中間結果であるApを図35,図36のように絞り込んでいく。図36の*STEP18では、u=17と、n=14以上なので、A11が最終結果SCの一部として記録され、別の結果を探すため、再び検索処理が続行される。このようにして、被覆結果304から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書301中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求め、最終結果の集合SCに記録していく。すべての被覆要素の組み合わせを処理した*STEP20の時点で処理を終了し、その時のSCが、検索結果となる。
【0052】
以上の説明のように、本発明の第3の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、右延長メタ記号算定手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の前方一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【0053】
(実施の形態4)
以下、本発明の第4の形態について、図面を参照しながら説明する。図4は、本発明の請求項10にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図4において、401はメタ記号情報とメタ記号出現情報とを格納した記号辞書、402は検索条件である文字列を入力する検索条件入力手段、403は、検索条件入力手段402から入力された検索条件である質問文字列を、記号辞書401を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、404は質問文字列被覆手段403の求めた被覆結果、408は、記号辞書401のメタ記号情報を検索して、被覆結果404のうちで照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、質問文字列の最左部分文字列Lの左延長メタ記号(すなわちLを末尾部分に含むメタ記号)になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果404に追加格納する左延長メタ記号算定手段、405は被覆結果404と、記号辞書401のメタ記号出現情報とから、質問文字列と後方一致する、すなわち、質問文字列を末尾部分に含む記号の番号の集合を算定する記号番号集合算定手段、406は記号番号集合算定手段405の算定した記号の番号などを出力する検索結果出力手段である。なお、図4の構成要素401乃至404は、第3の実施の形態のブロック図である図3の構成要素301乃至304と対応する。以上の構成の記号辞書検索装置において、その動作を、実施の形態1で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。
【0054】
図7は質問文字列被覆手段403における被覆結果を求める処理の手順を記述した流れ図、図11,図12は記号番号集合算定手段405における記号番号集合の算定処理の手順を記述した流れ図、図37は、検索条件として、質問文字列「KAWA」と後方一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。まず、記号辞書検索の第1ステップでは、質問文字列被覆手段403が、記号辞書401中のメタ記号情報を検索し、質問文字列「1KAWA」に対して、重複最長一致単語切り出し法によって被覆を求め、図37の*STEP1のCの被覆結果を得る。被覆処理の手順は、実施の形態3で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果404が空でないので左延長メタ記号算定手段408での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、左延長メタ記号算定手段408が、記号辞書401のメタ記号情報を検索して、被覆結果404のうち、照合開始位置が1である被覆要素のメタ記号Zに対して、その延長メタ記号(すなわちZを含む文字列のメタ記号)を求める。求めた延長メタ記号のうちで、質問文字列の第j最左部分文字列L(すなわち質問文字列の第1文字から第j文字までの部分文字列)の左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号Xだけを選別し、
(X,j+1−|L|,j+1)
を被覆結果404に追加する。この例の場合には、Z=「KAWA」となり、その延長メタ記号は、
「/SUKAWA」,「0/KAWAD」,「0/KAWAN」,「0/KAWAY」,「5/KAWAD」,「5/KAWAN」,「5/KAWAY」,
「KAWA」,「SUKAWA」
の9種が求まる。このうちで、質問文字列「KAWA」の最左部分列の左延長メタ記号にもなっている、
「/SUKAWA」,「/KAWA」
の2種のメタ記号が、左延長メタ記号算定手段408によって、被覆結果404に追加される。図37の*STEP2が、この様子を示している。こうして、左延長メタ記号まで含めた被覆が求まったならば、記号番号集合算定手段405が、記号番号集合を求める。以降の処理は、図11,図12に沿って進められる。まずステップ1001で、被覆結果中で、照合終了文字位置eがnである要素からなる集合Dを求める。この例では
D={(KAWA,1,5),(/SUKAWA,−2,5),(SUKAWA,−1,5)}
となる。また、最終結果の集合SCを空に初期化する。Dが空でないので、ステップ1003に進み、Dから要素(KAWA,1,5)を選択し、記号辞書401中のメタ記号出現情報の中で、M=「KAWA」の出現記号情報で(X,*,0)の形のものを残らず探し、その記号Xの記号番号の集合をAとして記録する。なお、図37では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてA,C,D等を記述している。この例では*STEP4で、 1998−JAN−17/PM0930/NOKAWA等の記号の記号番号が求まる。
【0055】
Aが求まった後、Dから今選択した要素(KAWA,1,5)を削除する。ステップ1004の「Aが空集合か?」という条件判定は「no」となって、ステップ1005に進む。ステップ1005では、選択した被覆要素の照合開始位置tが1以下であるか否かを調べ、1以下ならば、最終結果の集合SCに、この時点での集合Aの要素を加え、2以上ならば、図12の手続き select_cover2(A,p,q) を呼び出す。この場合には、t=1なので、最終結果の集合SCに、この時点での集合Aの要素を加え、別の結果を探すため、再び検索処理が続行される。このようにして、被覆結果404から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書401中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求め、最終結果の集合SCに記録していく。すべての被覆要素の組み合わせを処理した*STEP6の時点で処理を終了し、その時のSCが、検索結果となる。以上の説明のように、本発明の第4の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、左延長メタ記号算定手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の後方一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【0056】
(実施の形態5)
以下、本発明の第5の形態について、図面を参照しながら説明する。図5は、本発明の請求項11にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図5において、501はメタ記号情報とメタ記号出現情報とを格納した記号辞書、502は検索条件である文字列を入力する検索条件入力手段、503は、検索条件入力手段502から入力された検索条件である質問文字列を、記号辞書501を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、504は質問文字列被覆手段503の求めた被覆結果、507は、記号辞書501のメタ記号情報を検索して、被覆結果504のうちで、最も照合開始文字位置の大きい被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、質問文字列の最右部分文字列Rの右延長メタ記号(すなわちRを先頭部分に含むメタ記号)になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果504に追加格納する右延長メタ記号算定手段、508は、記号辞書501のメタ記号情報を検索して、被覆結果504のうちで照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、質問文字列の最左部分文字列Lの左延長メタ記号(すなわちLを末尾部分に含むメタ記号)になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果504に追加格納する左延長メタ記号算定手段、509は記号辞書501のメタ記号情報を検索して、質問文字列の両延長メタ記号(すなわち質問文字列Qを第j文字から第j+|Q|文字の部分(1<j)に含むメタ記号)Xを全て検索して、要素(X,1−j,1−j+|X|)を被覆結果504に追加格納する両延長メタ記号算定手段、505は被覆結果504と、記号辞書501のメタ記号出現情報とから、質問文字列と中間一致する、すなわち、質問文字列を含む記号の番号の集合を算定する記号番号集合算定手段、506は記号番号集合算定手段505の算定した記号の番号などを出力する検索結果出力手段である。なお、図5の構成要素501乃至504および506は、第2の実施の形態のブロック図である図2の構成要素201乃至204および206と対応し、図5の構成要素507は第3の実施の形態のブロック図である図3の構成要素307と対応し、図5の構成要素508は第4の実施の形態のブロック図である図4の構成要素408と対応する。以上の構成の記号辞書検索装置において、その動作を、実施の形態1で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。
【0057】
図7は質問文字列被覆手段503における被覆結果を求める処理の手順を記述した流れ図、図13,図14は記号番号集合算定手段505における記号番号集合の算定処理の手順を記述した流れ図、図38,図39は、検索条件として、質問文字列「KAWADA」と中間一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。まず、記号辞書検索の第1ステップでは、質問文字列被覆手段503が、記号辞書501中のメタ記号情報を検索し、質問文字列「KAWADA」に対して、重複最長一致単語切り出し法によって被覆を求め、図38の*STEP1のCの被覆結果を得る。被覆処理の手順は、実施の形態3で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果504が空でないので右延長メタ記号算定手段507での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、右延長メタ記号算定手段507が、記号辞書501のメタ記号情報を検索して、被覆結果504のうち、最も照合開始位置の大きい被覆要素のメタ記号Zに対して、その延長メタ記号(すなわちZを含む文字列のメタ記号)を求める。求めた延長メタ記号のうちで、質問文字列の第j最右部分文字列R(すなわち質問文字列の第j文字から最終文字までの部分文字列)の右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号Xだけを選別し、
(X,j,|R|+j)
を被覆結果504に追加する。この例の場合には、Z=「WADA」となり、その延長メタ記号として「WADA」ただ1種が求まる。これは、質問文字列「KAWADA」の最右部分列の右延長メタ記号にもなっているので、右延長メタ記号算定手段507は、被覆結果504に追加するが、すでに被覆結果504に同一の被覆要素が含まれているため被覆結果504は変化しない。図38の*STEP2が、この様子を示している。次に、左延長メタ記号算定手段508が、記号辞書501のメタ記号情報を検索して、被覆結果504のうち、照合開始位置が1である被覆要素のメタ記号Zに対して、その延長メタ記号(すなわちZを含む文字列のメタ記号)を求める。求めた延長メタ記号のうちで、質問文字列の第j最左部分文字列L(すなわち質問文字列の第1文字から第j文字までの部分文字列)の左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号Xだけを選別し、
(X,j+1−|L|,j+1)
を被覆結果504に追加する。この例の場合には、Z=「KAWA」となり、その延長メタ記号は、
「/SUKAWA」,「0/KAWAD」,「0/KAWAN」,「0/KAWAY」,「5/KAWAD」,
「5/KAWAN」,「5/KAWAY」,「KAWA」,「SUKAWA」
の9種が求まる。このうちで、質問文字列「KAWADA」の最左部分列の左延長メタ記号にもなっている、
「/SUKAWA」,「0/KAWAD」,「5/KAWAD」,「KAWA」,「SUKAWA」
の5種のメタ記号が、左延長メタ記号算定手段508によって、被覆結果504に追加される。図38の*STEP3が、この様子を示している。次に、両延長メタ記号算定手段509が、記号辞書501のメタ記号情報を検索して、質問文字列「KAWADA」の両延長メタ記号(すなわち文字列「KAWADA」を第j文字から第j+6文字の部分(1<j)に含むメタ記号)Xを全て検索して、要素(X,1−j,1−j+|X|)を被覆結果504に追加する。この例の場合には、「KAWADA」を含むメタ記号は、記号辞書501のメタ記号情報中にはなく、したがって被覆結果504には何も追加されない。図42の*STEP4が、この様子を示している。こうして、右延長メタ記号、左延長メタ記号、両延長記号まで含めた被覆が求まったならば、記号番号集合算定手段505が、記号番号集合を求める。以降の処理は、図13,図14に沿って進められる。まずステップ1101で、被覆結果中で、照合開始文字位置sが1以下である要素からなる集合Dを求める。この例では
D={ (KAWA,1,5), (/SUKAWA,−1,5), (0/KAWAD,−1,6), (5/KAWAD,−1,6), (SUKAWA,−1,5) }
となる。また、最終結果の集合SCを空に初期化する。
【0058】
図38の*STEP5がこの様子を示している。Dが空でないので、ステップ1103に進み、Dから要素(KAWA,1, )を選択し、記号辞書501中のメタ記号出現情報の中で、M=「KAWA」の各出現記号情報(X,L,R)に対して、(X,L)の形の要素の集合を求めてAとして記録する。なお、図38,図39では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてA,C,D等を記述している。この例では*STEP6で、 (1998−JAN−17/PM0930/NOKAWA,21) 等の要素が求まる。Aが求まった後、Dから今選択した要素(KAWA,1,5)を削除する。ステップ1104の「Aが空集合か?」という条件判定は「no」となって、ステップ1105に進む。ステップ1105では、選択した被覆要素の照合終了位置qがnより大きいか否かを調べ、nより大きければ、最終結果の集合SCに、この時点での集合Aの要素を加え、n以下ならば、図14の手続き select_cover3(A,p,q) を呼び出す。この場合には、q=5なので、手続き select_cover3(A,1,5) を呼び出す。図14のステップ1108では、照合位置(s,e)が1<s≦5<eである要素をCから全て選び、D1とする。この例では、D1={(WADA,3,7)} となる。D1が空でないので、1109の判定は「no」となり、ステップ1110に進む。ステップ1110では、D1から唯一の要素 (WADA,3,7) を選択し、M=「WADA」の各出現記号情報 (X,L,R) に対して、(X,L−2) をBに記録し、選択した要素をD1から削除する。さらに、A ∩ B を計算するが、共通部分がなく、A1は空となって、ステップ1111の判定結果が「yes」となり、ステップ1109に戻る。ところが、D1は空なので、ステップ1109での判定結果は「yes」となり、select_cover3 から戻る。図38の*STEP8がこの様子を示している。図13のステップ1102では、Dが空でないため、再びステップ1103に進む。ステップ1103では、Dから要素(/SUKAWA,2,5) を選択し、*STEP9のようなAを算出し、ステップ1107まで進み、再び図14の手続き select_cover3(A,1,5) を呼び出す。図14のステップ1108では、照合位置(s,e)が1<s≦5<eである要素をCから全て選び、D1とする。この例では、D1={(WADA,3,7) } となる。図38の*STEP10がこの様子を示している。D1が空でないので、1109の判定は「no」となり、ステップ1110に進む。ステップ1110では、D1から唯一の要素 (WADA,3,7) を選択し、M=「WADA」の各出現記号情報 (X,L,R) に対して、(X,L−2) をBに記録し、選択した要素をD1から削除する。さらに、A ∩ B を計算するが、共通部分がなく、A1は空となって、ステップ1111の判定結果が「yes」となり、ステップ1109に戻る。ところが、D1は空なので、ステップ1109での判定結果は「yes」となり、select_cover3 から戻る。図38の*STEP11がこの様子を示している。図13のステップ1102では、Dが空でないため、再びステップ1103に進む。ステップ1103では、Dから要素(0/KAWAD,−1,6)を選択し、*STEP12のようなAを算出し、ステップ1107まで進み、再び図14の手続き select_cover3(A,,6)を呼び出す。図14のステップ1108では、照合位置(s,e)が1<s≦6<eである要素をCから全て選び、D1とする。この例では、D1={(WADA,3,7)} となる。図39の*STEP13がこの様子を示している。D1が空でないので、1109の判定は「no」となり、ステップ1110に進む。
【0059】
ステップ1110では、D1から唯一の要素 (WADA,3,)を選択し、M=「WADA」の各出現記号情報 (X,L,R) に対して、(X,L−2) をBに記録し、選択した要素をD1から削除する。さらに、A ∩ B を計算する。この共通部分A1が空でなく、かつu=7はn=6より大きいので、ステップ1113に進み、最終結果の一部として、A1をSCに加える。ステップ1109に戻ると、D1が空なので、select_cover3 から戻る。図39の*STEP14がこの様子を示している。図13のステップ1102では、Dが空でないため、再びステップ1103に進む。ステップ1103では、Dから要素(5/KAWAD,−1,6)を選択し、*STEP15のようなAを算出し、ステップ1107まで進み、再び図14の手続き select_cover3(A,1,6) を呼び出す。図14のステップ1108では、照合位置(s,e)が1<s≦6<eである要素をCから全て選び、D1とする。この例では、D1={(WADA,3,7)} となる。図39の*STEP16がこの様子を示している。D1が空でないので、1109の判定は「no」となり、ステップ1110に進む。ステップ1110では、D1から唯一の要素 (WADA,3,7) を選択し、M=「WADA 」の各出現記号情報 (X,L,R) に対して、(X,L−2) をBに記録し、選択した要素をD1から削除する。さらに、A ∩ B を計算する。この共通部分A1が空でなく、かつu=7はn=6より大きいので、ステップ1113に進み、最終結果の一部として、A1をSCに加える。ステップ1109に戻ると、D1が空なので、select_cover3 から戻る。図39の*STEP17がこの様子を示している。図13のステップ1102では、Dが空でないため、再びステップ1103に進む。ステップ1103では、Dから要素(SUKAWA,−1,5) を選択し、*STEP18のようなAを算出し、ステップ1107まで進み、再び図14の手続き select_cover3(A,1,5) を呼び出す。図14のステップ1108では、照合位置(s,e)が1<s≦5<eである要素をCから全て選び、D1とする。この例では、D1={(WADA,3,7)}となる。図38の*STEP19がこの様子を示している。D1が空でないので、1109の判定は「no」となり、ステップ1110に進む。ステップ1110では、D1から唯一の要素 (WADA,3,7)を選択し、M=「WADA」の各出現記号情報 (X,L,R) に対して、(X,L−2) をBに記録し、選択した要素をD1から削除する。さらに、A ∩ B を計算するが、共通部分がなく、A1は空となって、ステップ1111の判定結果が「yes」となり、ステップ1109に戻る。ところが、D1は空なので、ステップ1109での判定結果は「yes」となり、select_cover3 から戻る。図38の*STEP20がこの様子を示している。図13のステップ1102では、Dが空であるので、記号番号集合の算定処理を終了する。この時点における、SCが、中間一致照合する記号(の番号)と、照合部分の左側(記号の先頭側)の文字数の組の集合をもれなく保持しているので、各組の第1要素を取り出せば、中間一致検索結果が得られる。このようにして、被覆結果504から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書501中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求めることができる。
【0060】
以上の説明のように、本発明の第5の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、右延長メタ記号算定手段、左延長メタ記号算定手段、両延長メタ記号算定手段の3つの手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の中間一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【0061】
以上、本発明の5種類の実施の形態における説明のように、本発明の記号辞書作成方法および記号辞書検索方法によれば、
(1)記号データ中の記号を被覆するより短い「メタ記号」と呼ぶ記号を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成する
(2)質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左,右,両延長メタ記号の検索結果を追加し、質問文字列あるいはその左,右,両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、従来の記号辞書作成方法および記号辞書検索方法における、
(1)作成する記号辞書ファイルが検索対象の記号データの2倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である。
(2)文字列が長く、高頻出の文字,あるいは文字連鎖を含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下する。
(3)文字連鎖を利用する方法において、文字連鎖数Nを大きくすると、出現するN文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加する
という様々な課題を解決できる。
【0062】
このように、従来の記号辞書作成,検索技術では困難であった、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能になり、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索を可能になるので、実用上、非常に大きな効果が得られる。
【0063】
なお、上記の5種の実施の形態において、文字セットとして、英数字と特殊記号対象としたが、漢字やギリシャ文字を追加した文字セットを対象としても、同様に実施できる。また、第1の実施の形態において、記号辞書の作成に先立って図16のような1文字のみのメタ記号辞書を用意したが、図16の内容に加えて「1998−」、「AM」など予め出現が予測できる2文字以上のメタを含む、メタ記号辞書を用意してもよく、その場合も上記の説明と同様な手順で記号辞書が作成できる。また、メタ記号情報の格納形式として、TRIE構造と表構造を用いたが、有限状態機械やPATRICIA木,ハッシュ表など、他のデータ構造を用いた場合にも、上述の説明と同様の手順で実施できる。メタ記号出現情報の格納形式についても、表ではなく、TRIEやハッシュ表など他のデータ構造を用いた場合にも、やはり上述の説明と同様の手順で実施できる。
【0064】
記号辞書検索においても、説明の便宜のため被覆結果などを、集合を用いて表現したが、リンクトリストやヒープ、木構造、ハッシュ表など、他のデータ構造を用いた場合にも、やはり上述の説明と同様の手順で実施できる。
【0065】
【発明の効果】
以上のように本発明の記号辞書作成方法は記号データを完全一致照合、前方一致照合、後方一致照合、中間一致照合によって機械検索するための記号辞書の作成に際して、記号データ中の記号を被覆するより短い「メタ記号」と呼ぶ記号を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成することにより、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成が可能になるという、優れた効果を奏するものである。
【0066】
また、本発明の記号辞書検索方法は、記号辞書の完全一致照合、前方一致照合、後方一致照合、中間一致照合による機械検索に際して、質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左,右,両延長メタ記号の検索結果を追加し、質問文字列あるいはその左,右,両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、容量の小さな記号辞書を用いて、中間一致照合まで含めた高速な検索が可能で、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索が可能になるという、優れた効果を奏するものである。
【0067】
本発明の効果は、検索対象となる記号データが数万種類以上の記号を含んでおり、各記号の文字数が多く、数多くの記号に共通に含まれる部分文字列が存在するような、分布に偏りのある大規模な記号データから記号辞書を作成し、検索する場合に、極めて顕著に現れる。例えば、各記号が100桁の数字で、その上位90桁分がどの記号でも等しく、下位10桁が各記号ですべて異なるような記号を100万個含んだ記号データから、記号辞書を作成する実験を行うと、従来のn−gram方式の記号辞書では、少なくとも1億個の記号番号・出現文字位置情報と、文字連接のための情報が必要で、そのサイズは400メガバイト以上となるが、本発明の記号辞書作成方法で作成した記号辞書では、約5万種類のメタ記号の情報と、約400万個のメタ記号出現情報を記録すればよく、そのサイズは40メガバイト以下であり、従来の1/10以下の容量になる。さらに、完全一致照合による検索を行う場合には、従来のn−gram方式の記号辞書では、文字連接の連接数nを41以上にとらない限り、上位40桁分の中間結果が常に100万記号分となって、検索速度が大幅に低下するが、本発明の記号辞書の検索では、記号データの分布の偏りに適応した、40+α桁のメタ記号を含む、メタ記号辞書が自動的に作成され、質問文字列に関連するメタ記号の出現情報だけを参照して記号番号を求めるため、極めて高速に検索が行える。このように、従来は困難であった、偏りのある記号データに対しても、中間一致まで含めて高速な検索処理が可能となり、実用上、非常に大きな効果が得られる。
【図面の簡単な説明】
【図1】第1の実施の形態における記号辞書作成装置の全体構成を表わすブロック図
【図2】第2の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図3】第3の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図4】第4の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図5】第5の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図6】第1の実施の形態における記号被覆手段での被覆処理の手順を記述した流れ図
【図7】第2〜第5の実施の形態における質問文字列被覆手段での被覆処理の手順を記述した流れ図
【図8】第2の実施の形態における記号番号算定手段での記号番号の算定処理の手順を記述した流れ図
【図9】第3の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図10】第3の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図11】第4の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図12】第4の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図13】第5の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図14】第5の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図15】第1の実施の形態における記号データの例
【図16】第1の実施の形態における初期段階のメタ記号辞書の登録内容の例
【図17】第1の実施の形態におけるメタ記号度数表の内容の例
【図18】第1の実施の形態におけるメタ記号度数表の内容の例
【図19】第1の実施の形態におけるメタ記号辞書の例
【図20】第1の実施の形態におけるメタ記号辞書の一部の例
【図21】第1の実施の形態におけるメタ記号度数表の内容の例
【図22】第1の実施の形態におけるメタ記号度数表の内容の例
【図23】第1の実施の形態におけるメタ記号度数表の内容の例
【図24】第1の実施の形態におけるメタ記号度数表の内容の例
【図25】第1の実施の形態におけるメタ記号度数表の内容の例
【図26】第1の実施の形態におけるメタ記号度数表の内容の例
【図27】第1の実施の形態におけるメタ記号度数表の内容の例
【図28】第1の実施の形態におけるメタ記号度数表の内容の例
【図29】第1の実施の形態におけるメタ記号出現情報の内容の例
【図30】第1の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図31】第1の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図32】第1の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図33】第1の実施の形態におけるメタ記号の延長情報の内容の例
【図34】第2の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図35】第3の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図36】第3の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図37】第4の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図38】第5の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図39】第5の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【符号の説明】
101 記号データ
102 メタ記号辞書
103 記号被覆手段
104 メタ記号集計手段
105 メタ記号度数表
106 メタ記号辞書更新判定手段
107 メタ記号出現情報作成手段
108 メタ記号出現情報
109 記号辞書作成手段
110 記号辞書
201 記号辞書
202 検索条件入力手段
203 質問文字列被覆手段
204 被覆結果
205 記号番号算定手段
206 検索結果出力手段
301 記号辞書
302 検索条件入力手段
303 質問文字列被覆手段
304 被覆結果
305 記号番号集合算定手段
306 検索結果出力手段
307 右延長メタ記号算定手段
401 記号辞書
402 検索条件入力手段
403 質問文字列被覆手段
404 被覆結果
405 記号番号集合算定手段
406 検索結果出力手段
408 左延長メタ記号算定手段
501 記号辞書
502 検索条件入力手段
503 質問文字列被覆手段
504 被覆結果
505 記号番号集合算定手段
506 検索結果出力手段
507 右延長メタ記号算定手段
508 左延長メタ記号算定手段
509 両延長メタ記号算
Claims (5)
- ある定められた文字セットに含まれる文字のN個(一定個数)以下の並びのうち相異なるものを記号として有限個登録した記号データに対して機械検索可能な記号辞書を作成する方法であって、
記号辞書作成の第1ステップでは、記号被覆手段が前記記号データ中の各記号に対して、前記文字セット中の各文字について、当該1文字の文字列だけからなる初期状態のメタ記号として登録した、初期状態のメタ記号辞書を用いた極大単語切り出し法(ある記号Sのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出し方法)によって照合するメタ記号を検索し、被覆結果(すなわち被覆対象の前記記号中の部分文字列と照合するメタ記号と照合開始文字位置の対を要素とし、前記記号中のどの位置の文字も、被覆結果中のいずれかの前記記号の部分文字列に含まれるような集合)を求め、前記被覆結果をメタ記号集計手段が集計して、前記記号データ中での各メタ記号の総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段がメタ記号度数表を参照し、前記メタ記号度数表中の度数が0のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、
記号辞書作成の第2ステップでは、前記記号被覆手段が前記記号データ中の各記号に対して、現時点のメタ記号辞書を用いた前記極大単語切り出し法によって照合するメタ記号を検索して被覆結果を求め、この被覆結果をメタ記号集計手段が集計して、各メタ記号の前記記号データ中での総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、度数が記号データ内容と第2ステップの繰り返し回数で決まる所定の定数以上であるものについて、末尾に、定められた文字セット中の任意の一文字を追加するとともに、メタ記号辞書更新判定手段におけるメタ記号の追加と削除がまったくない場合に停止する停止条件を満足するまで、前記第2ステップを繰り返し行い、
記号辞書構築の第3ステップでは、前記メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、メタ記号度数表中の度数が所定の定数未満の、2文字以上のメタ記号の削除を行い、
記号辞書構築の第4ステップでは、前記記号被覆手段が第3ステップで算出した前記メタ記号辞書を用いて前記記号データに対して前記極大単語切り出し法によって被覆結果を求め、メタ記号出現情報作成手段が前記被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出し、
記号辞書作成の第5ステップでは、記号辞書作成手段が、前記メタ記号辞書と前記メタ記号出現情報とから、メタ記号情報とメタ記号出現情報とを格納した、機械検索可能な記号辞書を作成することを特徴とする記号辞書作成方法。 - 請求項1記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって完全一致検索(すなわち質問文字列と同一の記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を作業域に格納し、記号辞書検索の第2ステップでは、記号番号集合算定手段が、前記記号辞書中のメタ記号出現情報を検索して、前記被覆結果中の全ての要素に共通して含まれる記号番号(高々1つ)があれば、検索結果として出力して検索処理を終了し、前記被覆結果中の全ての要素に共通して含まれる記号番号がなければ検索結果なしとして検索処理を終了することを特徴とする記号辞書検索方法。
- 請求項1記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって前方一致検索(すなわち質問文字列を先頭部分に持つ全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
- 請求項1記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって後方一致検索(すなわち質問文字列を末尾部分に持つ全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
- 請求項1記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって中間一致検索(すなわち質問文字列を含む全ての記号の検索)する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Qに対して、重複最長一致単語切り出し法によって被覆結果(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合)を求め、被覆結果がない(すなわち被覆対象文字列中の部分文字列と照合するメタ記号m,照合文字開始位置s,照合終了文字位置e(1≦s<e≦|Q|+1)の対(m,s,e)を被覆要素とし、Qのどの文字も1つ以上の被覆要素に含まれるような集合がない)場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第2ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最右部分文字列(すなわち、質問文字列の第j文字(1≦j≦|Q|)から最終文字までの部分文字列)Rの右延長メタ記号(すなわち文字列Rを先頭部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j,|R|+j)を前記被覆結果に追加して記録し、記号辞書検索の第3ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が|Q|+1である被覆要素のメタ記号Zの延長メタ記号(すなわち、Zを含むメタ記号)のうちで、前記質問文字列の第j最左部分文字列(すなわち、質問文字列の第1文字から第j文字(1≦j≦|Q|)までの部分文字列)Lの左延長メタ記号(すなわち文字列Lを末尾部分に含むメタ記号)になっているメタ記号xを全て検索して、要素(x,j+1−|L|,j+1)を前記被覆結果に追加して記録し、記号辞書検索の第4ステップでは、両延長メタ記号算定手段が前記メタ記号情報を検索して、Qの両延長メタ記号(すなわち文字列Qを第j文字から第j+|Q|文字の部分(1<j)に含むメタ記号)Xを全て検索して、要素(X,1−j,1−j+|X|)を前記被覆結果に追加して記録し、記号辞書検索の第5ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Cを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、C中の全ての要素に共通して含まれる記号番号集合SCを求めて検索結果の一部として記録する動作を行って、全てのSCの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34076598A JP3566111B2 (ja) | 1998-11-30 | 1998-11-30 | 記号辞書作成方法及び記号辞書検索方法 |
EP99123788A EP1006460A3 (en) | 1998-11-30 | 1999-11-30 | Symbol dictionary compiling method and symbol dictionary retrieving method |
US09/451,047 US7103536B1 (en) | 1998-11-30 | 1999-11-30 | Symbol dictionary compiling method and symbol dictionary retrieving method |
US10/875,898 US20050027513A1 (en) | 1998-11-30 | 2004-06-24 | Symbol dictionary compiling method and symbol dictionary retrieving method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34076598A JP3566111B2 (ja) | 1998-11-30 | 1998-11-30 | 記号辞書作成方法及び記号辞書検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000163442A JP2000163442A (ja) | 2000-06-16 |
JP3566111B2 true JP3566111B2 (ja) | 2004-09-15 |
Family
ID=18340104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34076598A Expired - Lifetime JP3566111B2 (ja) | 1998-11-30 | 1998-11-30 | 記号辞書作成方法及び記号辞書検索方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7103536B1 (ja) |
EP (1) | EP1006460A3 (ja) |
JP (1) | JP3566111B2 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355352B1 (en) | 2000-02-24 | 2016-05-31 | Richard Paiz | Personal search results |
US8386456B1 (en) * | 2000-02-24 | 2013-02-26 | Richard Paiz | Codex search patterns |
US8977621B1 (en) | 2000-02-24 | 2015-03-10 | Richard Paiz | Search engine optimizer |
US7941310B2 (en) * | 2003-09-09 | 2011-05-10 | International Business Machines Corporation | System and method for determining affixes of words |
US10959090B1 (en) | 2004-08-25 | 2021-03-23 | Richard Paiz | Personal search results |
US11468128B1 (en) | 2006-10-20 | 2022-10-11 | Richard Paiz | Search engine optimizer |
KR100597004B1 (ko) * | 2004-11-22 | 2006-07-06 | 삼성전자주식회사 | 심볼 사전 재배치 방식을 이용한 이진 영상 처리 장치 및방법 |
JP2006163645A (ja) * | 2004-12-03 | 2006-06-22 | Kenji Kita | 情報検索方法、情報検索装置、情報検索プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 |
US20070011160A1 (en) * | 2005-07-07 | 2007-01-11 | Denis Ferland | Literacy automation software |
JP4728860B2 (ja) * | 2006-03-29 | 2011-07-20 | 株式会社東芝 | 情報検索装置 |
US8825693B2 (en) * | 2007-12-12 | 2014-09-02 | Trend Micro Incorporated | Conditional string search |
US10922363B1 (en) | 2010-04-21 | 2021-02-16 | Richard Paiz | Codex search patterns |
US10915523B1 (en) | 2010-05-12 | 2021-02-09 | Richard Paiz | Codex search patterns |
US11048765B1 (en) | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
FR2939989B1 (fr) * | 2008-12-16 | 2010-12-31 | Thales Sa | Recepteur numerique large bande comprenant un mecanisme de detection de signaux |
US8185534B1 (en) * | 2009-02-05 | 2012-05-22 | Google Inc. | Consolidated record generation with stable identifiers for data integration systems |
US11423018B1 (en) | 2010-04-21 | 2022-08-23 | Richard Paiz | Multivariate analysis replica intelligent ambience evolving system |
US10936687B1 (en) | 2010-04-21 | 2021-03-02 | Richard Paiz | Codex search patterns virtual maestro |
US11379473B1 (en) | 2010-04-21 | 2022-07-05 | Richard Paiz | Site rank codex search patterns |
US8838453B2 (en) * | 2010-08-31 | 2014-09-16 | Red Hat, Inc. | Interactive input method |
CN103870442A (zh) * | 2012-12-17 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 中文简繁体转换***及方法 |
US11741090B1 (en) | 2013-02-26 | 2023-08-29 | Richard Paiz | Site rank codex search patterns |
US11809506B1 (en) | 2013-02-26 | 2023-11-07 | Richard Paiz | Multivariant analyzing replicating intelligent ambience evolving system |
CN103823839A (zh) * | 2013-12-20 | 2014-05-28 | 柳州腾龙煤电科技股份有限公司 | 基于图库一体化的AutoCAD符号配置展现方法 |
US10846598B2 (en) | 2014-09-26 | 2020-11-24 | British Telecommunications Public Limited Company | Pattern matching |
EP3198476A1 (en) * | 2014-09-26 | 2017-08-02 | British Telecommunications Public Limited Company | Efficient pattern matching |
EP3198475A1 (en) | 2014-09-26 | 2017-08-02 | British Telecommunications Public Limited Company | Efficient conditional state mapping in a pattern matching automaton |
US10572586B2 (en) * | 2018-02-27 | 2020-02-25 | International Business Machines Corporation | Technique for automatically splitting words |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3670310A (en) * | 1970-09-16 | 1972-06-13 | Infodata Systems Inc | Method for information storage and retrieval |
US5058144A (en) * | 1988-04-29 | 1991-10-15 | Xerox Corporation | Search tree data structure encoding for textual substitution data compression systems |
US5469354A (en) | 1989-06-14 | 1995-11-21 | Hitachi, Ltd. | Document data processing method and apparatus for document retrieval |
EP0470798B1 (en) | 1990-08-06 | 1997-10-29 | Fujitsu Limited | Dictionary searching system |
DE69231013T2 (de) * | 1991-02-28 | 2001-02-22 | Hitachi, Ltd. | Verfahren und Anordnung zum Registrieren von Textdokumenten und zur Dokumentwiederauffindung |
US5953006A (en) * | 1992-03-18 | 1999-09-14 | Lucent Technologies Inc. | Methods and apparatus for detecting and displaying similarities in large data sets |
US5442350A (en) * | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
JPH06274701A (ja) | 1993-03-22 | 1994-09-30 | N T T Data Tsushin Kk | 単語照合装置 |
JP2505980B2 (ja) * | 1993-04-16 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 静的辞書作成方法及びコンピュ―タ実行システム |
JP3220885B2 (ja) | 1993-06-18 | 2001-10-22 | 株式会社日立製作所 | キーワード付与システム |
JP2746121B2 (ja) | 1994-05-31 | 1998-04-28 | 日本電気株式会社 | 辞書検索装置 |
DE69433620T2 (de) * | 1994-06-16 | 2004-08-12 | Seiko Epson Corp. | Datenkomprimierungsverfahren |
US5778371A (en) * | 1994-09-13 | 1998-07-07 | Kabushiki Kaisha Toshiba | Code string processing system and method using intervals |
JP2929963B2 (ja) * | 1995-03-15 | 1999-08-03 | 松下電器産業株式会社 | 文書検索装置および単語索引作成方法および文書検索方法 |
JP3046221B2 (ja) | 1995-05-23 | 2000-05-29 | 松下電器産業株式会社 | 情報検索装置 |
JP3566441B2 (ja) * | 1996-01-30 | 2004-09-15 | シャープ株式会社 | テキスト圧縮用辞書作成装置 |
US6519601B1 (en) * | 1996-05-22 | 2003-02-11 | Universitaire Ziekenhuizen Leuven | Relational database compiled/stored on a memory structure providing improved access through use of redundant representation of data |
JP3231673B2 (ja) * | 1996-11-21 | 2001-11-26 | シャープ株式会社 | 文字,文字列検索方法及び該方法に用いる記録媒体 |
US5870750A (en) | 1997-05-29 | 1999-02-09 | Matsushita Electric Industrial Co., Ltd. | Information retrieval system for retrieving a record of data including a keyword |
JP3143079B2 (ja) * | 1997-05-30 | 2001-03-07 | 松下電器産業株式会社 | 辞書索引作成装置と文書検索装置 |
JPH1173429A (ja) * | 1997-06-19 | 1999-03-16 | Matsushita Electric Ind Co Ltd | 文書検索装置 |
US7024414B2 (en) * | 2001-08-06 | 2006-04-04 | Sensage, Inc. | Storage of row-column data |
-
1998
- 1998-11-30 JP JP34076598A patent/JP3566111B2/ja not_active Expired - Lifetime
-
1999
- 1999-11-30 US US09/451,047 patent/US7103536B1/en not_active Expired - Fee Related
- 1999-11-30 EP EP99123788A patent/EP1006460A3/en not_active Withdrawn
-
2004
- 2004-06-24 US US10/875,898 patent/US20050027513A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1006460A2 (en) | 2000-06-07 |
EP1006460A3 (en) | 2004-10-13 |
JP2000163442A (ja) | 2000-06-16 |
US7103536B1 (en) | 2006-09-05 |
US20050027513A1 (en) | 2005-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3566111B2 (ja) | 記号辞書作成方法及び記号辞書検索方法 | |
US7516130B2 (en) | Matching engine with signature generation | |
US10169354B2 (en) | Indexing and search query processing | |
US7747642B2 (en) | Matching engine for querying relevant documents | |
US7860853B2 (en) | Document matching engine using asymmetric signature generation | |
CA2819066C (en) | System and method for creating and maintaining a database of disambiguated entity mentions and relations from a corpus of electronic documents | |
US7917493B2 (en) | Indexing and searching product identifiers | |
US8266150B1 (en) | Scalable document signature search engine | |
CN1728142B (zh) | 信息检索***中的短语识别方法和设备 | |
US8504553B2 (en) | Unstructured and semistructured document processing and searching | |
US20100145902A1 (en) | Methods and systems to train models to extract and integrate information from data sources | |
US20120041955A1 (en) | Enhanced identification of document types | |
US20130066898A1 (en) | Matching target strings to known strings | |
JP4237813B2 (ja) | 構造化文書管理システム | |
CN113821544A (zh) | 使用字段级删除邻域的改进的模糊搜索 | |
JP5072832B2 (ja) | 署名生成および関連性を有するマッチングエンジン | |
Sohrabi et al. | Finding similar documents using frequent pattern mining methods | |
CN113407693B (zh) | 一种用于全媒体审读的文本相似度比对方法及装置 | |
JP2002202973A (ja) | 構造化文書管理装置 | |
Swapna et al. | Efficient approach for web search personalization in user behavior supported web server log files using web usage mining | |
JP4304226B2 (ja) | 構造化文書管理システム、構造化文書管理方法及びプログラム | |
Ghavimi et al. | EXmatcher: Combining Features Based on Reference Strings and Segments to Enhance Citation Matching | |
Isah | Text Retrieval Using Wavelet Tree | |
Silva et al. | Mining stars with fp-growth: A case study on bibliographic data | |
JP2001325293A (ja) | 全文検索方法及び装置及び全文検索プログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040426 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040608 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040609 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |