JP4347086B2 - パターンマッチング装置および方法ならびにプログラム - Google Patents
パターンマッチング装置および方法ならびにプログラム Download PDFInfo
- Publication number
- JP4347086B2 JP4347086B2 JP2004051654A JP2004051654A JP4347086B2 JP 4347086 B2 JP4347086 B2 JP 4347086B2 JP 2004051654 A JP2004051654 A JP 2004051654A JP 2004051654 A JP2004051654 A JP 2004051654A JP 4347086 B2 JP4347086 B2 JP 4347086B2
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- automaton
- character
- text
- hash
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 49
- 230000006870 function Effects 0.000 claims description 81
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 22
- 230000010365 information processing Effects 0.000 claims description 15
- 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
- 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
- 230000000717 retained effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
1)テキストとパターンとの文字比較位置が関数的に変化する方法。
2)テキストとパターンとの文字比較位置が一定に変化する方法。
ChristianCharrs and ThierryLecroq"Handbook of Exact String Matching Algorithms"、[online]、[平成16年2月10日検索]、インターネット<URL:http://homepage.stts.edu/~aikawa/string.pdf> A.V.Ahoand M.J.Corasick.Efficientstring matching:an aid to bibliographicsearch.Comm.of theACM.18(6):333-340,June 1975.
さらに、前記k個のオートマトン部をパイプライン化して実現し、このパイプライン化されたk個のオートマトン部において、ハッシュ関数の適用によって生成される前記k個の文字列をパイプライン処理する機能を実現させることができる。
図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 (13)
- 入力文字列であるテキストから任意文字列であるパターンを検索するパターンマッチング装置において、
前記パターンにk(kは2以上の整数)文字から一つのハッシュ値を生成するハッシュ関数を適用した結果として得られる文字列をそれぞれ保持し、これまでに入力された文字列のサフィックスに対する前記保持している文字列の最長プリフィックスを状態として持つk個のオートマトン部と、
前記ハッシュ関数と同一のハッシュ関数を前記テキストに1文字ずつk−1文字までずらしながら適用した結果として得られるk個の文字列を前記k個のオートマトン部にそれぞれ入力するハッシュ計算部と、
前記k個のオートマトン部のいずれかが最終状態になったか否かを判定することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行う最終状態判定部と
を備えたことを特徴とするパターンマッチング装置。 - 前記ハッシュ関数として、パターンの1文字あたりのビット幅より小さいビット幅を持つハッシュ値を生成するハッシュ関数を用いる
ことを特徴とする請求項1記載のパターンマッチング装置。 - 前記k個のオートマトン部をパイプライン化して実現し、このパイプライン化されたk個のオートマトン部において、ハッシュ関数の適用によって生成される前記k個の文字列をパイプライン処理する手段を備えた
ことを特徴とする請求項1または2記載のパターンマッチング装置。 - 前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定する完全一致照合部を備えた
ことを特徴とする請求項1ないし3のいずれか記載のパターンマッチング装置。 - パターンマッチング装置が、入力文字列であるテキストから任意文字列であるパターンを検索するパターンマッチング方法において、
前記パターンにk(kは2以上の整数)文字から一つのハッシュ値を生成するハッシュ関数を適用した結果として得られる文字列をそれぞれ保持し、これまでに入力された文字列のサフィックスに対する前記保持している文字列の最長プリフィックスを状態として持つk個のオートマトン部を用い、
ハッシュ計算部が、前記ハッシュ関数と同一のハッシュ関数を前記テキストに1文字ずつk−1文字までずらしながら適用した結果として得られるk個の文字列を前記k個のオートマトン部にそれぞれ入力するステップと、
最終状態判定部が、前記k個のオートマトン部のいずれかが最終状態になったか否かを判定することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行うステップと
を実行することを特徴とするパターンマッチング方法。 - 前記ハッシュ関数として、パターンの1文字あたりのビット幅より小さいビット幅を持つハッシュ値を生成するハッシュ関数を用いる
ことを特徴とする請求項5記載のパターンマッチング方法。 - 前記k個のオートマトン部がパイプライン化されて実現され、このパイプライン化されたk個のオートマトン部において、ハッシュ関数の適用によって生成される前記k個の文字列をパイプライン処理する
ことを特徴とする請求項5または6記載のパターンマッチング方法。 - 完全一致照合部が、前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定するステップを実行する
ことを特徴とする請求項5または7記載のパターンマッチング方法。 - 情報処理装置にインストールすることにより、その情報処理装置に、
入力文字列であるテキストから任意文字列であるパターンを検索するパターンマッチング装置に相応する機能を実現させるプログラムにおいて、
前記パターンにk(kは2以上の整数)文字から一つのハッシュ値を生成するハッシュ関数を適用した結果として得られる文字列をそれぞれ保持し、これまでに入力された文字列のサフィックスに対する前記保持している文字列の最長プリフィックスを状態として持つk個のオートマトン部に相応する機能と、
前記ハッシュ関数と同一のハッシュ関数を前記テキストに1文字ずつk−1文字までずらしながら適用した結果として得られるk個の文字列を前記k個のオートマトン部にそれぞれ入力するハッシュ計算機能と、
前記k個のオートマトン部のいずれかが最終状態になったか否かを判定することによって、パターンに一致する可能性のある部分テキストと、パターンに一致する可能性のない部分テキストとの識別を行う最終状態判定機能と
を実現させることを特徴とするプログラム。 - 前記ハッシュ関数として、パターンの1文字あたりのビット幅より小さいビット幅をもつハッシュ値を用いる
ことを特徴とする請求項9記載のプログラム。 - 前記k個のオートマトン部をパイプライン化して実現し、このパイプライン化されたk個のオートマトン部において、ハッシュ関数の適用によって生成される前記k個の文字列をパイプライン処理する機能を実現させる
ことを特徴とする請求項9または10記載のプログラム。 - 前記一致する可能性のある部分テキストに対し、パターンと完全に一致するか否かを判定する完全一致照合機能を実現させる
ことを特徴とする請求項9または10記載のプログラム。 - 請求項9ないし12のいずれかに記載のプログラムが記録された前記情報処理装置読み取り可能な記録媒体。
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 JP2005242668A (ja) | 2005-09-08 |
JP4347086B2 true 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) |
Families Citing this family (4)
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 | 検索装置および検索方法 |
WO2009093307A1 (ja) * | 2008-01-22 | 2009-07-30 | Fujitsu Limited | 検索装置および検索方法 |
JP4831787B2 (ja) * | 2009-02-09 | 2011-12-07 | 日本電信電話株式会社 | 引用検出装置、そのプログラム及び記録媒体 |
-
2004
- 2004-02-26 JP JP2004051654A patent/JP4347086B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005242668A (ja) | 2005-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4538449B2 (ja) | 文字列検索の方法および設備 | |
US8095526B2 (en) | Efficient retrieval of variable-length character string data | |
Shabaz et al. | SA sorting: a novel sorting technique for large‐scale data | |
US7818303B2 (en) | Web graph compression through scalable pattern mining | |
JP6160259B2 (ja) | 文字列探索方法、文字列探索装置および文字列探索プログラム | |
JPWO2004062110A1 (ja) | データ圧縮方法、プログラム及び装置 | |
CN103309893B (zh) | 一种字符串的比较方法及装置 | |
JP2009512099A (ja) | トライでの再始動可能なハッシュの方法及び装置 | |
JP2007034777A (ja) | データ検索装置及び方法、並びにコンピュータ・プログラム | |
Rasool et al. | String matching methodologies: A comparative analysis | |
CN105426412A (zh) | 多模式的串匹配方法和装置 | |
KR101662957B1 (ko) | 해싱기반의 순위다중패턴매칭 방법 | |
JP4347086B2 (ja) | パターンマッチング装置および方法ならびにプログラム | |
JP4347087B2 (ja) | パターンマッチング装置および方法ならびにプログラム | |
CN115982310A (zh) | 一种自带验证功能的链表生成方法及电子设备 | |
JP6773115B2 (ja) | 類似データ検索装置、類似データ検索方法および記録媒体 | |
JP2010225137A (ja) | 検索プログラム及び検索方法 | |
JP5912714B2 (ja) | データ構造、データ構造生成方法、情報処理装置、情報処理システム、及び情報処理プログラム | |
JP6261669B2 (ja) | クエリ校正システムおよび方法 | |
KR102146625B1 (ko) | 오토마타 기반 증분적 중위 확률 계산 장치 및 방법 | |
US20100070511A1 (en) | Reducing use of randomness in consistent uniform hashing | |
JP5041003B2 (ja) | 検索装置および検索方法 | |
Chitrakar et al. | Approximate search with constraints on indels with application in SPAM filtering | |
Kurniawan et al. | A new string matching algorithm based on logical indexing | |
US20190207958A1 (en) | Multi-pattern policy detection system and method |
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 |