JP5224953B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP5224953B2
JP5224953B2 JP2008185780A JP2008185780A JP5224953B2 JP 5224953 B2 JP5224953 B2 JP 5224953B2 JP 2008185780 A JP2008185780 A JP 2008185780A JP 2008185780 A JP2008185780 A JP 2008185780A JP 5224953 B2 JP5224953 B2 JP 5224953B2
Authority
JP
Japan
Prior art keywords
transition
state
node
constraint
partial structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008185780A
Other languages
English (en)
Other versions
JP2010026689A (ja
Inventor
光生 小柳
祐太 坪井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008185780A priority Critical patent/JP5224953B2/ja
Priority to US12/494,559 priority patent/US8407261B2/en
Publication of JP2010026689A publication Critical patent/JP2010026689A/ja
Priority to US13/408,706 priority patent/US8495101B2/en
Application granted granted Critical
Publication of JP5224953B2 publication Critical patent/JP5224953B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、自然言語解析技術に関し、より詳細には、テキスト情報のパターン照合を省メモリかつ計算効率高く実現するための情報処理装置、情報処理方法およびプログラムに関する。
近年、コンピュータおよびインターネットなどの高速大容量通信基盤が普及してきたことから、膨大な数の非定型なテキスト情報が作成されて蓄積されるようになり、非構造化情報であるテキスト情報を活用することの重要性がますます高まっている。特に最近、テキスト情報を扱うために、自然言語解析処理を施して、種々の階層レベルの意味情報を抽出して活用しようとする技術の開発が活発である。
従来からの自然言語解析処理では、まず、例えば形態素解析など適切な文字列解析方法を使用して、日本語や中国語やタイ語など分かち書きの慣例の無い言語では単語などの単位に分割して、またフランス語やドイツ語など慣例上分かち書きされる言語ではそのまま、各単語に対して品詞等をタグ付け(Part-of-Speech Tagging)が行われる。続いて、複数の単語間の関係から、より上位の意味を表す意味表現が抽出される。
テキスト情報から意味表現を抽出しようとする場合、一般に、特定の応用目的に応じて求める情報が異なるため、抽出対象となる表現を辞書化した編集可能なパターンが定義されて提供される。定義されるパターンは、より具体的には、各単語の文字列表現、正規形および品詞情報に対する1以上の制約の配列によって、各単語に対する局所的な文法構造、より具体的には、単語の出現およびその順序を定義付ける。このような単語列のパターンを用いて抽出される意味情報としては、係り受け関係を挙げることができる。
以下、従来からの係り受け関係の抽出処理について、図14を参照して説明する。例えば、図14に示す「パソコンの設定を変更したら、インターネットに接続できなくなった。」という文章500は、形態素解析により、「パソコン(名詞)」、「の(助詞)」、「設定(名詞)」、「を(助詞)」、「変更(名詞)」、「し(する/動詞)」、「たら(助動詞)」、「、(読点)」、・・・「でき(できる:動詞)」、「なく(助動詞)」、「なっ(動詞)」、「た(助動詞)」および「、(句点)」といった単語に分割され、各単語に品詞情報および、適宜、正規形などがタグ付けされ、形態素解析データ502が得られる。
得られた形態素解析データ502に対して、「(名詞)」「を|に(助詞)」「(名詞)」「する|できる(動詞)」という並びで定義された制約の配列パターン504を用いて、係り受け解析処理が適用されると、上記制約の配列パターン504にマッチする「設定を−変更する」および「インターネットに−接続できる」という係り受け関係が抽出される。
従来技術では、係り受け関係を定義する制約の配列パターン504と文章500とのパターン照合処理は、複数の配列パターンを同時に処理するために、配列パターン504をTRIE(prefix tree)(以下、トライ木として参照する。)と呼ばれる順序付き木構造に格納し、入力文章に対して非決定性有限オートマトン(Non-deterministic Finite Automaton:NFA)として適用するアルゴリズムを用いて行われていた。
一方、トライ木を用いたパターン照合処理では、その実装において計算量およびメモリ使用量を充分に考慮しなければならない。NFAを充分な実用性をもって実装するために、NFAを等価な決定性有限オートマトン(Deterministic Finite Automaton:DFA)に変換することは従来から知られている。しかしながら、NFAからDFAへの変換では、メモリ使用量が増大するため、計算効率とメモリ使用量との間には、トレードオフの関係を有する。単純な文字一致の照合処理において、NFAからDFAに変換することにより処理効率が向上させる技術を開示するものとしては、以下の文献が知られている(非特許文献1、非特許文献2、非特許文献3)。さらに、非特許文献4は、メモリ使用量を低減させるために、ダブル配列構造を採用することによってトライ木構造をコンパクト化する技術を開示している。
A. V. Aho and M. J. Corasick, "Efficient String Matching: An Aid to Bibliographic Search", Communications of the ACM,Vol. 18, No. 6, pp. 333−340 (1975). H. Maruyama "Backtracking-Free dictionary Access Method for Japanese Morphological Analysis", Proceedings ofthe 15th International Conference on Computational Linguistics, Vol. 1, pp.208-213 (1994). 森信介, 「DFAによる単語解析の高速化」,情報処理学会研究報告 自然言語処理研究会報告,Vol. 96, No. 65, pp. 101-107 (Jul 1996). J. Aoe, "An Efficient Digital Search Algorithm by using a Double-Array Structure", IEEE Transactions on Software Engineering, Vol. 15, No. 9, pp.1066-1077 (1989).
しかしながら、上記従来技術のトライ木をNFAとして適用するアルゴリズムでは、入力テキスト情報の各単語に対して、トライ木の各状態とバックトラックさせながら照合してゆく必要があり、マッチする単語数の平均値nと、入力文書の単語数mとに対し、計算量O(nm)が必要とされ、計算効率の観点から充分なものではなかった。
また、単純な文字一致の照合処理におけるNFAからDFAに変換する方法を、制約の配列パターンの照合処理に対して適用しようとしても、単純に拡張することはできない場合があった。例えば、単語の配列による辞書パターンを用いる場合には、単にトライ木に文字の代わりに単語を格納することで拡張することができる。しかしながら、単語が正規表現によって表される場合、単純に単語の配列として処理するだけでは不充分であり、単語集合の配列として処理する必要がある。したがって、正規表現を考慮して、単語集合の配列のトライ木をDFAへ変換する必要があった。
本発明は、上記問題点に鑑みてなされたものであり、本発明は、正規表現を含む場合であっても、制約パターンとテキスト情報との照合処理を、省メモリかつ高い計算効率で実現することを可能とする情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
本発明では、上記課題を解決するために、情報処理装置は、それぞれ複数の制約から構成される1以上の制約パターンから、各制約を遷移条件としたノード間の遷移エッジが定義付けられた順序付き木構造を生成し、生成された順序付き木構造の基本構造に対し、ノード間の追加の遷移リンクを定義付ける。上記追加の遷移リンクは、各遷移エッジの遷移条件間の集合関係を判定して、ルートノードからの第1の部分構造(つまりプレフィックス)に相似する第2の部分構造を探索し、この第2の部分構造の末尾ノードから第1の部分構造の末尾の子ノードへ、集合関係から特定される不確定部分の満たすべき制約を付加して定義付けられる。
上記構成により定義付けられたデータ構造を参照してパターン照合処理を実行するオートマトンは、上記追加の遷移リンクを介して状態間を遷移させ、1以上の制約パターンを表現する順序付き木構造を効率的に渡り歩き、対象の入力情報中の各制約パターンにマッチした部分を特定することが可能となる。また、上記追加の遷移リンクは、遷移元の上記第2の部分構造の末尾までマッチした場合に、第1の部分構造にもマッチしたと見なすために満たすべき不確定部分に対する制約が追加的に定義されているため、正規表現を含む制約パターンについても、効率的なパターン照合を実現することができる。加えて、上記追加の遷移リンクは、遷移エッジの遷移条件間の集合関係を判定しつつ定義されるため、最小限の遷移リンクのみが定義され、もって、メモリ使用量を低減することが可能となる。
本発明では、さらに、末尾ノードが終了状態である第1の部分構造に相似する第2の部分構造が見つかった場合に、第2の部分構造の末尾ノードから、末尾が終了状態である第1の部分構造の末尾ノードへ、不確定部分の制約を条件とした参照リンクを定義付けることができる。参照リンクが定義付けられたデータ構造を参照してパターン照合処理を実行するオートマトンは、順序付き木構造を渡り歩いている間、参照リンクの元となる状態に到達した段階で、不確定部分の最小限の再評価のみで、リンク先の終了状態に対応する出力を発生させることができるため、より高い計算効率にてパターン照合の結果出力を行うことが可能となる。
本発明では、探索の際には、遷移条件が同値、被包含、包含または交差の関係にある遷移エッジによって接続されたノード列を、相似する部分構造として特定することができる。遷移条件の同意性および不確定性が集合関係によって判定することができるため、順序付き木構造中の自己相似構造が効率的に探索される。
さらに本発明では、遷移先となる第1の部分構造の末尾ノードからの遷移条件が、遷移元となる第2の部分構造の末尾ノードからの遷移条件に対し、被包含および同値のいずれの関係にも無かった場合に、上記追加の遷移リンクを定義付けることができる。この構成によれば、上記第2の部分構造の末尾ノードからの遷移が起こらなかった場合であっても起こり得る遷移リンクのみが追加されるため、最小限の遷移リンクが定義され、もってメモリ使用量を低減することが可能とされる。
また本発明では、遷移先となる第1の部分構造のノードからの遷移条件が、遷移元となる第2の部分構造の末尾ノードからの遷移条件に対し被包含または交差の関係にある場合に、該対応する遷移エッジを前記不確定部分として、該遷移条件の制約を該不確定部分の制約として記録することができる。この構成によれば、第2の部分構造側の遷移が起こった場合であっても、対応する第1の部分構造側の遷移が起こることが不確定である場合に、当該不確定な部分のみの追加の条件が生成されるため、パターン照合の際には、本質的に必要な条件のみが再評価されるため、不要な条件による判定が回避される。
本発明では、また、上記制約パターンを構成する制約のそれぞれは、単語の文字列表現、正規形または品詞情報に対する1以上の制約の要素を含むことができる。制約パターンのデータ構造は、制約の列構造、木構造、または該木構造を列構造として表現した構造を有するデータ構造とすることができる。
さらに本発明では、入力情報と、定義付けられた前記データ構造により表現される1以上の制約パターンとを照合するオートマトンを生成することができる。また本発明では、さらに、オートマトンは、決定性有限オートマトンとすることができる。本発明では、オートマトンは、記憶装置が記憶する1以上の制約パターンを表現する上記データ構造を参照しながら、入力情報と前記制約パターンとをパターン照合することができる。
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
以下の実施形態では、パターン照合処理によりテキスト情報から所与のパターン構造に一致する意味表現を省メモリかつ効率的に抽出するためのオートマトンを生成し、またパターン照合処理によりテキスト情報から意味表現の抽出を行なうオートマトンを計算機上に実現するコンピュータ装置10を例として説明する。
図1は、本実施形態のコンピュータ装置10の機能ブロックを示す。図1に示すコンピュータ装置10は、概ねパーソナル・コンピュータ、ワークステーションまたはメインフレームなどとして構成されている。図1に示すコンピュータ装置10に含まれる各機能部(詳細は後述する。)は、メモリ上にプログラムを展開し、プログラムの実行により各ハードウェア資源を動作制御することによって、コンピュータ装置10上に実現される。
本実施形態のコンピュータ装置10は、パターン照合処理を行うオートマトン80が参照するデータ構造を定義付ける照合構造定義部50を含んで構成される。照合構造定義部50は、トライ木生成部60を含んで構成され、トライ木生成部60は、1以上の単語列パターン150の入力を受けて、TRIE(prefix tree:以下、トライ木として参照する。)と呼ばれる順序付き木構造を構築し、トライ木のデータ構造を定義付けるトライ木構造データ110を生成する。上記単語列パターン150は、テキスト情報から意味表現の抽出を行うために予め辞書化された、各単語の文字列表現、正規形または品詞情報に対する制約の配列として定義される。以下、生成されるトライ木のデータ構造について、図2を参照して説明する。
図2(A)は、上記1以上の単語列パターン150から生成されるトライ木のデータ構造を例示する模式図である。トライ木200のデータ構造は、ルートノード202を頂点として、上位のノードから下位のノードへの順序が定められたエッジ204により接続されたノード206,208から構成され、いわゆる木構造を有している。
図2(A)に示す各ノード206,208は、トライ木200を適用した場合にオートマトンが取り得る状態を表し、エッジに付された「a」、「b」や、「b|c」といった記号は、接続する上位ノードから下位ノードへ遷移するにあたり満たすべき遷移条件を表している。トライ木200が適用されたオートマトンは、入力単語列に対しパターン照合処理を実行する際に、ルートノード202に対応する開始状態sを始点として、入力された単語列と付された遷移条件とが一致するエッジを経路として状態間を渡り歩き、木構造上の葉ノード208に対応する終了状態に到達すると、結果出力を生成する。これにより、入力単語列から、トライ木200が表現する1以上の単語列パターンにマッチする単語列が抽出されることとなる。つまり、トライ木200は、入力された1以上の単語列パターン150を表現するデータ構造ということができる。
しかしながら、図2(A)に示すトライ木200をオートマトンに適用した場合、マッチする分岐点までその都度バックトラックしながら照合を進める必要がある。さらに、入力単語列の先頭の単語から始まる単語列に対するパターン照合が完了した後、再び入力単語列の次の単語から始まる単語列がオートマトンに入力が与えられて、入力単語列のすべての単語位置から始まる単語列に対し繰り返されることとなる。そこで、図1に示す本実施形態の照合構造定義部50は、パターン照合の計算効率を向上させるために、変換処理部70を含んで構成されている。変換処理部70は、生成されたトライ木のノード間に、適宜リンクを付加して、トライ木に付加されたリンクを定義付ける付加リンク構造データ120を生成して、トライ木の構造を決定性オートマトン(以下、DFAとして参照する。)の構造に変換する。変換処理部70は、より具体的には、相似構造探索部72と、遷移リンク定義部74と、終了状態リンク定義部76とを含んで構成される。
以下、変換処理部70による変換処理の概要について、再び図2を参照して説明する。図2(B)は、図2(A)に示すトライ木200から変換されたデータ構造210を例示する。図2(B)に示すデータ構造210は、図2(A)に示すトライ木200に対して、さらに、ノード間に条件付き遷移リンク214、遷移リンク216、条件付き終了状態リンク218など、エッジ以外の接続リンクが付加された構造を有している。
図2(A)に示すトライ木200について、より詳細な説明を加えると、図2(A)に示すトライ木200は、パターンA「a(b|c)」、パターンB「ab(a|c)」、パターンC「b(a|c)b」として表現される3つの単語列パターンから生成されたものを一例として示している。ここで、各パターンにおける「a」、「b」や、「(b|c)」といった各記号は、各単語の文字列表現、正規形または品詞情報に対する1以上の制約を表し、トライ木200においてはエッジの遷移条件となる。また、「(b|c)」および「(a|c)」の記号は、選言を表し、正規表現による単語集合を配列要素として含む単語列パターンの一例として示したものである。
図2(A)に示すトライ木200を考察すると、例えば、入力単語列がパターンB「ab(a|c)」にマッチすることが確認された段階(状態s)で、入力単語列の後部分がパターンCの「b(a|c)」の部分にもマッチすることを確定できることが判る。そこで、本実施形態では、パターンCの「b(a|c)」の部分までの比較を省略し、入力単語列中の続く単語とパターンCの残りの「b」の部分との比較を引き続き行えるように、ノード212dからノード212cへの遷移リンク216を付加する。この遷移リンク216が付加されることにより、パターン照合の際、オートマトンが状態sに達した場合に、引き続き、次の単語が遷移(s→s)と同一の遷移条件を満たすことを確認して、状態sから状態sまでの遷移を与えることが可能となる。
また、入力単語列がパターンA「a(b|c)」にマッチすることが確認された段階では、入力単語列の後部分がパターンCの「b」の部分までマッチしている可能性があることが判る。そこで、本実施形態では、不確定性を含む入力単語列中の「(b|c)」にマッチした単語が、確かに「b」にマッチすることを確認して、入力単語列中の続く単語とパターンCの「(a|c)」との比較を引き続き行えるように、ノード212aからノード212bへの条件付き遷移リンク214を付加する。
また、入力単語列がパターンC「b(a|c)b」にマッチすることが確認された段階では、後部分がパターンA「a(b|c)」の末尾までマッチしている可能性があることが判る。そこで、本実施形態では、不確定性を含む入力単語列の「(a|c)」に対応する単語が、確かに「a」にマッチすることを確認して、パターンA「a(b|c)」の比較を省略して結果出力が行えるように、終了状態リンク218を付加する。この例では、リンク先に遷移するために満たすべき制約を含んでいるため、この制約が参照条件として付され、条件付き終了状態リンクとなる。
図1に示す相似構造探索部72は、トライ木200のエッジ204に付された遷移条件間に対して集合演算を適用することによって、これらの間の同意性を判定し、上記遷移リンクおよび終了状態リンクを付すべきノード、および追加のリンクに付すべき制約を判定する。より具体的には、相似構造探索部72は、まず、遷移条件間に対する集合演算によりその同意性を判定しながら、ルートノード202を始点として接続されるノードから成る任意の長さの部分構造(以下、プレフィックスとして参照する。)に対し、相似関係にあるトライ木200中の部分構造を探索する。ここで、相似関係とは、同意性を有しつつも、部分的に一致の不確かさを有する部分構造の関係をいう。なお、厳密一致する同一の部分構造の関係も、相似関係に含むものとする。
図2に示す例では、sから始まる状態列sをプレフィックスとすると、状態列(s)、状態列(s)および状態列(s)が相似関係にある部分構造として特定され、状態sへの遷移が不確定な部分として特定されることとなる。この場合、状態sから状態sへの遷移の条件が満たされるからといって、必ずしもsからsへの遷移の条件が満たされるとは限らない不確かさを有し、そのため再評価が必要となる。また、sから始まる状態列(s−s)をプレフィックスとすると、状態列(s−s)が相似関係にある部分構造として特定されることとなる。なお、相似構造の探索処理については、詳細を後述する。
再び図1を参照すると、上記遷移リンク定義部74は、相似構造探索部72により探索された、プレフィックスに対し相似関係にある部分構造について、その末尾ノードから対応するプレフィックス末尾の子ノードへの遷移リンクを適宜追加的に定義付けて、付加リンク構造データ120に登録する。その際に、相似関係にある部分構造がプレフィックスと厳密一致するとみなすために満たさなければならない不確定部分の制約を、遷移リンクに対し付加的に定義付ける。
上記終了状態リンク定義部76は、同様に、プレフィックスと相似関係にある部分構造について、その末尾ノードからプレフィックスの末尾ノードへの終了状態リンクを適宜追加的に定義付けて、付加リンク構造データ120に終了状態リンクを登録する。その際に、遷移リンクの場合と同様に、不確定部分の制約を終了状態リンクに対する条件として定義付ける。
そして、上記照合構造定義部50は、トライ木を定義付けるトライ木構造データ110および付加リンクを定義付ける付加リンク構造データ120を含む照合データ構造100に従ってパターン照合を行うオートマトン80を生成する。オートマトン80は、コンピュータ装置10のメモリ上に上記照合データ構造100を読み出して、単語列から構成される入力文書130の入力を受け、予め定義され上記照合データ構造100により表現される単語列パターンに対するパターン照合処理を実行し、入力文書から所望の意味表現を抽出し、結果出力140を与える。
以下、本実施形態の照合データ構造100に格納される単語パターンおよび照合対象の入力情報について説明する。図3は、入力テキスト情報から所望の意味表現を抽出するために定義される単語パターンのデータ構造を示す模式図である。図3(A)は、各単語の文字列表現、正規形または品詞情報に対する制約の並びとして定義される単語列パターンを示す。図3(A)に示す単語パターンを用いる場合、入力テキスト情報は、各単語の文字列表現、正規形または品詞情報を含む単語情報の配列として与えることができる。このような、単語の文字列表現、正規形または品詞情報などは、形態素解析などの文字列解析手法により抽出することができる。
一方、自然言語処理において、文章は、係受解析器(Dependency Parser)を用いて文章中の単語同士の係受け関係を抽出することによって、係り受け木と呼ばれる木構造により表現することができる。係受け木では、主語−述語間の関係など、文章中で必ずしも隣接しない単語間のより深い関係を表現することができる。本発明では、意味表現を抽出するために定義される単語パターンおよび入力テキスト情報のデータ構造として、係受け木を採用することもできる。図3(B)は、木構造として表現される単語木パターンを例示する。図3(A)に示す木構造の単語木パターンを用いる場合、入力テキスト情報は、同様に、木構造化された単語情報の配列として与えることができる。
木構造として表現される単語木パターンの計算機上での実装は、特に限定されるものではないが、DFSエンコーディング(深さ優先探索エンコーディング:Depth First Search Encoding)と呼ばれる、木構造を列構造に変換する処理を適用して、トライ木に格納することができる。図3(C)は、DFSエンコーディングにより図3(B)に示す単語木パターンから変換された列構造を示す。上記DFSエンコーディングでは、木構造を深さ優先の順序でノード列を生成し、木構造上の上位ノードへ戻る位置に特別なノードを挿入する。図3(C)に示す例では、「いつでも」と、その兄弟ノードである「に|へ」のノードの間に、「−1」で示される一段上に戻ることを表す特別なノードが挿入されている。なお、DFSエンコーディングに関する詳細は、Mohammed J. Zaki, ”Efficiently Mining Frequent Trees in a Forest”, 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, July 2002を参照することができる。
なお、本実施形態では、説明の簡単のため、単語に対する文字表現、正規形また品詞に対する制約の並びとして定義される単語列パターンを用いた場合を例に説明するが、他の実施形態では、木構造により表現された単語パターンを採用することを妨げるものではない。以下、パターン照合のための照合データ構造100を生成する処理およびパターン照合処理について、各処理段階ごとに分けて、より詳細に説明する。
(1)トライ構造の生成処理
まず、本実施形態のトライ木生成部60は、入力された1以上の単語列パターン150からトライ木を生成する。トライ木は、取り得る状態の集合S、終了状態の集合E(⊆S)、遷移の集合T(S×C→S)を含んで構成される。状態の集合Sは、初期状態sを含む有限の状態(s,s,…s)から構成される。終了状態の集合Eの各要素には、出力関数が定義されており、照合の際にオートマトンの状態が終了状態に達すると、予め定義された出力関数に応じたアクションを発生させ、例えば、マッチした単語列、単語列パターンに付属する意味情報などを出力する。遷移の集合Tは、遷移条件c(∈C)を全て満たす場合に起こる状態sを起点とし状態sを終点とする遷移t(=<s,s,C>)から構成される。ここで、遷移条件の要素c(=<d,w>)は、入力単語列中の判定対象部分のd番目に位置する単語が制約wを満たすという条件である。また状態sは、その状態sからの遷移の深さを表す階層レベルL(s)を有し、状態sの階層レベルL(s)は、「0」に基準付けされている。
トライ木生成部60は、各単語の文字列表現、正規形または品詞情報に対する1以上の制約の並びとして定義される1以上の単語列パターンから、文字を制約とする文字列照合の場合と同様の手順により、トライ木を生成する。なお、トライ木構造の具体的な実装は、特に限定されるものではなく、三重配列構造や二重配列構造など如何なるデータ構造を採用または拡張して実装することができる。
(2)トライ構造からDFA構造への変換
(2−1)自己相似構造の探索
変換処理部70は、単語列パターンからトライ木が生成された後、トライ木からDFAへ変換する。変換処理においては、相似構造探索部72は、トライ木の構造中、任意のノードを始点とするエッジおよびノードからなるパス(以下、部分状態列として参照する)Kと、ルートノードを始点とするエッジおよびノードからなるパス(以下、プレフィックス状態列として参照する。)Pとの比較を、すべての部分状態列Kおよびプレフィックス状態列Pの組み合わせについて実行し、部分状態列K側からプレフィックス状態列P側へのリンクの要否を判定する。
ここで、上記部分状態列Kは、状態の集合S(⊆S)および遷移の集合Tから構成され、遷移の集合Tは、部分状態列Kのi番目の状態s から下位の状態s i+1への遷移t (=<s ,s i+1,C >))から構成される。上記プレフィックス状態列Pは、状態の集合S(⊆S)および遷移の集合Tから構成され、遷移の集合Tは、プレフィックス状態列Pのi番目の状態s から下位の状態s i+1への遷移t (=<s ,s i+1,C >))から構成される。上記プレフィックス状態列Pは、少なくとも初期状態sからの遷移を含んで構成される。
上記比較では、まず部分状態列Kの始点とするための任意の状態s を選択し、該状態s を起点とした遷移t と、ルートノードs (=s)を起点とする遷移t とを比較して集合関係を求め、同意性が確認された場合、さらに下位の遷移t と遷移t との比較へと進め、同意性が得られなくなるまで遷移t と遷移t との比較を続ける。また、相似構造探索部72は、比較処理中、遷移t と遷移t との集合関係から、状態s を起点とし状態s i+1を終点とした遷移リンク、および状態s を起点とし状態s を終点とした終了状態リンクの付加の要否を判定する。さらに、相似構造探索部72は、比較処理中、遷移t と遷移t との集合関係から、部分状態列K側のノードからプレフィックス状態列P側のノードに遷移または参照させる際に、付加的に満たすべき不確定部分の制約を記録する。
(2−2)集合関係
部分状態列Kにおけるi番目の遷移t の遷移条件C と、プレフィックス状態列Pにおけるi番目の遷移t の遷移条件C との集合関係を、集合演算から求める。表1に、集合演算から求められる集合関係と、遷移リンクの要否、および不確定部分の制約の記録の要否との関係を示す。
Figure 0005224953
表1に示すように、プレフィックス状態列P側の遷移条件C が、部分状態列K側の遷移条件C と同値(EQUALS)の関係に有る場合、状態s から状態s i+1への遷移が起こる場合には、状態s から状態s i+1への遷移も起こり、また、部分状態列K側の遷移が起こらない場合には、状態s から状態s i+1への遷移も起こり得ない。したがって、遷移リンクを付加しない。
一方、遷移条件C が遷移条件C を包含し、包含(INCLUDES)の関係に有る場合には、状態s から状態s i+1への遷移が起こる場合には、状態s から状態s i+1への遷移も起こるが、一方、部分状態列K側の遷移が起こらない場合であっても、状態s から状態s i+1への遷移が起こる可能性がある。したがって、遷移リンクを付加する。
また、遷移条件C が遷移条件C に包含され、被包含(INCLUDED)の関係に有る場合には、状態s から状態s i+1への遷移が起こる場合であっても、状態s から状態s i+1への遷移が起こるか不確定であるため、プレフィックス状態列P側の遷移条件C と、部分状態列K側の遷移の階層レベルL(s )とを対応付けて、不確定部分の制約を格納する不確定要素リストに登録する。一方、部分状態列K側の遷移が起こらない場合には、状態s から状態s i+1への遷移も起こり得ないため、遷移リンクは付加しない。
遷移条件C と遷移条件C とが交差(INTERSECTS)の関係に有る場合には、状態s から状態s i+1への遷移が起こる場合であっても、状態s から状態s i+1への遷移が起こるか否かが不確定であるため、遷移条件C と、階層レベルL(s )とを対応付けて不確定要素リストに登録する。さらに、部分状態列K側の遷移が起こらない場合であっても、状態s から状態s i+1への遷移が起こる可能性があるため、遷移リンクを付加する。
遷移条件C と遷移条件C とが排他(EXCLUDES)の関係に有る場合には、状態s から状態s i+1への遷移が起こる場合には、状態s から状態s i+1への遷移が起こり得ず、また、部分状態列K側の遷移が起こらない場合であっても、状態s から状態s i+1への遷移が起こる可能性がある。したがって、遷移リンクを付加する。
相似構造探索部72による自己相似構造の探索においては、上記排他以外の関係(同値、包含、被包含および交差の関係)にある遷移条件が付された構造に対し、同意性のあるものとして判定し、より下位の比較を進めて行く。これにより、同意性を有しつつも、部分的に一致の不確かさを有する相似構造が特定されることとなる。
(2−3)条件付き遷移リンクの生成
上述したように、追加の遷移リンクは、パターン照合において、ある単語が部分状態列K側の遷移条件C にマッチしなかった場合であっても、プレフィックス状態列P側の遷移条件C にマッチする可能性がある場合に、部分状態列K側の状態s を起点としプレフィックス状態列P側の状態s i+1を終点として生成されるものである。相似構造探索部72は、プレフィックス状態列Pに対して、全ての遷移条件が排他ではない部分状態列Kが存在し、かつ、該部分状態列Kの末尾ノードを起点とする全ての遷移がプレフィックス状態列Pの末尾ノードを起点とする遷移に対して、同値(EQUALS)でも被包含(INCLUDED)でもない部分状態列Kおよびプレフィックス状態列Pのセットを探索する。
相似構造探索部72は、上記のセットが見つかった場合、遷移リンク定義部74を呼び出して、追加の遷移tct(=<s ,s n+1,C∩C >)を生成させる。ここで、nは、相似関係にある構造の末尾を識別し、つまり状態s は、現在の処理対象の部分状態列Kの同意性が確認された末尾ノードに対応し、状態s n+1は、プレフィックス状態列Pの末尾ノードs の子ノードに対応する。上記遷移条件の集合Cは、プレフィックス状態列Pの遷移条件C のうち、遷移条件C との間で被包含または交差の関係にある遷移条件から構成され、不確定部分の満たすべき制約を表す。上記遷移条件C は、プレフィックス状態列Pの末尾ノードs からその子ノードs n+1への遷移t (=<s ,s n+1,C >))における遷移条件C である。遷移tctは、エイホ・コラシック法の失敗関数と同様にメモリを節約するように機能し、さらに、1回の単語の読み込みに対して、ただ1回だけ遷移するDFAの特性を与える。
(2−4)条件付き終了状態リンクの生成
上述したように、追加の終了状態リンクは、パターン照合において、ある単語が部分状態列K側の遷移条件C にマッチした場合、プレフィックス状態列P側の遷移条件C にマッチしている可能性がある場合に、状態s から状態s への生成される参照リンクである。相似構造探索部72は、プレフィックス状態列Pに対して、全ての遷移条件が排他ではない部分状態列Kが存在し、かつ、プレフィックス状態列Pの末尾ノードが終了状態である部分状態列Kおよびプレフィックス状態列Pのセットを探索する。
相似構造探索部72は、上記のセットが見つかった場合、終了状態リンク定義部76を呼び出して、部分状態列Kの末尾ノードs を条件付き終了状態s (=<s ,C>)とする。条件Cは、条件付き遷移リンクの場合と同様に、不確定部分の満たすべき制約を表し、遷移条件C のうち、遷移条件C との間で被包含または交差にある遷移条件から構成される。条件付き終了状態s は、s への条件付き参照として表現される。パターン照合においては、オートマトンが条件付き終了状態s に達した場合、不確定部分の制約Cが満たされた場合に、他の終了状態と同様に、結果出力を行う。この結果出力は、参照先の終了状態s に定義付けられた出力関数を参照して行うことができる。
部分状態列Kの末尾の状態s は、終了状態リンク定義部76により生成されて初めて終了状態となる。一方、探索中、現在の処理対象である部分状態列Kの状態s は、他の処理では、プレフィックス状態列Pの末尾ノードs としても選択されるため、後の処理でプレフィックス状態列Pの末尾ノードs が終了状態となった場合には、部分状態列Kの状態s も終了状態とする必要がある。したがって、相似構造探索部72は、探索中においては、プレフィックス状態列Pの末尾ノードが終了状態であるか否かにかかわらず、終了状態である可能性として記録し、一巡した後、トライ木を再探索する。そして、終了状態である可能性として記録されたノードが確かに終了状態であることを確認して、終了状態リンク定義部76を呼び出して、条件付き終了状態s の生成を決定する。
(2−5)データ構造の最適化
上述したように、遷移リンク定義部74により、相似関係にある部分状態列Kの末尾ノードからプレフィックス状態列P末尾の子ノードへ、各遷移の集合関係に応じて追加の遷移が生成される。しかしながら、本実施形態の処理によれば、各追加の遷移リンクが異なる不確定部分の制約を持ちうるために、1つの遷移元ノードに対して遷移先の異なる複数の追加の遷移リンクが定義される可能性がある。一方、パターン照合の際には、オートマトンが保持する文脈を残すためにも、マッチする遷移のうち、可能な限りプレフィックスの長い、つまり階層レベルが深い遷移先へ遷移させることが好ましい。そこで、付加リンク構造データ120においては、追加の遷移リンクを階層レベルの深さの順にソーティングする。これによって、遷移の際には、最も長いプレフィックスへ効率的に遷移させることが可能となる。
(3)DFA変換処理の例示
以下、図4および図5を参照して、変換処理における部分的なの処理に注目して、変換処理の手順を例示する。図4および図5は、変換処理の部分的な処理を例示する模式図である。
図4(A)は、同値の集合関係を有する部分状態列Kおよびプレフィックス状態列Pに関する処理を示す。図4(A)において、状態sへの遷移の条件(b)と、状態sへの遷移の条件(b)とは、集合演算から同値(EQUALS)であると判定される。この場合、表1に示す関係から、状態sからの追加の遷移リンクは生成されず、相似構造探索部72は、判定した部分に同意性が得られたことを記録する。一方、次の比較では、状態sに子が存在しないため、空の条件(Φ)と、プレフィックス状態列Pの状態sへの遷移の条件(a|b)との集合演算となり、排他(EXCLUDES)であると判定される。
これまでの判定で、1以上の同意性が確認され、かつ、状態sに子が存在しないため、遷移リンク定義部74は、状態s(s )から、対応する状態s(s )の子ノードs(s n+1)への遷移リンクを生成する。この遷移リンクにより、パターン照合の際には、状態sから状態sへの遷移も試されることとなる。状態sに、排他以外の関係がある子ノードが存在しないため、相似構造探索部72は、部分状態列Kおよびプレフィックス状態列Pの当該組み合わせに関する処理を完了させ、次の組み合わせ(K,P)に処理を進める。
図4(B)は、包含の集合関係を有する部分状態列Kおよびプレフィックス状態列Pに関する処理を示す。図4(B)において、状態sへの遷移の条件(b)と、状態sへの遷移の条件(b)とは、集合演算から同値(EQUALS)であると判定されるため、同意性が得られたことのみを記録する。
次の比較では、状態sから、その子の状態sへの遷移の条件(a)と、プレフィックス状態列Pのsへの遷移の条件(a|b)との集合演算を行い、この場合、包含(INCLUDES)の関係であると判定される。また、状態sは、もうひとつの子ノードsを有するため、その子の状態sへの遷移の条件に対する判定を待って、追加の遷移リンクの要否を判定する。これまでの判定で、1以上の同意性が確認され、かつ、状態sからの全ての遷移が、プレフィックス状態列Pの末尾の遷移に対し同値でも被包含でもないため、遷移リンク定義部74は、状態s(s )から状態s(s n+1)への遷移リンクを生成する。この遷移リンクにより、パターン照合の際に、状態sからのトライ木のいずれの遷移条件ともマッチできなかった場合に、状態sから状態sへの遷移も試されることとなる。
図4(B)において、さらに次の比較では、状態sには子ノードが存在しないため、空の条件(Φ)と、プレフィックス状態列Pのsへの遷移の条件(b|c)との集合演算となり、排他(EXCLUDES)であると判定される。この場合、これまでの判定で1以上の同意性が確認され、かつ、状態sには子ノードが存在しないため、遷移リンク定義部74は、状態s(s )から状態s(s n+1)への遷移リンクを生成する。この遷移リンクにより、パターン照合の際に、状態sから状態sへの遷移も試されることとなる。
図5(A)は、被包含の集合関係を有する部分状態列Kおよびプレフィックス状態列Pに関する処理を示す。図5(A)において、状態sへの遷移の条件(a|b)と、状態sへの遷移の条件(a)とは、集合演算から被包含(INCLUDED)であると判定される。したがって、相似構造探索部72は、状態sから状態sへ遷移の深さを示す階層レベルL(s)と、プレフィックス状態列P側の遷移の条件(a)とを対応付けて、不確定要素リストに記録する。また、集合演算から被包含(INCLUDED)であると判定されたため、状態sからの遷移リンクを生成せず、同意性が得られたことをのみを記録する。
次の比較では、状態sから、その子の状態sへの遷移の条件(b|c)と、プレフィックス状態列Pの状態sからsへの遷移の条件(b)との集合演算となり、被包含(INCLUDED)の関係が判定される。相似構造探索部72は、状態sから状態sへ遷移の深さを示す階層レベルL(s)と、プレフィックス状態列P側の遷移の条件(b)とを対応付けて、不確定要素リストに記録する。これまでの判定で、1以上の同意性が確認されているものの、この比較において被包含(INCLUDED)の関係が判定されたため、状態sからの追加の遷移リンクを生成せず、同意性が得られたことを記録する。
一方、プレフィックス状態列P側の状態sが終了状態であるため、終了状態リンク定義部76は、部分状態列K側の状態sを、これまで不確定要素リストに記録された制約を参照条件とした条件付き終了状態を生成する。この例では、参照条件として「W1=a&W2=b」(ここでWLは階層レベルLの位置に対する追加の制約であることを示す。)が付加される。
図5(B)は、交差の集合関係を有する部分状態列Kおよびプレフィックス状態列Pに関する処理を示す。図5(B)において、状態sへの遷移の条件(b)と状態sへの遷移の条件(b)とは、集合演算から同値(EQUALS)であると判定される。したがって、この比較では、同意性が得られたことをのみを記録する。
次の比較では、状態sから、その子の状態sへの遷移の条件(a|c)と、プレフィックス状態列Pのsからsへの遷移の条件(a|b)との集合演算となり、交差(INTERSECT)の関係が判定される。これまでの判定で1以上の同意性が確認され、かつ、状態sからの全ての遷移が、プレフィックス状態列Pの末尾の遷移に対し同値でも被包含でもないため、状態s(s )から、対応する状態sの子ノードの状態s(s n+1)への遷移リンクを生成する。一方、交差(INTERSECT)の関係が判定されたため、状態sからの遷移の深さを示す階層レベルL(s)と、プレフィックス状態列P側の遷移の条件(a|b)とを対応付けて、不確定要素リストに記録する。
図5(B)において、さらに次の比較では、状態sには子ノードが存在しないため、空の条件(Φ)と、プレフィックス状態列Pのsへの遷移の条件(b|c)との集合演算となり、排他(EXCLUDES)であると判定される。この場合、これまでの判定で1以上の同意性が確認され、かつ、状態sには子ノードが存在しないため、遷移リンク定義部74は、状態s(s )から状態s(s n+1)への遷移リンクを生成する。この例では、遷移条件として(W2=a|b)が追加の条件として付加され、条件付遷移リンクとなる。
(4)DFA変換処理の全体処理フロー
以下、図6および図7を参照して、トライ木からDFAの構造へ変換するまでの全体処理フローを説明する。図6は、本実施形態のコンピュータ装置10が実行する変換処理を示す第1のフローチャートである。図6に示す処理は、トライ木の生成が完了した後、照合構造定義部50に呼び出されて、ステップS100から開始される。図6に示すDFA変換処理Aは、部分状態列Kの判定処理の開始点とする状態s と、プレフィックス状態列Pの判定処理の開始点である状態sとが引数として与えられて開始される。
ステップS101では、当該状態s を開始点とする処理に対し、不確定要素リスト(IndeterminantList)を新たに生成する。ステップS102では、上述する開始点の状態s と、状態sと、生成した不確定要素リスト(IndeterminantList)とを引数として与えて、図7に示すDFA変換処理Bを呼び出す。最後の引数は、これまで同意性が確認されたか否かを表すフラグであり、DFA変換処理Aから呼び出す場合には、初期値として「FALSE」を与える。なお、DFA変換処理Bについては、詳細を後述する。
ステップS103からステップS105までのループでは、状態s を起点とする各遷移について、ループ内のステップS104の処理を繰り返す。ステップS104では、状態s を起点とする遷移について、DFA変換処理A自身を再帰的に呼び出す。再帰呼び出しの際には、当該遷移による状態s の次の状態s と、プレフィックス状態列Pの判定処理の開始点である状態sとが引数として与えられる。自身に制御が戻され、ステップS103からステップS105までのループが終了すると、ステップS106で、当該DFA変換処理Aの処理を終了させ、呼び出し元の処理に制御を渡す。
図6に示す再帰的なDFA変換処理Aにより、最初に開始点として与えた状態s 以下のトライ木を構成するすべてのノードを開始点とした部分状態列Kとプレフィックス状態列Pとの判定処理が開始されることとなる。以下、図6に示すステップS102で呼び出されるDFA変換処理Bについて、図7を参照して説明する。
図7は、本実施形態のコンピュータ装置10が実行する変換処理を示す第2のフローチャートである。図7に示すDFA変換処理Bは、図6に示すステップS102で呼び出されて、または自身の処理から再帰的に呼び出されて、ステップS200から開始される。DFA変換処理Aから呼び出された場合、部分状態列K側の開始点s と、プレフィックス状態列P側の開始点sと、新規生成された不確定要素リスト(IndeterminantList)と、これまで同意性が確認されたか否かを表すフラグの初期値「FALSE」とが引数として引き渡されることとなる。図7に示す処理の説明においては、それぞれ、状態s ,状態s ,不確定要素リスト(indeterminants)、フラグ(isMatchedBefore)として参照する。
ステップS201では、与えられたプレフィックス状態列P側の状態s が終了状態に対応するか否かの判定を行う。ステップS201で、状態s が終了状態であると判定された場合(YES)には、ステップS218へ処理を分岐させ、一方、状態s が終了状態では無いと判定された場合(NO)には、ステップS202へ処理を分岐させる。
ステップS202からステップS216までのループでは、状態s を起点とする各遷移について、ループ内の処理が繰り返される。ステップS203では、追加の遷移の要否を表すフラグ(isTransition)を初期値「FALSE」にセットする。ステップS204からステップS213までのループでは、状態s を起点とする各遷移について、当該ループ内の処理が繰り返される。
ステップS205では、ステップS202からステップS216までのループ、およびステップS204からステップS213までのループにより指定される状態s からの各遷移および状態s からの各遷移の組み合わせについて、集合演算を適用し、集合関係を特定する。ステップS206では、求められた集合関係に従って判定して、処理を選択的に分岐させる。
ステップS206で、集合関係が被包含であると判定された場合(INCLUDED)には、ステップS207へ処理を選択的に分岐させる。ステップS207では、遷移の要否を表すフラグ(isTransition)を「FALSE」の値に上書きし、ステップS208では、ループにより指定される状態s からの遷移の遷移条件C と、部分状態列K側の階層レベルL(s )とを対応付けて、不確定要素リスト(indeterminants)に記録する。
ステップS209では、DFA変換処理B自身を再帰的に呼び出す。再帰呼び出しの際には、ループにより指定される遷移に続く次の状態s 、状態s 、ステップS208で要素が記録された不確定要素リスト(indeterminants)、同意性が確認されたことを表すフラグ(isMatchedBefore)の値「TRUE」を引数として与える。再帰呼び出しから制御を戻されて、ステップS210では、不確定要素リスト(indeterminants)から、ステップS208で加えた遷移条件C を除き、ステップS213へ処理を進める。
ステップS206で、集合関係が交差であると判定された場合(INTERSECT)には、ステップS208へ処理を選択的に分岐させる。ステップS208では、集合関係が被包含であると判定された場合と同様に、ループにより指定される状態s からの遷移の遷移条件C と、部分状態列K側の階層レベルL(s )とを対応付けて、不確定要素リスト(indeterminants)に記録する。
ステップS209では、集合関係が被包含であると判定された場合と同一の引数を与えて、DFA変換処理B自身を再帰的に呼び出す。再帰呼び出し先の処理から制御を戻されて、ステップS210では、不確定要素リスト(indeterminants)から、ステップS208で加えた遷移条件C を除き、ステップS213へ処理を進める。
ステップS206で、集合関係が同値であると判定された場合(EQUALS)には、ステップS211へ処理を選択的に分岐させる。ステップS211では、遷移の要否を表すフラグ(isTransition)を「FALSE」の値に上書きし、ステップS212では、集合関係が被包含または交差であると判定された場合と同一の引数を与えて、DFA変換処理B自身を再帰的に呼び出す。再帰呼び出しから制御を戻されると、ステップS213へ処理を進める。
ステップS206で、集合関係が包含であると判定された場合(INCLUDES)には、ステップS212へ処理を選択的に分岐させる。ステップS212では、集合関係が同値であると判定された場合と同様に、DFA変換処理B自身を再帰的に呼び出し、再帰呼び出しから制御を戻されて、ステップS213へ処理を進める。一方、ステップS206で、集合関係が排他であると判定された場合(EXCLUDES)、ステップS213へ処理を選択的に分岐させる。上記ステップS209およびステップS212による再帰呼び出しは、すべての遷移が排他(EXCLUDES)の関係となるか、または状態S が終了状態に達するまでネストされることとなる。
ステップS204からステップS213までのループを抜け出すと、ステップS214へ処理が進められる。ステップS214では、フラグ(isTransition)から遷移の要否を判定する。このフラグ(isTransition)は、状態s を起点とする遷移が、被包含(INCLUDED)および交差(INTERSECTS)のいずれか1つの関係を有する少なくとも1つの遷移を含む場合、「FALSE」を保持していることとなる。また、図6に示すDFA変換処理Aから呼び出され、かつ状態s を起点とする遷移が、すべて排他(EXCLUDE)の関係であった場合にも、同意性が一度も確認されていないため、フラグ(isTransition)は、「FALSE」を保持していることとなる。一方、少なくとも1以上の同意性が確認され、かつ、状態s を起点とする遷移が、状態s を起点とするすべての遷移に対して同値および被包含のいずれの関係にも該当しない場合には、「TRUE」を保持していることとなる。
ステップS214で、追加の遷移が要であると判定された場合(YES)には、処理をステップS215へ分岐させる。ステップS215では、遷移リンク定義部74が呼び出されて、再帰呼び出しの文脈により指定される状態s から、ループおよび再帰呼び出しの文脈により指定される状態s への遷移リンクを生成し、ステップS216へ処理を進める。ステップS215において、遷移リンクを生成する際には、不確定要素リスト(Indeterminants)に記録されている遷移条件の要素を、当該遷移リンクの条件として付加する。例えば、一度、被包含または交差の関係であるとして、ステップS208で不確定要素リスト(Indeterminants)に要素が加えられて、ステップS209で再帰呼び出しが行われた場合であって、再帰呼び出し先処理で、すべての遷移が交差、包含または排他の関係であるとして、ステップS215に進められた場合、不確定要素リスト(Indeterminants)には要素が残されていることとなる。
一方、ステップS214で、追加の遷移が不要であると判定された場合(NO)には、処理をステップS216へ直接分岐させる。ステップS202からステップS216までのループを抜け出すと、ステップS217へ処理が進められて、当該DFA変換処理Bを終了させて、呼び出し元の処理へ制御を戻す。
ステップS201で、状態s が終了状態であると判定された場合(YES)には、ステップS218へ処理が分岐され、ステップS218では、再帰呼び出しの文脈により指定される状態s から状態s への終了状態リンクを生成し、ステップS217へ処理を進め、当該DFA変換処理Bの呼び出し元の処理へ制御を戻す。ステップS218において、終了状態リンクを生成する際には、不確定要素リスト(Indeterminants)に記録されている遷移条件の要素を、当該終了状態リンクの参照の条件として付加する。
図8は、図6および図7に示した変換処理を実装するためのプログラミングコードの擬似コードを示す。図8に示す擬似コード中、「void makeDFATransitions(State state, State iniState)」文で定義されたメソッドが、図6にフローチャートで示したDFA変換処理Aに対応し、「void makeDFATransitions(State srcState, State destState, List<Pattern> indeterminants, boolean isMatchedBefore )」文で定義されたメソッドが、図7にフローチャートで示したDFA変換処理Bに対応する。また、図8に示す擬似コード中、「generateEndTransition (srcState, destState, indeterminants)」および「geneDFATransition (srcState, destTr, indeterminants)」は、それぞれ、終了状態リンク定義部76および遷移リンク定義部74の処理を実行するメソッドに対応する。
(5)DFA変換出力例
以下、図9および図10を参照して、変換処理後の結果出力を例示する。図9は、入力される単語列パターンのデータ構造を例示する。図9に示す単語列パターンは、XML(eXtensible Markup Language)のタグにより記述されており、<mi>タグにて単語列パターンが定義されている。<mi>タグ内にネストされた<w>タグによって単語列パターンに含まれる単語およびその順序が定義付けられ、str属性は、単語の文中に現れる文字列表現(字面)を示し、lex属性は、単語の辞書中の文字列表現(原型)を示す。それぞれの表現には、正規表現を含むことができる。つまり、これらの単語列パターンは、str属性により文中に現れる単語の字面にマッチし、lex属性によりその単語の辞書表現(原型)にマッチするよう設計されており、単語が内包する種々の情報に対する制約を含んで構成されている。
図10は、(A)図9に示す単語列パターンから生成されるトライ木、および(B)トライ木から変換される照合データ構造を一例として模式的に示す。図9に示す単語パターンが入力された場合、まず、図10に示すルートノードを始点として実線矢印で示すエッジにより接続された複数のノードからなるトライ木220が生成される。図10中の各ノードに記した番号は、図9に示す単語列パターンのデータ構造中<w>タグのid属性の値に対応し、エッジに記した記号は、<w>タグのstr属性およびlex属性の値に対応する。
また、図10(A)には、トライ木220から取り出したノード列222が示されている。ノード列222中のノード(6)への遷移条件は、トライ木220のノード(17)への遷移条件に対し同意性を有し、またノード列222中のノード(6)からノード(7)への遷移条件は、トライ木220のノード(17)から終了状態ノード(18)への遷移条件と同意性を有している。したがって、ノード(7)から終了状態ノード(18)へ終了状態リンクが生成される。その参照条件は、部分状態列Kとに対する不確定部分の制約(W1,W2)が適宜付されることとなる。
また、またノード列222中のノード(7)への遷移条件は、トライ木220のノード(17)からノード(20)への遷移条件と排他の関係を有している。したがって、ノード(7)の親ノード(6)からノード(20)へ遷移リンクが生成される。その遷移条件は、部分状態列Kに対する不確定部分の制約(W1)が適宜付されることとなる。同様に、ノード列222中の終了状態ノード(8)への遷移条件は、トライ木220のノード(2)への遷移条件と同値の関係を有し、ノード(8)の子ノードが存在しないため、ノード(8)からノード(3)およびノード(6)へ、遷移リンクが生成されることとなる。図10(B)は、図9に示した単語列パターンから最終的に得られる照合データ構造を例示する。
(6)パターン照合処理
以下、本実施形態の照合構造定義部50によりトライ木生成処理および変換処理により定義付けられる照合データ構造100を参照してパターン照合を実行するオートマトン80の処理について、図11を参照して説明する。
本実施形態のオートマトン80は、入力単語を保持する単語リストとともに用いられる。単語リストは、初期状態sに戻ると一度空にされて、状態を遷移する毎に、その際にマッチした単語を順に格納してゆく。遷移リンクを介した遷移では、遷移先の状態の階層レベルに応じて単語リストに格納された単語列の長さを切り詰めて、単語リスト中のインデックスが常にトライ木のパスに応じた個数と一致するようにする。不確定要素リスト中の要素の階層レベルと、単語リストの比較すべき単語の位置とが一致することとなり、効率的にパターン照合を行うことが可能となる。
図11は、本実施形態のコンピュータ装置10が実行するパターン照合処理を示すフローチャートである。図11に示す処理は、外部指令などに応じてオートマトン80が呼び出されて、ステップS300から開始される。ステップS301では、オートマトン80の状態sを、ルートノードに対応する初期状態sにセットし、保持する単語数nが0である空の単語リストの格納領域を確保する。ステップS302では、次に処理すべき単語が入力文書130中に存在するか否かを判定する。
ステップS302で、処理すべき単語が存在しないと判定された場合(YES)には、ステップS313へ分岐させて、パターン照合処理を終了する。一方、ステップS302で、処理すべき単語が存在すると判定された場合(NO)には、ステップS303へ処理を進める。ステップS303では、入力文書130から次の単語を読み出して、遷移条件との比較を行うために、一時的に単語リストの最後尾に追加する。
ステップS304では、オートマトン80は、照合データ構造100を参照して、現在の状態sを起点とした遷移の条件と、単語リストの最後尾に追加された単語との比較を行い、マッチする遷移を検索する。このとき、追加された条件付き遷移リンクについては、不確定部分の位置が階層レベルにより示されているため、単語リスト中の対応する位置の単語が満たすべき制約を満たしているか否かについても判定する。ステップS305では、オートマトン80は、マッチする遷移が存在するか否かを判定する。ステップS305で、マッチする遷移が存在しないと判定された場合(YES)には、ステップS310へ処理を分岐させる。一方、ステップS305で、マッチする遷移が見つかった場合(NO)には、ステップS306へ処理を分岐させる。
ステップS306では、オートマトン80は、見つかった遷移を介して次の状態へ遷移する。この際、遷移条件が満たされる複数の遷移が見つかった場合には、階層レベルの深い状態に優先的に遷移させる。またこのとき、比較のため一時的に単語リストに格納されていた単語がマッチしたものとして確定される。ステップS307では、オートマトン80は、遷移先の階層レベルに応じて、単語リストから適宜先頭から単語を削除して、格納された単語列の長さを切り詰める。通常のトライ木のエッジに対応する遷移の場合には、切り詰められることなく、単語数nが維持される。一方、ノード間に付加された遷移リンクである場合には、遷移先の階層レベルに合わせて切り詰められることとなる。
ステップS308では、オートマトン80は、遷移後の状態が終了状態であるか否か、つまり結果出力が必要であるか否かを判定する。ステップS308で、結果出力が必要であると判定された場合(YES)には、ステップS309へ処理を分岐させる。ステップS309では、オートマトン80は、この終了状態に対して定義された出力関数に応じたアクションを実行し、結果出力140を実行する。このとき、条件付き終了状態リンクについては、不確定部分の位置が階層レベルにより示されているため、単語リスト中の対応する位置の単語が満たすべき制約を満たしているか否かを判定する。そして、ステップS309の後、再びステップS302へ処理をループさせて、次の単語に対する処理へと進める。一方、ステップS308で、出力が必要ないと判定された場合(NO)には、ステップS302へ処理をループさせ、次の単語に対する処理へと進める。
上記ステップS305で、マッチする遷移が存在しないと判定された場合(YES)には、ステップS310へ処理が分岐される。ステップS310では、オートマトン80は、現在の状態sが初期状態sであるか否かを判定する。ステップS310で、初期状態sであった場合(YES)には、ステップS312へ処理を分岐させる。ステップS312では、単語リストに一時的に格納されている処理対象の単語が、ルートノードからのいずれの遷移にもマッチしないため、この単語を破棄し、単語リストを空にして、ステップS302へ処理を分岐させて、次の単語に対する処理へと進める。
一方、ステップS310で、現在の状態sが初期状態sではなかった場合(NO)には、ステップS311へ処理を分岐させる。ステップS311では、オートマトン80は、状態sを初期状態sに再びセットし、処理対象の単語を残して、先頭から単語リストに格納された単語列の長さを切り詰め、ステップS304へループさせて、再度、初期状態sからの遷移のうち、この単語にマッチする遷移を検索する。
(7)パターン照合における計算効率およびメモリ使用量
上述まで説明した変換処理を、1以上の単語列パターンを格納するトライ木に適用することによって、パターン照合においてトライ木の状態数nである単語列パターンの集合を単語数mである入力文書に対して適用する際の計算量が、O(m)に短縮される。ここで、状態の平均データ・サイズをkバイト、遷移の平均データ・サイズをpバイトとすると、全ノードから全ノードへのリンクが存在する最悪のケースでも、リンクの数はnであるため、このときに消費するメモリ使用量Mは、(kn+pn)バイトである。例えば、状態数nが100、状態の平均データ・サイズkが1000バイト、遷移の平均データ・サイズpが500バイトであるとき、メモリ使用量は、5.1メガバイトとなる。
一方、単語の集合が有限集合であるとすることで、単語の集合を展開して、非特許文献3に開示されるようなDFA法を直接適用することも理論上は可能である。しかしながら、この場合、計算量はO(m)となるが、制約にマッチする単語集合に含まれる平均の単語数dに対して、展開によりトライの状態数はndに増加するため、メモリ使用量は、(knd+p(nd))バイトとなり、変換前のトライ木の状態数nとマッチする単語集合の平均的な大きさdに対して、非常に大きなメモリ領域が必要となる。例えば、状態数nが100、マッチする平均の単語数dが100、状態の平均データ・サイズkが1000バイト、遷移の平均データ・サイズpが500バイトであるとき、メモリ使用量は、50ギガバイトとなる。
他の手法としては、曖昧さを発生させる交差と被包含の場合を、論理結合によって複数の曖昧さのない正規表現に変換する方法が考えられる。しかしながら、この場合、全ノードから全ノードへの失敗関数が存在し、その全ての関係が交差である最悪のケースでは、変換前のトライの状態数nに対し、変換後の状態数はnとなる。これは、各ノードが全ノード集合のべき集合に展開されるためである。このときに使用するメモリ使用量は、(kn+pn)バイトとなる。例えば、状態数nが100、状態の平均データ・サイズkが1000バイト、遷移の平均データ・サイズpが500バイトであるとき、メモリ使用量は、1.5ギガバイトとなる。加えてこの方法では、各ノードからの遷移を選択する際の照合の回数が、n回となり、スケーラビリティの観点からも充分なものとはいえない。
これに対し、本実施形態の照合データ構造を使用したパターン照合では、計算量がO(m)であり、メモリ使用量がkn+pnバイト程度であり、また各ノードからの遷移を選択する際の比較回数がn×log n回である。つまり、本実施形態の照合データ構造に従うパターン照合は、メモリ使用量、計算効率およびスケーラビリティの観点から、上記他の手法に比べて優れているものと言える。本実施形態の照合データ構造を使用したパターン照合では、不確定部分の再評価を行うため、一種のバックトラックが発生するが、本質的に必要な条件の評価だけに絞られるため、最悪のケースでもトライ木と比較して実行効率は低下しない。
(8)ハードウェア構成
図12は、本実施形態のコンピュータ装置10の概略的なハードウェア構成を示す。図12に示すコンピュータ装置10は、中央処理装置(CPU)12と、CPU12が使用するデータの高速アクセスを可能とするL1およびL2などのレベルを有するキャッシュ・メモリ14と、CPU12の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるシステム・メモリ16とを備えている。
CPU12、キャッシュ・メモリ14、およびシステム・メモリ16は、システム・バス18を介して、他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ20およびネットワーク・インタフェース・カード(NIC)22へと接続されている。グラフィックス・ドライバ20は、バスを介して外部のディスプレイ24に接続されて、CPU12による処理結果をディスプレイ画面上に表示させることができる。また、NIC22は、物理層レベルおよびデータリンク層レベルでコンピュータ装置10を、TCP/IPなどの適切な通信プロトコルを使用するネットワークへと接続している。
システム・バス18には、さらにI/Oバス・ブリッジ26が接続されている。I/Oバス・ブリッジ26の下流側には、PCIなどのI/Oバス28を介して、IDE、ATA、ATAPI、シリアルATA、SCSI、USBなどにより、ハードディスク30が接続されている。また、I/Oバス28には、USBなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置32が接続されていて、この入力装置32によりユーザ・インタフェースが提供される。
コンピュータ装置10のCPU12としては、いかなるシングルコア・プロセッサまたはマルチコア・プロセッサを用いることができ、より具体的には、例えば、Xeon(登録商標)、Itanium(登録商標)、POWER5(登録商標)、POWER6(登録商標)、POWER PC(登録商標)などCISCまたはRISCチップなどを挙げることができる。コンピュータ装置10は、WINDOWS(登録商標)200X、UNIX(登録商標)、LINUX(登録商標)などのオペレーティング・システム(以下、OSとして参照する。)により制御され、OSの管理の下、システム・メモリ16上などにプログラムを展開し、プログラムを実行することにより、各ハードウェア資源を動作制御することによって、上述した機能部の構成および処理をコンピュータ上に実現することができる。
(9)実験
(9−1)コンピュータにおける実装
クロック数1.8GHzのPENTIUM(登録商標)Mプロセッサと2GBのRAMを備えるThinkPad(登録商標)X32を用いて、本実施形態によるオートマトンの処理を実現するコンピュータ・システムを実装した。このコンピュータ・システムのオペレーティング・システムは、WINDOWS(登録商標)XP・Service
Pack2とした。上記プログラムは、JAVA(登録商標)によって記述した。
(9−2)実験結果
トライ木構造データ110のみを参照するオートマトンと、本発明の付加リンク構造データ120を含む照合データ構造100を参照するオートマトンとによる、サンプル文書に対するパターン照合の平均処理時間を計測して評価した。なお、サンプル文書は、Red Book IBM Virtualization Engine TS7700: Tape Virtualization for System z Servers Consolidate and protect your data with a Three Cluster Grid configurationからサンプリングしたものを使用した。また、19の単語列パターンをトライ木に変換したところ、状態数は37であった。
図13は、上記実装されたコンピュータ・システムを用いた実験結果を示すグラフである。図13に示すグラフは、上記実装されたコンピュータ・システムを用いて、サンプル文書に対しパターン照合処理を実行し、パターン照合を完了させるまでの平均処理時間(Average duration / ms)を、サンプル文書のデータ・サイズ(Document size / KB)に対してプロットしたグラフである。記号◆は、トライ木のみを参照するオートマトンによる実験例の結果を示し、記号■は、本発明の照合データ構造(DFA構造)を参照するオートマトンによる実験例の結果を示す。
図13に示すように、照合データ構造を参照するオートマトンの方が、トライ木のみを参照するオートマトンに対し、少なくとも文書のデータ・サイズが実験範囲の100KBから1000KBにわたって、平均計算時間が短縮された。さらに、照合データ構造を参照するオートマトンと、トライ木のみを参照するオートマトンとの間の平均計算時間の差は、データ・サイズが大きくなるに従って顕著になった。
図13に示す実験結果から、本発明の照合データ構造を参照するオートマトンは、トライ木のみを用いる場合に比べて、高い計算効率でパターン照合処理を実現可能であることが示された。
以上説明したように、本発明によれば、正規表現を含む場合であっても、単語パターンとテキスト情報との照合処理を、省メモリかつ高い計算効率で実現することを可能とする情報処理装置、情報処理方法およびプログラムを提供することが可能となる。
上記トライ木から変換処理により変換されて定義付けられたデータ構造を参照してパターン照合処理を実行するオートマトンは、追加の遷移リンクを介して状態間を遷移させ、1以上の制約パターンを表現するトライ木を効率的に渡り歩き、対象の入力情報中の各単語パターンにマッチした部分を計算効率高く抽出することが可能となる。また、上記追加の遷移リンクには、遷移元の上記部分状態列Kの末尾までマッチした場合に、プレフィックス状態列にもマッチしたと見なすために満たすべき不確定部分に対する制約が追加的に定義される。したがって、制約パターンが正規表現を含む場合のように、制約パターン間の部分的な一致を確定することができない場合であっても、不確定な部分の再評価を最小限とすることにより、効率的にパターン照合を実行することができる。加えて、上記追加の遷移リンクは、遷移エッジの遷移条件間の集合関係を判定しつつ定義されるため、最小限の遷移リンクのみが定義され、もって、メモリ使用量を低減することが可能となる。
参照リンクが定義付けられたデータ構造を参照してパターン照合処理を実行するオートマトンは、トライ木を渡り歩いている間、参照リンクの元となる状態に到達した段階で、不確定部分の最小限の再評価のみのリンク先の終了状態に対応する出力を発生させることができる。したがって、より高い計算効率にてパターン照合の結果出力を行うことが可能となる。
なお、本発明につき、発明の理解を容易にするために各機能部および各機能部の処理を記述したが、本発明は、上述した特定の機能部が特定の処理を実行する外、処理効率や実装上のプログラミングなどの効率を考慮して、いかなる機能部に、上述した処理を実行するための機能を割当てることができる。
また、本発明は、日本語の他、英語、フランス語、ロシア語、韓国語、中国語、アラビア語など、如何なる言語に対しても適用可能であることは言うまでもない。
本発明の上記機能は、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
本実施形態のコンピュータ装置10の機能ブロック図。 (A)1以上の単語列パターンから生成されるトライ木のデータ構造、および(B)トライ木から変換されたデータ構造を例示する模式図。 入力テキスト情報から所望の意味表現を抽出するために定義される単語パターンのデータ構造を示す模式図。 変換処理の部分的な処理を例示する模式図。 変換処理の部分的な処理を例示する模式図。 本実施形態のコンピュータ装置が実行する変換処理を示す第1のフローチャート。 本実施形態のコンピュータ装置が実行する変換処理を示す第2のフローチャート。 変換処理を実装するためのプログラミングコードの擬似コードを示す図。 入力される単語列パターンのデータ構造を例示する図。 (A)単語列パターンから生成されるトライ木、および(B)トライ木から変換される照合データ構造を一例として模式的に示す図。 本実施形態のコンピュータ装置が実行するパターン照合処理を示すフローチャート。 本実施形態のコンピュータ装置の概略的なハードウェア構成を示す図。 本実施形態によるオートマトンを実装したコンピュータ・システムを用いた実験結果を示すグラフ。 係り受け関係の抽出処理を示す図。
符号の説明
10…コンピュータ装置、12…CPU、14…キャッシュ・メモリ、16…システム・メモリ、18…システム・バス、20…グラフィックス・ドライバ、22…NIC、24…ディスプレイ、26…I/Oバス・ブリッジ、28…I/Oバス、30…ハードディスク、32…入力装置、50…照合構造定義部、60…トライ木生成部、70…変換処理部、72…相似構造探索部、74…遷移リンク定義部、76…終了状態リンク定義部、80…オートマトン、100…照合データ構造、110…トライ木構造データ、120…付加リンク構造データ、130…入力文書、140…結果出力、150…単語列パターン、202…ルートノード、204…エッジ、206…ノード、208…葉ノード、210…データ構造、212…ノード、214…条件付き遷移リンク、216…遷移リンク、218…条件付き終了状態リンク、220…トライ木、222…ノード列

Claims (17)

  1. パターン照合のためのデータ構造を定義付ける情報処理装置であって、
    それぞれ複数の制約から構成される1以上の制約パターンから、各制約を遷移条件としたノード間の遷移エッジを定義付けて、順序付き木構造を生成する生成部と、
    各遷移エッジの遷移条件間の集合関係を判定して、ルートノードからの第1の部分構造に相似する第2の部分構造を探索する探索部と、
    前記第2の部分構造の末尾ノードから前記第1の部分構造の末尾の子ノードへ、前記集合関係から特定される不確定部分の満たすべき制約を付加した追加の遷移リンクを定義付ける遷移定義部と
    を含む、情報処理装置。
  2. 前記情報処理装置は、前記第2の部分構造の末尾ノードから、末尾が終了状態である前記第1の部分構造の末尾ノードへ、不確定部分の制約を条件とした参照リンクを定義付ける参照定義部をさらに含む、請求項1に記載の情報処理装置。
  3. 前記探索部は、遷移条件が同値、被包含、包含または交差の関係にある遷移エッジによって接続されたノード列を、相似する部分構造として特定する、請求項1に記載の情報処理装置。
  4. 前記遷移定義部は、前記第1の部分構造の末尾ノードからの遷移条件が、前記第2の部分構造の末尾ノードからの遷移条件に対し、被包含および同値のいずれの関係にも無かった場合に、前記追加の遷移リンクを定義づける、請求項1に記載の情報処理装置。
  5. 前記探索部は、前記第1の部分構造のノードからの遷移条件が、前記第2の部分構造側の対応する遷移エッジに対し被包含または交差の関係にある場合に、該対応する遷移エッジを前記不確定部分として、該遷移条件の制約を該不確定部分の制約として記録する、請求項1に記載の情報処理装置。
  6. 前記情報処理装置は、入力情報と、定義付けられた前記データ構造により表現される前記1以上の制約パターンとを照合するオートマトンを生成する、請求項1に記載の情報処理装置。
  7. 前記制約パターンを構成する前記制約のそれぞれは、単語の文字列表現、正規形または品詞情報に対する1以上の制約の要素を含む、請求項1に記載の情報処理装置。
  8. パターン照合を実行する情報処理装置であって、
    1以上の制約パターンを表現するデータ構造を記憶する記憶装置と、
    前記データ構造を参照しながら入力情報と前記制約パターンとをパターン照合するオートマトンと
    を含み、前記データ構造は、
    前記1以上の制約パターンを構成する複数の制約をそれぞれ遷移条件として定義付けられ、順序付き木構造を構成するノード間の遷移エッジと、
    ルートノードからの第1の部分構造に相似する第2の部分構造の末尾ノードから、該第1の部分構造の末尾の子ノードへ定義付けられた追加の遷移リンクであって、前記遷移エッジの各遷移条件間の集合関係に応じた不確定部分の満たすべき制約を遷移条件に含む該追加の遷移リンクと
    を含む、情報処理装置。
  9. 前記データ構造は、前記第2の部分構造の末尾ノードから、末尾が終了状態である前記第1の部分構造の末尾ノードへ定義付けられた参照リンクであって、不確定部分の制約を参照の条件とする該参照リンクをさらに含む、請求項8に記載の情報処理装置。
  10. 前記オートマトンは、前記データ構造を構成する各ノードを取り得る状態として、入力情報の部分構造に適合する遷移条件を検索して、状態を遷移させることによって、前記1以上の制約パターンと適合する前記部分構造を抽出する、請求項8に記載の情報処理装置。
  11. 請求項1に記載の情報処理装置によって定義付けられたパターン照合のためのデータ構造を記憶する記憶装置と、
    前記データ構造を参照しながら入力情報と前記制約パターンとをパターン照合するオートマトンと
    を含む、情報処理装置。
  12. パターン照合のためのデータ構造を定義付ける方法であって、情報処理装置が、
    それぞれ複数の制約から構成される1以上の制約パターンから、各制約を遷移条件としたノード間の遷移エッジを定義付けて、順序付き木構造を生成するステップと、
    各遷移エッジの遷移条件間の集合関係を判定して、ルートノードからの第1の部分構造に相似する第2の部分構造を探索するステップと、
    前記第2の部分構造の末尾ノードから前記第1の部分構造の末尾の子ノードへ、前記集合関係から特定される不確定部分の満たすべき制約を付加した追加の遷移リンクを定義付けるステップと
    を実行する、情報処理方法。
  13. 前記情報処理装置が、さらに、前記第2の部分構造の末尾ノードから、末尾が終了状態である前記第1の部分構造の末尾ノードへ、不確定部分の制約を条件とした参照リンクを定義付けるステップを実行する、請求項12に記載の情報処理方法。
  14. 入力情報とパターン照合する方法であって、情報処理装置が、
    1以上の制約パターンを表現するデータ構造を参照して、前記制約パターンと前記入力情報とをパターン照合するステップを実行し、前記データ構造は、
    前記1以上の制約パターンを構成する複数の制約をそれぞれ遷移条件として定義付けられ、順序付き木構造を構成するノード間の遷移エッジと、
    ルートノードからの第1の部分構造に相似する第2の部分構造の末尾ノードから、該第1の部分構造の末尾の子ノードへ定義付けられた追加の遷移リンクであって、前記遷移エッジの各遷移条件間の集合関係に応じた不確定部分の満たすべき制約を遷移条件に含む該追加の遷移リンクと
    を含む、情報処理方法。
  15. 前記照合するステップは、前記データ構造を構成する各ノードを取り得る状態として、前記入力情報の部分構造に適合する遷移条件を検索するステップと、オートマトンの状態を遷移させて、前記1以上の制約パターンと適合する前記部分構造を抽出するステップとを含む、請求項14に記載の情報処理方法。
  16. 請求項1〜10のいずれか1項に記載の各機能部をコンピュータに実現するためのコンピュータ実行可能なプログラム。
  17. パターン照合のためのデータ構造を定義付ける情報処理装置であって、
    それぞれ複数の制約から構成される1以上の制約パターンから、各制約を遷移条件としたノード間の遷移エッジを定義付けて、順序付き木構造を生成する生成部と、
    各遷移エッジの遷移条件間の集合関係を判定して、ルートノードからの第1の部分構造に相似する第2の部分構造を探索する探索部と、
    前記第2の部分構造の末尾ノードから前記第1の部分構造の末尾の子ノードへ、前記集合関係から特定される不確定部分の満たすべき制約を付加した追加の遷移リンクを定義付ける遷移定義部と、
    前記第2の部分構造の末尾ノードから、末尾が終了状態である前記第1の部分構造の末尾ノードへ、不確定部分の制約を条件とした参照リンクを定義付ける参照定義部と
    を含み、
    前記探索部は、遷移条件が同値、被包含、包含または交差の関係にある遷移エッジによって接続されたノード列を、相似する部分構造として特定し、前記第1の部分構造のノードからの遷移条件が、前記第2の部分構造側の対応する遷移エッジに対し被包含または交差の関係にある場合に、該対応する遷移エッジを前記不確定部分として、該遷移条件の制約を該不確定部分の制約として記録し、
    前記遷移定義部は、前記第1の部分構造の末尾ノードからの遷移条件が、前記第2の部分構造の末尾ノードからの遷移条件に対し、被包含および同値のいずれの関係にも無かった場合に、前記追加の遷移リンクを定義づけ、
    前記制約パターンを構成する前記制約のそれぞれは、単語の文字列表現、正規形または品詞情報に対する1以上の制約の要素を含み、
    入力情報と、定義付けられた前記データ構造により表現される前記1以上の制約パターンとを照合するオートマトンを生成する、情報処理装置。
JP2008185780A 2008-07-17 2008-07-17 情報処理装置、情報処理方法およびプログラム Expired - Fee Related JP5224953B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008185780A JP5224953B2 (ja) 2008-07-17 2008-07-17 情報処理装置、情報処理方法およびプログラム
US12/494,559 US8407261B2 (en) 2008-07-17 2009-06-30 Defining a data structure for pattern matching
US13/408,706 US8495101B2 (en) 2008-07-17 2012-02-29 Defining a data structure for pattern matching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008185780A JP5224953B2 (ja) 2008-07-17 2008-07-17 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010026689A JP2010026689A (ja) 2010-02-04
JP5224953B2 true JP5224953B2 (ja) 2013-07-03

Family

ID=41531187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008185780A Expired - Fee Related JP5224953B2 (ja) 2008-07-17 2008-07-17 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (2) US8407261B2 (ja)
JP (1) JP5224953B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874663B2 (en) * 2009-08-28 2014-10-28 Facebook, Inc. Comparing similarity between documents for filtering unwanted documents
JP5678896B2 (ja) * 2010-01-18 2015-03-04 日本電気株式会社 要求抽出システム、要求抽出方法および要求抽出プログラム
US8619084B2 (en) * 2010-05-03 2013-12-31 International Business Machines Corporation Dynamic adaptive process discovery and compliance
WO2011150425A1 (en) 2010-05-28 2011-12-01 Securitymetrics, Inc. Systems and methods for determining whether data includes strings that correspond to sensitive information
US8375061B2 (en) * 2010-06-08 2013-02-12 International Business Machines Corporation Graphical models for representing text documents for computer analysis
US8407245B2 (en) * 2010-11-24 2013-03-26 Microsoft Corporation Efficient string pattern matching for large pattern sets
JP5589952B2 (ja) * 2011-05-12 2014-09-17 富士通株式会社 照合装置および照合プログラム
US9361578B2 (en) * 2011-07-13 2016-06-07 Palo Alto Research Center Incorporated Memory efficient state-set representation for planning
CN103890763B (zh) * 2011-10-26 2017-09-12 国际商业机器公司 信息处理装置、数据存取方法以及计算机可读存储介质
US8380758B1 (en) 2011-11-14 2013-02-19 Google Inc. Trie specialization allowing storage of value keyed by patterns and retrieval by tokens
US20130298003A1 (en) * 2012-05-04 2013-11-07 Rawllin International Inc. Automatic annotation of content
US9280575B2 (en) * 2012-07-20 2016-03-08 Sap Se Indexing hierarchical data
US9460455B2 (en) * 2013-01-04 2016-10-04 24/7 Customer, Inc. Determining product categories by mining interaction data in chat transcripts
JP6171476B2 (ja) * 2013-03-28 2017-08-02 富士通株式会社 ドキュメント作成支援装置,ドキュメント作成支援プログラム及びドキュメント作成支援方法
US10242125B2 (en) * 2013-12-05 2019-03-26 Entit Software Llc Regular expression matching
JP6300596B2 (ja) * 2014-03-27 2018-03-28 Kddi株式会社 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP6300601B2 (ja) * 2014-03-31 2018-03-28 Kddi株式会社 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
US9934325B2 (en) * 2014-10-20 2018-04-03 Korean Institute Of Science And Technology Information Method and apparatus for distributing graph data in distributed computing environment
ES2724001T3 (es) 2015-11-26 2019-09-05 Tata Consultancy Services Ltd Sistema y procedimiento de habilitación de enmascaramiento de datos para documentos web
US20170193291A1 (en) * 2015-12-30 2017-07-06 Ryan Anthony Lucchese System and Methods for Determining Language Classification of Text Content in Documents
CA2973686A1 (en) 2016-07-14 2018-01-14 Bradley R. Caldwell Identification of potentially sensitive information in data strings
CN106161098B (zh) * 2016-07-21 2019-04-30 四川无声信息技术有限公司 一种网络行为检测方法及装置
CN107220300B (zh) * 2017-05-05 2018-07-20 平安科技(深圳)有限公司 信息挖掘方法、电子装置及可读存储介质
JP6912724B2 (ja) 2017-11-29 2021-08-04 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法
US10853558B2 (en) * 2019-02-20 2020-12-01 Adobe Inc. Transforming digital text content using expressions
CN110222143B (zh) * 2019-05-31 2022-11-04 北京小米移动软件有限公司 字符串匹配方法,装置,存储介质及电子设备
CN110232084B (zh) * 2019-06-19 2021-02-26 河北工业大学 具有局部-整体约束的近似模式匹配方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452451A (en) * 1989-06-15 1995-09-19 Hitachi, Ltd. System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US6292938B1 (en) * 1998-12-02 2001-09-18 International Business Machines Corporation Retargeting optimized code by matching tree patterns in directed acyclic graphs
WO2001016665A2 (en) * 1999-08-31 2001-03-08 Dealigence, Inc. System and method for automated contract formation
US6662184B1 (en) * 1999-09-23 2003-12-09 International Business Machines Corporation Lock-free wild card search data structure and method
US6614789B1 (en) * 1999-12-29 2003-09-02 Nasser Yazdani Method of and apparatus for matching strings of different lengths
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
JP4047053B2 (ja) * 2002-04-16 2008-02-13 富士通株式会社 繰り返しを含む順序パターンを用いた検索装置および方法
US7257576B2 (en) * 2002-06-21 2007-08-14 Microsoft Corporation Method and system for a pattern matching engine
US7139688B2 (en) * 2003-06-20 2006-11-21 International Business Machines Corporation Method and apparatus for classifying unmarked string substructures using Markov Models
US7508985B2 (en) * 2003-12-10 2009-03-24 International Business Machines Corporation Pattern-matching system
JP4347087B2 (ja) * 2004-02-26 2009-10-21 日本電信電話株式会社 パターンマッチング装置および方法ならびにプログラム
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7389296B2 (en) * 2004-09-02 2008-06-17 International Business Machines Corporation Method, system and program product for displaying a logical structure
US7801923B2 (en) * 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7359895B2 (en) * 2004-11-18 2008-04-15 Industrial Technology Research Institute Spiral string matching method
JP4535130B2 (ja) * 2004-12-09 2010-09-01 三菱電機株式会社 文字列照合装置および文字列照合プログラム
US7565380B1 (en) * 2005-03-24 2009-07-21 Netlogic Microsystems, Inc. Memory optimized pattern searching
DE602006014673D1 (de) * 2005-04-20 2010-07-15 Ibm Vorrichtung und verfahren zur mustererfassung
US20060259498A1 (en) * 2005-05-11 2006-11-16 Microsoft Corporation Signature set content matching
GB2437560A (en) * 2006-04-28 2007-10-31 Roke Manor Research Constructing Aho Corasick trees
US7627541B2 (en) * 2006-09-15 2009-12-01 Microsoft Corporation Transformation of modular finite state transducers
US8024691B2 (en) * 2006-09-28 2011-09-20 Mcgill University Automata unit, a tool for designing checker circuitry and a method of manufacturing hardware circuitry incorporating checker circuitry
WO2008067743A1 (fr) * 2006-12-08 2008-06-12 Hangzhou H3C Technologies Co., Ltd. Procédé et dispositif d'appariement de formes
US7814443B2 (en) * 2007-01-16 2010-10-12 International Business Machines Corporation Graph-based pattern matching in L3GO designs
US7676444B1 (en) * 2007-01-18 2010-03-09 Netlogic Microsystems, Inc. Iterative compare operations using next success size bitmap
US8161550B2 (en) * 2007-01-23 2012-04-17 Knowledge Based Systems, Inc. Network intrusion detection
CN101377757A (zh) * 2007-08-28 2009-03-04 国际商业机器公司 基于约束模式进行约束故障分析的方法和装置
US8176085B2 (en) * 2008-09-30 2012-05-08 Microsoft Corporation Modular forest automata
US8346697B2 (en) * 2008-10-31 2013-01-01 International Business Machines Corporation Direct construction of finite state machines
TWI482083B (zh) * 2008-12-15 2015-04-21 Univ Nat Taiwan 二階段式正規表示式比對處理方法及系統

Also Published As

Publication number Publication date
US8495101B2 (en) 2013-07-23
US20100017397A1 (en) 2010-01-21
JP2010026689A (ja) 2010-02-04
US20120158780A1 (en) 2012-06-21
US8407261B2 (en) 2013-03-26

Similar Documents

Publication Publication Date Title
JP5224953B2 (ja) 情報処理装置、情報処理方法およびプログラム
RU2610241C2 (ru) Способ и система синтеза текста на основе извлеченной информации в виде rdf-графа с использованием шаблонов
US6904402B1 (en) System and iterative method for lexicon, segmentation and language model joint optimization
US6182062B1 (en) Knowledge based information retrieval system
RU2596599C2 (ru) Система и способ создания и использования пользовательских онтологических моделей для обработки пользовательского текста на естественном языке
RU2584457C1 (ru) Система и способ создания и использования пользовательских семантических словарей для обработки пользовательского текста на естественном языке
JP4141556B2 (ja) 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体
RU2592396C1 (ru) Способ и система для машинного извлечения и интерпретации текстовой информации
US20200320142A1 (en) Regular expression generation using span highlighting alignment
US20200320068A1 (en) User interface commands for regular expression generation
RU2607976C1 (ru) Извлечение информации из структурированных документов, содержащих текст на естественном языке
JPH05324713A (ja) 自然語処理方法および自然語処理システム
US20220092252A1 (en) Method for generating summary, electronic device and storage medium thereof
JPWO2009063925A1 (ja) 文書管理・検索システムおよび文書の管理・検索方法
US20180232351A1 (en) Joining web data with spreadsheet data using examples
KR20150084706A (ko) 온톨로지의 지식 학습 장치 및 그의 방법
CN112580331A (zh) 政策文本的知识图谱构建方法及系统
JP4311772B2 (ja) 言語ストリング解析方法および言語ストリング解析システム
US7302384B2 (en) Left-corner chart parsing
CN112632333A (zh) 查询语句生成方法、装置、设备及计算机可读存储介质
Cuculovic et al. Semantics to the rescue of document‐based XML diff: A JATS case study
KR100921563B1 (ko) 의존 문법 구문 트리를 이용한 문장 요약 방법
Qian et al. BePT: a behavior-based process translator for interpreting and understanding process models
JP2009140113A (ja) 辞書編集装置、および辞書編集方法、並びにコンピュータ・プログラム
CN112699642A (zh) 复杂医疗文书的索引提取方法及装置、介质及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121017

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees