• 検索結果がありません。

大規模正規表現の高速照合方式

N/A
N/A
Protected

Academic year: 2021

シェア "大規模正規表現の高速照合方式"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第67回全国大会. 4F-5. 大規模正規表現の高速照合方式 中村. 隆顕. 三菱電機株式会社. 郡. 光則. 情報技術総合研究所. これらの文字列照合方式は、欧米において文 字種の少ない文字を対象として発達してきた。 近年、ネットワークセキュリティなどの分野 において、ネットワークを流れる電子データを、 それらと比較して、文字種が非常に多いマルチ バイト文字をテキストに含む場合に、特に高速 そのデータに含まれるテキストを照合すること な照合が困難となっている[3]。 によってフィルタリングする技術が重要になっ 3.2. 状態遷移の削減 ている。その一方で、特に検索条件が大規模な 本稿で提案する sDFA 方式では、高速な照合が 場合に、電子データの転送速度の高速化に照合 可能な DFA 方式を基本とする。DFA 方式の課題で 速度が追随できなくなりつつある。 あった状態遷移数を削減するため、Default 遷移 本稿では、正規表現を含んだ検索条件によっ と AnyOther 遷移の 2 種類の状態遷移を導入した。 て、テキストを高速に照合する sDFA 方式を提案 Default 遷移は、現在の状態から入力文字によ す る 。 本 方 式 は 、 DFA ( Deterministic Finite る状態遷移先が無い場合に、文字を読み進めず Automaton)方式のメモリ消費量を大幅に削減す に初期状態に遷移する状態遷移である。 ることにより、大規模な検索条件に対して高速 1. 入力文字について、状態遷移先が定義され な照合を実現した。本稿では、sDFA 方式の有効 ている場合は、定義されている状態遷移先 性の評価結果についても報告する。 へ遷移する。 2. 文字列照合 2. 状 態 遷 移 先 が 定 義 さ れ て い な い 場 合 は 、 本稿で提案する sDFA 方式は、テキストの中か Default 遷移する。 ら、検索条件として指定された正規表現に一致 Default 遷移により、ある入力文字に対して状態 する文字列の出現位置を、全て出力することを 目的とする。特に、検索条件が大規模な場合や、 遷移先が定義されていない場合に、初期状態へ の状態遷移を削減することができる。同時に、 テキストにマルチバイト文字が含まれる場合に 初期状態からその文字によって遷移可能な状態 有効な方式を提案する。 への状態遷移も削減することができる。 3. sDFA 方式 AnyOther 遷移は、現在の状態から、状態遷移 3.1. 課題 先が定義されていない任意の文字に対して、同 従来、正規表現による文字列照合方式として、 一の状態に遷移する状態遷移である。 状態遷移機械の NFA(Non-Deterministic Finite 1. 入力文字について、状態遷移先が定義され Automaton)や DFA を利用した方式がある[1]。 ている場合は、定義されている状態遷移先 NFA 方式は、メモリの消費量が少ないものの、検 へ遷移する。 索条件規模の増大に従って、照合速度性能が大 2. 状 態 遷 移 先 が 定 義 さ れ て い な い 場 合 は 、 幅に低下する課題がある。DFA 方式では、安定し AnyOther 遷移する。 て高速な照合が可能であるが、検索条件の規模 AnyOther 遷移は、正規表現に除外文字や任意文 が増大するに従って、状態数や状態遷移数が指 字を含む場合に、特に有効である。 数的に増加する。そのために、メモリを圧迫し 以上のように、sDFA では、Default 遷移や 照合が不可能になる課題がある。いま、検索条 AnyOther 遷移を適用することにより、状態遷移 件に含まれるユニークな文字数を m、全入力文字 数を大幅に削減することができる。状態遷移の 種の数を n とすると、DFA の状態数は O(2m)、状 削減によって疎となった状態遷移表において、 態遷移数は O(2mn)である[2]。 状態遷移が定義されているエントリだけをメモ リ上に置くことにより、検索時のメモリ消費量 を大幅に削減できる。. 1. はじめに. A Fast Matching Method for Large Regular Expressions. Takaaki Nakamura, Mitsunori Kori Information Technology R&D Center, Mitsubishi Electric Corporation. 4. 性能評価 本稿で提案する sDFA 方式を実装し、その有効 性を評価した。. 1−235.

(2) 状態遷移数. 表 1 状態遷移数 sDFA DFA1 DFA2 141 483 2258048 次に、検索条件(2)として 1 個以上の日本語の 固定文字列キーワード(人名)を用い、そのキ ーワード数を変化させたときの、状態遷移数の 変化を図 1に示す。. 1E+08 1E+06 10000 100 1. DFA1 sDFA. 10 100 キーワード数. 1000. CPU Memory コンパイラ. 100000 10000. sDFA. 1000 100. GNU. 10 1. .NET 1. 図 2. 10 100 キーワード数. 1000. キーワード数依存照合速度. 以 上 よ り 、 sDFA は 、 GNU Regex や 、 .NET Regex より高速であることを確認できた。特に、 GNU Regex や、.NET Regex では、キーワード数 の増加に従って、照合速度が大幅に低下してい るのに対して、sDFA 方式では、照合速度は 1 億 文字/秒で安定していることが確認できた。. 5. まとめ. キーワード数依存状態遷移数. 以上より、sDFA は、DFA と比較して状態遷移 数が大幅に削減できることが確認できた。 4.2. 照合速度性能 sDFA を実装し、Linux の正規表現照合ライブ ラリ GNU Regex(DFA 方式)、Windows の正規表 現ライブラリ.NET Regex(NFA 方式)との照合速 度性能を比較した。測定条件を表 2に示す。. OS. 表 3 照合速度 sDFA GNU Regex .NET Regex 9908 万文字/秒 152 102 検索条件(2)のキーワード数を変化させたとき の、照合速度の変化を図 2に示す。. DFA2. 1 図 1. 照合速度性能の比較では、平均 1.6 万文字の 日本語のテキスト 5,720 件に対して照合速度を 測定し、その平均値を求めた。検索条件は、 「4.1状態遷移数」と同様の条件を用いた。テキ ストと検索条件の文字コードは、Linux が日本語 EUC、Windows が Shift-JIS である。 検索条件(1)による照合速度を表 3に示す。. [万文字/秒]. 4.1. 状態遷移数 sDFA 方式と、DFA 方式の状態遷移表に含まれ る有効な状態遷移の数を比較した。DFA の状態遷 移数は、sDFA の状態数×検索条件中のユニーク な文字数(=m)とした場合(DFA1)と、sDFA の 状態数×日本語 EUC の全文字数(=n)とした場 合(DFA2)の 2 通りを考慮する。 まず、検索条件(1)を以下に示す正規表現(日 付)としたときの、sDFA 方式と DFA 方式の状態 遷移数を比較した。この正規表現のユニークな 文字数は m=21 である。 ((( 明 治 ¦ 大 正 ¦ 昭 和 ¦ 平 成 )?[0-9]{1,2})¦[09]{4})( 年 ¦/)(0¦1)?[0-9]( 月 ¦/)(0¦1¦2)?[09] 状態遷移数の比較結果を表 1に示す。. 表 2 性能評価条件 sDFA GNU Regex .NET Regex Linux Fedora Core2 Windows 2003 (kernel2.6.5-1) Server Pentium4 3.2GHz Xeon 3.2GHz 1GB 4GB gcc3.3.3-7 VC#.NET2003. DFA の状態遷移数を削減することにより、テキ ストを正規表現によって高速に照合する方式を 提案した。また、評価により、その有効性を確 認した。本方式は、検索条件が大規模である場 合や、テキストに日本語などのマルチバイト文 字を含む場合に、特に有効である。. 参考文献 [1] E.J.Hopcroft, D.J.Ullman, Formal Languages and their Relation to Automata, Addison Wesley, 1969. [2] G Navarro, Pattern Matching, Journal of Applied Statistics, 31(8) 925-950, 2004. [3] 長谷川 勇, マルチバイトキャラクタを扱う 決定性有限状態オートマトンの構成法, Linux Conference 2001, 2001.. 1−236.

(3)

参照

関連したドキュメント

    2 With regard to ships calling at ports in order to put ashore sick or injured persons for emergency medical treatment and intending to leave again immediately, it is

参照規格例 ISO 2909 ASTM 2270 ASTM D 2532 ASTM D 445 JIS K 2283 など. ● ワックス、レジンの温度

[r]

[r]

現在まで地域経済統合、域内の平和と秩序という目的と、武力放棄、紛争の平和的解

(補正)R2.2.21 (補正)R2.2.21 記載すべき内容 記載の考え方 該当規定文書

規格(JIS)等の国内外の民間規格に適合した工業用品の採用,或いは American Society of Mechanical Engineers(ASME 規格)

ただし、変更により照会者が不利となる場合において、契約書