文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。
[詳解]
#include "nn/nlib/succinct/WordFilter.h"
|
typedef bool(* | MatchCallback) (const char *first, const char *last, uint32_t nodeid, void *user_obj) |
| パターンにマッチした場合に呼び出されるコールバックです。 [詳解]
|
|
文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。
- 説明
AhoCorasick
クラスに似ていますが、マッチした語が指定された例外語の一部だった場合はコールバックが呼ばれることはありません。
- 指定した語が見つかった場合には、
MatchCallback()
関数が呼ばれます。 ただし、マッチした語の部分が例外語(これも事前に指定される)の一部か全部として含まれる場合には、コールバックは呼ばれません。
- 例えば、abcにマッチして、zabcが例外語だった場合は以下のとおりになります。
-
abcdは、abcにマッチし、コールバックが呼ばれます。
-
zabcdは、abcにマッチしますが、zabcが例外語でabcへのマッチを含むのでコールバックは呼ばれません。
WordFilter.h の 21 行目に定義があります。
nn::nlib::succinct::WordFilter::MatchCallback |
パターンにマッチした場合に呼び出されるコールバックです。
- 引数
-
[in] | first | マッチしたパターンの先頭へのポインタ |
[in] | last | マッチしたパターンの末尾へのポインタ |
[in] | nodeid | マッチしたパターンのID |
[in] | user_obj | ユーザー定義オブジェクトへのポインタ |
WordFilter.h の 23 行目に定義があります。
nn::nlib::succinct::WordFilter::Export |
( |
BinaryWriter * |
w | ) |
const |
|
noexcept |
オブジェクトを(ファイルに)書き出します。
- 引数
-
- 戻り値
- 成功した場合は
true
- 説明
- 書きだしたデータは
Import()
関数で読みだして復元することができます。 また、データは常にリトルエンディアンで書き出されます。
書き出されたオブジェクトを読み出します。
- 引数
-
- 戻り値
- インポートが成功した場合は
true
nn::nlib::succinct::WordFilter::Init |
( |
| ) |
|
|
noexcept |
オブジェクトを初期化します。
- 戻り値
- 成功した場合は
true
nn::nlib::succinct::WordFilter::Match |
( |
const char * |
doc, |
|
|
MatchCallback |
callback, |
|
|
void * |
user_obj = NULL |
|
) |
| |
|
inlinenoexcept |
文字列を検査して登録されている文字列を検出します。
- 引数
-
[in] | doc | ヌル終端する文字列 |
[in] | callback | 語が検出された場合に呼び出されるコールバック関数 |
[in,out] | user_obj | ユーザー指定オブジェクトへのポインタ |
WordFilter.h の 39 行目に定義があります。
nn::nlib::succinct::WordFilter::Match |
( |
const char * |
data, |
|
|
size_t |
n, |
|
|
MatchCallback |
callback, |
|
|
void * |
user_obj = NULL |
|
) |
| |
|
noexcept |
データを走査して検出対象のパターンを検出します。
- 引数
-
[in] | data | 検査対象のデータの先頭へのポインタ |
[in] | n | データサイズ |
[in] | callback | パターンが検出された場合に呼び出されるコールバック関数 |
[in,out] | user_obj | ユーザー指定オブジェクトへのポインタ |
このクラス詳解は次のファイルから抽出されました: