JP2005242668A - パターンマッチング装置および方法ならびにプログラム - Google Patents
パターンマッチング装置および方法ならびにプログラム Download PDFInfo
- Publication number
- JP2005242668A JP2005242668A JP2004051654A JP2004051654A JP2005242668A JP 2005242668 A JP2005242668 A JP 2005242668A JP 2004051654 A JP2004051654 A JP 2004051654A JP 2004051654 A JP2004051654 A JP 2004051654A JP 2005242668 A JP2005242668 A JP 2005242668A
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- text
- hash function
- applying
- automaton
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 52
- 230000006870 function Effects 0.000 claims abstract description 92
- 238000012545 processing Methods 0.000 claims abstract description 44
- 230000010365 information processing Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 241000277284 Salvelinus fontinalis Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】 入力されたテキストのサフィックスに対するパターンにハッシュ関数を適用した結果として得られる文字列の最長プリフィックスを状態として持つオートマトンを構成し、そのオートマトンに同一のハッシュ関数をテキストに適用した結果として得られる文字列を入力し、パターンに一致する可能性のある入力文字列と、パターンに一致する可能性のない入力文字列との識別を行う。次に、ハッシュ関数の適用によって生成される複数の独立した文字列単位でパイプライン並列処理する。最後に、ハッシュを適用したオートマトンによって特定される、パターンと一致する可能性のあるテキスト中の文字列とそのテキストに一致する可能性のあるパターンとを正確に照合する。
【選択図】 図1
Description
1)テキストとパターンとの文字比較位置が関数的に変化する方法。
2)テキストとパターンとの文字比較位置が一定に変化する方法。
ORアルゴリズムがある。
Christian Charrs and ThierryLecroq"Handbook of Exact String Matching Algorithms"、[online]、[平成16年2月10日検索]、インターネット<URL:http://homepage.stts.edu/~aikawa/string.pdf> A.V.Aho and M.J.Corasick.Efficientstring matching:an aid to bibliographic search.Comm.of theACM.18(6):333-340,June 1975.
図2は複数のパターンからハッシュ関数が適用された一つのオートマトンを生成する手順を示す。まず、各パターンに対して、ハッシュ関数を適用する。k文字から一つのハッシュ値を生成するハッシュ関数をH(x1,x2,…,xk)とする。また、パターンPiの文字数をmiとし、そのパターンをpi,1pi,2…pi,miと表記する。このとき、ハッシュ関数生成後のパターン中の文字hpi,j(j=1,…,mi/k)はH(pi,(j-1)k+1,pi,(j-1)k+2,…,pi,jk)と表現できる。全てのパターンをハッシュを用いて変換した後、Aho−Chorasickアルゴリズムに従って、各パターンを単一オートマトンとして合成する。
ハッシュ関数の具体例として、それぞれの文字間で排他的論理和をとることによって、8ビット幅の文字4つから4ビットのハッシュ値を生成するハッシュ計算部1の実装例を図4に示す。ハッシュ関数の例としては、他にCRCなどが挙げられる。
図5は、メモリを用いてオートマトンを表現する場合において、ハッシュ適用後テキストをパイプライン処理する構成を示している。オートマトンをメモリ表現する場合に、入力文字と現在の状態から状態メモリのアドレスを計算するアドレス計算部11と、メモリにアクセスするメモリアクセス部12からなる。これら二つの計算部、さらにはその計算部をパイプライン化してハッシュ適用後テキストを処理することができる。
図7は、パイプライン並列処理の例として、図4で生成される4つのハッシュ適用後テキストht1,0ht1,1…,ht2,0ht2,1…,ht3,0ht3,1…,およびht4,0ht4,1…を並列処理すると共にパイプライン処理する回路を示す。図7では、メモリを用いて表現したオートマトンを2つのパイプラインステージに分割したものを2つ並列に並べることによって、4つのハッシュ適用後テキストを処理している。回路展開する場合も同様に、各状態を2つのステージに細分化したオートマトンを2つ並列に並べることによって、同様のパイプライン並列処理が可能である。
最終状態判定部3は、オートマトンの現在の状態が最終状態であるか否かを判定する。図8はオートマトンをメモリ表現した場合の最終状態判定部3の実装例を示す。オートマトンの状態を入力として、パターンと一致する可能性があるか否か、すなわち、いずれかのパターンに対応する最終状態に遷移したか否かを示す信号と、それに対応するパターン番号とを出力する。
最後に完全一致照合部4において、ハッシュ空間で一致したパターンと部分テキストが、ハッシュ適用前のパターンとテキストとで完全に一致するか否かの判定を行う。ハッシュ空間で一致しなかったパターンと部分列とを比較する必要がないため、この処理に求められるスループットは非常に小さい。このため、ハードウェアではなく、ソフトウェア上で実現することも可能である。
2 オートマトン部
3 最終状態判定部
4 完全一致照合部
11 アドレス計算部
12 メモリアクセス部
R レジスタ
Claims (20)
- 入力文字列であるテキストから複数種類の任意文字列であるパターンを検索するパターンマッチング装置において、
これまでに入力されたテキストのサフィックスに対するパターンにハッシュ関数を適用した結果として得られる文字列の最長プリフィックスを状態として持つオートマトンを構成する手段と、
このオートマトンに同一のハッシュ関数をテキストに適用した結果として得られる文字列を入力することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行う手段と
を備えたことを特徴とするパターンマッチング装置。 - 複数文字から一つのハッシュ値を生成するハッシュ関数を用いる請求項1記載のパターンマッチング装置。
- パターンの1文字あたりのビット幅より小さいビット幅を持つハッシュ値を生成するハッシュ関数を用いる請求項1記載のパターンマッチング装置。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位でパイプライン処理を行う手段を備えた請求項1記載のパターンマッチング装置。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理する手段を備えた請求項1記載のパターンマッチング装置。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理すると共にパイプライン処理を行う手段を備えた請求項1記載のパターンマッチング装置。
- 前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定する手段を備えた請求項1記載のパターンマッチング装置。
- 入力文字列であるテキストから複数種類の任意文字列であるパターンを検索するパターンマッチング方法において、
これまでに入力されたテキストのサフィックスに対するパターンにハッシュ関数を適用した結果として得られる文字列の最長プリフィックスを状態として持つオートマトンを構成するステップと、
このオートマトンに同一のハッシュ関数をテキストに適用した結果として得られる文字列を入力することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行うステップと
を実行することを特徴とするパターンマッチング方法。 - 複数文字から一つのハッシュ値を生成するハッシュ関数を用いる請求項8記載のパターンマッチング方法。
- パターンの1文字あたりのビット幅より小さいビット幅を持つハッシュ値を生成するハッシュ関数を用いる請求項8記載のパターンマッチング方法。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位でパイプライン処理を行うステップを実行する請求項8記載のパターンマッチング方法。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理するステップを実行する請求項8記載のパターンマッチング方法。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理すると共にパイプライン処理を行うステップを実行する請求項8記載のパターンマッチング方法。
- 前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定するステップを実行する請求項8記載のパターンマッチング方法。
- 情報処理装置にインストールすることにより、その情報処理装置に、
入力文字列であるテキストから複数種類の任意文字列であるパターンを検索するパターンマッチング装置に相応する機能を実現させるプログラムにおいて、
これまでに入力されたテキストのサフィックスに対するパターンにハッシュ関数を適用した結果として得られる文字列の最長プリフィックスを状態として持つオートマトンを構成する機能と、
このオートマトンに同一のハッシュ関数をテキストに適用した結果として得られる文字列を入力することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行う機能と
を実現させることを特徴とするプログラム。 - ハッシュ関数の適用によって生成される独立した複数の文字列単位でパイプライン処理を行う機能を実現させる請求項15記載のプログラム。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理する機能を実現させる請求項15記載のプログラム。
- ハッシュ関数の適用によって生成される独立した複数の文字列単位を並列処理すると共にパイプライン処理を行う機能を実現させる請求項15記載のプログラム。
- 前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定する機能を実現させる請求項15記載のプログラム。
- 請求項15ないし19のいずれかに記載のプログラムが記録された前記情報処理装置読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004051654A JP4347086B2 (ja) | 2004-02-26 | 2004-02-26 | パターンマッチング装置および方法ならびにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004051654A JP4347086B2 (ja) | 2004-02-26 | 2004-02-26 | パターンマッチング装置および方法ならびにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005242668A true JP2005242668A (ja) | 2005-09-08 |
JP4347086B2 JP4347086B2 (ja) | 2009-10-21 |
Family
ID=35024346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004051654A Expired - Lifetime JP4347086B2 (ja) | 2004-02-26 | 2004-02-26 | パターンマッチング装置および方法ならびにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4347086B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007129577A1 (ja) * | 2006-05-08 | 2007-11-15 | The University Of Electro-Communications | テキスト処理モジュール |
WO2009050797A1 (ja) * | 2007-10-17 | 2009-04-23 | Fujitsu Limited | 検索装置および検索方法 |
JP2010182238A (ja) * | 2009-02-09 | 2010-08-19 | Nippon Telegr & Teleph Corp <Ntt> | 引用検出装置、原典文書データベース生成装置、その方法、プログラム及び記録媒体 |
JP5071486B2 (ja) * | 2008-01-22 | 2012-11-14 | 富士通株式会社 | 検索装置および検索方法 |
RU2789997C1 (ru) * | 2022-04-21 | 2023-02-14 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) | Способ и матричное устройство параллельно-конвейерного поиска по образцу |
-
2004
- 2004-02-26 JP JP2004051654A patent/JP4347086B2/ja not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007129577A1 (ja) * | 2006-05-08 | 2007-11-15 | The University Of Electro-Communications | テキスト処理モジュール |
WO2009050797A1 (ja) * | 2007-10-17 | 2009-04-23 | Fujitsu Limited | 検索装置および検索方法 |
US8219538B2 (en) | 2007-10-17 | 2012-07-10 | Fujitsu Limited | Search device and search method |
JP5041003B2 (ja) * | 2007-10-17 | 2012-10-03 | 富士通株式会社 | 検索装置および検索方法 |
JP5071486B2 (ja) * | 2008-01-22 | 2012-11-14 | 富士通株式会社 | 検索装置および検索方法 |
JP2010182238A (ja) * | 2009-02-09 | 2010-08-19 | Nippon Telegr & Teleph Corp <Ntt> | 引用検出装置、原典文書データベース生成装置、その方法、プログラム及び記録媒体 |
RU2789997C1 (ru) * | 2022-04-21 | 2023-02-14 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) | Способ и матричное устройство параллельно-конвейерного поиска по образцу |
Also Published As
Publication number | Publication date |
---|---|
JP4347086B2 (ja) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4538449B2 (ja) | 文字列検索の方法および設備 | |
US7818303B2 (en) | Web graph compression through scalable pattern mining | |
US7725510B2 (en) | Method and system for multi-character multi-pattern pattern matching | |
JP6160259B2 (ja) | 文字列探索方法、文字列探索装置および文字列探索プログラム | |
Egidi et al. | External memory BWT and LCP computation for sequence collections with applications | |
US20140019486A1 (en) | Logic Content Processing for Hardware Acceleration of Multi-Pattern Search | |
Vinga et al. | Pattern matching through Chaos Game Representation: bridging numerical and discrete data structures for biological sequence analysis | |
JP4114600B2 (ja) | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム | |
Rasool et al. | String matching methodologies: A comparative analysis | |
CN105426412A (zh) | 多模式的串匹配方法和装置 | |
CN111831785A (zh) | 敏感词检测方法、装置、计算机设备及存储介质 | |
KR101662957B1 (ko) | 해싱기반의 순위다중패턴매칭 방법 | |
US9690873B2 (en) | System and method for bit-map based keyword spotting in communication traffic | |
Janani et al. | An efficient text pattern matching algorithm for retrieving information from desktop | |
JP4347087B2 (ja) | パターンマッチング装置および方法ならびにプログラム | |
CN113076562A (zh) | 基于gcm加密模式的数据库加密字段模糊检索方法 | |
JP4347086B2 (ja) | パターンマッチング装置および方法ならびにプログラム | |
Faro | Evaluation and improvement of fast algorithms for exact matching on genome sequences | |
US7590624B2 (en) | Process for identifying duplicate values in very large data sets | |
KR101881797B1 (ko) | 멀티 패턴 정책 탐지 시스템 및 방법 | |
JP5041003B2 (ja) | 検索装置および検索方法 | |
JP2008102641A (ja) | 検索装置、検索方法及びプログラム | |
Moeini et al. | Improved Rabin-Karp Algorithm Using Bloom Filter | |
Singh et al. | ASCII based sequential multiple pattern matching algorithm for high level cloning | |
KR102271489B1 (ko) | 정규표현식 패턴의 탐지를 위한 아호코라식 오토마타 구축 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060407 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090414 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20090605 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090605 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090615 |
|
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: 20090714 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4347086 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130724 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |