JP6012414B2 - 情報処理装置及び情報処理方法及びプログラム - Google Patents
情報処理装置及び情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP6012414B2 JP6012414B2 JP2012246410A JP2012246410A JP6012414B2 JP 6012414 B2 JP6012414 B2 JP 6012414B2 JP 2012246410 A JP2012246410 A JP 2012246410A JP 2012246410 A JP2012246410 A JP 2012246410A JP 6012414 B2 JP6012414 B2 JP 6012414B2
- Authority
- JP
- Japan
- Prior art keywords
- state transition
- state
- transition information
- information
- digit
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、例えば、オートマトンを用いて、入力された文字列が検査条件に合致するか否かを検査する技術に関する。
そのような秘匿すべき情報の一つとして、クレジットカード番号、口座番号、証券番号等の番号がある。
例えば、クレジットカード番号の形式の一例として、16桁の数字からなり、4桁ごとにハイフンで区切られた19文字の文字列であるが、このような番号は、例えば図3に示す正規表現を用いて、公知の検出方法により検出することができる。
このような正規表現による文字列パタンの検出は、有限オートマトン(Finite State Automaton)と呼ばれる方法により実現可能である。
有限オートマトンを用いる文字列パタンの一般的な検出方法では、正規表現から状態遷移表を生成する手順については、例えば特許文献1、特許文献2、特許文献3に記載の公知の手順を用い、正規表現で記載された検査条件を状態遷移表に変換する。
この時、例えば図47に示す拡張BNF(Backus−Naur Form)で表現される構文規則に基づき、字句解析および構文解析の手順を行うことにより、状態遷移表を生成する。
状態遷移表は(現状態、入力文字、次状態)の組の集合で表現される。
有限オートマトンは初期状態から開始し、1文字入力されるごとに状態遷移表に含まれる現状態と入力文字の組に対応する次状態に遷移し、受理状態に到達すると文字列の検出が行われたものとする。
特に、現状態と入力文字の組に対して次状態が一意に決まる有限オートマトンを決定性有限オートマトン(DFA:Deterministic Finite Automaton)、2以上の次状態が存在する有限オートマトンを非決定性有限オートマトン(NFA: Non−Deterministic Finite Automaton)と呼ぶ。
NFAはDFAに変換可能であることが知られており、DFAを用いると文字列を一度読むことにより、後戻りすることなく照合を行うことができる。
このため、図3の正規表現による文字列パタン検出では、クレジットカード番号とこのような番号列を区別することができないため、このような番号列も過剰に検出される。
一方、クレジットカード番号、口座番号、証券番号等などの番号には、誤入力防止を目的としてチェックディジットが付加されている。
チェックディジットの方式としては、例えば「ANSI規格X4.13」に定義されている「Luhnの式」や、「モジュラス10、ウェイト3」、「モジュラス11 ウェイト10−2」などの方式が知られており、例えばクレジットカード番号では右端の桁(最終桁)がLuhnの式によるチェックディジットである。
チェックディジットの正当性を検査することにより、右端の桁をチェックディジットとして使用していない番号列や異なる計算手順によるチェックディジットを使用している番号列を除外することができ、上記の過剰な検出を削減することができる。
「Luhnの式」、「モジュラス10、ウェイト3」、「モジュラス11 ウェイト10−2」等のチェックディジット方式では、まず、各桁の文字を数値に変換し、ついで変換された数値を全桁に渡る総和を取り、その総和を予め決めた数による剰余を取る、という共通的な手順を使用している。
たとえばLuhnの式では以下の手順に従って計算を行う。
2倍にしていない桁も含め、各数字の総和を求める(2倍にした桁が2桁になった場合は、それぞれを別々の数字として加える)。
この総和の下1桁が0なら、この番号は正しく、そうでない場合は正しくない。
しかし、この方法では、文字列パタンの検出を行い、検出位置を特定した後、チェックディジットの計算を行うという処理の切り替えが必要になり、処理時間を要する。
すなわち、全ての正当な文字列パタンを列挙した正規表現を入力とする有限オートマトンにより、文字列パタンの検出とチェックディジットの検査を同時に実行することができる。
例えば、図3の正規表現で表現されるクレジットカード番号でLuhnの式によるチェックディジットを備えている場合、正当なチェックディジットを持つ文字列パタンの一例として、文字列「4023−9970−3986−5763」などがある。
このような正当な文字列パタンの全てを記号「|」により列挙した正規表現を作成することが論理的には可能である。
しかし、この方法では、有限オートマトンの入力となる正規表現が極めて長大になるという課題がある。
r=M(d−2)・・・(式1)
すなわち、検査対象の数字の桁数に対して指数オーダの長さとなる。
本例の場合、M=10,d=16から、(式2)のようになる。
r=1014・・・(式2)
このため、正当な文字列パタンの全てを記号「|」により列挙した正規表現の規模は、今日の一般的なコンピュータのメモリに保持することが困難な程度になる。
つまり、一般に剰余計算に基づくチェックディジット検査を公知の有限オートマトンにより検査しようとすると、正規表現の記述が長大になり、処理が困難になるという課題がある。
オートマトンによる検査に用いられる、状態遷移パスが表される状態遷移情報を1つ以上記憶する状態遷移情報記憶部と、
正規表現で記述され、いずれかの状態遷移情報の識別子が選択識別子として含まれている検査条件を取得する検査条件取得部と、
前記選択識別子に対応する状態遷移情報である選択状態遷移情報を前記状態遷移情報記憶部から読み出すとともに、前記検査条件内の記述のうち前記選択識別子以外の記述に対応する状態遷移パスを生成し、生成した状態遷移パスを前記選択状態遷移情報の状態遷移パスに追加して、前記選択状態遷移情報から新たな状態遷移情報を生成する状態遷移情報更新部とを有することを特徴とする。
このため、検査条件内の選択識別子以外の記述と選択状態遷移情報とを連携させることができ、オートマトンへの入力として長大な正規表現を記述しなくても、オートマトンによる検査を高速に実行することができる。
本実施の形態では、オートマトンに入力する正規表現を長大な記述にしなくとも、チェックディジットを含む文字列パタンの検出を高速に実行することができる文字列照合装置を説明する。
また、本実施の形態に係る文字列照合装置は、正規表現検査条件と外部状態遷移表から生成される状態遷移表による照合を行うことにより、長大な正規表現を記述することなく、文字列パタンの検出とチェックディジット検査を同時に行うことができ、チェックディジットを含む文字列パタンを高速に検出できる。
文字列照合装置1は、情報処理装置の例に相当する。
図1に示すように、文字列照合装置1は、状態遷移表生成部6と照合部7とに大別される。
状態遷移表生成部6は、外部状態遷移定義3を入力して、外部状態遷移表9を生成し、更に、正規表現検査条件2を入力して、外部状態遷移表9と正規表現検査条件2とからNFA状態遷移表11を生成し、更に、NFA状態遷移表11からDFA状態遷移表13を生成する。
照合部6は、入力文字列4を入力し、入力文字列4が正規表現検査条件2で規定されている検査条件を満たすか否かをDFA状態遷移表13を用いて判定し、照合結果6を出力する。
外部状態遷移表9は、後述する決定性有限オートマトン14による検査に用いられる。
また、外部状態遷移表9には、複数の状態における状態遷移の経緯である状態遷移パスが定義されている。
なお、外部状態遷移表9は状態遷移情報の例に相当し、外部状態遷移表生成部8は状態遷移情報生成部の例に相当し、外部状態遷移表記憶部90は状態遷移情報記憶部の例に相当する。
また、NFA状態遷移表生成部10は、正規表現検査条件2に正規表現で記述されている検査条件と、外部状態遷移表記憶部90から読み出した外部状態遷移表9とを関連付ける状態遷移表であるNFA状態遷移表11を生成する。
そして、NFA状態遷移表生成部10は、生成したNFA状態遷移表11をNFA状態遷移表記憶部110に格納する。
正規表現検査条件2には、いずれかの外部状態遷移表9の識別子が含まれている。
この識別子を選択識別子ともいう。
また、正規表現検査条件2には選択識別子以外の記述も含まれている。
また、NFA状態遷移表生成部10は、正規表現検査条件2内の選択識別子以外の記述に対応する状態遷移パスを生成し、選択識別子に対応する外部状態遷移表9に、生成した状態遷移パスを追加して、NFA状態遷移表11を生成する。
なお、NFA状態遷移表生成部10は、検査条件取得部及び状態遷移情報更新部の例に相当する。
そして、DFA状態遷移表生成部12は、生成したDFA状態遷移表13をDFA状態遷移表記憶部130に格納する。
また、DFA状態遷移表生成部12は、DFA状態遷移表13をDFA状態遷移表記憶部130から決定性有限オートマトン14に出力する。
DFA状態遷移表生成部12は、状態遷移情報修正部及び状態遷移情報出力部の例に相当する。
例えば、クレジットカード番号についての検査の場合は、決定性有限オートマトン14は、複数桁の文字列を入力文字列4として入力し、DFA状態遷移表13を用いて、桁ごとの文字の適性検査(0−9の数字又はハイフンであるか否かの検査)とチェックディジット検査(Luhnの式の計算)とを並行して行う。
決定性有限オートマトン14が検査した結果は、照合結果5として出力される。
以下では、決定性有限オートマトン14が、入力文字列4がクレジットカード番号に該当するか否かの検査を行う場合を例にして説明を進める。
また、クレジットカード番号のチェックディジットは、Luhnの式によるものとする。
この外部状態遷移表9は、入力文字列4に対して、桁ごとの文字の適性検査と桁ごとのチェックディジット検査とを並行して行うことができる状態遷移表である。
また、この外部状態遷移表9の名称(識別子)を「CREDIT」とする。
名称「CRDIT」の外部状態遷移表9は、例えば、図42の状態遷移グラフと等価である。
図42の状態遷移グラフでは、桁ごとの文字の適性検査と桁ごとのチェックディジット検査とを並行して行うための状態遷移パスが定義されている。
なお、図42の状態遷移グラフの詳細、図42の状態遷移グラフの生成手順は後述する。
NFA状態遷移表生成部10は、例えば、図2に示す正規表現検査条件2を入力する。
図2の正規表現検査条件2では、(??{CREDIT}??)が選択識別子である。
NFA状態遷移表生成部10は、選択識別子に従い、名称「CREDIT」の外部状態遷移表9を外部状態遷移表記憶部90から読み出す。
更に、NFA状態遷移表生成部10は、正規表現検査条件2内の選択識別子に先行する記述である先行記述(図2の例では「No=」)に対応する状態遷移パス(先行記述状態遷移パスという)を生成し、先行記述状態遷移パスの最後尾の状態を、名称「CREDIT」の外部状態遷移表9の初期状態に連結する。
図2の正規表現検査条件2の場合は、「No=」に対応する状態遷移パスとして図51の状態遷移パスが生成され、図51の状態遷移パスの最後尾の状態(状態:S3)が図42の状態遷移グラフの初期状態(状態:S1000)に連結されると、図53の状態遷移グラフとなる。
更に、NFA状態遷移表生成部10は、正規表現検査条件2内の選択識別子に後続する記述である後続記述(図2の例では「#」)に対応する状態遷移パス(後続記述状態遷移パスという)を生成し、後続記述状態遷移パスの先頭の状態(状態:S4)を、名称「CREDIT」の外部状態遷移表9の受理状態(状態:S1190)に連結する。
図54は、図53の状態遷移グラフに図2の正規表現検査条件2の後続記述状態遷移パスが連結された後の状態遷移グラフを示す。
図54の状態遷移グラフに対応する状態遷移表が、NFA状態遷移表11に相当する。
図43の状態遷移グラフ(外部状態遷移表9に相当)では、図54の状態:S1000に相当する状態が初期状態であり、状態:S1190に相当する状態が受理状態であったが、図54の状態遷移グラフでは、状態:S0が新たな初期状態であり、状態:S5が新たな受理状態である。
本実施の形態では、NFA状態遷移表生成部10が、図54の状態遷移グラフに相当するNFA状態遷移表11を生成することで、決定性有限オートマトン14への入力として長大な正規表現を記述しなくてもよく、図2に示す正規表現検査条件2のように、簡潔な検査条件とすることができる。
具体的には、図54の状態遷移グラフの空文字遷移「ε」を除去して、図55の状態遷移グラフを生成する。
図55の状態遷移グラフは、DFA状態遷移表13に相当する。
図3は、クレジットカード番号に対応する、チェックディジット検査を行わない正規表現の一例を示す図である。
図4において、21は状態遷移定義であり、外部状態遷移定義3の中に1または複数の状態遷移定義21が含まれ、図4ではN個の状態遷移定義21が含まれている。
22は状態遷移名定義、23は文字集合定義、24は桁数定義、25は除数定義、26は受理剰余定義、27は変換関数定義である。
図6は、実施の形態1における文字集合定義23の一例を示す図であり、図3の形式のクレジットカード番号に対応する。
図7は、実施の形態1における桁数定義24の一例を示す図であり、図3の形式のクレジットカード番号に対応する。
図8は、実施の形態1における除数定義25の一例を示す図であり、Luhnの式によるチェックディジット検査に対応する。
図9は、実施の形態1における剰余定義26の一例を示す図であり、Luhnの式によるチェックディジット検査に対応する。
図10において、桁位置:1は、クレジットカード番号の左端の桁であり、桁位置:19は、クレジットカード番号の右端の桁である。
前述のように、Luhnの式では、右端のチェックディジットを1番目として、偶数番目の桁を2倍にする。
このため、桁位置:19では、奇数番目の桁なので、入力文字の数値は2倍されず、入力文字の数値がそのままチェックディジット計算の結果として利用される。
一方、桁位置:18では、偶数番目の桁なので、入力文字の数値は2倍される。
入力文字が0〜4の場合は2倍後の数値(0、2、4、6、8)も1桁なので、チェックディジット計算の結果は、2倍後の数値(0、2、4、6、8)である。
一方、入力文字が5の場合は、5×2=10となり、「1」と「0」の加算結果である「1」がチェックディジット計算の結果となる。
同様にして、入力文字が9の場合は、9×2=18となり、「1」と「8」の加算結果である「9」がチェックディジット計算の結果となる。
図11において、31は外部個別状態遷移表であり、外部状態遷移表9の中に1又は複数の外部個別状態遷移表31が含まれ、図11ではN個の外部個別状態遷移表31が含まれている。
32は外部個別状態遷移表名、33は外部初期状態、34は外部受理状態、35は外部状態集合、36は外部状態遷移集合である。
図12は、外部状態遷移表9の名称が「CREDIT」であることを表している。
図13は、外部状態遷移表9の初期状態が、状態:S0であることを表している。
図14は、外部状態遷移表9の受理状態が、状態:S190であることを表している。
図15は、外部状態遷移表9に含まれる状態の状態名が定義されている。
図16、図17では、外部状態遷移表9における現状態と入力文字と次状態との関係が示されている。
例えば、現状態:S0のときに、決定性有限オートマトン14が入力文字として「0」を入力した場合には、次状態:S10に遷移することを表している。
図18において、41はNFA初期状態、42はNFA受理状態、43はNFA状態集合、44はNFA状態遷移集合である。
図19は、NFA状態遷移表11の初期状態が、状態:S0であることを表している。
図20は、NFA状態遷移表11の受理状態が、状態:S5であることを表している。
図21では、NFA状態遷移表11に含まれる状態の状態名が定義されている。
図22、図23、図24では、NFA状態遷移表11における現状態と入力文字と次状態との関係が示されている。
例えば、現状態:S1000のときに、決定性有限オートマトン14が入力文字として「0」を入力した場合には、次状態:S1010に遷移することを表している。
図25において、51はDFA初期状態、52はDFA受理状態、53はDFA状態集合、54はDFA状態遷移集合である。
図26は、DFA状態遷移表13の初期状態が、状態:S0であることを表している。
図27は、DFA状態遷移表13の受理状態が、状態:S3であることを表している。
図28では、DFA状態遷移表13に含まれる状態の状態名が定義されている。
図29、図30、図31では、DFA状態遷移表13における現状態と入力文字と次状態との関係が示されている。
例えば、現状態:S1000のときに、決定性有限オートマトン14が入力文字として「0」を入力した場合には、次状態:S1010に遷移することを表している。
図33は、実施の形態1における入力文字列4の第二の例を示す図である。
図34は、実施の形態1における入力文字列4の第三の例を示す図である。
以下では、図3の正規表現で表記されるクレジットカード番号、すなわち16桁の数字からなり、4桁ごとにハイフンで区切られた19文字の文字列で、右端の桁がLuhnの式によるチェックディジットとなっている文字列を検出する場合の動作を例に説明する。
次いで、照合部7が、DFA状態遷移表13を用いて入力文字列4の照合を行い、照合結果5を生成する(ステップS102)。
次いで、NFA状態遷移表生成部10が、正規表現検査条件2と外部状態遷移表9からNFA状態遷移表11を生成する(ステップS112)。
次いで、DFA状態遷移表生成部12が、NFA状態遷移表11からDFA状態遷移表13を生成する(ステップS113)。
次いで、状態遷移定義#nに対して手続き「個別状態遷移表の生成」を実行する(ステップS122)。
次いで、nに1を加え(ステップS123)、nが状態遷移定義の数Nを超えていなければステップS122を繰り返し、超えていれば終了する(ステップS124)。
本例では図12のように状態遷移表名「CREDIT」が設定される。
次に、外部状態遷移表生成部8は、初期状態33に初期状態の番号0を設定する(ステップS132)。
次に、外部状態遷移表生成部8は、受理状態34に、受理状態の番号PMを設定する(ステップS133)。
本例ではP=19(図7)、M=10(図8)からPM=190が設定される。
次いで、外部状態遷移表生成部8は、手続き「状態の生成」を実行する(ステップS131)。
次いで、外部状態遷移表生成部8は、手続き「状態遷移の生成」を実行する(ステップS134)。
次いで、外部状態遷移表生成部8は、手続き「個別状態遷移表の書き込み」を実行する(ステップS135)。
本例ではM=10、P=19となる。
次いで、外部状態遷移表生成部8は、初期状態S0を生成する(ステップS142)。
次いで、外部状態遷移表生成部8は、ステップS143〜S149にて、桁位置p=1,2,…P−1、剰余m=0,1,…(M−1)の組に対して状態を生成する。
まず、桁位置pを1とする(ステップS143)。
次いで、剰余mを0とする(ステップS144)。
次いで、状態Ss(p,m,M)を生成し、状態集合35に格納する(ステップS145)。
ただし、関数s(p,m,M)は、式3に従う。
s(p,m,M)=pM+m・・・(式3)
次いで、mに1を加え(ステップS146)、m≧Mすなわち全ての剰余に対して処理が完了したらステップS148に進み、そうでなければステップS145に進む(ステップS147)。
次いで、pに1を加え(ステップS148)、p≧PとなったらステップS150に進み、そうでなければステップS144に進む(ステップS149)。
次いで、受理状態SPM+Dを生成する(ステップS150)。
ただし、Dは受理剰余定義26にて指定された受理剰余である。
手続き「状態の生成」では状態遷移グラフのうち状態だけを生成しているので、図41には状態遷移を示す矢印は示されていない。
初期状態S0と受理状態SPM+Dがそれぞれ生成され、一方、ステップS143〜S149では(P−1)種類の桁位置とM種類の剰余の組に対して(P−1)M個の状態が生成される。
なお、受理剰余Dが複数ある場合はそれぞれの受理剰余に対して複数の受理状態を生成する。
以上の手続きにより生成された状態は外部状態集合35に格納される。
図15に本例における外部状態集合35の一例を示す。
図15は状態Siの番号iを示しており、状態S0(初期状態),S10,S11,…,S189,S190(受理状態)が生成されたことを示している。
以下では、現状態をSi入力文字をc、次状態をSj、とする状態遷移を(Si,c,Sj)と表記する。
本例では、M=10、P=19、C={0,1,2,3,4,5,6,7,8,9,−}となる。
以下、文字集合Cの各要素を{ck}(k=1,2,…|C|)と添字(文字番号)つきで表記する。
ただし、|C|は文字集合Cに含まれる要素数、すなわち文字の種類である。
次いで、外部状態遷移表生成部8は、ステップS162〜S175にて、桁位置p=1,2,…P、剰余m=0,1,…(M−1)、文字c=0,1,…,9,−の組に対して状態遷移を生成する。
まず、桁位置pを1とする(ステップS162)。
次いで剰余mを0とする(ステップS163)。
次いで文字番号kを1とする(ステップS164)。
次いで、変換関数定義27を参照し、桁位置=p、入力文字=ckの場合の剰余trans(p,ck)を求める(ステップS165)。
変換関数定義27は桁位置pと入力文字cの組に対して剰余の計算法を示すものであり、図10の例では、桁位置1,3,6,8,12,14,16,18は、「−」を除くと右端から偶数番目の桁に相当するので、Luhnの式の規則により、「各桁の値を2倍し、1桁の場合はその値を、2桁(10以上)になった場合は各桁の合計をとる」という規則に従って剰余を計算する。
すなわち、入力文字「0,1,2,3,4,5,6,7,8,9」が、それぞれ、剰余「0,2,4,6,8,1,3,5,7,9」に変換される。
ただし、数字でない文字「−」が出現した場合は正しい文字列形式ではないので剰余は変換不能(Xと表記)とする。
また、図10の桁位置2,4,7,9,12,14,17,19は「−」を除くと右端から奇数番目の桁に相当するので、Luhnの式の規則により、「各桁の値をとる」という規則に従って剰余を計算する。
すなわち、入力文字「0,1,2,3,4,5,6,7,8,9」が、それぞれ、剰余「0,1,2,3,4,5,6,7,8,9」に変換される。
ただし、数字でない文字「−」が出現した場合は正しい文字列形式ではないので剰余は変換不能(Xと表記)とする。
一方「−」が出現してもLuhnの式の剰余計算には影響しないので、剰余は0(不変)とする。
次に、現状態番号i、次状態番号jをそれぞれ、式4及び式5によって計算する(ステップS167)。
ただし、式5において、mod(x,y)は整数xを整数yで除算したときの剰余である。
i=(p−1)M+m・・・(式4)
j=pM+mod(trans(p,ck)+m,M)・・・(式5)
もし状態Si、状態Sjがともに存在する、すなわち手続き「状態の生成」によって生成済みであれば、ステップS169に進む。
状態Si、状態Sjの一方もしくは両方が存在しなければステップS170に進む(ステップS168)。
次いで、外部状態遷移表生成部8は、状態遷移(Si,ck,Sj)を生成し、外部状態遷移集合36に格納する(ステップS169)。
次いで、kに1を加え(ステップS170)、k>|C|すなわち文字集合Cに含まれる全ての文字に対して処理が完了したらステップS172に進み、そうでなければステップS165に進む(ステップS171)。
次いで、mに1を加え(ステップS172)、m≧Mすなわち全ての剰余に対して処理が完了したらステップS174に進み、そうでなければステップS164に進む(ステップS173)。
次いで、pに1を加え(ステップS174)、p>Pすなわち全ての桁に対して処理が完了したら終了し、そうでなければステップS163に進む(ステップS175)。
図16、図17に外部状態遷移集合36の一例を表の形式で示す。
図16、図17では、現状態と入力文字の組に対する次状態が示されており、例えば、現状態が10となっている行は状態S10において入力文字「0,1,2,3,4,5,6,7,8,9」が入力された場合の次状態が、それぞれ,「S20、S21、S22、S23、S24、S25、S26、S27、S28、S29」であり、入力文字「−」が入力された場合は次状態が存在しないことを示している。
図42は手続き「状態遷移の生成」によって生成される状態遷移グラフを示したものである。
ただし、表記の都合で図42では入力文字を省略している。
図43は図42の状態遷移グラフのうち、桁位置p=1に関わる部分を示したものである。
剰余の初期値はm=0なので、現状態Siは式4でp=1,m=0,M=10とすることにより、式6から、初期状態S0となる。
i=(p−1)M+m
=0 ・・・(式6)
一方、次状態Sjは入力文字ckごとに異なる。
入力文字「0,1,2,3,4,5,6,7,8,9,−」のそれぞれにつき、桁位置p=1の変換関数定義27に従って決まる次の剰余trans(1,ck)は「0,2,4,6,8,1,3,5,7,9,X(k=0,1,…9)」である。
入力文字「−」については変換不能のため状態遷移は生成できない。
それ以外の入力文字「0,1,2,3,4,5,6,7,8,9」について式5にp=1,m=0,M=10を適用すると、式7から、それぞれ次状態は「S10、S12、S14、S16、S18、S11、S13、S15、S17、S19」となる。
j=pM+mod(t+m,M)
=10+mod(trans(p,ck),10)
=10+trans(1,ck) ・・・(式7)
以上から、図43の矢印で表記される次の状態遷移が追加される。
(S0,0,S10)
(S0,1,S12)
(S0,2,S14)
(S0,3,S16)
(S0,4,S18)
(S0,5,S11)
(S0,6,S13)
(S0,7,S15)
(S0,8,S17)
(S0,9,S19)
現状態Siは、式4でp=2,m=1,M=10とすることにより、式8から状態S11となる。
i=(p−1)M+m
=11 ・・・(式8)
一方、次状態Sjは、入力文字ckごとに異なる。
入力文字「0,1,2,3,4,5,6,7,8,9,−」のそれぞれにつき、桁位置p=2の変換関数定義27に従って決まる次の剰余trans(2,ck)は「0,1,2,3,4,5,6,7,8,9,X(k=0,1,…9)」である。
入力文字「−」については変換不能のため状態遷移は生成できない。
それ以外の入力文字「0,1,2,3,4,5,6,7,8,9」について式5にp=2,m=1,M=10を適用すると、式9から、それぞれ次状態Sjは「S21、S22、S23、S24、S25、S26、S27、S28、S29、S20」となる。
j=pM+mod(t+m,M)
=20+mod(trans(p,ck)+1,10)・・・(式9)
以上から、図44の矢印で表記される次の状態遷移が追加される。
(S11,0,S21)
(S11,1,S22)
(S11,2,S23)
(S11,3,S24)
(S11,4,S25)
(S11,5,S26)
(S11,6,S27)
(S11,7,S28)
(S11,8,S29)
(S11,9,S20)
現状態Siは式4でp=5,M=10とすることにより、式10から、状態S40〜S49となる。
i=(p−1)M+m
=40+m ・・・(式10)
一方、次状態Sjであるが、入力文字「0,1,2,3,4,5,6,7,8,9,−」のそれぞれにつき、桁位置p=5の変換関数定義27に従って決まる次の剰余trans(5,ck)は「X,X,X,X,X,X,X,X,X,0(k=0,1,…9)」である。
すなわち、入力文字「0,1,2,3,4,5,6,7,8,9」については変換不能のため状態遷移は生成できない。
ck=「−」について式4、式5にp=5,M=10を適用すると、trans(p,ck)=0であるから、式11及び式12のようになる。
i=(p−1)M+m
=40+m ・・・(式11)
j=pM+mod(t+m,M)
=50+mod(m,10)
=50+m (0≦m<10より)・・・(式12)
すなわちm=0,1,…9に対して、図45の矢印で表記される次の状態遷移が追加される。
(S40,−,S50)
(S41,−,S51)
(S42,−,S52)
(S43,−,S53)
(S44,−,S54)
(S45,−,S55)
(S46,−,S56)
(S47,−,S57)
(S48,−,S58)
(S49,−,S59)
現状態Siは式4でp=19,M=10とすることにより、式13から、状態S180〜S189となる。
i=(p−1)M+m
=180+m・・・(式13)
一方、次状態Sjであるが、入力文字「0,1,2,3,4,5,6,7,8,9,−」のそれぞれにつき、桁位置p=19の変換関数定義27に従って決まる次の剰余trans(p,ck)は「0,1,2,3,4,5,6,7,8,9,X」である。
入力文字「−」については変換不能のため状態遷移は生成できない。
更に、式5において、状態の生成手順から状態の生成手順からSj(j≧PM)となるjはj=PMだけであり、従って、ステップS168において生成可能なjは、式14から、190の場合に限られる。
j=pM+mod(trans(p,ck)+m,M)
=190・・・(式14)
従って、式15を満足するm,ckの組について現状態がS180〜S189、次状態がS190となる状態遷移が生成される。
mod(trans(p,ck)+m,10)=0・・・(式15)
(ただし、p=19)
すなわちm=0,1,…9に対して、図46の矢印で表記される次の状態遷移が追加される。
(S180,0,S190)
(S181,9,S190)
(S182,8,S190)
(S183,7,S190)
(S184,6,S190)
(S185,5,S190)
(S186,4,S190)
(S187,5,S190)
(S188,6,S190)
(S189,1,S190)
以下では、NFA状態遷移表生成部10の入力となる正規表現検査条件2の一例として図2に示す正規表現検査条件2を使用する場合について示す。
図47および図48において<>で囲われた記号は非終端記号を表す。
図48の構文規則では図47に示す構文規則に対して非終端記号<external_def>の定義が追加されており(符号4801、4802)、図48の<external_def>の定義に示されている<identifier>により状態遷移名定義32を指定する。
本実施の形態では、図12のように「CREDIT」という状態遷移名が指定されているものとする。
次いで、公知のNFA生成の手順と同様の手順により、正規表現検査条件2から図48の構文規則に従い、公知の方法を使用して、正規表現を1文字ずつ読み取りながら字句解析、構文解析を行い、NFA状態遷移表11を生成する。
この過程で、<external_def>が検出されると、図49に示す手順を実行する。
本例では、正規表現検査条件2の3文字目すなわち「=」を読んだ直後には図50に示す中間的なNFA状態遷移表46が生成されている。
図50のNFA状態遷移表46を状態遷移グラフで表現すると図51のようになる。
状態遷移グラフの生成手順によっては、中間的な状態遷移グラフの中に図52に示すように冗長な空文字遷移が含まれる場合があるが、このような場合であっても同様の手順でNFA状態遷移表11を生成することが可能であるので、本例では図50のNFA状態遷移表が生成されたものとして説明する。
次に、正規表現検査条件2の(??{CREDIT}??)の部分を読むことにより「CREDIT」を<identifier>とする<external_def>が検出され、図49の外部定義出現時の処理が実行される。
次いで、NFA状態遷移表生成部10は、外部状態遷移集合に含まれる状態遷移をNFA状態遷移表11に追加する(ステップS182)。
この時、外部状態遷移集合36に含まれる状態とNFA状態遷移表11の状態の番号が重複しないように、外部状態遷移集合36から追加された状態に一意の番号を割り当てる。
本例の場合、例えば、外部状態遷移集合36から追加された状態の番号に一律1000を加え、外部状態遷移集合36の初期状態S0から初期状態に由来する状態S1000、外部状態遷移集合36の受理状態S190から受理状態に由来する状態S1190などを生成する。
次いで、NFA状態遷移表生成部10は、現在の状態を現状態、外部状態遷移集合36の初期状態に由来する状態を次状態とする空文字(ε)による遷移をNFA状態遷移表11に追加する(ステップS183)。
本例では(S3,ε,S1000)という状態遷移を追加する。
この段階の状態遷移グラフは図53の通りとなる。
次いで、NFA状態遷移表生成部10は、新しい状態を生成し、NFA状態遷移表11に追加する(ステップS184)。
本例では追加された状態をS4とする。
次いで、NFA状態遷移表生成部10は、外部状態遷移集合36の受理状態に由来する状態を現状態とし、ステップS184にて生成された状態を次状態とする空文字による遷移を追加する(ステップS185)。
本例では(S1190,ε,S4)という状態遷移が追加される。
この段階の状態遷移グラフは図54の通りとなる。
以上の手順が、<external_def>が検出されるたびに実行される。
本例では、図18〜図24に示すNFA状態遷移表11、すなわち図54の状態遷移グラフから空文字遷移を含む非決定的状態遷移を除去することにより、図25〜図31のDFA状態遷移表13が生成される。
図25〜図31のDFA状態遷移表13を状態遷移グラフの形式で表記すると図55のようになる。
照合部7により、文字列パタンの検出とチェックディジットの検査が同時に行われることを例により示す。
本例ではまず初期状態S0において入力文字「N」を読むと、DFA状態遷移表13において状態S0と入力文字「N」に対応する次状態がS1であることから、状態S1に遷移する。
以下、図56に示すとおり、入力文字「o,=,4,0,2,3,−,…」を順次読み進めると状態「S2、S1000、S1018、S1028、S1032、S1045、S1055・・・」と読み進め、最後に入力文字#を読むと受理状態S3に到達する。
すなわち図32の入力文字列は決定性有限オートマトン14により受理され、文字列パタンの検出と同時にチェックディジットの検査に成功するので、パタンが検出されたことを示す照合結果5を出力する。
本例では、第一の例の正当なチェックディジット「3」を「0」で置き換えている。
本例では図57に示すとおり、入力文字「N,o,=,4,0,2,3,−,…」を順次読み進めると状態「S0、S1、S2、S1000、S1018、S1028、S1032、S1045、S1055・・・」と読み進めるが、状態S1187にて文字「0」を読むと、次状態が存在しないため、照合に失敗する。
すなわち図33の入力文字列4決定性有限オートマトン14により受理されず、パタンが検出されなかったことを示す照合結果5を出力する。
本例では図58に示すとおり、入力文字「N,o,=,4,0,2,3,−,…」を順次読み進めると状態「S0、S1、S2、S1000、S1018、S1028、S1032、S1045、S1055・・・」と読み進めるが、状態S1088にて文字「A」を読むと、次状態が存在しないため、照合に失敗する。
すなわち図34の入力文字列4決定性有限オートマトン14により受理されず、パタンが検出されなかったことを示す照合結果5を出力する。
s=(P−2)M+2・・・(式16)
t=(P−d)M+(d−2)・m2・・・(式17)
本例のLuhnの式によるクレジットカード番号検査の場合、P=19、d=16、M=10であり、s=172、t=1430となる。
従って、状態、状態遷移の数とも、今日のコンピュータを用いて容易に保持できる規模である。
このように、本実施の形態によれば、長大な正規表現検査条件を記述することなく有限オートマトンを用いた文字列パタンの検出とチェックディジット検査を同時に実行するという効果を奏する。
実施の形態1では外部状態遷移定義3から外部状態遷移表9を生成するものとしたが、予め外部状態遷移表9を人手等により作成しておきそれを入力としてもよい。
実施の形態2では、実施の形態1における外部状態遷移表9を文字列照合装置1の入力とする。
本実施の形態では、NFA状態遷移表生成部10が外部状態遷移表9を入力し、NFA状態遷移表記憶部110に外部状態遷移表9を格納し、正規表現検査条件2を入力した際に、NFA状態遷移表記憶部110から外部状態遷移表9を読み出して、実施の形態1で説明した手法により、NFA状態遷移表11を生成する。
これ以外の動作は、実施の形態1と同様である。
なお、本実施の形態では、NFA状態遷移表生成部10は、検査条件取得部、状態遷移情報更新部の例に相当するとともに、状態遷移情報入力部の例に相当する。
また、NFA状態遷移表記憶部110が状態遷移情報記憶部の例に相当する。
例えば、クレジットカード番号は桁ごとに対象とする種類や割り当て可能な値が決められているので、一部の種類のカードに限定した状態遷移表を事前に作成し、それを入力とすることにより、種類を限定したクレジットカード番号の検出を行ったり、割り当ての行われていない数値を除外することにより、より精度良くクレジットカード番号の検出を行うことが可能になる。
実施の形態1では外部状態遷移定義3からDFA状態遷移表13を生成し、決定性有限オートマトン14の入力とするものとしたが、NFA状態遷移表11を非決定性有限オートマトンの入力としてもよい。
実施の形態3では、実施の形態1における決定性有限オートマトン14の代わりに非決定性有限オートマトン15を使用する。
本実施の形態では、NFA状態遷移表生成部10がNFA状態遷移表記憶部110で記憶されているNFA状態遷移表11を非決定性有限オートマトン15に出力する。
これ以外の動作は、実施の形態1と同様である。
なお、本実施の形態では、NFA状態遷移表生成部10は、検査条件取得部、状態遷移情報更新部の例に相当するとともに、状態遷移情報出力部の例に相当する。
このため、実施の形態1において、正規表現検査条件2や外部状態遷移定義3の指定内容によっては、DFA状態遷移表13の規模が極めて大きくなり、処理が困難になる場合がある。
決定性有限オートマトン14の代わりに非決定性有限オートマトン15を使用することにより、よりサイズの小さいNFA状態遷移表11を入力として処理を行うことができる。
また、各桁の数字を合計する「チェックサム」や、「パリティチェック」も剰余を利用するチェックディジットの一種とみなすことができ、実施の形態1〜3に示した方式を適宜変更して文字列パタンの検出と同時に正当性の検査を行うことができる。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、実施の形態1〜3に限定されるものではなく、必要に応じて種々の変更が可能である。
現状態と文字の組に対し次状態を記述した状態遷移を1または複数個含む外部状態遷移表、
外部状態遷移表と正規表現で記述された検査条件から、状態遷移表を生成する状態遷移表生成部、
入力文字列と状態遷移表から照合結果を出力する有限オートマトン。
状態遷移表生成部は、正規表現で記述された検査条件から生成される状態において空文字により外部状態遷移表の初期状態に遷移する状態遷移を生成する。
状態遷移表生成部は、外部状態遷移表の受理状態から空文字により正規表現で記述された検査条件の状態に遷移する状態遷移を生成する。
文字集合、桁数、除数と、桁位置と文字の組に対する剰余を記述する変換関数から成る外部状態遷移定義を備え、
外部状態遷移定義から外部状態遷移表を生成する外部状態遷移表生成部を備えることを説明した。
図61は、実施の形態1〜3に示す文字列照合装置1のハードウェア資源の一例を示す図である。
なお、図61の構成は、あくまでも文字列照合装置1のハードウェア構成の一例を示すものであり、文字列照合装置1のハードウェア構成は図61に記載の構成に限らず、他の構成であってもよい。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。
これらは、記憶装置の一例である。
実施の形態1〜3で説明した「〜記憶部」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
文字列照合装置1の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記憶媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「情報処理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (11)
- オートマトンによる検査に用いられる、状態遷移パスが表される状態遷移情報を1つ以上記憶する状態遷移情報記憶部と、
正規表現で記述され、いずれかの状態遷移情報の識別子が選択識別子として含まれている検査条件を取得する検査条件取得部と、
前記選択識別子に対応する状態遷移情報である選択状態遷移情報を前記状態遷移情報記憶部から読み出すとともに、前記検査条件内の記述のうち前記選択識別子以外の記述に対応する状態遷移パスを生成し、生成した状態遷移パスを前記選択状態遷移情報の状態遷移パスに追加して、前記選択状態遷移情報から新たな状態遷移情報を生成する状態遷移情報更新部とを有することを特徴とする情報処理装置。 - 前記状態遷移情報記憶部は、
初期状態と受理状態とを有し、初期状態から受理状態に至るまでの状態遷移パスが表される状態遷移情報を1つ以上記憶し、
前記検査条件取得部は、
前記選択識別子に先行する記述である先行記述と、前記選択識別子に後続する記述である後続記述と、前記選択識別子とで構成される検査条件を取得し、
前記状態遷移情報更新部は、
前記検査条件内の先行記述に対応する状態遷移パスである先行記述状態遷移パスを生成するとともに、先行記述状態遷移パス内の最後尾の状態を前記選択状態遷移情報の初期状態に連結し、前記検査条件内の後続記述に対応する状態遷移パスである後続記述状態遷移パスを生成するとともに、後続記述状態遷移パス内の先頭の状態を前記選択状態遷移情報の受理状態に連結し、前記先行記述状態遷移パス内の先頭の状態を新たな初期状態とし、前記後続記述状態遷移パス内の最後尾の状態を新たな受理状態とする新たな状態遷移情報を生成することを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記状態遷移情報更新部により生成された新たな状態遷移情報から、非決定的状態遷移を除去する状態遷移情報修正部を有することを特徴とする請求項1又は2に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記状態遷移情報更新部により生成された新たな状態遷移情報、又は、前記状態遷移情報修正部により非決定的状態遷移が除去された後の状態遷移情報を、前記オートマトンに出力する状態遷移情報出力部を有することを特徴とする請求項3に記載の情報処理装置。 - 前記状態遷移情報記憶部は、
非決定性有限オートマトンによる検査に用いられる状態遷移情報を記憶しており、
前記状態遷移情報出力部は、
前記状態遷移情報更新部により生成された新たな状態遷移情報を、前記非決定性有限オートマトンに出力することを特徴とする請求項4に記載の情報処理装置。 - 前記状態遷移情報記憶部は、
決定性有限オートマトンによる検査に用いられる状態遷移情報を記憶しており、
前記状態遷移情報出力部は、
前記状態遷移情報修正部により非決定的状態遷移が除去された後の状態遷移情報を、前記決定性有限オートマトンに出力することを特徴とする請求項4に記載の情報処理装置。 - 前記状態遷移情報記憶部は、
前記オートマトンが、前記オートマトンに入力される複数桁の文字列に対して、桁ごとの文字の適性検査と桁ごとのチェックディジット検査とを並行して行うことができる状態遷移情報を1つ以上記憶していることを特徴とする請求項1〜6のいずれかに記載の情報処理装置。 - 前記情報処理装置は、更に、
前記オートマトンが、前記オートマトンに入力される複数桁の文字列に対して、桁ごとの文字の適性検査と桁ごとのチェックディジット検査とを並行して行うことができる状態遷移情報を生成する状態遷移情報生成部を有し、
前記状態遷移情報記憶部は、
前記状態遷移情報生成部により生成された状態遷移情報を記憶していることを特徴とする請求項7に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記オートマトンが、前記オートマトンに入力される複数桁の文字列に対して、桁ごとの文字の適性検査と桁ごとのチェックディジット検査とを並行して行うことができる状態遷移情報を入力する状態遷移情報入力部を有し、
前記状態遷移情報記憶部は、
前記状態遷移情報入力部により入力された状態遷移情報を記憶していることを特徴とする請求項7に記載の情報処理装置。 - オートマトンによる検査に用いられる、状態遷移パスが表される状態遷移情報を1つ以上記憶する状態遷移情報記憶部を有するコンピュータが行う情報処理方法であって、
正規表現で記述され、いずれかの状態遷移情報の識別子が選択識別子として含まれている検査条件を前記コンピュータが取得する検査条件取得ステップと、
前記コンピュータが、前記選択識別子に対応する状態遷移情報である選択状態遷移情報を前記状態遷移情報記憶部から読み出すとともに、前記検査条件内の記述のうち前記選択識別子以外の記述に対応する状態遷移パスを生成し、生成した状態遷移パスを前記選択状態遷移情報の状態遷移パスに追加して、前記選択状態遷移情報から新たな状態遷移情報を生成する状態遷移情報更新ステップとを有することを特徴とする情報処理方法。 - オートマトンによる検査に用いられる、状態遷移パスが表される状態遷移情報を1つ以上記憶する状態遷移情報記憶部を有するコンピュータに、
正規表現で記述され、いずれかの状態遷移情報の識別子が選択識別子として含まれている検査条件を取得する検査条件取得ステップと、
前記選択識別子に対応する状態遷移情報である選択状態遷移情報を前記状態遷移情報記憶部から読み出すとともに、前記検査条件内の記述のうち前記選択識別子以外の記述に対応する状態遷移パスを生成し、生成した状態遷移パスを前記選択状態遷移情報の状態遷移パスに追加して、前記選択状態遷移情報から新たな状態遷移情報を生成する状態遷移情報更新ステップとを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012246410A JP6012414B2 (ja) | 2012-11-08 | 2012-11-08 | 情報処理装置及び情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012246410A JP6012414B2 (ja) | 2012-11-08 | 2012-11-08 | 情報処理装置及び情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014095993A JP2014095993A (ja) | 2014-05-22 |
JP6012414B2 true JP6012414B2 (ja) | 2016-10-25 |
Family
ID=50939025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012246410A Active JP6012414B2 (ja) | 2012-11-08 | 2012-11-08 | 情報処理装置及び情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6012414B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7466274B2 (ja) * | 2017-12-19 | 2024-04-12 | グローリー株式会社 | 自動取引装置、自動取引システム、自動取引方法、及び自動取引プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3852757B2 (ja) * | 2002-02-05 | 2006-12-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 文字列照合方法、これを用いた文書処理装置及びプログラム |
JP4047053B2 (ja) * | 2002-04-16 | 2008-02-13 | 富士通株式会社 | 繰り返しを含む順序パターンを用いた検索装置および方法 |
JP2004240766A (ja) * | 2003-02-06 | 2004-08-26 | Toshiba Corp | パターン検出処理プログラム生成システムおよびパターン検出処理プログラム生成方法 |
WO2010018710A1 (ja) * | 2008-08-13 | 2010-02-18 | 日本電気株式会社 | 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム |
CN102075511B (zh) * | 2010-11-01 | 2014-05-14 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据匹配设备和方法以及网络入侵检测设备和方法 |
-
2012
- 2012-11-08 JP JP2012246410A patent/JP6012414B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014095993A (ja) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830314B2 (en) | Error correction in tables using a question and answer system | |
CN106796585A (zh) | 条件验证规则 | |
JP5911878B2 (ja) | 双方向テキストチェッカー | |
Lobo et al. | Identifying human phenotype terms by combining machine learning and validation rules | |
US11687534B2 (en) | Method and system for detecting sensitive data | |
KR20190095099A (ko) | 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치 | |
JP2017041171A (ja) | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 | |
Tsai et al. | Rtlfixer: Automatically fixing rtl syntax errors with large language models | |
CN114936158A (zh) | 一种基于图卷积神经网络的软件缺陷定位方法 | |
JP6012414B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP6451417B2 (ja) | デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム | |
JP6790905B2 (ja) | 検出方法、検出装置および検出プログラム | |
JP5799823B2 (ja) | テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法 | |
JP2000181807A (ja) | 記録媒体のデータ検査方法及び装置 | |
JP6123372B2 (ja) | 情報処理システム、名寄せ判定方法及びプログラム | |
US20170031892A1 (en) | System and method for representing sequences of bits | |
JP6369269B2 (ja) | 検証支援装置、検証支援方法およびコンピュータプログラム | |
JP5808264B2 (ja) | コード生成装置及びコード生成方法及びプログラム | |
JP2010237909A (ja) | 知識補正プログラム、知識補正装置および知識補正方法 | |
JP6954806B2 (ja) | 不具合検出装置、及び不具合検出方法 | |
Wang et al. | MeTMaP: Metamorphic Testing for Detecting False Vector Matching Problems in LLM Augmented Generation | |
JP2016040707A (ja) | ソフトウェア検証プログラム、ソフトウェア検証方法及びソフトウェア検証装置 | |
CN115244539B (zh) | 单词或词段词元化的推断方法 | |
JP6556091B2 (ja) | システム仕様検証支援装置及びシステム仕様検証支援方法 | |
JP7355303B2 (ja) | レセプトデータ有意性判定プログラム、レセプトデータ有意性判定方法、及び、情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160816 |
|
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: 20160823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160920 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6012414 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |