nlib
nn::nlib::succinct::AhoCorasickBuilder クラスfinal

AC法で用いるインデックス(オートマトン)を作成します。 [詳解]

#include "nn/nlib/succinct/AhoCorasickBuilder.h"

公開型

typedef bool(* MatchCallback) (const char *first, const char *last, uint32_t nodeid, void *user_obj)
 ユーザー定義のコールバック関数です。 [詳解]
 

公開メンバ関数

bool AddWord (const char *str) noexcept
 検出対象の文字列を追加します。 [詳解]
 
bool AddPattern (const void *p, size_t n) noexcept
 検出対象のデータを追加します。 [詳解]
 
bool AddWords (const char *str, size_t len) noexcept
 検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFLF)である必要があります。 [詳解]
 
bool AddWords (const char *str) noexcept
 検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFLF)である必要があります。 [詳解]
 
AhoCorasickBuild () noexcept
 AhoCorasick オブジェクトを作成します。追加された文字列(パターン)を検出するAC法のためのオートマトンを構築します。 [詳解]
 
void MatchByBuilder (const char *doc, MatchCallback callback, void *user_obj=NULL) noexcept
 文字列を検査して検出対象の文字列を検出します。 [詳解]
 
size_t GetNumWords () const noexcept
 登録された文字列(パターン)の数を取得します。 [詳解]
 
size_t GetNumBytes () const noexcept
 登録された文字列(パターン)の総量(バイト単位)を取得します。 [詳解]
 
size_t GetNumNodes () const noexcept
 作成されたオートマトンのノード数を取得します。 [詳解]
 
初期化と終了処理
 AhoCorasickBuilder () noexcept
 デフォルトコンストラクタです。
 
 ~AhoCorasickBuilder () noexcept
 デストラクタです。
 
bool Init () noexcept
 オブジェクトを初期化します。成功した場合はtrueを返します。
 

詳解

AC法で用いるインデックス(オートマトン)を作成します。

説明
AddWord()関数等で検出対象の文字列(パターン)を追加していき、Build()関数でAhoCorasickオブジェクトを生成します。 作成されたAhoCorasickオブジェクトはユーザーがdeleteする必要があります。

AhoCorasickBuilder.h162 行目に定義があります。

型定義メンバ詳解

nn::nlib::succinct::AhoCorasickBuilder::MatchCallback

ユーザー定義のコールバック関数です。

引数
[in]first検出語の先頭を指すポインタ
[in]last検出語の直後を指すポインタ
[in]nodeid検出した語のID(連続値ではない)
[in,out]user_objユーザーデータ
戻り値
trueの場合は引き続き解析を続ける。falseの場合は処理を打ち切り
説明
文字列(パターン)を検出した場合に呼び出されます。 ユーザーはそれに対応した処理を記述します。

AhoCorasickBuilder.h176 行目に定義があります。

関数詳解

nn::nlib::succinct::AhoCorasickBuilder::AddPattern ( const void *  p,
size_t  n 
)
noexcept

検出対象のデータを追加します。

引数
[in]pデータへのポインタ
[in]nデータサイズ
戻り値
成功した場合はtrue
nn::nlib::succinct::AhoCorasickBuilder::AddWord ( const char *  str)
noexcept

検出対象の文字列を追加します。

引数
[in]str文字列
戻り値
成功した場合はtrue
nn::nlib::succinct::AhoCorasickBuilder::AddWords ( const char *  str,
size_t  len 
)
noexcept

検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFLF)である必要があります。

引数
[in]str文字列へのポインタ
[in]len文字列の長さ(strlenの結果)
戻り値
成功した場合はtrue
nn::nlib::succinct::AhoCorasickBuilder::AddWords ( const char *  str)
inlinenoexcept

検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFLF)である必要があります。

引数
[in]str文字列へのポインタ
戻り値
成功した場合はtrue

AhoCorasickBuilder.h172 行目に定義があります。

nn::nlib::succinct::AhoCorasickBuilder::Build ( )
noexcept

AhoCorasick オブジェクトを作成します。追加された文字列(パターン)を検出するAC法のためのオートマトンを構築します。

戻り値
AhoCorasick オブジェクトへのポインタ
nn::nlib::succinct::AhoCorasickBuilder::GetNumBytes ( ) const
inlinenoexcept

登録された文字列(パターン)の総量(バイト単位)を取得します。

戻り値
登録された文字列(パターン)の総量

AhoCorasickBuilder.h182 行目に定義があります。

nn::nlib::succinct::AhoCorasickBuilder::GetNumNodes ( ) const
inlinenoexcept

作成されたオートマトンのノード数を取得します。

戻り値
作成されたオートマトンのノード数

AhoCorasickBuilder.h183 行目に定義があります。

nn::nlib::succinct::AhoCorasickBuilder::GetNumWords ( ) const
inlinenoexcept

登録された文字列(パターン)の数を取得します。

戻り値
登録された文字列の数

AhoCorasickBuilder.h181 行目に定義があります。

nn::nlib::succinct::AhoCorasickBuilder::MatchByBuilder ( const char *  doc,
MatchCallback  callback,
void *  user_obj = NULL 
)
noexcept

文字列を検査して検出対象の文字列を検出します。

引数
[in]docヌル終端する文字列
[in]callback語が検出された場合に呼び出されるコールバック関数
[in,out]user_objユーザーデータ

このクラス詳解は次のファイルから抽出されました: