AC法で用いるインデックス(オートマトン)を作成します。
[詳解]
#include "nn/nlib/succinct/AhoCorasickBuilder.h"
|
typedef bool(* | MatchCallback) (const char *first, const char *last, uint32_t nodeid, void *user_obj) |
| ユーザー定義のコールバック関数です。 [詳解]
|
|
AC法で用いるインデックス(オートマトン)を作成します。
- 説明
AddWord()
関数等で検出対象の文字列(パターン)を追加していき、Build()
関数でAhoCorasick
オブジェクトを生成します。 作成されたAhoCorasick
オブジェクトはユーザーがdelete
する必要があります。
AhoCorasickBuilder.h の 33 行目に定義があります。
◆ MatchCallback
nn::nlib::succinct::AhoCorasickBuilder::MatchCallback |
ユーザー定義のコールバック関数です。
- 引数
-
[in] | first | 検出語の先頭を指すポインタ |
[in] | last | 検出語の直後を指すポインタ |
[in] | nodeid | 検出した語のID(連続値ではない) |
[in,out] | user_obj | ユーザーデータ |
- 戻り値
true
の場合は引き続き解析を続ける。false
の場合は処理を打ち切り
- 説明
- 文字列(パターン)を検出した場合に呼び出されます。 ユーザーはそれに対応した処理を記述します。
AhoCorasickBuilder.h の 46 行目に定義があります。
◆ AddPattern()
nn::nlib::succinct::AhoCorasickBuilder::AddPattern |
( |
const void * |
p, |
|
|
size_t |
n |
|
) |
| |
|
noexcept |
検出対象のデータを追加します。
- 引数
-
[in] | p | データへのポインタ |
[in] | n | データサイズ |
- 戻り値
- 成功した場合は
true
◆ AddWord()
nn::nlib::succinct::AhoCorasickBuilder::AddWord |
( |
const char * |
str | ) |
|
|
noexcept |
検出対象の文字列を追加します。
- 引数
-
- 戻り値
- 成功した場合は
true
◆ AddWords() [1/2]
nn::nlib::succinct::AhoCorasickBuilder::AddWords |
( |
const char * |
str, |
|
|
size_t |
len |
|
) |
| |
|
noexcept |
検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLF
かLF
)である必要があります。
- 引数
-
[in] | str | 文字列へのポインタ |
[in] | len | 文字列の長さ(strlen の結果) |
- 戻り値
- 成功した場合は
true
◆ AddWords() [2/2]
nn::nlib::succinct::AhoCorasickBuilder::AddWords |
( |
const char * |
str | ) |
|
|
inlinenoexcept |
検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLF
かLF
)である必要があります。
- 引数
-
- 戻り値
- 成功した場合は
true
AhoCorasickBuilder.h の 42 行目に定義があります。
◆ Build()
nn::nlib::succinct::AhoCorasickBuilder::Build |
( |
| ) |
|
|
noexcept |
◆ GetNumBytes()
nn::nlib::succinct::AhoCorasickBuilder::GetNumBytes |
( |
| ) |
const |
|
noexcept |
登録された文字列(パターン)の総量(バイト単位)を取得します。
- 戻り値
- 登録された文字列(パターン)の総量
◆ GetNumNodes()
nn::nlib::succinct::AhoCorasickBuilder::GetNumNodes |
( |
| ) |
const |
|
noexcept |
作成されたオートマトンのノード数を取得します。
- 戻り値
- 作成されたオートマトンのノード数
◆ GetNumWords()
nn::nlib::succinct::AhoCorasickBuilder::GetNumWords |
( |
| ) |
const |
|
noexcept |
登録された文字列(パターン)の数を取得します。
- 戻り値
- 登録された文字列の数
◆ MatchByBuilder()
nn::nlib::succinct::AhoCorasickBuilder::MatchByBuilder |
( |
const char * |
doc, |
|
|
MatchCallback |
callback, |
|
|
void * |
user_obj |
|
) |
| |
|
noexcept |
文字列を検査して検出対象の文字列を検出します。
- 引数
-
[in] | doc | ヌル終端する文字列 |
[in] | callback | 語が検出された場合に呼び出されるコールバック関数 |
[in,out] | user_obj | ユーザーデータ |
このクラス詳解は次のファイルから抽出されました: