JP5293301B2 - SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM - Google Patents

SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM Download PDF

Info

Publication number
JP5293301B2
JP5293301B2 JP2009063166A JP2009063166A JP5293301B2 JP 5293301 B2 JP5293301 B2 JP 5293301B2 JP 2009063166 A JP2009063166 A JP 2009063166A JP 2009063166 A JP2009063166 A JP 2009063166A JP 5293301 B2 JP5293301 B2 JP 5293301B2
Authority
JP
Japan
Prior art keywords
character
state
digit
transition
character string
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.)
Active
Application number
JP2009063166A
Other languages
Japanese (ja)
Other versions
JP2010218140A (en
Inventor
達哉 浅井
正卓 松浦
真彦 永田
真一郎 多湖
青史 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009063166A priority Critical patent/JP5293301B2/en
Publication of JP2010218140A publication Critical patent/JP2010218140A/en
Application granted granted Critical
Publication of JP5293301B2 publication Critical patent/JP5293301B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To accurately determine the similarity of keywords as the result of collation by achieving ambiguous retrieval without increasing the number of states of an AC machine. <P>SOLUTION: A retrieval device 100 successively compares an AC machine 140c with the respective characters of text data when the text data are acquired by a collation processing part 150b, and when normal transition is performed, registers scores corresponding to the characters in a score array 140d, and when Feira transition is performed, puts the scores of the score array 140d ahead based on a difference in distances (dist) between the destination of transition and the origin of transition. Then, when the transition of the state to a collation state is performed, the collation processing part 150b totals the scores included in the score array 140d, and determines scores of the collated keyword. <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

本発明は、ACマシンを用いてパターン照合を実行する検索装置等に関する。   The present invention relates to a search device that performs pattern matching using an AC machine.

近年、検索システムのコアエンジンとしてACマシン(Aho-Corasick machines)が利用されている。このACマシンは、テキストデータ(文字列)が与えられた場合にパターン照合を実行し、検索対象の文字列(キーワードまたはパターンと呼ぶ)の出現位置をテキストデータ中から高速に算出するものである(例えば、特許文献1、非特許文献1〜3参照)。   In recent years, AC machines (Aho-Corasick machines) are used as a core engine of a search system. This AC machine performs pattern matching when text data (character string) is given, and calculates the appearance position of the character string to be searched (referred to as a keyword or pattern) from the text data at high speed. (For example, refer to Patent Document 1 and Non-Patent Documents 1 to 3).

ACマシンによるパターン照合は、テキストデータDを1回スキャンするだけで終了するため、検索対象のキーワードの数がどれだけ増えても計算時間はO(|D|)で一定である。また、ACマシンは、テキストデータへの前処理を必要とせず、そのまま1スキャンで計算できるという手軽さから、リアルタイム処理、オンデマンド処理、ストリーム処理などに特に適している。   Since the pattern matching by the AC machine is completed only by scanning the text data D once, the calculation time is constant at O (| D |) no matter how much the number of keywords to be searched increases. The AC machine is particularly suitable for real-time processing, on-demand processing, stream processing, and the like because it does not require preprocessing of text data and can be calculated as it is in one scan.

特開平2−071388号公報JP-A-2-071388

A.V.Aho and M.J Corasick,"Efficient String Matching:An Aid to Bibliographic Search",Comm.ACM,Vol.18,No.6,pages 333-340,1975A.V.Aho and M.J Corasick, "Efficient String Matching: An Aid to Bibliographic Search", Comm.ACM, Vol.18, No.6, pages 333-340,1975 S.Arikawa and T. Shinohara,"A Run-Time Efficient Realization of Aho-Corasick Pattern Matting Machines",New Generation Comput.,Vol.2,No.2,pages 171-186,1984S.Arikawa and T. Shinohara, "A Run-Time Efficient Realization of Aho-Corasick Pattern Matting Machines", New Generation Comput., Vol.2, No.2, pages 171-186,1984 有川・篠原「文字列パターン照合アルゴリズム」、コンピュータソフトウェア、Vol.4,No.2,pages2-23,1987.Arikawa and Shinohara "String Pattern Matching Algorithm", Computer Software, Vol.4, No.2, pages2-23, 1987.

例えば、大文字と小文字のように、類似した文字を区別しないあいまい検索を、ACマシンを用いて実現させた場合、ヒットしたキーワードのうち、どの程度が大文字でどの程度が小文字なのか(類似度)を判定することが求められる。   For example, when a fuzzy search that does not distinguish between similar characters such as uppercase and lowercase letters is realized using an AC machine, how many uppercase letters and lowercase letters are in the hit keywords (similarity) Is required to be determined.

しかし、上述したACマシンをそのまま適用すると、パターン照合が終了した時点で、ヒットしたキーワードがACマシン上のどの経路を通ってヒットしたのかを判定することが出来ない。従って、ヒットした文字のうち、どの程度が大文字でどの程度が小文字なのかを判定することができない。   However, if the above-described AC machine is applied as it is, it cannot be determined through which path on the AC machine the hit keyword has been hit when the pattern matching is completed. Therefore, it is impossible to determine how much of the hit characters are uppercase letters and how much are lowercase letters.

なお、各文字における候補の組合せを全て展開したACマシンを作成すれば、ヒットした文字のうち、どの程度が大文字でどの程度が小文字なのかを判定することが可能となる。しかし、かかる手法では、ACマシンに含まれる状態数が、指数的に増加してしまうため、現実的ではない。   If an AC machine in which all combinations of candidates for each character are developed is created, it is possible to determine how much of the hit characters are uppercase letters and how much are lowercase letters. However, this method is not realistic because the number of states included in the AC machine increases exponentially.

すなわち、ACマシンの状態数を増加させることなくあいまい検索を実現させ、照合結果となるキーワードの類似度を正確に判定することが重要な課題となっている。   That is, it is an important issue to realize a fuzzy search without increasing the number of states of the AC machine and to accurately determine the similarity of keywords as a matching result.

開示の技術は、上記に鑑みてなされたものであって、ACマシンの状態数を増加させることなくあいまい検索を実現させ、照合結果となるキーワードの類似度を正確に判定することが出来る検索装置、検索方法、記憶媒体を提供することを目的とする。   The disclosed technology has been made in view of the above, and can realize a fuzzy search without increasing the number of states of an AC machine, and can accurately determine the similarity of keywords as a matching result. An object is to provide a search method and a storage medium.

この検索装置は、複数のOR条件の文字列検索において、該条件の文字列に含まれる正解文字に対して、該正解文字ではないが条件一致と見なされる許容文字を設定して照合処理する曖昧検索を、ACオートマトンで実行する検索装置であって、前記複数の条件文字列の文字桁毎に、正解文字および許容文字、各文字に対応する点数を設定するとともに、特定の条件文字列の特定文字桁数までは一致したがその後に不一致が発生した際、あるいは、特定の条件文字列がすべて一致した際に、他の条件文字列の特定の文字桁の文字へ遷移するフェイラ遷移を設定したACオートマトンのトライ構造を生成する生成手段と、前記トライ構造の文字桁毎に、検索対象である対象文字列が一致した正解文字あるいは許容文字列に対応付けられた点数が管理される点数テーブルと、前記対象文字列を記憶装置から抽出し、該対象文字列に含まれる文字が前記トライ構造における特定の文字桁の正解文字あるいは許容文字と一致するか照合し、文字が一致する場合は、一致した文字桁に対応付けて正解文字または許容文字に対応する点数を前記点数テーブルに記録し、更に該対象文字列の次の文字について、該トライ構造の次の文字桁の正解文字または許容文字と照合することを順次繰り返す照合手段と、対象文字列の次の文字を照合する際、前記フェイラ遷移に基づいて前記他の条件文字列の特定の文字列に移動する場合、該フェイラ遷移の遷移元と遷移先の文字桁の桁数の差を識別し、前記点数テーブルに記録された各文字桁の点数を、現在対応付けられた文字桁から該識別した桁数の差分だけ減じた文字桁の点数に変更する変更手段と、いずれかの条件文字列の全文字桁で文字一致した時点で、前記点数テーブルに記録されている点数の合計を算出し、該合計点数に基づき条件文字列と前記対象文字列に含まれる文字列の類似度を出力する出力手段を、備えることを要件とする。   This search device uses a plurality of OR condition character string searches to set a permissible character that is not a correct character but is considered to be a condition match for a correct character included in the character string of the condition, and performs an ambiguous process. A search device for executing a search by an AC automaton, wherein correct characters and allowable characters, points corresponding to each character are set for each character digit of the plurality of conditional character strings, and a specific conditional character string is specified. Set up a failer transition that transitions to a character of a specific character digit in another condition character string when it matches up to the number of character digits but a mismatch occurs after that or when all of the specific condition character strings match. The generating means for generating the AC automaton trie structure, and for each character digit of the trie structure, the score associated with the correct character or the allowable character string that matches the target character string to be searched is The target score string and the target character string are extracted from the storage device, and the characters included in the target character string are collated with a correct character or an allowable character of a specific character digit in the trie structure. When they match, the score corresponding to the correct character or the allowable character is recorded in the score table in association with the matched character digit, and for the next character of the target character string, the next character digit of the trie structure is recorded. When collating the correct character or the allowed character in order to repeat the collation sequentially and when collating the next character of the target character string, when moving to a specific character string of the other conditional character string based on the failer transition, The difference between the number of digits of the transition source and the destination of the transition of the failer is identified, and the score of each character digit recorded in the score table is changed from the currently associated character digit to the difference of the identified digit number When the character matching is made in all the character digits of any of the condition character strings, the sum of the points recorded in the score table is calculated and the total score is calculated. It is a requirement to provide output means for outputting the similarity between the condition character string and the character string included in the target character string.

この検索装置によれば、ACマシンの状態数を増加させることなくあいまい検索を実現させ、照合結果となるキーワードの類似度を正確に判定することができる。   According to this search device, it is possible to realize an ambiguous search without increasing the number of states of the AC machine, and to accurately determine the degree of similarity of the keywords that are the matching results.

図1は、従来のACマシンのデータ構造の一例を示す図である。FIG. 1 is a diagram illustrating an example of a data structure of a conventional AC machine. 図2は、従来の状態構造体のデータ構造の一例を示す図である。FIG. 2 is a diagram illustrating an example of a data structure of a conventional state structure. 図3は、従来のACマシンを構築する処理手順を示すフローチャートである。FIG. 3 is a flowchart showing a processing procedure for constructing a conventional AC machine. 図4は、従来のパターン集合ΠのトライT構築処理の処理手順を示すフローチャートである。FIG. 4 is a flowchart showing a processing procedure of a conventional pattern set 構築 tri-T construction process. 図5は、従来のパターン登録処理の処理手順を示すフローチャートである。FIG. 5 is a flowchart showing a processing procedure of a conventional pattern registration process. 図6は、従来のフェイラ遷移追加処理の処理手順を示すフローチャート(1)である。FIG. 6 is a flowchart (1) showing the processing procedure of the conventional failer transition addition processing. 図7は、従来のフェイラ遷移追加処理の処理手順を示すフローチャート(2)である。FIG. 7 is a flowchart (2) showing the processing procedure of the conventional failer transition addition processing. 図8は、従来のパターン集合ΠのトライT構築処理を説明するための図(1)である。FIG. 8 is a diagram (1) for explaining the conventional tri-T construction process for the pattern set Π. 図9は、従来のパターン集合ΠのトライT構築処理を説明するための図(2)である。FIG. 9 is a diagram (2) for explaining the conventional pattern set ト ラ イ tri-T construction process. 図10は、従来のパターン集合ΠのトライT構築処理を説明するための図(3)である。FIG. 10 is a diagram (3) for explaining the conventional pattern set 処理 tri-T construction process. 図11は、従来のフェイラ遷移追加処理を説明するための図(1)である。FIG. 11 is a diagram (1) for explaining the conventional failer transition addition process. 図12は、従来のフェイラ遷移追加処理を説明するための図(2)である。FIG. 12 is a diagram (2) for explaining the conventional failer transition addition process. 図13は、従来のフェイラ遷移追加処理を説明するための図(3)である。FIG. 13 is a diagram (3) for explaining the conventional failer transition addition process. 図14は、従来のフェイラ遷移追加処理を説明するための図(4)である。FIG. 14 is a diagram (4) for explaining the conventional failer transition addition process. 図15は、従来のフェイラ遷移追加処理を説明するための図(5)である。FIG. 15 is a diagram (5) for explaining the conventional failer transition addition process. 図16は、従来のフェイラ遷移追加処理を説明するための図(6)である。FIG. 16 is a diagram (6) for explaining the conventional failer transition addition process. 図17は、従来のフェイラ遷移追加処理を説明するための図(7)である。FIG. 17 is a diagram (7) for explaining the conventional failer transition addition process. 図18は、従来のフェイラ遷移追加処理を説明するための図(8)である。FIG. 18 is a diagram (8) for explaining the conventional failer transition addition process. 図19は、従来のフェイラ遷移追加処理を説明するための図(9)である。FIG. 19 is a diagram (9) for explaining the conventional failer transition addition process. 図20は、従来のパターン照合処理の処理手順を示すフローチャートである。FIG. 20 is a flowchart showing a processing procedure of conventional pattern matching processing. 図21は、従来のパターン照合処理を説明するための図(1)である。FIG. 21 is a diagram (1) for explaining the conventional pattern matching process. 図22は、従来のパターン照合処理を説明するための図(2)である。FIG. 22 is a diagram (2) for explaining the conventional pattern matching process. 図23は、従来のパターン照合処理を説明するための図(3)である。FIG. 23 is a diagram (3) for explaining the conventional pattern matching process. 図24は、従来のパターン照合処理を説明するための図(4)である。FIG. 24 is a diagram (4) for explaining the conventional pattern matching process. 図25は、従来のパターン照合処理を説明するための図(5)である。FIG. 25 is a diagram (5) for explaining the conventional pattern matching process. 図26は、従来のパターン照合処理を説明するための図(6)である。FIG. 26 is a diagram (6) for explaining the conventional pattern matching process. 図27は、あいまいパターンを受け付ける従来のACマシンの一例を示す図である。FIG. 27 is a diagram illustrating an example of a conventional AC machine that accepts an ambiguous pattern. 図28は、従来技術の問題点を説明するための図(1)である。FIG. 28 is a diagram (1) for explaining the problems of the prior art. 図29は、従来技術の問題点を説明するための図(2)である。FIG. 29 is a diagram (2) for explaining the problems of the prior art. 図30は、本実施例にかかる検索装置の概要を説明するための図である。FIG. 30 is a diagram for explaining the outline of the search device according to the present embodiment. 図31は、本実施例にかかる検索装置の構成を示す図である。FIG. 31 is a diagram illustrating the configuration of the search device according to the present embodiment. 図32は、本実施例にかかるコスト管理テーブルのデータ構造の一例を示す図である。FIG. 32 is a diagram illustrating an example of the data structure of the cost management table according to the present embodiment. 図33は、本実施例にかかる状態構造体のデータ構造の一例を示す図である。FIG. 33 is a diagram illustrating an example of the data structure of the state structure according to the present embodiment. 図34は、本実施例にかかるスコア配列のデータ構造の一例を示す図である。FIG. 34 is a diagram illustrating an example of the data structure of the score array according to the present embodiment. 図35は、本実施例にかかるトライT構築処理を説明するための図(1)である。FIG. 35 is a diagram (1) for explaining the tri-T construction process according to the present embodiment. 図36は、本実施例にかかるトライT構築処理を説明するための図(2)である。FIG. 36 is a diagram (2) for explaining the tri-T construction process according to the present embodiment. 図37は、本実施例にかかるトライT構築処理を説明するための図(3)である。FIG. 37 is a diagram (3) for explaining the tri-T construction process according to the present embodiment. 図38は、本実施例にかかるフェイラ遷移追加処理を説明するための図(1)である。FIG. 38 is a diagram (1) for explaining the failer transition addition processing according to the present embodiment. 図39は、本実施例にかかるフェイラ遷移追加処理を説明するための図(2)である。FIG. 39 is a diagram (2) for explaining the failer transition addition processing according to the present embodiment. 図40は、本実施例にかかるフェイラ遷移追加処理を説明するための図(3)である。FIG. 40 is a diagram (3) for explaining the failer transition addition processing according to the present embodiment. 図41は、本実施例にかかるフェイラ遷移追加処理を説明するための図(4)である。FIG. 41 is a diagram (4) for explaining the failer transition addition processing according to the present embodiment. 図42は、本実施例にかかるフェイラ遷移追加処理を説明するための図(5)である。FIG. 42 is a diagram (5) for explaining the failer transition addition processing according to the present embodiment. 図43は、本実施例にかかるフェイラ遷移追加処理を説明するための図(6)である。FIG. 43 is a diagram (6) for explaining the failer transition addition processing according to the present embodiment. 図44は、本実施例にかかるフェイラ遷移追加処理を説明するための図(7)である。FIG. 44 is a diagram (7) for explaining the failer transition addition processing according to the present embodiment. 図45は、本実施例にかかるフェイラ遷移追加処理を説明するための図(8)である。FIG. 45 is a diagram (8) for explaining the failer transition addition processing according to the present embodiment. 図46は、本実施例にかかるフェイラ遷移追加処理を説明するための図(9)である。FIG. 46 is a diagram (9) for explaining the failer transition addition processing according to the present embodiment. 図47は、本実施例にかかるパターン照合処理を説明するための図(1)である。FIG. 47 is a diagram (1) for explaining the pattern matching processing according to the present embodiment. 図48は、本実施例にかかるパターン照合処理を説明するための図(2)である。FIG. 48 is a diagram (2) for explaining the pattern matching processing according to the present embodiment. 図49は、本実施例にかかるパターン照合処理を説明するための図(3)である。FIG. 49 is a diagram (3) for explaining the pattern matching processing according to the present embodiment. 図50は、本実施例にかかるパターン照合処理を説明するための図(4)である。FIG. 50 is a diagram (4) for explaining the pattern matching processing according to the present embodiment. 図51は、本実施例にかかるパターン照合処理を説明するための図(5)である。FIG. 51 is a diagram (5) for explaining the pattern matching processing according to the present embodiment. 図52は、本実施例にかかるパターン照合処理を説明するための図(6)である。FIG. 52 is a diagram (6) for explaining the pattern matching processing according to the present embodiment. 図53は、照合結果出力部が出力する照合結果の一例を示す図である。FIG. 53 is a diagram illustrating an example of a collation result output by the collation result output unit. 図54は、本実施例にかかる検索装置100がACマシンを構築する処理手順を示すフローチャートである。FIG. 54 is a flowchart of a process procedure in which the search device 100 according to the present embodiment constructs an AC machine. 図55は、本実施例にかかるパターン集合ΠのトライTの構築処理の処理手順を示すフローチャートである。FIG. 55 is a flowchart of a process procedure of a process for constructing a trie T of a pattern set according to the present embodiment. 図56は、本実施例にかかるパターン登録処理の処理手順を示すフローチャートである。FIG. 56 is a flowchart of the process procedure of the pattern registration process according to the present embodiment. 図57は、本実施例にかかるフェイラ遷移追加処理の処理手順を示すフローチャート(1)である。FIG. 57 is a flowchart (1) illustrating the processing procedure of the failer transition addition processing according to the present embodiment. 図58は、本実施例にかかるフェイラ遷移追加処理の処理手順を示すフローチャート(2)である。FIG. 58 is a flowchart (2) illustrating the processing procedure of the failer transition addition processing according to the present embodiment. 図59は、本実施例にかかる照合処理の処理手順を示すフローチャートである。FIG. 59 is a flowchart of the verification process according to the present embodiment. 図60は、実施例に示した検索装置に対応するコンピュータのハードウェア構成を示す図である。FIG. 60 is a diagram illustrating a hardware configuration of a computer corresponding to the search device illustrated in the embodiment.

以下に、本願の開示する(発明の名称)の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   Hereinafter, embodiments of the present invention (name of the invention) will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.

まず、本実施例を説明する前に、従来のACマシン(ACオートマトン)について説明する。図1は、従来のACマシンのデータ構造の一例を示す図である。図1に示すACマシンは、テキストデータが入力された場合に、キーワード「AC、BA、BB、BAA、BACD」の位置を算出するACマシンである。   First, a conventional AC machine (AC automaton) will be described before describing this embodiment. FIG. 1 is a diagram illustrating an example of a data structure of a conventional AC machine. The AC machine shown in FIG. 1 is an AC machine that calculates the position of the keywords “AC, BA, BB, BAA, BACD” when text data is input.

図1に示すように、ACマシンは、状態0〜8を有しており、各状態は、初期状態、通常状態、照合状態に分別される。初期状態は、初めにテキストデータと照合される状態であり、通常状態は、2番目以降にテキストデータと照合される状態である。照合状態は、テキストデータが特定のキーワードにヒットした場合に遷移する状態である。図1に示す例では、初期状態を状態1とし、通常状態を状態1,3とし、照合状態は状態2,4〜8とする。   As shown in FIG. 1, the AC machine has states 0 to 8, and each state is classified into an initial state, a normal state, and a collation state. The initial state is a state in which text data is first collated, and the normal state is a state in which text data is collated second and later. The collation state is a state that transitions when the text data hits a specific keyword. In the example shown in FIG. 1, the initial state is state 1, the normal state is states 1 and 3, and the collation state is states 2 and 4-8.

ACマシンは、テキストデータの文字を初期状態0から順次照合し、通常遷移とフェイラ(Failure)遷移を繰り返すことで、テキストデータに含まれるテキスト(例えば、図1の集合Πに含まれるテキスト)の出現位置を算出する。   The AC machine sequentially checks the characters of the text data from the initial state 0, and repeats the normal transition and the failure transition, so that the text included in the text data (for example, the text included in the set 図 in FIG. 1) can be obtained. The appearance position is calculated.

ここで、通常遷移は、照合対象となる状態において、テキストデータの比較対象となる文字による遷移先が存在する場合の遷移を示す。例えば、状態1において、テキストデータの比較対象となる文字がCの場合には、通常遷移となる。テキストデータの文字がCの場合には、状態1から状態2に通常遷移する。   Here, the normal transition indicates a transition when there is a transition destination by a character to be compared with text data in a state to be collated. For example, in state 1, when the character to be compared with text data is C, a normal transition is made. When the character of the text data is C, a normal transition is made from state 1 to state 2.

一方、通常遷移の条件に該当しない場合には、フェイラ遷移となる。例えば、状態1において、テキストデータの比較対象となる文字がC以外の場合には、フェイラ遷移となる。状態1においてフェイラ遷移した場合には、状態0となる。ACマシンでは、各状態に一本ずつフェイラ遷移が存在する。図1で省略されているフェイラ遷移は、全て初期状態0に向かっているものとする。   On the other hand, if the conditions for the normal transition are not met, a failer transition occurs. For example, in the state 1, when the character to be compared with the text data is other than C, a failer transition is made. When a failer transition occurs in state 1, state 0 is entered. In the AC machine, there is one failer transition in each state. It is assumed that the failer transitions omitted in FIG. 1 are all directed to the initial state 0.

ここで、図1に示したACマシンが有する状態(状態構造体)のデータ構造について説明する。図2は、従来の状態構造体のデータ構造の一例を示す図である。図2に示すように、この状態構造体は、各状態を識別する状態IDと、パターンリストと、通常遷移先へのポインタと、フェイラ遷移先へのポインタを有する。   Here, the data structure of the state (state structure) of the AC machine shown in FIG. 1 will be described. FIG. 2 is a diagram illustrating an example of a data structure of a conventional state structure. As shown in FIG. 2, this state structure has a state ID for identifying each state, a pattern list, a pointer to a normal transition destination, and a pointer to a failer transition destination.

ここで、パターンリストは、状態構造体が照合状態の場合に、該当するキーワードを格納する。例えば、状態2(状態ID2)の状態構造体に含まれるパターンリストは、ACとなる。   Here, the pattern list stores a corresponding keyword when the state structure is in a collation state. For example, the pattern list included in the state structure of state 2 (state ID 2) is AC.

次に、従来技術の装置(以下、従来装置;図示略)が、ACマシンを構築する処理手順について説明する。図3は、従来のACマシンを構築する処理手順を示すフローチャートである。図3に示すように、従来装置は、パターン集合Π(検索対象となるキーワードの集合)を取得し(ステップS10)、パターン集合ΠのトライTの構築処理を実行する(ステップS11)。そして、従来装置は、フェイラ遷移追加処理を実行し(ステップS12)、ACマシンα(Π)を出力する(ステップS13)。   Next, a processing procedure for constructing an AC machine by a conventional device (hereinafter, a conventional device; not shown) will be described. FIG. 3 is a flowchart showing a processing procedure for constructing a conventional AC machine. As shown in FIG. 3, the conventional apparatus acquires a pattern set Π (a set of keywords to be searched) (step S10), and executes a process of constructing a trie T for the pattern set ((step S11). Then, the conventional apparatus executes a failer transition addition process (step S12), and outputs an AC machine α (Π) (step S13).

次に、図3のステップS11に示したパターン集合Πのトライ木構築処理について説明する。図4は、従来のパターン集合ΠのトライTの構築処理の処理手順を示すフローチャートである。図4に示すように、従来装置は、初期状態(id=0)を作成し、トライT(Π)を初期状態のみで構成されるトライに設定する(ステップS20)。   Next, the trie tree construction process for the pattern set 示 し shown in step S11 of FIG. 3 will be described. FIG. 4 is a flowchart showing a processing procedure of a conventional process for constructing a trie T of a pattern set IV. As shown in FIG. 4, the conventional apparatus creates an initial state (id = 0), and sets a trie T (Π) to a trie that includes only the initial state (step S20).

従来装置は、初期状態における通常遷移先のポインタを全て初期状態(id=0)に設定し(ステップS21)、パターン集合Πにパターンが存在するか否かを判定する(ステップS22)。パターンが存在しない場合には(ステップS23,No)、トライT(Π)を出力する(ステップS24)。   The conventional apparatus sets all the normal transition destination pointers in the initial state to the initial state (id = 0) (step S21), and determines whether a pattern exists in the pattern set ((step S22). If the pattern does not exist (step S23, No), a trie T (Π) is output (step S24).

一方、パターン集合Πにパターンが存在する場合には(ステップS23,Yes)、パターン集合Πから1つのパターンを取り出し、取り出したパターンをパターンpに設定し(ステップS25)、パターン登録処理を実行する(ステップS26)。   On the other hand, if a pattern exists in the pattern set ((step S23, Yes), one pattern is extracted from the pattern set 、, the extracted pattern is set as the pattern p (step S25), and pattern registration processing is executed. (Step S26).

次に、図4のステップS26に示したパターン登録処理について説明する。図5は、従来のパターン登録処理の処理手順を示すフローチャートである。図5に示すように、従来装置は、状態sをトライTの初期状態に設定し(ステップS30)、パターンpに次の文字が存在するか否かを判定する(ステップS31)。   Next, the pattern registration process shown in step S26 of FIG. 4 will be described. FIG. 5 is a flowchart showing a processing procedure of a conventional pattern registration process. As shown in FIG. 5, the conventional apparatus sets the state s to the initial state of the trie T (step S30), and determines whether or not the next character exists in the pattern p (step S31).

パターンpに次の文字が存在しない場合には(ステップS32,No)、従来装置は、状態sのパターンリストPlistにパターンpを代入し(ステップS33)、トライTを出力する(ステップS34)。   When the next character does not exist in the pattern p (step S32, No), the conventional apparatus substitutes the pattern p for the pattern list Plist in the state s (step S33), and outputs a trie T (step S34).

一方、パターンpに次の文字が存在する場合には(ステップS32,Yes)、従来装置は、次の文字をaとし、aのasciiコードをcode(a)に設定し(ステップS35)、状態sの通常遷移先へのポインタg[code(a)]がNullであるか否かを判定する(ステップS36)。   On the other hand, when the next character exists in the pattern p (step S32, Yes), the conventional apparatus sets the next character as a, sets the ascii code of a to code (a) (step S35), and the state It is determined whether or not the pointer g [code (a)] to the normal transition destination of s is Null (step S36).

通常遷移先へのポインタg[code(a)]がNullではない場合には(ステップS37,No)、ステップS39に移行する。一方、従来装置は、通常遷移先へのポインタg[code(a)]がNullの場合には(ステップS37,Yes)、状態nを新規作成し、状態sの通常遷移先へのポインタg[code(a)]をnに設定する(ステップS38)。そして、従来装置は、状態sにg[code(a)]を代入し(ステップS39)、ステップS31に移行する。   When the pointer g [code (a)] to the normal transition destination is not Null (step S37, No), the process proceeds to step S39. On the other hand, when the pointer g [code (a)] to the normal transition destination is null (step S37, Yes), the conventional apparatus creates a new state n and points to the normal transition destination g [ code (a)] is set to n (step S38). Then, the conventional device substitutes g [code (a)] for the state s (step S39), and proceeds to step S31.

次に、図3のステップS12に示したフェイラ遷移追加処理について説明する。図6および図7は、従来のフェイラ遷移追加処理の処理手順を示すフローチャートである。図6に示すように、従来装置は、初期状態から通常遷移先となる状態を判定し、判定した状態をキュー(queue)に登録する(ステップS40)。   Next, the failer transition addition process shown in step S12 of FIG. 3 will be described. 6 and 7 are flowcharts showing a processing procedure of conventional failer transition addition processing. As shown in FIG. 6, the conventional apparatus determines a state that is a normal transition destination from the initial state, and registers the determined state in a queue (step S40).

そして、従来装置は、キューに登録された状態(状態構造体)のフェイラ遷移先に初期状態を登録し(ステップS41)、キューに状態が存在するか否かを判定する(ステップS42)。キューに状態が存在しない場合には(ステップS43,No)、トライTをACマシンαとして出力する(ステップS44)。   Then, the conventional apparatus registers the initial state in the failer transition destination of the state (state structure) registered in the queue (step S41), and determines whether or not the state exists in the queue (step S42). If there is no state in the queue (step S43, No), the trie T is output as the AC machine α (step S44).

一方、キューに状態が存在する場合には(ステップS43,Yes)、キューの先頭の状態を取り出し、取り出した状態を状態sに設定し(ステップS45)、状態sの通常遷移先へのポインタが全てNullであるか否かを判定する(ステップS46)。状態sの通常遷移先へのポインタが全てNullの場合には(ステップS47,Yes)、ステップS42に移行する。   On the other hand, if a state exists in the queue (step S43, Yes), the head state of the queue is extracted, the extracted state is set to state s (step S45), and a pointer to the normal transition destination of state s is set. It is determined whether or not all are null (step S46). When all the pointers to the normal transition destination of the state s are Null (step S47, Yes), the process proceeds to step S42.

一方、状態sの通常遷移先へのポインタが全てNullではない場合には(ステップS47,No)、図7に示すように、従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、抽出した文字aを集合Xに格納する(ステップS48)。   On the other hand, when all the pointers to the normal transition destination in the state s are not null (step S47, No), as shown in FIG. 7, the conventional apparatus g [code (a)] ≠ Null in the state s. Are extracted and stored in the set X (step S48).

従来装置は、集合Xに文字が存在するか否かを判定し(ステップS49)、集合Xに文字が存在しない場合には(ステップS50,No)、ステップS42に移行する。一方、集合Xに文字が存在する場合には(ステップS50,Yes)、集合Xから文字aを一つ取り出し、取り出した文字aに該当する文字を集合Xから削除する(ステップS51)。   The conventional apparatus determines whether or not a character exists in the set X (step S49). If no character exists in the set X (step S50, No), the process proceeds to step S42. On the other hand, if there is a character in the set X (step S50, Yes), one character a is extracted from the set X, and the character corresponding to the extracted character a is deleted from the set X (step S51).

従来装置は、状態sの通常遷移先をキューの最後尾に追加し(ステップS52)、フェイラ遷移を繰り返し、文字aに対する通常遷移先がNullにならない最初の状態を状態fに設定する(ステップS53)。従来装置は、フェイラ遷移先の状態から文字aの通常遷移先へのポインタfnext=g[code(a)]を判定する(ステップS54)。   The conventional apparatus adds the normal transition destination of the state s to the tail of the queue (step S52), repeats the failer transition, and sets the first state where the normal transition destination for the character a is not null to the state f (step S53). ). The conventional apparatus determines the pointer fnext = g [code (a)] from the state of the failer transition destination to the normal transition destination of the character a (step S54).

従来装置は、状態sから文字aにより遷移する状態nextを判定し(ステップS55)、状態nextのフェイラ遷移先をfnext=g[code(a)]に設定し(ステップS56)、状態nextのフェイラ遷移先の状態にパターンリストが存在する場合に、かかるパターンリストを状態nextのパターンリストに追加し(ステップS57)、ステップS49に移行する。   The conventional apparatus determines the state next to be transitioned from the state s by the letter a (step S55), sets the next transition destination of the state next to fnext = g [code (a)] (step S56), and the state next state failer. When the pattern list exists in the transition destination state, the pattern list is added to the pattern list in the state next (step S57), and the process proceeds to step S49.

次に、図3のステップS11で示したパターン集合ΠのトライT構築処理を、具体例を用いて説明する。図8〜図10は、従来のパターン集合ΠのトライT構築処理を説明するための図である。ここでは一例として、パターン集合ΠをΠ={AC、BA、BB、BAA、BACD}とする。   Next, the pattern set ト ラ イ tri-T construction process shown in step S11 of FIG. 3 will be described using a specific example. FIGS. 8 to 10 are diagrams for explaining a conventional T-construction process for a pattern set Π. Here, as an example, the pattern set Π is Π = {AC, BA, BB, BAA, BACD}.

まず、従来装置は、初期状態(id=0)を作成し、初期状態の状態構造体における通常遷移先を全て初期状態に設定する(図8、ステップS60)。そして、従来装置は、パターン集合Πからパターン「AC」を取り出す。従来装置は、文字Aを選択し、文字Aによる初期状態(id=0)の通常遷移先を通常状態(id=1)に設定する。また、従来装置は、文字Cを選択し、文字Cによる通常状態(id=1)の通常遷移先を照合状態(id=2)に設定し、照合状態のパターンリストを「AC」に設定する(図8、ステップS61)。文字Cは、パターン「AC」最後尾の文字であるため、状態2は、照合状態となる。   First, the conventional apparatus creates an initial state (id = 0), and sets all normal transition destinations in the state structure in the initial state to the initial state (FIG. 8, step S60). Then, the conventional apparatus extracts the pattern “AC” from the pattern set Π. The conventional apparatus selects the character A and sets the normal transition destination of the initial state (id = 0) by the character A to the normal state (id = 1). Further, the conventional apparatus selects the character C, sets the normal transition destination of the normal state (id = 1) by the character C to the collation state (id = 2), and sets the collation state pattern list to “AC”. (FIG. 8, step S61). Since the character C is the last character of the pattern “AC”, the state 2 is a collation state.

従来装置は、初期状態(id=0)に戻り、パターン集合Πからパターン「BA」を取り出す。従来装置は、文字Bを選択し、文字Bによる初期状態(id=0)の通常遷移先を通常状態(id=3)に設定する。また、従来装置は、文字Aを選択し、文字Aによる通常状態(id=3)の通常遷移先を照合状態(id=4)に設定し、照合状態のパターンリストを「BA」に設定する(図8、ステップS62)。文字Aは、パターン「BA」の最後尾の文字であるため、状態4は、照合状態となる。   The conventional apparatus returns to the initial state (id = 0), and extracts the pattern “BA” from the pattern set Π. The conventional apparatus selects the character B and sets the normal transition destination of the initial state (id = 0) by the character B to the normal state (id = 3). Further, the conventional apparatus selects the character A, sets the normal transition destination of the normal state (id = 3) by the character A to the collation state (id = 4), and sets the collation state pattern list to “BA”. (FIG. 8, step S62). Since the character A is the last character of the pattern “BA”, the state 4 is a collation state.

従来装置は、初期状態(id=0)に戻り、パターン集合Πからパターン「BB」を取り出し、文字Bを選択する。ここで、文字Bによる初期状態(id=0)の通常遷移先は通常状態(id=3)であり、既に作成済みであるため、現在の状態を通常状態(id=3)に遷移する。また、従来装置は、文字Bを選択し、文字Bによる通常状態(id=3)の通常遷移先を照合状態(id=5)に設定し、パターンリストを「BB」に設定する(図9、ステップS63)。文字Bは、パターン「BB」の最後尾の文字であるため、状態5は、照合状態となる。   The conventional apparatus returns to the initial state (id = 0), extracts the pattern “BB” from the pattern set Π, and selects the character B. Here, since the normal transition destination of the initial state (id = 0) by the letter B is the normal state (id = 3) and has already been created, the current state is transitioned to the normal state (id = 3). Further, the conventional apparatus selects the character B, sets the normal transition destination of the normal state (id = 3) by the character B to the collation state (id = 5), and sets the pattern list to “BB” (FIG. 9). Step S63). Since the character B is the last character of the pattern “BB”, the state 5 is a collation state.

従来装置は、初期状態(id=0)に戻り、パターン集合Πからパターン「BAA」を取り出し、文字Bを選択する。ここで、文字Bによる初期状態(id=0)の通常遷移先は、通常状態(id=3)であり、既に作成済みであるため、現在の状態を通常状態(id=3)に遷移する。また、従来装置は、文字Aを選択する。ここで、文字Aによる通常状態(id=3)の通常遷移先は、照合状態(id=4)であり、既に作成済みであるため、現在の状態を照合状態(id=4)に設定する。また、従来装置は、文字Aを選択する。文字Aによる照合状態(id=4)の通常遷移先を照合状態(id=6)に設定し、パターンリストを「BAA」に設定する(図9、ステップS64)。文字Aは、パターン「BAA」の最後尾の文字であるため、状態6は、照合状態となる。   The conventional apparatus returns to the initial state (id = 0), extracts the pattern “BAA” from the pattern set Π, and selects the character B. Here, since the normal transition destination of the initial state (id = 0) by the letter B is the normal state (id = 3) and has already been created, the current state is transitioned to the normal state (id = 3). . Further, the conventional apparatus selects the letter A. Here, since the normal transition destination of the normal state (id = 3) by the character A is the collation state (id = 4) and has already been created, the current state is set to the collation state (id = 4). . Further, the conventional apparatus selects the letter A. The normal transition destination of the collation state (id = 4) by the character A is set to the collation state (id = 6), and the pattern list is set to “BAA” (FIG. 9, step S64). Since the character A is the last character of the pattern “BAA”, the state 6 is a collation state.

従来装置は、初期状態(id=0)に戻り、パターン集合Πからパターン「BACD」を取り出し、文字Bを選択する。ここで、文字Bによる初期状態(id=0)の通常遷移先は、通常状態(id=3)であり、既に登録済みであるため、現在の状態を通常状態(id=3)に遷移する。また、従来装置は、文字Aを選択する。ここで、文字Aによる通常状態(id=3)の通常遷移先は、照合状態(id=4)であり、既に作成済みであるため、現在の状態を照合状態(id=4)に設定する。   The conventional apparatus returns to the initial state (id = 0), extracts the pattern “BACD” from the pattern set Π, and selects the character B. Here, since the normal transition destination of the initial state (id = 0) by the letter B is the normal state (id = 3) and has already been registered, the current state transitions to the normal state (id = 3). . Further, the conventional apparatus selects the letter A. Here, since the normal transition destination of the normal state (id = 3) by the character A is the collation state (id = 4) and has already been created, the current state is set to the collation state (id = 4). .

また、従来装置は、文字Cを選択し、文字Cによる照合状態(id=4)の通常遷移先を通常状態(id=7)に設定する。また、従来装置は、文字Dを選択し、文字Dによる通常状態(id=7)の通常遷移先を照合状態(id=8)に設定し、パターンリストを「BACD」に設定する(図10、ステップS65)。文字Dは、パターン「BACD」の最後尾の文字であるため、状態8は、照合状態となる。ステップS65が終了した段階で、パターン集合Πに含まれる全てのパターンの登録が終了し、トライTの構築処理が終了する。   Further, the conventional apparatus selects the character C and sets the normal transition destination of the collation state (id = 4) by the character C to the normal state (id = 7). Further, the conventional apparatus selects the character D, sets the normal transition destination of the normal state (id = 7) by the character D to the collation state (id = 8), and sets the pattern list to “BACD” (FIG. 10). Step S65). Since the character D is the last character of the pattern “BACD”, the state 8 is a collation state. At the stage where step S65 is completed, registration of all patterns included in the pattern set Π ends, and the construction process of the trie T ends.

次に、図3のステップS12に示したフェイラ遷移追加処理を、具体例を用いて説明する。図11〜図19は、従来のフェイラ遷移追加処理を説明するための図である。従来装置は、初期状態(id=0)からの通常遷移先となる状態を判定し、判定した状態をキュー(Queue)に登録し、キューに登録された状態のフェイラ遷移先に初期状態0を登録する。ここで、初期状態の通常遷移先は、通常状態1、3となるので、キューに1、3を登録する。また、通常状態1、3のフェイラ遷移先を初期状態0に設定する(図11参照)。   Next, the failer transition addition process shown in step S12 of FIG. 3 will be described using a specific example. FIGS. 11-19 is a figure for demonstrating the conventional failer transition addition process. The conventional device determines the state that is the normal transition destination from the initial state (id = 0), registers the determined state in the queue (Queue), and sets the initial state 0 to the failer transition destination of the state registered in the queue. sign up. Here, since the normal transition destination in the initial state is the normal states 1 and 3, 1 and 3 are registered in the queue. Further, the failer transition destination in the normal states 1 and 3 is set to the initial state 0 (see FIG. 11).

次に、従来装置は、キューの先頭の状態1を取り出し、取り出した状態1を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、従来装置は、文字Cを抽出し、集合Xに文字Cを格納する。   Next, the conventional apparatus takes out state 1 at the head of the queue, and sets the taken-out state 1 to state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the character C and stores the character C in the set X.

従来装置は、集合Xから文字Cを取り出し、状態sの通常遷移先となる状態2をキューの最後尾に追加する。従来装置は、状態1からフェイラ遷移した初期状態0に移行し、文字Cに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、初期状態0となる。従来装置は、状態s(通常状態1)から文字Cにより遷移する状態nextを判定し、判定した状態(照合状態2)のフェイラ遷移先を初期状態0に設定する(図12参照)。   The conventional apparatus extracts the character C from the set X, and adds the state 2 that is the normal transition destination of the state s to the tail of the queue. The conventional apparatus shifts from the state 1 to the initial state 0 that has undergone a failer transition, and determines the normal transition destination for the character C, thereby determining the initial state 0 when determining the failer transition destination of the state next. The conventional apparatus determines the state next to be transitioned by the character C from the state s (normal state 1), and sets the failer transition destination of the determined state (collation state 2) to the initial state 0 (see FIG. 12).

従来装置は、キューの先頭の状態3を取り出し、取り出した状態3を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、従来装置は、文字A、Bを抽出し、集合Xに文字A、Bを格納する。   The conventional apparatus extracts the state 3 at the head of the queue, and sets the extracted state 3 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the characters A and B and stores the characters A and B in the set X.

従来装置は、集合Xから文字Aを取り出し、状態sの文字Aの通常遷移先となる状態4をキューの最後尾に追加する。従来装置は、状態sからフェイラ遷移した初期状態(id=0)に移行し、文字Aに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態1となる。従来装置は、状態s(通常状態3)から文字Aにより遷移する状態nextを判定し、判定した状態(照合状態4)のフェイラ遷移先を状態1に設定する(図13の状態4参照)。   The conventional apparatus extracts the character A from the set X, and adds the state 4 that is the normal transition destination of the character A in the state s to the end of the queue. The conventional apparatus shifts from the state s to the initial state (id = 0) in which the transition is made to the state and determines the normal transition destination for the character A, so that the state transitions to the state 1 when the failure transition destination of the state next is determined. The conventional apparatus determines the state next to be transitioned by the character A from the state s (normal state 3), and sets the failer transition destination of the determined state (collation state 4) to state 1 (see state 4 in FIG. 13).

従来装置は、集合Xから文字Bを取り出し、状態s(通常状態3)の文字Bの通常遷移先となる状態5をキューの最後尾に追加する。従来装置は、状態sからフェイラ遷移した初期状態0に移行し、文字Bに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態3となる。従来装置は、状態sから文字Bにより遷移する状態nextを判定し、判定した状態(照合状態5)のフェイラ遷移先を状態3に設定する(図13の状態5参照)。   The conventional apparatus extracts the character B from the set X and adds the state 5 that is the normal transition destination of the character B in the state s (normal state 3) to the tail of the queue. The conventional apparatus shifts from the state s to the initial state 0 in which a failer transition is performed, and determines the normal transition destination for the character B. The conventional apparatus determines the state next to be transitioned from the state s by the letter B, and sets the failer transition destination of the determined state (collation state 5) to state 3 (see state 5 in FIG. 13).

従来装置は、キューの先頭の状態2を取り出し、取り出した状態2を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図14参照)。   The conventional apparatus extracts the state 2 at the head of the queue, and sets the extracted state 2 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 14).

従来装置は、キューの先頭の状態4を取り出し、取り出した状態4を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、従来装置は、文字A、Cを抽出し、集合Xに文字A、Cを格納する。   The conventional apparatus extracts the state 4 at the head of the queue, and sets the extracted state 4 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the characters A and C and stores the characters A and C in the set X.

従来装置は、集合Xから文字Aを取り出し、状態s(照合状態4)の文字Aの通常遷移先となる状態6をキューの最後尾に追加する。従来装置は、状態sからフェイラ遷移した状態1に移行する。状態1において、文字Aに対する通常遷移先はNullであるため、再度フェイラ遷移し、初期状態0に移行する。   The conventional apparatus extracts the character A from the set X, and adds the state 6 that is the normal transition destination of the character A in the state s (collation state 4) to the tail of the queue. The conventional apparatus shifts from the state s to the state 1 in which a failer transition is made. In state 1, the normal transition destination for character A is Null, so a failer transition is made again, and an initial state 0 is entered.

そして、初期状態0において、文字Aに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態1となる。従来装置は、状態s(通常状態4)から文字Aにより遷移する状態nextを判定し、判定した状態(照合状態6)のフェイラ遷移先を状態1に設定する(図15の状態6参照)。   Then, in the initial state 0, when the normal transition destination for the character A is determined, and the failer transition destination of the state next is determined, the state 1 is obtained. The conventional apparatus determines the state next to be transitioned by the letter A from the state s (normal state 4), and sets the failer transition destination of the determined state (collation state 6) to state 1 (see state 6 in FIG. 15).

従来装置は、集合Xから文字Cを取り出し、状態s(照合状態4)の文字Cの通常遷移先となる状態7をキューの最後尾に追加する。従来装置は、状態sからフェイラ遷移した状態1に移行し、文字Cに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態2となる。従来装置は、状態sから文字Cによる遷移する状態nextを判定し、判定した状態(通常状態7)のフェイラ遷移先を状態2に設定する。   The conventional apparatus extracts the character C from the set X and adds the state 7 that is the normal transition destination of the character C in the state s (collation state 4) to the tail of the queue. The conventional apparatus shifts from the state s to the state 1 in which the transition is made to the state 1, and determines the normal transition destination for the character C, thereby determining the state transition to the state next. The conventional apparatus determines the state next to be transitioned from the state s by the character C, and sets the determined transition state (normal state 7) to the state 2 as the failer transition destination.

また、従来装置は、状態7のフェイラ遷移先が照合状態2となるため、状態2のパターンリストを状態7のパターンリストに追加することで、状態7を照合状態7に設定する(図15の状態7参照)。   In addition, since the failure transition destination of state 7 is collation state 2 in the conventional apparatus, state 7 is set to collation state 7 by adding the pattern list of state 2 to the pattern list of state 7 (FIG. 15). (See state 7).

従来装置は、キューの先頭の状態5を取り出し、取り出した状態5を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図16参照)。   The conventional apparatus extracts the state 5 at the head of the queue, and sets the extracted state 5 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 16).

従来装置は、キューの先頭の状態6を取り出し、取り出した状態6を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図17参照)。   The conventional apparatus takes out the state 6 at the head of the queue, and sets the taken-out state 6 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 17).

従来装置は、キューの先頭の状態7を取り出し、取り出した状態7を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、従来装置は、文字Dを抽出し、集合Xに文字Dを格納する。   The conventional apparatus extracts the state 7 at the head of the queue, and sets the extracted state 7 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the character D and stores the character D in the set X.

従来装置は、集合Xから文字Dを取り出し、状態s(照合状態7)の文字Dの通常遷移先となる状態8をキューの最後尾に追加する。従来装置は、状態sからフェイラ遷移した状態2に移行する。状態2において、文字Dに対する通常遷移先はNullであるため、再度フェイラ遷移し、初期状態0に移行する。   The conventional apparatus extracts the character D from the set X, and adds the state 8 that is the normal transition destination of the character D in the state s (collation state 7) to the end of the queue. The conventional apparatus shifts from the state s to the state 2 that has undergone a failer transition. In state 2, the normal transition destination for character D is Null, so a failer transition occurs again, and the state transitions to initial state 0.

そして、初期状態0において、文字Dに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、初期状態0となる。従来装置は、状態s(照合状態7)から文字Dにより遷移する状態nextを判定し、判定した状態(照合状態8)のフェイラ遷移先を初期状態0に設定する(図18の状態8参照)。   Then, by determining the normal transition destination for the character D in the initial state 0, the initial state 0 is obtained when the failer transition destination of the state next is determined. The conventional apparatus determines the state next to be transitioned by the character D from the state s (collation state 7), and sets the failer transition destination of the determined state (collation state 8) to the initial state 0 (see state 8 in FIG. 18). .

従来装置は、キューの先頭の状態8を取り出し、取り出した状態8を状態sに設定する。従来装置は、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する。そして、キューに状態が存在しなくなった場合に、パターン集合ΠのACマシンが完了する(図19参照)。   The conventional apparatus extracts the state 8 at the head of the queue, and sets the extracted state 8 to the state s. The conventional apparatus extracts all the characters a satisfying g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step. Then, when there is no more state in the queue, the AC machine for the pattern set IV is completed (see FIG. 19).

次に、従来のACマシンを用いたテキストデータのパターン照合処理について説明する。図20は、従来のパターン照合処理の処理手順を示すフローチャートである。図20に示すように、従来装置は、状態sをACマシンαの初期状態に設定し(ステップS70)、オフセットd=0に設定し、集合Rを空集合に設定する(ステップS71)。   Next, a text data pattern matching process using a conventional AC machine will be described. FIG. 20 is a flowchart showing a processing procedure of conventional pattern matching processing. As shown in FIG. 20, the conventional apparatus sets the state s to the initial state of the AC machine α (step S70), sets the offset d = 0, and sets the set R to an empty set (step S71).

従来装置は、テキストデータDに(d+1)文字目が存在するか否かを判定し(ステップS72)、(d+1)文字目が存在しない場合には(ステップS73,No)、集合Rを出力する(ステップS74)。   The conventional device determines whether the (d + 1) -th character exists in the text data D (step S72). If the (d + 1) -th character does not exist (step S73, No), R is output (step S74).

一方、テキストデータDに(d+1)文字目が存在する場合には(ステップS73,Yes)、従来装置は、(d+1)文字目の文字を文字aに設定し(ステップS75)、d=d+1に設定する(ステップS76)。   On the other hand, when the (d + 1) -th character exists in the text data D (step S73, Yes), the conventional device sets the (d + 1) -th character to the character a (step S75), d = d + 1 is set (step S76).

従来装置は、状態sに文字aの通常遷移先が存在するか否かを判定する(ステップS77)。通常遷移先が存在する場合には(ステップS78,Yes)、状態sのg[code(a)]を状態sに代入し(ステップS79)、状態sが照合状態の場合に、状態sのパターンリストをオフセットdに対応付けて集合Rに登録し(ステップS80)、ステップS72に移行する。   The conventional apparatus determines whether or not the normal transition destination of the character a exists in the state s (step S77). When a normal transition destination exists (step S78, Yes), g [code (a)] of the state s is substituted for the state s (step S79), and when the state s is the collation state, the pattern of the state s The list is registered in the set R in association with the offset d (step S80), and the process proceeds to step S72.

通常遷移先が存在しない場合には(ステップS78,No)、状態sのフェイラ遷移先を状態sに設定し(ステップS81)、状態sが照合状態の場合に、状態sのパターンリストをオフセットdに対応付けて集合Rに登録し(ステップS82)、ステップS77に移行する。   If there is no normal transition destination (No in step S78), the state transition destination of the state s is set to the state s (step S81), and if the state s is the collation state, the pattern list of the state s is offset d. And registered in the set R (step S82), and the process proceeds to step S77.

次に、図20に示したパターン照合処理を、具体例を用いて説明する。図21〜図26は、従来のパターン照合処理を説明するための図である。ここでは一例として、パターン集合ΠをΠ={AC、BA、BB、BAA、BACD}としたACマシンを用い、テキストデータDを「CBAAC」として説明を行う。   Next, the pattern matching process shown in FIG. 20 will be described using a specific example. FIGS. 21 to 26 are diagrams for explaining a conventional pattern matching process. Here, as an example, an AC machine in which the pattern set Π is Π = {AC, BA, BB, BAA, BACD} is used, and the text data D is described as “CBAAC”.

従来装置は、状態sをACマシンαの初期状態0に設定し、集合Rを空集合に設定する(図21参照)。従来装置は、テキストデータDから文字Cを読み出し、オフセットをd=1に設定する。状態sに文字Cによる通常遷移先が存在しないので、従来装置は、状態sをフェイラ遷移させ、状態sをフェイラ遷移先の初期状態0に設定する(図22参照)。   The conventional apparatus sets the state s to the initial state 0 of the AC machine α, and sets the set R to an empty set (see FIG. 21). The conventional device reads the character C from the text data D and sets the offset to d = 1. Since there is no normal transition destination by the letter C in the state s, the conventional apparatus causes the state s to undergo a failer transition and sets the state s to the initial state 0 of the failer transition destination (see FIG. 22).

従来装置は、テキストデータDから文字Bを読み出し、オフセットをd=2に設定する。状態s(初期状態0)において、文字Bによる通常遷移先は、状態3となるので、従来装置は、状態sを状態3に設定する(図23参照)。   The conventional apparatus reads the character B from the text data D and sets the offset to d = 2. In the state s (initial state 0), the normal transition destination by the letter B is the state 3, so the conventional apparatus sets the state s to the state 3 (see FIG. 23).

従来装置は、テキストデータDから文字Aを読み出し、オフセットをd=3に設定する。状態s(通常状態3)において、文字Aによる通常遷移先は、状態4となるので、従来装置は、状態sを状態4に設定する。状態sが照合状態となったので、従来装置は、状態sのパターンリスト「BA」と、オフセット「3」を集合Rに登録する(図24参照)。   The conventional device reads the character A from the text data D and sets the offset to d = 3. In the state s (normal state 3), the normal transition destination by the letter A is the state 4, so the conventional apparatus sets the state s to the state 4. Since the state s becomes the collation state, the conventional apparatus registers the pattern list “BA” of the state s and the offset “3” in the set R (see FIG. 24).

従来装置は、テキストデータDから文字Aを読み出し、オフセットをd=4に設定する。状態s(照合状態4)において、文字Aによる通常遷移先は、状態6となるので、従来装置は、状態sを状態6に設定する。状態sが照合状態となったので、従来装置は、状態sのパターンリスト「BAA」と、オフセット「4」を集合Rに登録する(図25参照)。   The conventional apparatus reads the character A from the text data D and sets the offset to d = 4. In the state s (collation state 4), since the normal transition destination by the character A is the state 6, the conventional apparatus sets the state s to the state 6. Since the state s becomes the collation state, the conventional apparatus registers the pattern list “BAA” of the state s and the offset “4” in the set R (see FIG. 25).

従来装置は、テキストデータDから文字Cを読み出し、オフセットをd=5に設定する。状態s(照合状態6)において、文字Cによる通常遷移先は、存在しないので、フェイラ遷移し、状態sを状態1に設定する。状態sにおいて、文字Cによる通常遷移先は、状態2となるので、従来装置は、状態sを状態2に設定する。状態sが照合状態となったので、従来装置は、状態sのパターンリスト「AC」と、オフセット「5」を集合Rに登録する(図26参照)。   The conventional device reads the character C from the text data D and sets the offset to d = 5. In the state s (collation state 6), there is no normal transition destination by the character C, so a failer transition is made and the state s is set to the state 1. In the state s, the normal transition destination by the character C is the state 2, so the conventional apparatus sets the state s to the state 2. Since the state s becomes the collation state, the conventional apparatus registers the pattern list “AC” of the state s and the offset “5” in the set R (see FIG. 26).

従来装置は、図26に示した集合Rを、照合結果として出力する。かかる照合結果を参照すると、テキストデータのオフセット3にキーワード「BA」が存在し、オフセット4にキーワード「BAA」が存在し、オフセット5にキーワード「AC」が存在することが分かる。   The conventional apparatus outputs the set R shown in FIG. 26 as a collation result. Referring to the collation result, it can be seen that the keyword “BA” exists at the offset 3 of the text data, the keyword “BAA” exists at the offset 4, and the keyword “AC” exists at the offset 5.

次に、大文字と小文字(例えば、Aとa)のように、類似した文字を区別しないあいまい検索を、ACマシンを用いて実現させる場合について説明する。ACマシンを用いて、あいまい検索を実現させる場合には、あいまいな文字を同一状態に遷移させるようなオートマトンとして表現すればよい。   Next, a case will be described in which an ambiguous search that does not distinguish similar characters such as uppercase and lowercase letters (for example, A and a) is realized using an AC machine. When an ambiguous search is realized using an AC machine, it may be expressed as an automaton that makes ambiguous characters transition to the same state.

図27は、あいまいパターンを受け付ける従来のACマシンの一例を示す図である。図27に示す例では、パターン集合Π={(A|a)(C|c)、(B|b)(A|a)、(B|b)(B|b)、(B|b)(A|a)(A|a)、(B|b)(A|a)(C|c)(D|d)}により構築されたACマシンである。ここで、(x|y)は、xでもyでも良い旨を示す。例えば、パターン集合Πに含まれるキーワード(A|a)(C|c)に該当するキーワードは、AC、aC、Ac、acが含まれる。   FIG. 27 is a diagram illustrating an example of a conventional AC machine that accepts an ambiguous pattern. In the example shown in FIG. 27, the pattern set Π = {(A | a) (C | c), (B | b) (A | a), (B | b) (B | b), (B | b) (A | a) (A | a), (B | b) (A | a) (C | c) (D | d)}. Here, (x | y) indicates that x or y may be used. For example, the keywords corresponding to the keywords (A | a) (C | c) included in the pattern set Π include AC, aC, Ac, and ac.

ここで、図27に示すACマシンの状態遷移の一例を説明する。例えば、現在の状態が初期状態0であり、テキストデータDの文字がAまたはaの場合には、初期状態0から通常状態1に現在の状態を遷移する。このように、あいまい検索を、ACマシンで実現させると、2本以上(図27に示す例では2本)の通常遷移先が存在することなる。その他の状態遷移方法は、図1に示した従来のACマシンと同様である。   Here, an example of the state transition of the AC machine shown in FIG. 27 will be described. For example, when the current state is the initial state 0 and the character of the text data D is A or a, the current state is transitioned from the initial state 0 to the normal state 1. As described above, when the fuzzy search is realized by the AC machine, there are two or more normal transition destinations (two in the example shown in FIG. 27). Other state transition methods are the same as those of the conventional AC machine shown in FIG.

ところで、図27に示したACマシンを用いてパターン照合処理を実行する場合に、ヒットしたキーワード(集合Rに登録されたキーワード)の内、どの程度が大文字でどの程度が小文字なのかを判定すること(類似度を判定すること)が求められる。   By the way, when the pattern matching process is executed using the AC machine shown in FIG. 27, it is determined how much of the hit keywords (keywords registered in the set R) are uppercase letters and how much are lowercase letters. (Determining the degree of similarity).

しかし、図27に示したACマシンをそのまま適用すると、パターン照合が終了した時点で、ヒットしたキーワードがACマシン上のどの経路を通ってヒットしたのかを判定することが出来ない。図27において、照合状態2に到達するまでに、初期状態0から状態1に向かうまでに「A」または「a」の2通り、状態1から照合状態2に向かうまでに「C」または「c」の2通りが存在する。   However, if the AC machine shown in FIG. 27 is applied as it is, it cannot be determined through which path on the AC machine the hit keyword has been hit when the pattern matching is completed. In FIG. 27, two states, “A” or “a”, from the initial state 0 to the state 1 before reaching the collation state 2, and “C” or “c” from the state 1 to the collation state 2 are reached. There are two ways.

従って、照合状態2(キーワード(A|a)(C|c)にヒットする状態)に至る経路は合計で4通り存在するが、いずれの経路でも照合状態2に到達するため、各経路を区別できず、ヒットしたキーワードのうち、どの程度が大文字でどの程度が小文字なのかを判定することができない。   Accordingly, there are a total of four routes that reach the matching state 2 (the state in which the keyword (A | a) (C | c) is hit), but since any route reaches the matching state 2, each route is distinguished. It is impossible to determine how much of the hit keywords are uppercase letters and how much are lowercase letters.

かかる課題を解消するための手段として、各文字における候補の組合せを全て展開したACマシンを作成すれば、ヒットした文字のうち、どの程度が大文字でどの程度が小文字なのかを判定することが可能となる。例えば、大文字に1点、小文字に0点を割り振り、図28に示すとおり、全ての文字を展開して点数を割り付け、図29に示すACマシンを作成すればよい。図28および図29は、従来技術の問題点を説明するための図である。   As a means to solve this problem, if you create an AC machine that expands all combinations of candidates for each character, it is possible to determine how much of the hit characters are uppercase letters and how much are lowercase letters. It becomes. For example, an AC machine shown in FIG. 29 may be created by assigning 1 point to upper case letters and 0 points to lower case letters, and assigning points by expanding all characters as shown in FIG. 28 and 29 are diagrams for explaining the problems of the prior art.

例えば、図28に示すキーワードACは、大文字を2つ含むので2点となり、キーワードAc、aCは、大文字を一つ含むので1点となり、キーワードacは大文字を含まないので0点となる。そして、キーワード(A|a)(C|c)に対して、4通りの経路を用意してやれば、キーワード(A|a)(C|c)にヒットした際の点数を参照することで、どの程度が大文字でどの程度が小文字なのかを判定することが可能となる。   For example, the keyword AC shown in FIG. 28 has two points because it includes two capital letters, the keywords Ac and aC have one point because they include one capital letter, and the keyword ac has zero points because it does not include capital letters. If four routes are prepared for the keyword (A | a) (C | c), it is possible to refer to the points when the keyword (A | a) (C | c) is hit, It becomes possible to determine the degree of capital letters and the degree of small letters.

しかしながら、図28のように展開した文字列を全てACマシンで表現すると、図29に示すように、ACマシンの状態数が膨大な数となってしまうため、現実的ではない。図29に示すACマシンの状態数は、キーワードサイズに応じて指数的に増加してしまう。   However, if all the character strings developed as shown in FIG. 28 are expressed by an AC machine, the number of states of the AC machine becomes enormous as shown in FIG. 29, which is not realistic. The number of states of the AC machine shown in FIG. 29 increases exponentially according to the keyword size.

次に、本実施例にかかる検索装置の概要について説明する。図30は、本実施例にかかる検索装置の概要を説明するための図である。図30に示すように、本実施例にかかる検索装置は、図27と同様にして、あいまいな文字を同一状態に遷移させるようなACオートマトンを作成すると共に、ACマシンの各辺に点数をつけ、オートマトンの状態を遷移させながら逐次的に点数計算を行う。   Next, an outline of the search device according to the present embodiment will be described. FIG. 30 is a diagram for explaining the outline of the search device according to the present embodiment. As shown in FIG. 30, the search apparatus according to the present embodiment creates an AC automaton that makes ambiguous characters transition to the same state as in FIG. 27, and assigns points to each side of the AC machine. The score is calculated sequentially while changing the state of the automaton.

具体的には、ある状態からある状態に遷移する場合に、大文字により通常遷移した場合には、1点を加算し、小文字により通常遷移した場合には、0点を加算することで、点数計算を行う。例えば、図30において、初期状態0から、文字Aにより状態1に通常遷移した場合には1点を加算し、文字aにより状態1に通常遷移した場合には、0点を加算する。   Specifically, when transitioning from a certain state to a certain state, if a normal transition is made by capital letters, 1 point is added, and if a normal transition is made by lowercase letters, 0 points are added to calculate the score. I do. For example, in FIG. 30, 1 point is added when the normal transition is made from the initial state 0 to the state 1 by the letter A, and 0 points is added when the normal transition is made from the initial state 0 to the state 1 by the letter a.

更に、本実施例にかかる検索装置は、ある状態からある状態にフェイラ遷移した場合には、遷移元の状態のレベルと、遷移先の状態のレベルとの差に基づいて、点数を補正することで、パターン照合終了時の点数を正確なものとする。ここで、状態のレベルは、初期状態から該当状態までの距離を示す。   Furthermore, the search device according to the present embodiment corrects the score based on the difference between the level of the transition source state and the level of the transition destination state when a failer transition is made from a certain state to a certain state. Thus, the score at the end of pattern matching is made accurate. Here, the state level indicates the distance from the initial state to the corresponding state.

図30を用いて、各状態のレベルを具体的に示すと、状態1、3は、初期状態0からの距離が1なので、レベル1となる。状態6、7は、初期状態0からの距離が3なので、レベル3となる。状態8は、初期状態0からの距離が4なので、レベル4となる。   When the level of each state is specifically shown using FIG. 30, since the distance from the initial state 0 is 1, states 1 and 3 are level 1. The states 6 and 7 are level 3 because the distance from the initial state 0 is 3. The state 8 is level 4 because the distance from the initial state 0 is 4.

このように、本実施例にかかる検索装置は、あいまいな文字を同一状態に遷移させるようなACオートマトンを作成すると共に、ACマシンの各辺に点数をつけ、オートマトンの状態を遷移させながら逐次的に点数計算を行っている。したがって、本実施例にかかる検索装置によれば、各文字における候補の組合せを全て展開すること無く、ヒットしたキーワードの内、どの程度が大文字でどの程度が小文字なのかを判定することができる。   As described above, the search device according to the present embodiment creates an AC automaton that makes ambiguous characters transition to the same state, assigns points to each side of the AC machine, and sequentially changes the state of the automaton. The points are calculated. Therefore, according to the search device according to the present embodiment, it is possible to determine how much of a hit keyword is uppercase and what is lowercase without expanding all candidate combinations in each character.

次に、本実施例で用いる用語の定義を行う。Σは、アルファベット(文字の集合)を示し、あいまい文字セットを、Σの部分集合とする。あいまい文字セット{a、b、・・・}⊆Σを(a|b|・・・)と記述することにする。任意のp∈(Σ∪A)をパターンと呼ぶ。コスト表Cを、Σの各文字に整数を割当てる関数として定義する。検索装置に入力するテキストデータDを、D∈Σとする。また、あいまい文字セットの集合をA=Σとする。 Next, terms used in this embodiment will be defined. Σ indicates an alphabet (a set of characters), and an ambiguous character set is a subset of Σ. The ambiguous character set {a, b,...} ⊆Σ is described as (a | b | ...). Arbitrary pε (Σ∪A) * is called a pattern. The cost table C is defined as a function that assigns an integer to each character of Σ. The text data D input to the search device is DεΣ * . In addition, a set of ambiguous character set and A = Σ 2.

本実施例にかかる検索装置は一例として、テキストデータD、パターン集合Π、点数を管理するコスト管理テーブルを受け付け、テキストデータDに対して、各パターンp∈Πの全ての照合位置および照合コストを検索結果として出力するものとする。   As an example, the search device according to the present embodiment accepts text data D, a pattern set Π, and a cost management table for managing points, and for text data D, all the matching positions and matching costs of each pattern p∈Π are obtained. It shall be output as a search result.

本実施例では、パターン集合Πとして第1〜3の条件を満たすもののみを取り扱う。第1の条件として、あいまい文字セットで使われている文字は、単独使用できない。例えば、あいまい文字セット(a|A)があるパターンp∈Πで使われている場合には、Πの任意のパターンにおいて、文字a∈ΣおよびA∈Σを単独で用いることが出来ない。   In this embodiment, only patterns satisfying the first to third conditions are handled as the pattern set Π. As a first condition, a character used in an ambiguous character set cannot be used alone. For example, if an ambiguous character set (a | A) is used in a pattern pεΠ, the characters aεΣ and AεΣ cannot be used alone in any pattern of Π.

第2の条件として、Π中のパターンで使われている相違なるあいまい文字セットに、同一の文字を使うことは出来ない。例えば、(a|A)と(a|b)を、Π中で同時に使いことは出来ない。第3の条件として、1つのあいまい文字セットに、2通り以上の得点を割当てることはできない。すなわち、各あいまい文字セットにおける得点割り当ては、Πにおいて共通でなくてはならない。   As a second condition, the same character cannot be used in a different ambiguous character set used in the pattern in the basket. For example, (a | A) and (a | b) cannot be used simultaneously in a cage. As a third condition, two or more scores cannot be assigned to one ambiguous character set. That is, the score assignment in each ambiguous character set must be common in the heels.

次に、本実施例にかかる検索装置100の構成について説明する。図31は、本実施例にかかる検索装置100の構成を示す図である。図31に示すように、この検索装置100は、入力部110、出力部120、入出力制御部130、記憶部140、制御部150を有する。   Next, the configuration of the search device 100 according to the present embodiment will be described. FIG. 31 is a diagram illustrating the configuration of the search device 100 according to the present embodiment. As illustrated in FIG. 31, the search device 100 includes an input unit 110, an output unit 120, an input / output control unit 130, a storage unit 140, and a control unit 150.

このうち、入力部110は、パターン集合、スコア配列、コスト管理テーブル、テキストデータ等を入力する入力部であり、キーボードやマウス、マイク等に対応する。出力部120は、ACマシンによる照合結果などを出力する出力部であり、モニタ(若しくはディスプレイ、タッチパネル)に対応する。入出力制御部130は、入力部110、出力部120、記憶部140、制御部150によるデータの入出力を制御する処理部である。   Among these, the input unit 110 is an input unit for inputting a pattern set, a score array, a cost management table, text data, and the like, and corresponds to a keyboard, a mouse, a microphone, and the like. The output unit 120 is an output unit that outputs a collation result by an AC machine, and corresponds to a monitor (or display or touch panel). The input / output control unit 130 is a processing unit that controls input / output of data by the input unit 110, the output unit 120, the storage unit 140, and the control unit 150.

記憶部140は、制御部150による各種処理に必要なデータおよびプログラムを記憶する記憶部である。この記憶部140は、パターン集合140aと、コスト管理テーブル140bと、ACマシン140cと、スコア配列140dを有する。   The storage unit 140 is a storage unit that stores data and programs necessary for various processes performed by the control unit 150. The storage unit 140 includes a pattern set 140a, a cost management table 140b, an AC machine 140c, and a score array 140d.

このうち、パターン集合140aは、テキストデータから検索するキーワード(あいまいパターン)の集合である。本実施例では一例として、パターン集合140aを、Π={(A|a)(C|c)、(B|b)(A|a)、(B|b)(B|b)、(B|b)(A|a)(A|a)、(B|b)(A|a)(C|c)(D|d)}とする。   Among these, the pattern set 140a is a set of keywords (ambiguous patterns) searched from text data. In this embodiment, as an example, the pattern set 140a is expressed as Π = {(A | a) (C | c), (B | b) (A | a), (B | b) (B | b), (B | B) (A | a) (A | a), (B | b) (A | a) (C | c) (D | d)}.

コスト管理テーブル140bは、文字の種別とコスト(点数)を対応付けて記憶するテーブルである。図32は、本実施例にかかるコスト管理テーブル140bのデータ構造の一例を示す図である。   The cost management table 140b is a table that stores character types and costs (points) in association with each other. FIG. 32 is a diagram illustrating an example of a data structure of the cost management table 140b according to the present embodiment.

ACマシン140cは、パターン集合140aに基づいて生成されるACマシンである。例えば、パターン集合Π={(A|a)(C|c)、(B|b)(A|a)、(B|b)(B|b)、(B|b)(A|a)(A|a)、(B|b)(A|a)(C|c)(D|d)}に対応するACマシンは、図30に示したACマシンとなる。   The AC machine 140c is an AC machine generated based on the pattern set 140a. For example, pattern set Π = {(A | a) (C | c), (B | b) (A | a), (B | b) (B | b), (B | b) (A | a) The AC machine corresponding to (A | a), (B | b) (A | a) (C | c) (D | d)} is the AC machine shown in FIG.

本実施例にかかるACマシンも従来と同様にして、複数の状態構造体から構成されている。図33は、本実施例にかかる状態構造体のデータ構造の一例を示す図である。図33に示すように、本実施例にかかる状態構造体は、各状態を識別する状態ID「id」と、パターンリスト「plist」と、通常遷移先へのポインタg[1]〜g[256]と、フェイラ遷移先へのポインタ「fail」と、初期状態(ルートノード)からの距離「dist」を有する。   The AC machine according to the present embodiment is also composed of a plurality of state structures as in the conventional case. FIG. 33 is a diagram illustrating an example of the data structure of the state structure according to the present embodiment. As shown in FIG. 33, the state structure according to this embodiment includes a state ID “id” for identifying each state, a pattern list “plist”, and pointers g [1] to g [256 to normal transition destinations. ], A pointer “fail” to the failer transition destination, and a distance “dist” from the initial state (root node).

図31の説明に戻ると、スコア配列140dは、ACマシン上で状態が遷移することで変化する初期状態から現在の状態までの距離と、点数とを管理するテーブルである。図34は、本実施例にかかるスコア配列140dのデータ構造の一例を示す図である。図34に示すように、このスコア配列140dは、初期状態からの距離(初期状態から現在の状態までの距離)と点数とを対応付けて記憶している。   Returning to the description of FIG. 31, the score array 140d is a table that manages the distance from the initial state to the current state, which changes as the state changes on the AC machine, and the score. FIG. 34 is a diagram illustrating an example of a data structure of the score array 140d according to the present embodiment. As shown in FIG. 34, the score array 140d stores a distance from the initial state (a distance from the initial state to the current state) and a score in association with each other.

制御部150は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御部である。図31に示すように、制御部150は、ACマシン構築処理部150aと、照合処理部150bと、照合結果出力部150cを有する。   The control unit 150 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these. As illustrated in FIG. 31, the control unit 150 includes an AC machine construction processing unit 150a, a matching processing unit 150b, and a matching result output unit 150c.

ACマシン構築処理部150aは、パターン集合140aに基づいて、ACマシン140cを作成する処理部である。ACマシン構築処理部150aは、ACマシン140dを作成する場合に、初めにトライ構築を行った後に、フェイラ遷移追加処理を実行する。   The AC machine construction processing unit 150a is a processing unit that creates the AC machine 140c based on the pattern set 140a. When the AC machine construction processing unit 150a creates the AC machine 140d, the AC machine construction processing unit 150a executes the failer transition addition processing after first performing the trial construction.

まず、ACマシン構築処理部150aが実行する、トライT構築について具体的に説明する。ここでは、パターン集合をΠ={(A|a)(C|c)、(B|b)(A|a)、(B|b)(B|b)、(B|b)(A|a)(A|a)、(B|b)(A|a)(C|c)(D|d)}として説明する。図35〜図37は、本実施例にかかるトライT構築処理を説明するための図である。   First, the tri-T construction executed by the AC machine construction processing unit 150a will be specifically described. Here, the pattern set is expressed as Π = {(A | a) (C | c), (B | b) (A | a), (B | b) (B | b), (B | b) (A | A) (A | a), (B | b) (A | a) (C | c) (D | d)} will be described. 35 to 37 are diagrams for explaining the tri-T construction process according to the present embodiment.

まず、ACマシン構築処理部150aは、初期状態0を作成し、初期状態の状態構造体における通常遷移先を全て初期状態に設定する(図35、ステップS90)。そして、ACマシン構築処理部150aは、パターン集合Πからパターン「(A|a)(C|c)」を取り出す。ACマシン構築処理部150aは、文字(A|a)を選択し、文字Aおよびaによる初期状態0の通常遷移先を通常状態1に設定し、distを「1」に設定する。   First, the AC machine construction processing unit 150a creates the initial state 0, and sets all the normal transition destinations in the state structure in the initial state to the initial state (FIG. 35, step S90). Then, the AC machine construction processing unit 150a extracts the pattern “(A | a) (C | c)” from the pattern set Π. The AC machine construction processing unit 150a selects the character (A | a), sets the normal transition destination of the initial state 0 by the characters A and a to the normal state 1, and sets dist to “1”.

ACマシン構築処理部150aは、文字(C|c)を選択し、文字Cおよびcによる通常状態1の通常遷移先を照合状態2に設定し、照合状態のパターンリストを「(A|a)(C|c)」に設定する。文字(C|c)は、パターン「(A|a)(C|c)」最後尾の文字であるため、状態2は、照合状態となる。また、ACマシン構築処理部150aは、照合状態2のdistを「2」に設定する(図35、ステップS91)。   The AC machine construction processing unit 150a selects the character (C | c), sets the normal transition destination of the normal state 1 with the characters C and c to the collation state 2, and sets the collation state pattern list to “(A | a)”. (C | c) ”. Since the character (C | c) is the last character of the pattern “(A | a) (C | c)”, the state 2 is a collation state. Further, the AC machine construction processing unit 150a sets the dist in the collation state 2 to “2” (FIG. 35, step S91).

ACマシン構築処理部150aは、初期状態0に戻り、パターン集合Πからパターン「(B|b)(A|a)」を取り出す。ACマシン構築処理部150aは、文字(B|b)を選択し、文字Bおよびbによる初期状態0の通常遷移先を通常状態3に設定し、distを「1」に設定する。   The AC machine construction processing unit 150a returns to the initial state 0, and extracts the pattern “(B | b) (A | a)” from the pattern set Π. The AC machine construction processing unit 150a selects the character (B | b), sets the normal transition destination of the initial state 0 by the characters B and b to the normal state 3, and sets dist to “1”.

ACマシン構築処理部150aは、文字(A|a)を選択し、文字Aおよびaによる通常状態3の通常遷移先を照合状態4に設定し、照合状態のパターンリストを「(B|b)(A|a)」に設定する。文字(A|a)は、パターン「(B|b)(A|a)」の最後尾の文字であるため、状態4は、照合状態となる。また、ACマシン構築処理部150aは、照合状態4のdistを「2」に設定する(図35、ステップS92)。   The AC machine construction processing unit 150a selects the character (A | a), sets the normal transition destination of the normal state 3 by the characters A and a to the collation state 4, and sets the collation state pattern list to “(B | b)”. (A | a) ". Since the character (A | a) is the last character of the pattern “(B | b) (A | a)”, the state 4 is a collation state. Further, the AC machine construction processing unit 150a sets dist in the collation state 4 to “2” (FIG. 35, step S92).

ACマシン構築処理部150aは、初期状態0に戻り、パターン集合Πからパターン「(B|b)(B|b)」を取り出し、文字(B|b)を選択する。ここで、文字Bおよびbによる初期状態0の通常遷移先は通常状態3であり、既に作成済みであるため、現在の状態を通常状態3に遷移する。また、ACマシン構築処理部150aは、文字(B|b)を選択し、文字Bおよびbによる通常状態3の通常遷移先を照合状態5に設定し、パターンリストを「(B|b)(B|b)」に設定する。文字(B|b)は、パターン「(B|b)(B|b)」の最後尾の文字であるため、状態5は、照合状態となる。また、ACマシン構築処理部150aは、照合状態2のdistを「2」に設定する(図36、ステップS93)。   The AC machine construction processing unit 150a returns to the initial state 0, extracts the pattern “(B | b) (B | b)” from the pattern set Π, and selects the character (B | b). Here, the normal transition destination of the initial state 0 by the characters B and b is the normal state 3, which has already been created, so the current state is transitioned to the normal state 3. The AC machine construction processing unit 150a selects the character (B | b), sets the normal transition destination of the normal state 3 by the characters B and b to the collation state 5, and sets the pattern list to “(B | b) ( B | b) ". Since the character (B | b) is the last character of the pattern “(B | b) (B | b)”, the state 5 is a collation state. Further, the AC machine construction processing unit 150a sets the dist in the collation state 2 to “2” (FIG. 36, step S93).

ACマシン構築処理部150aは、初期状態0に戻り、パターン集合Πからパターン「(B|b)(A|a)(A|a)」を取り出し、文字(B|b)を選択する。ここで、文字Bおよびbによる初期状態0の通常遷移先は、通常状態3であり、既に作成済みであるため、現在の状態を通常状態3に遷移する。また、ACマシン構築処理部150aは、文字(A|a)を選択する。ここで、文字Aおよびaによる通常状態3の通常遷移先は、照合状態4であり、既に作成済みであるため、現在の状態を照合状態4に設定する。また、ACマシン構築処理部150aは、文字(A|a)を選択する。文字Aおよびaによる照合状態4の通常遷移先を照合状態6に設定し、パターンリストを「(B|b)(A|a)(A|a)」に設定する。文字(A|a)は、パターン「(B|b)(A|a)(A|a)」の最後尾の文字であるため、状態6は、照合状態となる。また、ACマシン構築処理部150aは、照合状態6のdistを「3」に設定する(図36、ステップS94)。   The AC machine construction processing unit 150a returns to the initial state 0, extracts the pattern “(B | b) (A | a) (A | a)” from the pattern set Π, and selects the character (B | b). Here, the normal transition destination of the initial state 0 by the characters B and b is the normal state 3 and has already been created, so the current state is transitioned to the normal state 3. Further, the AC machine construction processing unit 150a selects a character (A | a). Here, since the normal transition destination of the normal state 3 by the characters A and a is the collation state 4 and has already been created, the current state is set to the collation state 4. Further, the AC machine construction processing unit 150a selects a character (A | a). The normal transition destination of collation state 4 with characters A and a is set to collation state 6, and the pattern list is set to “(B | b) (A | a) (A | a)”. Since the character (A | a) is the last character of the pattern “(B | b) (A | a) (A | a)”, the state 6 becomes a collation state. Further, the AC machine construction processing unit 150a sets the dist in the collation state 6 to “3” (FIG. 36, step S94).

ACマシン構築処理部150aは、初期状態0に戻り、パターン集合Πからパターン「(B|b)(A|a)(C|c)(D|d)」を取り出し、文字(B|b)を選択する。ここで、文字Bおよびbによる初期状態0の通常遷移先は、通常状態3であり、既に登録済みであるため、現在の状態を通常状態3に遷移する。また、ACマシン構築処理部150aは、文字(A|a)を選択する。ここで、文字Aおよびaによる通常状態3の通常遷移先は、照合状態4であり、既に作成済みであるため、現在の状態を照合状態4に設定する。   The AC machine construction processing unit 150a returns to the initial state 0, extracts the pattern “(B | b) (A | a) (C | c) (D | d)” from the pattern set Π, and performs the character (B | b). Select. Here, the normal transition destination of the initial state 0 by the characters B and b is the normal state 3 and has already been registered, so the current state is transitioned to the normal state 3. Further, the AC machine construction processing unit 150a selects a character (A | a). Here, since the normal transition destination of the normal state 3 by the characters A and a is the collation state 4 and has already been created, the current state is set to the collation state 4.

また、ACマシン構築処理部150aは、文字(C|c)を選択し、文字Cおよびcによる照合状態4の通常遷移先を通常状態7に設定し、distを「3」に設定する。また、ACマシン構築処理部150aは、文字(D|d)を選択し、文字Dおよびdによる通常状態7の通常遷移先を照合状態8に設定し、パターンリストを「(B|b)(A|a)(C|c)(D|d)」に設定する。文字(D|d)は、パターン「(B|b)(A|a)(C|c)(D|d)」の最後尾の文字であるため、状態8は、照合状態となる。   Further, the AC machine construction processing unit 150a selects the character (C | c), sets the normal transition destination of the collation state 4 by the characters C and c to the normal state 7, and sets dist to “3”. Further, the AC machine construction processing unit 150a selects the character (D | d), sets the normal transition destination of the normal state 7 by the characters D and d to the collation state 8, and sets the pattern list to “(B | b) ( A | a) (C | c) (D | d) ". Since the character (D | d) is the last character of the pattern “(B | b) (A | a) (C | c) (D | d)”, the state 8 is a collation state.

また、ACマシン構築処理部150aは、照合状態8のdistを「4」に設定する(図37、ステップS95)。ステップS95が終了した段階で、パターン集合Πに含まれる全てのパターン(あいまいパターン)の登録が終了し、トライTの構築処理が終了する。   Further, the AC machine construction processing unit 150a sets the dist in the collation state 8 to “4” (FIG. 37, step S95). At the stage where step S95 is completed, registration of all patterns (ambiguous patterns) included in the pattern set Π is completed, and the construction process of the trie T is completed.

次に、ACマシン構築処理部150aが実行するフェイラ遷移追加処理について説明する。なお、ACマシン構築処理部150aは、上述したトライT構築処理で作成したトライTに対して、フェイラ遷移追加処理を行うものとする。   Next, the failer transition addition process executed by the AC machine construction processing unit 150a will be described. Note that the AC machine construction processing unit 150a performs a failer transition addition process on the trie created by the above-described trie T construction process.

図38〜図46は、本実施例にかかるフェイラ遷移追加処理を説明するための図である。ACマシン構築処理部150aは、初期状態0からの通常遷移先となる状態を判定し、判定した状態をキュー(Queue)に登録し、キューに登録された状態のフェイラ遷移先に初期状態0を登録する。ここで、初期状態の通常遷移先は、通常状態1、3となるので、キューに1、3を登録する。また、通常状態1、3のフェイラ遷移先を初期状態0に設定する(図38参照)。   38 to 46 are diagrams for explaining the failer transition addition processing according to the present embodiment. The AC machine construction processing unit 150a determines the state that is the normal transition destination from the initial state 0, registers the determined state in the queue, and sets the initial state 0 to the failer transition destination of the state registered in the queue. sign up. Here, since the normal transition destination in the initial state is the normal states 1 and 3, 1 and 3 are registered in the queue. Also, the failer transition destination in the normal states 1 and 3 is set to the initial state 0 (see FIG. 38).

次に、ACマシン構築処理部150aは、キューの先頭の状態1を取り出し、取り出した状態1を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、ACマシン構築処理部150aは、文字(C|c)を抽出し、集合Xに文字(C|c)を格納する。   Next, the AC machine construction processing unit 150a extracts the first state 1 of the queue, and sets the extracted state 1 to the state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the AC machine construction processing unit 150a extracts the character (C | c) and stores the character (C | c) in the set X.

ACマシン構築処理部150aは、集合Xから文字(C|c)を取り出し、状態sの通常遷移先となる状態2をキューの最後尾に追加する。ACマシン構築処理部150aは、状態1からフェイラ遷移した初期状態0に移行し、文字(C|c)に対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、初期状態0となる。ACマシン構築処理部150aは、状態s(通常状態1)から文字Cまたはcにより遷移する状態nextを判定し、判定した状態(照合状態2)のフェイラ遷移先を初期状態0に設定する(図39参照)。   The AC machine construction processing unit 150a extracts the character (C | c) from the set X, and adds the state 2 that is the normal transition destination of the state s to the tail of the queue. When the AC machine construction processing unit 150a transitions from the state 1 to the initial state 0 in which the failure transition is performed and determines the normal transition destination for the character (C | c), and determines the failure transition destination in the state next, the initial state 0 It becomes. The AC machine construction processing unit 150a determines the state next to be transitioned from the state s (normal state 1) by the character C or c, and sets the failer transition destination of the determined state (collation state 2) to the initial state 0 (FIG. 39).

ACマシン構築処理部150aは、キューの先頭の状態3を取り出し、取り出した状態3を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合、従来装置は、文字(A|a)、(B|b)を抽出し、集合Xに文字(A|a)、(B|b)を格納する。   The AC machine construction processing unit 150a extracts the top state 3 of the queue and sets the extracted state 3 to state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the characters (A | a) and (B | b) and stores the characters (A | a) and (B | b) in the set X.

ACマシン構築処理部150aは、集合Xから文字(A|a)を取り出し、状態sの文字(A|a)の通常遷移先となる状態4をキューの最後尾に追加する。ACマシン構築処理部150aは、状態sからフェイラ遷移した初期状態0に移行し、文字(A|a)に対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態1となる。ACマシン構築処理部150aは、状態s(通常状態3)から文字Aまたはaにより遷移する状態nextを判定し、判定した状態(照合状態4)のフェイラ遷移先を状態1に設定する(図40の状態4参照)。   The AC machine construction processing unit 150a extracts the character (A | a) from the set X, and adds the state 4 that is the normal transition destination of the character (A | a) in the state s to the tail of the queue. When the AC machine construction processing unit 150a transitions from the state s to the initial state 0 in which the failure transition is performed and determines the normal transition destination for the character (A | a), and determines the failure transition destination of the state next, the state 1 Become. The AC machine construction processing unit 150a determines the state next to be transitioned by the character A or a from the state s (normal state 3), and sets the failer transition destination of the determined state (collation state 4) to the state 1 (FIG. 40). State 4).

ACマシン構築処理部150aは、集合Xから文字(B|b)を取り出し、状態s(通常状態3)の文字(B|b)の通常遷移先となる状態5をキューの最後尾に追加する。ACマシン構築処理部150aは、状態sからフェイラ遷移した初期状態0に移行し、文字Bに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態3となる。ACマシン構築処理部150aは、状態sから文字Bまたはbにより遷移する状態nextを判定し、判定した状態(照合状態5)のフェイラ遷移先を状態3に設定する(図40の状態5参照)。   The AC machine construction processing unit 150a extracts the character (B | b) from the set X, and adds the state 5 that is the normal transition destination of the character (B | b) in the state s (normal state 3) to the tail of the queue. . When the AC machine construction processing unit 150a transitions from the state s to the initial state 0 in which the failure transition is performed and determines the normal transition destination for the character B, the state transitions to the state 3 when the failure transition destination of the state next is determined. The AC machine construction processing unit 150a determines the state next to be transitioned from the state s by the letter B or b, and sets the failer transition destination of the determined state (collation state 5) to the state 3 (see state 5 in FIG. 40). .

ACマシン構築処理部150aは、キューの先頭の状態2を取り出し、取り出した状態2を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図41参照)。   The AC machine construction processing unit 150a takes out state 2 at the head of the queue and sets the taken out state 2 to state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 41).

ACマシン構築処理部150aは、キューの先頭の状態4を取り出し、取り出した状態4を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合は、ACマシン構築処理部150aは、文字(A|a)、(C|c)を抽出し、集合Xに文字(A|a)、(C|c)を格納する。   The AC machine construction processing unit 150a takes out the state 4 at the head of the queue, and sets the taken-out state 4 to the state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the AC machine construction processing unit 150a extracts characters (A | a) and (C | c) and stores the characters (A | a) and (C | c) in the set X.

ACマシン構築処理部150aは、集合Xから文字(A|a)を取り出し、状態s(照合状態4)の文字(A|a)の通常遷移先となる状態6をキューの最後尾に追加する。ACマシン構築処理部150aは、状態sからフェイラ遷移した状態1に移行する。状態1において、文字Aに対する通常遷移先はNullであるため、再度フェイラ遷移し、初期状態0に移行する。   The AC machine construction processing unit 150a extracts the character (A | a) from the set X, and adds the state 6 that is the normal transition destination of the character (A | a) in the state s (collation state 4) to the tail of the queue. . The AC machine construction processing unit 150a shifts from the state s to the state 1 in which a failer transition is made. In state 1, the normal transition destination for character A is Null, so a failer transition is made again, and an initial state 0 is entered.

そして、初期状態0において、文字(A|a)に対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態1となる。ACマシン構築処理部150aは、状態s(通常状態4)から文字(A|a)により遷移する状態nextを判定し、判定した状態(照合状態6)のフェイラ遷移先を状態1に設定する(図42の状態6参照)。   Then, in the initial state 0, by determining the normal transition destination for the character (A | a) and determining the failer transition destination of the state next, the state 1 is obtained. The AC machine construction processing unit 150a determines the state next to be transitioned by the character (A | a) from the state s (normal state 4), and sets the failer transition destination of the determined state (collation state 6) to the state 1 ( (See state 6 in FIG. 42).

ACマシン構築処理部150aは、集合Xから文字(C|c)を取り出し、状態s(照合状態4)の文字(C|c)の通常遷移先となる状態7をキューの最後尾に追加する。ACマシン構築処理部150aは、状態sからフェイラ遷移した状態1に移行し、文字(C|c)に対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、状態2となる。ACマシン構築処理部150aは、状態sから文字(C|c)による遷移する状態nextを判定し、判定した状態(通常状態7)のフェイラ遷移先を状態2に設定する。   The AC machine construction processing unit 150a extracts the character (C | c) from the set X, and adds the state 7 that is the normal transition destination of the character (C | c) in the state s (collation state 4) to the tail of the queue. . The AC machine construction processing unit 150a transitions from the state s to the state 1 in which the transition is made to the state 1 and determines the normal transition destination for the character (C | c). . The AC machine construction processing unit 150a determines the state next to be transitioned from the state s by the character (C | c), and sets the failer transition destination of the determined state (normal state 7) to the state 2.

また、ACマシン構築処理部150aは、状態7のフェイラ遷移先が照合状態2となるため、状態2のパターンリストを状態7のパターンリストに追加することで、状態7を照合状態7に設定する(図42の状態7参照)。   Further, the AC machine construction processing unit 150a sets the state 7 to the matching state 7 by adding the pattern list of the state 2 to the pattern list of the state 7 because the failure transition destination of the state 7 is the matching state 2. (See state 7 in FIG. 42).

ACマシン構築処理部150aは、キューの先頭の状態5を取り出し、取り出した状態5を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図43参照)。   The AC machine construction processing unit 150a takes out the top state 5 of the queue and sets the taken out state 5 to the state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 43).

ACマシン構築処理部150aは、キューの先頭の状態6を取り出し、取り出した状態6を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する(図44参照)。   The AC machine construction processing unit 150a takes out the head state 6 of the queue and sets the taken state 6 to state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step (see FIG. 44).

ACマシン構築処理部150aは、キューの先頭の状態7を取り出し、取り出した状態7を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。この場合、従来装置は、文字(D|d)を抽出し、集合Xに文字(D|d)を格納する。   The AC machine construction processing unit 150a takes out the head state 7 of the queue and sets the taken state 7 to state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. In this case, the conventional apparatus extracts the character (D | d) and stores the character (D | d) in the set X.

ACマシン構築処理部150aは、集合Xから文字(D|d)を取り出し、状態s(照合状態7)の文字(D|d)の通常遷移先となる状態8をキューの最後尾に追加する。ACマシン構築処理部150aは、状態sからフェイラ遷移した状態2に移行する。状態2において、文字(D|d)に対する通常遷移先はNullであるため、再度フェイラ遷移し、初期状態0に移行する。   The AC machine construction processing unit 150a extracts the character (D | d) from the set X, and adds the state 8 that is the normal transition destination of the character (D | d) in the state s (collation state 7) to the tail of the queue. . The AC machine construction processing unit 150a shifts from the state s to the state 2 in which a failer transition is made. In state 2, since the normal transition destination for the character (D | d) is Null, a failer transition occurs again, and the initial state 0 is reached.

そして、初期状態0において、文字Dに対する通常遷移先を判定することで、状態nextのフェイラ遷移先を判定すると、初期状態0となる。ACマシン構築処理部150aは、状態s(照合状態7)から文字(D|d)により遷移する状態nextを判定し、判定した状態(照合状態8)のフェイラ遷移先を初期状態0に設定する(図45の状態8参照)。   Then, by determining the normal transition destination for the character D in the initial state 0, the initial state 0 is obtained when the failer transition destination of the state next is determined. The AC machine construction processing unit 150a determines the state next to be transitioned from the state s (collation state 7) by the character (D | d), and sets the failer transition destination of the determined state (collation state 8) to the initial state 0. (See state 8 in FIG. 45).

ACマシン構築処理部150aは、キューの先頭の状態8を取り出し、取り出した状態8を状態sに設定する。ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、集合Xに格納する。状態sに通常遷移先は存在しないので、次のステップに移行する。そして、キューに状態が存在しなくなった場合に、パターン集合ΠのACマシンが完了する(図46参照)。   The AC machine construction processing unit 150a extracts the head state 8 of the queue and sets the extracted state 8 to state s. The AC machine construction processing unit 150a extracts all the characters a that satisfy g [code (a)] ≠ Null in the state s and stores them in the set X. Since there is no normal transition destination in the state s, the process proceeds to the next step. Then, when the state no longer exists in the queue, the AC machine of the pattern set IV is completed (see FIG. 46).

このように、ACマシン構築処理部150aは、図35〜図37に示したトライT構築処理、図38〜図46に示したフェイラ遷移追加処理を実行することにより、パターン集合140aからACマシン140cを作成する。   As described above, the AC machine construction processing unit 150a performs the tri-T construction processing illustrated in FIGS. 35 to 37 and the failer transition addition processing illustrated in FIGS. 38 to 46, thereby performing the AC machine 140c from the pattern set 140a. Create

図31の説明に戻ると、照合処理部150bは、ACマシン140cを用いて、テキストデータを照合し、照合結果を出力する処理部である。また、照合処理部150bは、コスト管理テーブル140bを基にして、通常遷移を行なうたびに、文字に応じた点数をスコア配列140dに登録し、登録された点数を集計することで、照合されたキーワードの点数を算出する。また、照合処理部150bは、照合処理の途中で、フェイラ遷移が発生した場合には、フェイラ遷移元の状態のdistと、フェイラ遷移先の状態のdistとの差分を基にして、スコア配列140dの点数を前に詰める。   Returning to the description of FIG. 31, the collation processing unit 150b is a processing unit that collates text data using the AC machine 140c and outputs a collation result. In addition, each time a normal transition is performed, the collation processing unit 150b registers the score according to the character in the score array 140d every time a normal transition is performed, and totalizes the registered scores. Calculate keyword score. Further, when a failure transition occurs in the middle of the matching process, the matching processing unit 150b generates a score array 140d based on the difference between the dist of the state of the failer transition source and the dist of the state of the failer transition destination. Prepend

以下において、照合処理部150bの処理を具体的に説明する。図47〜図52は、本実施例にかかるパターン照合処理を説明するための図である。ここでは一例として、照合対象となるテキストデータを「CbaAC」として、パターン照合処理を説明する。   Hereinafter, the processing of the matching processing unit 150b will be specifically described. 47 to 52 are diagrams for explaining the pattern matching processing according to the present embodiment. Here, as an example, the pattern matching process will be described assuming that text data to be collated is “CbaAC”.

照合処理部150bは、テキストデータの1文字目(オフセット1)の文字Cを読み出し、状態sを初期状態0とする。そして、照合処理部150bは、状態sの文字Cによる遷移先を判定すると、状態sの文字Cによる通常遷移先は初期状態0なので、再び状態sを初期状態0に設定する(図47参照)。   The collation processing unit 150b reads the character C of the first character (offset 1) of the text data and sets the state s to the initial state 0. When the collation processing unit 150b determines the transition destination by the character C in the state s, the normal transition destination by the character C in the state s is the initial state 0, so the state s is set to the initial state 0 again (see FIG. 47). .

照合処理部150bは、テキストデータの2文字目(オフセット2)の文字bを読み出し、状態s(初期状態0)の文字bによる遷移先を判定する。状態sの文字bによる通常遷移先は状態3なので、状態sを状態3に設定する。また、照合処理部150bは、通常遷移した場合に、コスト管理テーブル140bと、文字の種類と比較して点数を判定する。そして、照合処理部150bは、判定した点数と、通常遷移先の状態のdistに応じて、スコア配列140dに点数を登録する。   The matching processing unit 150b reads the second character (offset 2) character b of the text data and determines the transition destination by the character b in the state s (initial state 0). Since the normal transition destination of the character b of the state s is the state 3, the state s is set to the state 3. Further, the collation processing unit 150b determines the score in comparison with the cost management table 140b and the character type when the normal transition is made. Then, the matching processing unit 150b registers the score in the score array 140d according to the determined score and the normal transition destination state dist.

文字bのコストは「0」であり、通常遷移先の状態3のdistは「1」であるため、照合処理部150bは、スコア配列140dの「初期状態からの距離1」に対応する点数を0に設定する(図48参照)。   Since the cost of the letter b is “0” and the dist in the state 3 of the normal transition destination is “1”, the collation processing unit 150b calculates the score corresponding to “distance 1 from the initial state” in the score array 140d. Set to 0 (see FIG. 48).

照合処理部150bは、テキストデータの3文字目(オフセット3)の文字aを読み出し、状態s(状態3)の文字aによる遷移先を判定する。状態sの文字aによる通常遷移先は状態4なので、状態sを状態4に設定する。また、文字aのコストは「0」であり、通常遷移先の状態4のdistは「2」であるため、照合処理部150bは、スコア配列140dの「初期状態からの距離2」に対応する点数を0に設定する。   The matching processing unit 150b reads the third character (offset 3) character a of the text data and determines the transition destination of the character a in the state s (state 3). Since the normal transition destination of the character a in the state s is the state 4, the state s is set to the state 4. Further, since the cost of the letter a is “0” and the dist of the normal transition destination state 4 is “2”, the matching processing unit 150 b corresponds to “distance 2 from the initial state” of the score array 140 d. Set the score to 0.

また、状態4は、パターン(B|b)(A|a)の照合状態であるため、照合処理部150bは、パターン(B|b)(A|a)にヒットしたと判定する。そして、照合処理部150bは、パターン(B|b)(A|a)と、現在のオフセット3と、現在のスコア配列の点数の合計値「0」を対応付けて集合Rに登録する(図49参照)。   Further, since the state 4 is a matching state of the pattern (B | b) (A | a), the matching processing unit 150b determines that the pattern (B | b) (A | a) has been hit. Then, the matching processing unit 150b associates and registers the pattern (B | b) (A | a), the current offset 3, and the total score “0” of the current score array in the set R (see FIG. 49).

照合処理部150bは、テキストデータの4文字目(オフセット4)の文字Aを読み出し、状態s(状態4)の文字Aによる遷移先を判定する。状態sの文字Aによる通常遷移先は状態6なので、状態sを状態6に設定する。また、文字Aのコストは「1」であり、通常遷移先の状態6のdistは「3」であるため、照合処理部150bは、スコア配列140dの「初期状態からの距離3」に対応する点数を1に設定する。   The verification processing unit 150b reads the fourth character (offset 4) of the character A in the text data and determines the transition destination of the character A in the state s (state 4). Since the normal transition destination by the letter A of the state s is the state 6, the state s is set to the state 6. Further, since the cost of the character A is “1” and the dist of the normal transition destination state 6 is “3”, the matching processing unit 150b corresponds to “distance 3 from the initial state” of the score array 140d. Set the score to 1.

また、状態6は、パターン(B|b)(A|a)(A|a)の照合状態であるため、照合処理部150bは、パターン(B|b)(A|a)(A|a)にヒットしたと判定する。そして、照合処理部150bは、パターン(B|b)(A|a)(A|a)と、現在のオフセット4と、現在のスコア配列の点数の合計値「1」を対応付けて集合Rに登録する(図50参照)。   Further, since the state 6 is a collation state of the pattern (B | b) (A | a) (A | a), the collation processing unit 150b performs the pattern (B | b) (A | a) (A | a ). Then, the matching processing unit 150b associates the pattern (B | b) (A | a) (A | a), the current offset 4, and the total value “1” of the scores of the current score array in association with the set R. (See FIG. 50).

照合処理部150bは、テキストデータの5文字目(オフセット5)の文字Cを読み出し、状態s(状態6)の文字Cによる遷移先を判定する。状態sの文字Cによる通常遷移先は存在しないので、フェイラ遷移となり、フェイラ遷移先となる状態1を状態sに設定する。   The matching processing unit 150b reads the fifth character (offset 5) character C of the text data and determines the transition destination of the character C in the state s (state 6). Since there is no normal transition destination by the letter C in the state s, a failure transition occurs, and the state 1 that is the failure transition destination is set to the state s.

ここで、フェイラ遷移元となる状態6のdistは「3」であり、フェイラ遷移先となる状態1のdistは「1」であるため、各distの差は「2」となる。従って、照合処理部150bは、スコア配列140dの点数を2だけ前に詰めると共に、点数の存在していた「初期状態からの距離2、3」に対応する点数をNullに設定する(図51参照)。   Here, the dist of the state 6 as the failer transition source is “3” and the dist of the state 1 as the failer transition destination is “1”, so the difference between the dists is “2”. Therefore, the collation processing unit 150b sets the score of the score array 140d by 2 and sets the score corresponding to “distances 2 and 3 from the initial state” where the score exists to Null (see FIG. 51). ).

そして、照合処理部150bは、状態s(状態1)の文字Cによる遷移先を判定する。状態sの文字Cによる通常遷移先は状態2なので、状態sを状態2に設定する。また、文字Cのコストは「1」であり、通常遷移先の状態2のdistは「2」であるため、照合処理部150bは、スコア配列140dの「初期状態からの距離2」に対応する点数を1に設定する。   And the collation process part 150b determines the transition destination by the character C of the state s (state 1). Since the normal transition destination by the character C of the state s is the state 2, the state s is set to the state 2. Further, since the cost of the character C is “1” and the dist of the normal transition destination state 2 is “2”, the matching processing unit 150 b corresponds to “distance 2 from the initial state” of the score array 140 d. Set the score to 1.

また、状態2は、パターン(A|a)(C|c)の照合状態であるため、照合処理部150bは、パターン(A|a)(C|c)にヒットしたと判定する。そして、照合処理部150bは、パターン(A|a)(C|c)と、現在のオフセット5と、現在のスコア配列の点数の合計値2を対応付けて集合Rに登録する(図52参照)。テキストデータの最後の文字に対する遷移先を判定した後に、パターン照合処理を終了する。   Further, since the state 2 is a matching state of the pattern (A | a) (C | c), the matching processing unit 150b determines that the pattern (A | a) (C | c) is hit. Then, the matching processing unit 150b registers the pattern (A | a) (C | c), the current offset 5, and the total score 2 of the current score array in association with each other in the set R (see FIG. 52). ). After determining the transition destination for the last character of the text data, the pattern matching process is terminated.

このように、照合処理部150bが、フェイラ遷移先と遷移後のdistの差に基づいて、スコア配列140dの点数を詰めることで、初期状態0からフェイラ遷移した先の状態までに至る点数のみをスコア配列140dに残すので、各照合状態の点数を正確に算出することができる。   In this way, the collation processing unit 150b reduces the score array 140d based on the difference between the failer transition destination and the dist after the transition, so that only the number of points from the initial state 0 to the destination state after the failer transition is obtained. Since it is left in the score array 140d, the score of each verification state can be accurately calculated.

例えば、図51において、フェイラ遷移先(状態1)と遷移後(状態6)のdistの差は、2であるため、スコア配列140dを前に2だけ詰めており、初期状態0からフェイラ遷移した先の状態1(dist1)までの点数のみをスコア配列140dに残している(文字Aにより状態1に移行したことをスコア配列140dに残している)。従って、図51の場合では、状態1から照合状態2に通常遷移し、照合したパターン(A|a)(C|c)の点数が2であると正確に算出することができる。   For example, in FIG. 51, the dist difference between the failer transition destination (state 1) and after the transition (state 6) is 2, so the score array 140d is packed by 2 before, and the failer transition from the initial state 0 Only the score up to the previous state 1 (dist1) is left in the score array 140d (the fact that the transition to state 1 by the letter A is left in the score array 140d). Therefore, in the case of FIG. 51, it is possible to accurately calculate that the normal transition is made from the state 1 to the collation state 2 and the collated pattern (A | a) (C | c) is 2.

図31の説明に戻ると、照合結果出力部150cは、照合処理部150bの照合結果を出力部120に出力する処理部である。例えば、図52等に示したACマシンを用いてテキストデータのパターン照合処理を実行した場合には、図53に示す照合結果を出力する。図53は、照合結果出力部150cが出力する照合結果の一例を示す図である。図53の照合結果を参照することにより、テキストデータに含まれるパターンの種類、テキストデータ中のパターンの存在位置、どの程度大文字が存在するのかを判定することが出来る。   Returning to the description of FIG. 31, the collation result output unit 150 c is a processing unit that outputs the collation result of the collation processing unit 150 b to the output unit 120. For example, when the text data pattern matching process is executed using the AC machine shown in FIG. 52 or the like, the matching result shown in FIG. 53 is output. FIG. 53 is a diagram illustrating an example of a collation result output by the collation result output unit 150c. By referring to the collation result of FIG. 53, it is possible to determine the type of pattern included in the text data, the position of the pattern in the text data, and how much uppercase letters are present.

次に、本実施例にかかる検索装置100の処理手順について説明する。図54は、本実施例にかかる検索装置100がACマシンを構築する処理手順を示すフローチャートである。図54に示すように、検索装置100は、パターン集合Πを取得し(ステップS101)、ACマシン構築処理部150aが、パターン集合ΠのトライTの構築処理を実行する(ステップS102)。そして、ACマシン構築処理部150aが、フェイラ遷移追加処理を実行し(ステップS103)、ACマシンを出力する(ステップS104)。   Next, a processing procedure of the search device 100 according to the present embodiment will be described. FIG. 54 is a flowchart of a process procedure in which the search device 100 according to the present embodiment constructs an AC machine. As illustrated in FIG. 54, the search device 100 acquires a pattern set Π (step S101), and the AC machine construction processing unit 150a executes a process for building a pattern set ト ラ イ tri-T (step S102). Then, the AC machine construction processing unit 150a executes a failer transition addition process (step S103) and outputs an AC machine (step S104).

次に、図54のステップS102に示したパターン集合ΠのトライTの構築処理について説明する。かかるパターン集合ΠのトライTの構築処理をACマシン構築処理部150aが実行することにより、パターン集合140aから、トライTが生成される(例えば、図37参照)。   Next, the process of constructing the pattern set ト ラ イ trie T shown in step S102 of FIG. 54 will be described. When the AC machine construction processing unit 150a executes the process for constructing the trie T of the pattern set IV, the trie T is generated from the pattern set 140a (see, for example, FIG. 37).

図55は、本実施例にかかるパターン集合ΠのトライTの構築処理の処理手順を示すフローチャートである。図55に示すように、ACマシン構築処理部150aは、初期状態(id=0)を作成し、トライT(Π)を初期状態のみで構成されるトライに設定する(ステップS201)。   FIG. 55 is a flowchart of a process procedure of a process for constructing a trie T of a pattern set according to the present embodiment. As shown in FIG. 55, the AC machine construction processing unit 150a creates an initial state (id = 0), and sets the trie T (Π) to a trie composed only of the initial state (step S201).

ACマシン構築処理部150aは、初期状態のdistを0に設定し(ステップS202)、初期状態の通常遷移先を全て初期状態に設定し(ステップS203)、パターン集合Πにパターンが存在するか否かを判定する(ステップS204)。   The AC machine construction processing unit 150a sets dist in the initial state to 0 (step S202), sets all normal transition destinations in the initial state to the initial state (step S203), and determines whether or not a pattern exists in the pattern set Π. Is determined (step S204).

パターン集合Πにパターンが存在しない場合には(ステップS205,No)、ACマシン構築処理部150aは、トライT(Π)を出力する(ステップS206)。一方、パターン集合Πにパターンが存在する場合には(ステップS205,Yes)、ACマシン構築処理部150aは、パターン集合Πから1つのパターンを取り出し、取り出したパターンをパターンpに設定し(ステップS207)、パターン登録処理を実行し(ステップS208)、ステップS204に移行する。   If there is no pattern in the pattern set Π (No in step S205), the AC machine construction processing unit 150a outputs a trie T (Π) (step S206). On the other hand, when a pattern exists in the pattern set ((step S205, Yes), the AC machine construction processing unit 150a extracts one pattern from the pattern set 、 and sets the extracted pattern as the pattern p (step S207). ), Pattern registration processing is executed (step S208), and the process proceeds to step S204.

次に、図55のステップS208に示したパターン登録処理について説明する。図56は、本実施例にかかるパターン登録処理の処理手順を示すフローチャートである。図56に示すように、ACマシン構築処理部150aは、状態sをトライTの初期状態に設定し(ステップS301)、距離dを1に設定する(ステップS302)。   Next, the pattern registration process shown in step S208 of FIG. 55 will be described. FIG. 56 is a flowchart of the process procedure of the pattern registration process according to the present embodiment. As shown in FIG. 56, the AC machine construction processing unit 150a sets the state s to the initial state of the trie T (step S301), and sets the distance d to 1 (step S302).

ACマシン構築処理部150aは、パターンpに次の文字が存在するか否かを判定し(ステップS303)、存在しない場合には(ステップS304,No)、状態sのパターンリストplistにパターンpを代入し(ステップS305)、トライTを出力する(ステップS306)。   The AC machine construction processing unit 150a determines whether or not the next character exists in the pattern p (step S303). If the next character does not exist (step S304, No), the pattern p is added to the pattern list plist in the state s. Substitution is performed (step S305), and a trie T is output (step S306).

一方、パターンpに次の文字が存在する場合には(ステップS304,Yes)、ACマシン構築処理部150aは、状態sのdistにdを登録し、d=d+1に設定する(ステップS307)。ACマシン構築処理部150aは、次の文字をaとし、文字aがあいまい文字であるか否かを判定する(ステップS206)。   On the other hand, if the next character exists in the pattern p (Yes in step S304), the AC machine construction processing unit 150a registers d in the dist of the state s and sets d = d + 1 (step S307). The AC machine construction processing unit 150a determines that the next character is a and whether the character a is an ambiguous character (step S206).

次の文字があいまい文字の場合には(ステップS309,Yes)、ACマシン構築処理部150aは、aに含まれる全ての文字に対してasciiコードをcode(a)に設定し(ステップS310)、状態sの通常遷移g[code(a)]がNullであるか否かを判定する(ステップS311)。   If the next character is an ambiguous character (step S309, Yes), the AC machine construction processing unit 150a sets the ascii code to code (a) for all characters included in a (step S310), It is determined whether or not the normal transition g [code (a)] of the state s is Null (step S311).

状態sの通常遷移g[code(a)]がNullの場合には(ステップS312,Yes)、ACマシン構築処理部150aは、状態nを新規作成し、g[code(a)]=nに設定し(ステップS311)、状態sにg[code(a)]を代入する(状態nを状態sとする)(ステップS313)。一方、状態sの通常遷移g[code(a)]がNullではない場合には(ステップS312,No)、ステップS314に移行する。   When the normal transition g [code (a)] of the state s is Null (step S312, Yes), the AC machine construction processing unit 150a creates a new state n and sets g [code (a)] = n It is set (step S311), and g [code (a)] is substituted for state s (state n is set to state s) (step S313). On the other hand, when the normal transition g [code (a)] of the state s is not Null (step S312, No), the process proceeds to step S314.

ところで、ステップS309において、次の文字があいまい文字ではない場合には(ステップS309,No)、文字aのasciiコードをcode(a)に設定し(ステップS315)、状態sの通常遷移g[code(a)]がNullであるか否かを判定する(ステップS316)。   By the way, when the next character is not an ambiguous character in step S309 (step S309, No), the ascii code of the character a is set to code (a) (step S315), and the normal transition g [code of the state s It is determined whether (a)] is Null (step S316).

状態sの通常遷移g[code(a)]がNullの場合には(ステップS317,Yes)、ACマシン構築処理部150aは、状態nを新規作成し、g[code(a)]=nに設定し(ステップS318)、状態sにg[code(a)]を代入し(状態nを状態sとする)(ステップS319)、ステップS303に移行する。一方、状態sの通常遷移g[code(a)]がNullではない場合には(ステップS317,No)、ステップS319に移行する。   When the normal transition g [code (a)] of the state s is Null (step S317, Yes), the AC machine construction processing unit 150a newly creates the state n and sets g [code (a)] = n. It is set (step S318), g [code (a)] is substituted for state s (state n is set to state s) (step S319), and the process proceeds to step S303. On the other hand, when the normal transition g [code (a)] of the state s is not Null (step S317, No), the process proceeds to step S319.

次に、図54のステップS103に示したフェイラ遷移追加処理について説明する。かかるフェイラ遷移追加処理を実行することにより、トライTの各状態にフェイラ遷移先が追加され、ACマシンが完成する。図57および図58は、本実施例にかかるフェイラ遷移追加処理の処理手順を示すフローチャートである。   Next, the failer transition addition process shown in step S103 of FIG. 54 will be described. By executing such a failer transition addition process, a failer transition destination is added to each state of the trie T, and the AC machine is completed. FIGS. 57 and 58 are flowcharts illustrating the processing procedure of the failer transition addition processing according to the present embodiment.

図57に示すように、ACマシン構築処理部150aは、初期状態から通常遷移先となる状態を判定し、判定した状態をキュー(queue)に登録する(ステップS401)。ただし、ステップS401において、ACマシン構築処理部150aは、同一状態を2度以上キューに加えないこととする。   As illustrated in FIG. 57, the AC machine construction processing unit 150a determines a state that is a normal transition destination from the initial state, and registers the determined state in a queue (step S401). However, in step S401, the AC machine construction processing unit 150a does not add the same state to the queue more than once.

続いて、ACマシン構築処理部150aは、キューに登録された状態(状態構造体)のフェイラ遷移先に初期状態を登録し(ステップS402)、キューに状態が存在するか否かを判定する(ステップS403)。キューに状態が存在しない場合には(ステップS404,No)、トライTをACマシンαとして出力する(ステップS405)。   Subsequently, the AC machine construction processing unit 150a registers the initial state in the failer transition destination of the state (state structure) registered in the queue (step S402), and determines whether or not the state exists in the queue (step S402). Step S403). If no state exists in the queue (step S404, No), the trie T is output as the AC machine α (step S405).

一方、キューに状態が存在する場合には(ステップS404,Yes)、ACマシン構築処理部150aは、キューの先頭の状態を取り出し、取り出した状態を状態sに設定し(ステップS406)、状態sの通常遷移先へのポインタが全てNullであるか否かを判定する(ステップS407)。状態sの通常遷移先へのポインタが全てNullの場合には(ステップS408,Yes)、ステップS403に移行する。   On the other hand, if there is a state in the queue (Yes in step S404), the AC machine construction processing unit 150a extracts the head state of the queue, sets the extracted state to state s (step S406), and state s It is determined whether all the pointers to the normal transition destination are null (step S407). When all the pointers to the normal transition destination of the state s are Null (step S408, Yes), the process proceeds to step S403.

一方、状態sの通常遷移先へのポインタが全てNullではない場合には(ステップS408,No)、図58に示すように、ACマシン構築処理部150aは、状態sにおいて、g[code(a)]≠Nullとなる全ての文字aを抽出し、抽出した文字aを集合Xに格納する(ステップS409)。   On the other hand, when all the pointers to the normal transition destination of the state s are not Null (step S408, No), as shown in FIG. 58, the AC machine construction processing unit 150a performs g [code (a )] ≠ Null All characters a are extracted, and the extracted characters a are stored in the set X (step S409).

ACマシン構築処理部150aは、集合Xに文字が存在するか否かを判定し(ステップS410)、集合Xに文字が存在しない場合には(ステップS411,No)、ステップS403に移行する。一方、集合Xに文字が存在する場合には(ステップS411,Yes)、集合Xから文字aを一つ取り出し、取り出した文字aに該当する文字を集合Xから削除する(ステップS412)。   The AC machine construction processing unit 150a determines whether or not a character exists in the set X (step S410). If no character exists in the set X (step S411, No), the process proceeds to step S403. On the other hand, if a character exists in the set X (step S411, Yes), one character a is extracted from the set X, and the character corresponding to the extracted character a is deleted from the set X (step S412).

ACマシン構築処理部150aは、状態sの通常遷移先をキューの最後尾に追加し(ステップS413)、フェイラ遷移を繰り返し、文字aに対する通常遷移先がNullにならない最初の状態を状態fに設定する(ステップS414)。ACマシン構築処理部150aは、フェイラ遷移先の状態から文字aの通常遷移先へのポインタfnext=g[code(a)]を判定する(ステップS415)。   The AC machine construction processing unit 150a adds the normal transition destination of the state s to the tail of the queue (step S413), repeats the failer transition, and sets the first state where the normal transition destination for the character a is not null to the state f. (Step S414). The AC machine construction processing unit 150a determines the pointer fnext = g [code (a)] from the state of the failure transition destination to the normal transition destination of the character a (step S415).

ACマシン構築処理部150aは、状態sから文字aにより遷移する状態nextを判定し(ステップS416)、状態nextのフェイラ遷移先をfnext=g[code(a)]に設定し(ステップS418)、状態nextのフェイラ遷移先の状態にパターンリストが存在する場合に、かかるパターンリストを状態nextのパターンリストに追加し(ステップS417)、ステップS410に移行する。ただし、ステップS418において、ACマシン構築処理部150aは、パターンリスト中に同一パターンの重複登録は実行しないものとする。   The AC machine construction processing unit 150a determines the state next to be transitioned from the state s by the letter a (step S416), sets the failer transition destination of the state next to fnext = g [code (a)] (step S418), If a pattern list exists in the state of the next transition destination of the state next, the pattern list is added to the pattern list of the state next (step S417), and the process proceeds to step S410. However, in step S418, the AC machine construction processing unit 150a does not execute duplicate registration of the same pattern in the pattern list.

次に、本実施例にかかる検索装置が実行する照合処理の処理手順について説明する。図59は、本実施例にかかる照合処理の処理手順を示すフローチャートである。図59に示すように、検索装置100は、照合処理部150bが状態sをACマシンαの初期状態に設定し(ステップS501)、オフセットd=0、集合Rを空集合、スコア配列を空配列に設定する(ステップS502)。   Next, the processing procedure of the collation process executed by the search device according to the present embodiment will be described. FIG. 59 is a flowchart of the verification process according to the present embodiment. As shown in FIG. 59, in the search device 100, the matching processing unit 150b sets the state s to the initial state of the AC machine α (step S501), the offset d = 0, the set R is an empty set, and the score array is an empty array. (Step S502).

照合処理部150bは、テキストデータDに(d+1)文字目が存在するか否かを判定し(ステップS503)、テキストデータDに(d+1)文字目が存在しない場合には(ステップS504,No)、集合R(照合結果)を出力する(ステップS505)。   The collation processing unit 150b determines whether or not the (d + 1) -th character exists in the text data D (step S503). If the (d + 1) -th character does not exist in the text data D (No in step S504). , Set R (matching result) is output (step S505).

一方、テキストデータDに(d+1)文字目が存在する場合には(ステップS504,Yes)、照合処理部150bは、(d+1)文字目の文字をaに設定し(ステップS506)、d=d+1に設定する(ステップS507)。   On the other hand, when the (d + 1) -th character exists in the text data D (step S504, Yes), the collation processing unit 150b sets the (d + 1) -th character to a (step S506), and d = d + 1. (Step S507).

照合処理部150bは、状態sの文字aの通常遷移先が存在するか否かを判定する(ステップS508)。状態sの文字aの通常遷移先が存在しない場合には(ステップS509,No)、状態sのフェイラ遷移先を状態sに設定する(ステップS510)。   The matching processing unit 150b determines whether or not there is a normal transition destination of the character a in the state s (step S508). When the normal transition destination of the character a in the state s does not exist (step S509, No), the failure transition destination in the state s is set to the state s (step S510).

照合処理部150bは、フェイラ遷移により距離差分(遷移元のdistと遷移先のdistとの差分)だけ、スコア配列140dの点数を前に詰め、詰めた後の後方余白をNullに設定する(ステップS511)。また、照合処理部150bは、フェイラ遷移先から文字aにより遷移し、状態sが照合状態の場合に、状態sのパターンリストと、オフセットdとスコアを対応付けて集合Rに登録し(ステップS512)、ステップS508に移行する。ステップS512において、照合処理部150bは、スコア配列140dの点数を合計することで、スコアを算出する。   The collation processing unit 150b prepends the score array 140d by the distance difference (difference between the transition source dist and the transition destination dist) by the failer transition, and sets the back margin after the padding to Null (step) S511). In addition, when the transition processing unit 150b transitions from the failer transition destination by the letter a and the state s is the collation state, the pattern list of the state s, the offset d, and the score are associated and registered in the set R (step S512). ), The process proceeds to step S508. In step S512, the matching processing unit 150b calculates the score by summing the scores of the score array 140d.

ところで、ステップS509において、状態sに文字aの通常遷移先が存在する場合には(ステップS509,Yes)、照合処理部150bは、状態sのg[code]を状態sに代入する(状態sの文字aによる遷移先を新たに状態sとする)(ステップS513)。照合処理部150bは、状態sのdistに対応するコストに文字aのコストを登録し(ステップS514)、状態sが照合状態の場合に、状態sのパターンリストと、オフセットdと、スコアを対応づけて集合Rに登録し(ステップS515)、ステップS503に移行する。   By the way, in step S509, when the normal transition destination of the character a exists in the state s (step S509, Yes), the collation process part 150b substitutes g [code] of the state s for the state s (state s The transition destination by the character a is newly set to the state s) (step S513). The matching processing unit 150b registers the cost of the letter a in the cost corresponding to the dist of the state s (step S514), and when the state s is the matching state, the pattern list of the state s, the offset d, and the score are associated with each other. Then, it registers in the set R (step S515), and proceeds to step S503.

上述してきたように、本実施例にかかる検索装置100は、照合処理部150bがテキストデータを取得した場合に、ACマシン140cとテキストデータの各文字とを順次比較し、通常遷移した際に、文字に対応する点数をスコア配列140dに登録し、フェイラ遷移した場合に、遷移先と遷移元の距離(dist)の差に基づいて、スコア配列140dの点数を前に詰める。そして、照合処理部150bは、状態が照合状態に遷移した場合に、スコア配列140dに含まれる点数(類似度)を合計することで、照合されたキーワードの点数を判定するので、ACマシンの状態数を増加させることなくあいまい検索を実現させ、照合結果となるキーワードの類似度を正確に判定することができる。   As described above, when the collation processing unit 150b acquires the text data, the search device 100 according to the present embodiment sequentially compares the AC machine 140c with each character of the text data, and when the normal transition is made, When the score corresponding to the character is registered in the score array 140d and a failer transition is performed, the score array 140d is prepended by the difference between the transition destination and the transition source (dist). Then, when the state transitions to the collation state, the collation processing unit 150b determines the score of the collated keywords by summing the scores (similarities) included in the score array 140d. A fuzzy search can be realized without increasing the number, and the similarity of the keywords that are the matching results can be accurately determined.

ところで、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。   By the way, among the processes described in the present embodiment, all or part of the processes described as being automatically performed can be manually performed, or the processes described as being manually performed can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.

図60は、実施例に示した検索装置100に対応するコンピュータのハードウェア構成を示す図である。図60に示すように、このコンピュータ(検索装置)10は、入力装置11、モニタ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、ネットワークを介して他の装置とデータ通信を実行する通信制御装置15、媒体読取装置16、CPU(Central Processing Unit)17、HDD(Hard Disk Drive)18をバス19で接続している。   FIG. 60 is a diagram illustrating a hardware configuration of a computer corresponding to the search device 100 described in the embodiment. As shown in FIG. 60, this computer (search device) 10 performs data communication with other devices via an input device 11, a monitor 12, a RAM (Random Access Memory) 13, a ROM (Read Only Memory) 14, and a network. A communication control device 15, a medium reading device 16, a CPU (Central Processing Unit) 17, and an HDD (Hard Disk Drive) 18 are connected by a bus 19.

そして、HDD18には、上述した検索装置100の機能と同様の機能を発揮するACマシン構築プログラム18b、照合プログラム18cが記憶されている。CPU17が、ACマシン構築プログラム18b、照合プログラム18cを読み出して実行することにより、ACマシン構築プロセス17a、照合プロセス17bが起動される。   The HDD 18 stores an AC machine construction program 18b and a collation program 18c that exhibit functions similar to the functions of the search device 100 described above. When the CPU 17 reads and executes the AC machine construction program 18b and the collation program 18c, the AC machine construction process 17a and the collation process 17b are activated.

ここで、ACマシン構築プロセス17aは、図31に示したACマシン構築処理部150aに対応する。また、照合プロセス17bは、図31に示した照合処理部150b、照合結果出力部150cに対応する。   Here, the AC machine construction process 17a corresponds to the AC machine construction processing unit 150a shown in FIG. The collation process 17b corresponds to the collation processing unit 150b and the collation result output unit 150c illustrated in FIG.

なお、HDD18は、図31で示した記憶部140に記憶されたデータに対応する各種データ18aを記憶している。CPU17は、HDD18に記憶された各種データ18aをRAM13に読み出し、RAM13に格納された各種データ13aを用いてACマシンの構築、テキストデータに対するパターン照合を実行する。   The HDD 18 stores various data 18a corresponding to the data stored in the storage unit 140 shown in FIG. The CPU 17 reads various data 18a stored in the HDD 18 into the RAM 13, and uses the various data 13a stored in the RAM 13 to construct an AC machine and perform pattern matching on text data.

10 コンピュータ
11 入力装置
12 モニタ
13 RAM
13a,18a 各種データ
14 ROM
15 通信制御装置
16 媒体読取装置
17 CPU
17a ACマシン構築プロセス
17b 照合プロセス
18 HDD
18b ACマシン構築プログラム
18c 照合プログラム
19 バス
100 検索装置
110 入力部
120 出力部
130 入出力制御部
140 記憶部
140a パターン集合
140b コスト管理テーブル
140c ACマシン
140d スコア配列
10 Computer 11 Input Device 12 Monitor 13 RAM
13a, 18a Various data 14 ROM
15 Communication Control Device 16 Medium Reading Device 17 CPU
17a AC machine construction process 17b Verification process 18 HDD
18b AC machine construction program 18c collation program 19 bus 100 search device 110 input unit 120 output unit 130 input / output control unit 140 storage unit 140a pattern set 140b cost management table 140c AC machine 140d score array

Claims (3)

複数のOR条件の文字列検索において、該OR条件の文字列に含まれる正解文字に対して、該正解文字ではないが条件一致と見なされる許容文字を設定して照合処理する曖昧検索を、ACオートマトンで実行する検索装置であって、
複数の条件文字列の文字桁毎に、正解文字および許容文字、各文字に対応する点数を設定するとともに、特定の条件文字列の特定文字桁数までは一致したがその後に不一致が発生した際、あるいは、特定の条件文字列がすべて一致した際に、他の条件文字列の特定の文字桁の文字へ遷移するフェイラ遷移を設定したACオートマトンのトライ構造を生成する生成手段と、
前記トライ構造の文字桁毎に、検索対象である対象文字列が一致した正解文字あるいは許容文字列に対応付けられた点数が管理される点数テーブルと、
前記対象文字列を記憶装置から抽出し、該対象文字列に含まれる文字が前記トライ構造における特定の文字桁の正解文字あるいは許容文字と一致するか照合し、文字が一致する場合は、一致した文字桁に対応付けて正解文字または許容文字に対応する点数を前記点数テーブルに記録し、更に該対象文字列の次の文字について、該トライ構造の次の文字桁の正解文字または許容文字と照合することを順次繰り返す照合手段と、
対象文字列の次の文字を照合する際、前記フェイラ遷移に基づいて前記他の条件文字列の特定の文字列に移動する場合、該フェイラ遷移の遷移元と遷移先の文字桁の桁数の差を識別し、前記点数テーブルに記録された各文字桁の点数を、現在対応付けられた文字桁から該識別した桁数の差分だけ減じた文字桁の点数に変更する変更手段と、
いずれかの条件文字列の全文字桁で文字一致した時点で、前記点数テーブルに記録されている点数の合計を算出し、該合計点数に基づき条件文字列と前記対象文字列に含まれる文字列の類似度を出力する出力手段を、
備えることを特徴とする検索装置。
In a character string search of a plurality of OR conditions, an ambiguous search is performed in which a correct character included in the character string of the OR condition is collated by setting an allowable character that is not the correct character but is regarded as a condition match. A search device executed by an automaton,
For each character digit of multiple condition character strings, correct characters and allowable characters, and the number of points corresponding to each character are set, and when a specific character digit number of a specific condition character string is matched but a mismatch occurs after that Or a generation means for generating a trie structure of an AC automaton in which a failer transition is set to transition to a character of a specific character digit of another condition character string when all of the specific condition character strings match,
For each character digit of the trie structure, a score table for managing the score associated with the correct character or the allowed character string that matches the target character string to be searched;
The target character string is extracted from the storage device, and the characters included in the target character string are collated with a correct character or an allowable character of a specific character digit in the trie structure. The score corresponding to the correct character or the allowable character is recorded in the score table in association with the character digit, and the next character of the target character string is collated with the correct character or the allowable character of the next character digit of the trie structure. Collating means for sequentially repeating the operation,
When the next character of the target character string is collated, when moving to a specific character string of the other conditional character string based on the failer transition, the number of digits of the character digits of the transition source and the destination of the failer transition A change means for identifying a difference and changing the score of each character digit recorded in the score table to a character digit score obtained by subtracting the difference of the identified digit number from the currently associated character digit;
When all the character digits of any of the condition character strings are matched, the sum of the points recorded in the score table is calculated, and the condition character string and the character string included in the target character string are calculated based on the total score. Output means for outputting the similarity of
A search device comprising:
複数のOR条件の文字列検索において、該条件の文字列に含まれる正解文字に対して、該正解文字ではないが条件一致と見なされる許容文字を設定して照合処理する曖昧検索を、ACオートマトンで実行する検索装置の検索方法であって、
前記検索装置は、トライ構造の文字桁毎に、検索対象である対象文字列が一致した正解文字あるいは許容文字列に対応付けられた点数が管理される点数テーブルを有し、
前記検索装置が、
前記複数の条件文字列の文字桁毎に、正解文字および許容文字、各文字に対応する点数を設定するとともに、特定の条件文字列の特定文字桁数までは一致したがその後に不一致が発生した際、あるいは、特定の条件文字列がすべて一致した際に、他の条件文字列の特定の文字桁の文字へ遷移するフェイラ遷移を設定したACオートマトンのトライ構造を生成する生成ステップと、
前記対象文字列を記憶装置から抽出し、該対象文字列に含まれる文字が前記トライ構造における特定の文字桁の正解文字あるいは許容文字と一致するか照合し、文字が一致する場合は、一致した文字桁に対応付けて正解文字または許容文字に対応する点数を前記点数テーブルに記録し、更に該対象文字列の次の文字について、該トライ構造の次の文字桁の正解文字または許容文字と照合することを順次繰り返す照合ステップと、
対象文字列の次の文字を照合する際、前記フェイラ遷移に基づいて前記他の条件文字列の特定の文字列に移動する場合、該フェイラ遷移の遷移元と遷移先の文字桁の桁数の差を識別し、前記点数テーブルに記録された各文字桁の点数を、現在対応付けられた文字桁から該識別した桁数の差分だけ減じた文字桁の点数に変更する変更ステップと、
いずれかの条件文字列の全文字桁で文字一致した時点で、前記点数テーブルに記録されている点数の合計を算出し、該合計点数に基づき条件文字列と前記対象文字列に含まれる文字列の類似度を出力する出力ステップを、
含んだことを特徴とする検索方法。
In a character string search for a plurality of OR conditions, an ambiguous search is performed in which AC characters are included in the character string of the conditions and collated by setting an allowable character that is not the correct answer character but is regarded as a condition match. The search method of the search device executed in
The search device has a score table for managing the score associated with the correct character or the allowable character string that matches the target character string to be searched for each character digit of the trie structure,
The search device is
For each character digit in the plurality of condition character strings, correct characters and allowable characters, and the number of points corresponding to each character are set, and even a specific character digit number of a specific condition character string is matched, but then a mismatch occurs. Or a generation step for generating an AC automaton trie structure in which a failer transition is set to transition to a character of a specific character digit of another condition character string when all of the specific condition character strings are matched,
The target character string is extracted from the storage device, and the characters included in the target character string are collated with a correct character or an allowable character of a specific character digit in the trie structure. The score corresponding to the correct character or the allowable character is recorded in the score table in association with the character digit, and the next character of the target character string is collated with the correct character or the allowable character of the next character digit of the trie structure. A verification step that repeats sequentially,
When the next character of the target character string is collated, when moving to a specific character string of the other conditional character string based on the failer transition, the number of digits of the character digits of the transition source and the destination of the failer transition A change step of identifying a difference and changing the score of each character digit recorded in the score table to a character digit score obtained by subtracting the difference of the identified digit number from the currently associated character digit;
When all the character digits of any of the condition character strings are matched, the sum of the points recorded in the score table is calculated, and the condition character string and the character string included in the target character string are calculated based on the total score. Output step to output the similarity of
A search method characterized by inclusion.
複数のOR条件の文字列検索において、該条件の文字列に含まれる正解文字に対して、該正解文字ではないが条件一致と見なされる許容文字を設定して照合処理する曖昧検索を、コンピュータにACオートマトンで実行させるためのプログラムを記憶したコンピュータ読取り可能な記憶媒体であって、
前記コンピュータは、トライ構造の文字桁毎に、検索対象である対象文字列が一致した正解文字あるいは許容文字列に対応付けられた点数が管理される点数テーブルを有し、
前記コンピュータに、
前記複数の条件文字列の文字桁毎に、正解文字および許容文字、各文字に対応する点数を設定するとともに、特定の条件文字列の特定文字桁数までは一致したがその後に不一致が発生した際、あるいは、特定の条件文字列がすべて一致した際に、他の条件文字列の特定の文字桁の文字へ遷移するフェイラ遷移を設定したACオートマトンのトライ構造を生成する生成機能と、
前記対象文字列を記憶装置から抽出し、該対象文字列に含まれる文字が前記トライ構造における特定の文字桁の正解文字あるいは許容文字と一致するか照合し、文字が一致する場合は、一致した文字桁に対応付けて正解文字または許容文字に対応する点数を前記点数テーブルに記録し、更に該対象文字列の次の文字について、該トライ構造の次の文字桁の正解文字または許容文字と照合することを順次繰り返す照合機能と、
対象文字列の次の文字を照合する際、前記フェイラ遷移に基づいて前記他の条件文字列の特定の文字列に移動する場合、該フェイラ遷移の遷移元と遷移先の文字桁の桁数の差を識別し、前記点数テーブルに記録された各文字桁の点数を、現在対応付けられた文字桁から該識別した桁数の差分だけ減じた文字桁の点数に変更する変更手順と、
いずれかの条件文字列の全文字桁で文字一致した時点で、前記点数テーブルに記録されている点数の合計を算出し、該合計点数に基づき条件文字列と前記対象文字列に含まれる文字列の類似度を出力する出力機能を、
を実現させるためのプログラムを記録した記憶媒体。
In a character string search of a plurality of OR conditions, an ambiguous search is performed on a correct character included in the character string of the condition by setting an allowable character that is not the correct character character but considered to be a condition match and performing a matching process. A computer-readable storage medium storing a program to be executed by an AC automaton,
The computer has a score table for managing the score associated with the correct character or the allowable character string that matches the target character string to be searched for each character digit of the trie structure,
In the computer,
For each character digit in the plurality of condition character strings, correct characters and allowable characters, and the number of points corresponding to each character are set, and even a specific character digit number of a specific condition character string is matched, but then a mismatch occurs. Or a generation function for generating a trie structure of an AC automaton that sets a failer transition to transition to a character of a specific character digit of another condition character string when all of the specific condition character strings match,
The target character string is extracted from the storage device, and the characters included in the target character string are collated with a correct character or an allowable character of a specific character digit in the trie structure. The score corresponding to the correct character or the allowable character is recorded in the score table in association with the character digit, and the next character of the target character string is collated with the correct character or the allowable character of the next character digit of the trie structure. A collation function that sequentially repeats
When the next character of the target character string is collated, when moving to a specific character string of the other conditional character string based on the failer transition, the number of digits of the character digits of the transition source and the destination of the failer transition A change procedure for identifying a difference and changing the score of each character digit recorded in the score table to a character digit score obtained by subtracting the difference of the identified digit number from the currently associated character digit;
When all the character digits of any of the condition character strings are matched, the sum of the points recorded in the score table is calculated, and the condition character string and the character string included in the target character string are calculated based on the total score. Output function to output the similarity of
A storage medium on which a program for realizing the above is recorded.
JP2009063166A 2009-03-16 2009-03-16 SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM Active JP5293301B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009063166A JP5293301B2 (en) 2009-03-16 2009-03-16 SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009063166A JP5293301B2 (en) 2009-03-16 2009-03-16 SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM

Publications (2)

Publication Number Publication Date
JP2010218140A JP2010218140A (en) 2010-09-30
JP5293301B2 true JP5293301B2 (en) 2013-09-18

Family

ID=42976940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009063166A Active JP5293301B2 (en) 2009-03-16 2009-03-16 SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM

Country Status (1)

Country Link
JP (1) JP5293301B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5810951B2 (en) * 2012-02-08 2015-11-11 富士通株式会社 Verification device, verification program, and verification method
JP6136142B2 (en) * 2012-08-24 2017-05-31 富士通株式会社 Character string replacement device, method and program
CN106708858A (en) 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 Information recommendation method and device
CN113051925B (en) * 2019-12-26 2024-06-18 中国移动通信集团有限公司 Time identification method, device, equipment and computer storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2886868B2 (en) * 1988-09-07 1999-04-26 株式会社日立製作所 Post-processing method for character recognition
JPH11143893A (en) * 1997-11-07 1999-05-28 Matsushita Electric Ind Co Ltd Word collating device
JP3619825B2 (en) * 2003-08-25 2005-02-16 株式会社日立製作所 Document retrieval and delivery method and apparatus

Also Published As

Publication number Publication date
JP2010218140A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP4998220B2 (en) Form data extraction program, form data extraction apparatus, and form data extraction method
JP5293301B2 (en) SEARCH DEVICE, SEARCH METHOD, AND STORAGE MEDIUM
US20120005234A1 (en) Storage medium, trie tree generation method, and trie tree generation device
CN101460960A (en) Combiner for improving handwriting recognition
JP2017511917A (en) Method and apparatus for recognizing musical symbols
JP5022361B2 (en) RNA secondary structure prediction apparatus, prediction method, program, and recording medium
CN106649218A (en) Quick binary file comparing method based on SimHash algorithm
JP5585472B2 (en) Information collation apparatus, information collation method, and information collation program
WO2016056236A1 (en) Information processing device, information processing method, and recording medium
Preuss et al. Multimodal optimization: Formulation, heuristics, and a decade of advances
JP2009169689A (en) Data classification method and data processing apparatus
Wei et al. A branch elimination-based efficient algorithm for large-scale multiple longest common subsequence problem
WO2016181470A1 (en) Recognition device, recognition method and program
JP5875961B2 (en) Source code similarity evaluation program, source code similarity evaluation apparatus, and computer-readable storage medium
JP7087931B2 (en) Search program, search method and search device
JP6435939B2 (en) Data classification program, data classification method, and data classification apparatus
JP5396843B2 (en) Search method and search device
JP2019148859A (en) Device and method supporting discovery of design pattern in model development environment using flow diagram
JP5365321B2 (en) Design data merging device, design data merging method, and design data merging program
JP6487100B1 (en) Form processing apparatus and form processing method
JP6320089B2 (en) Recognition device, recognition method and program
JP2011154602A (en) Character string management apparatus, character string registration method, character string search method and character string management program
JP5387371B2 (en) Tri-tree classification program and tri-tree classification method
KR102370044B1 (en) A system and a method for searching prior art information and measuring similarity thereof
JP2019144939A (en) Information processing apparatus, information processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Ref document number: 5293301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150