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

文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。 [詳解]

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

公開型

typedef bool(* MatchCallback) (const char *first, const char *last, uint32_t nodeid, void *user_obj)
 パターンにマッチした場合に呼び出されるコールバックです。 [詳解]
 

公開メンバ関数

bool Init () noexcept
 オブジェクトを初期化します。 [詳解]
 
void Match (const char *doc, MatchCallback callback, void *user_obj=NULL) noexcept
 文字列を検査して登録されている文字列を検出します。 [詳解]
 
void Match (const char *data, size_t n, MatchCallback callback, void *user_obj=NULL) noexcept
 データを走査して検出対象のパターンを検出します。 [詳解]
 
void Reset () noexcept
 オブジェクトをコンストラクタが呼ばれた直後の状態にします。
 
インポートとエクスポート
bool Export (BinaryWriter *w) const noexcept
 オブジェクトを(ファイルに)書き出します。 [詳解]
 
bool Import (BinaryReader *r) noexcept
 書き出されたオブジェクトを読み出します。 [詳解]
 

基本的なメンバ関数

 WordFilter () noexcept
 コンストラクタです。
 
 ~WordFilter () noexcept
 デストラクタです。
 
 WordFilter (WordFilter &rhs, move_tag) noexcept
 swapを利用したムーブによりオブジェクトを構築します。
 
WordFilterassign (WordFilter &rhs, move_tag) noexcept
 swapを利用したムーブにより代入します。
 
 WordFilter (WordFilter &&rhs) noexcept
 ムーブコンストラクタです。C++11の利用時に有効です。
 
void swap (WordFilter &rhs) noexcept
 オブジェクトの内容をスワップします。
 

詳解

文章内に事前に指定した語の集合が含まれていないかどうかチェックするためのクラスです。

説明
AhoCorasickクラスに似ていますが、マッチした語が指定された例外語の一部だった場合はコールバックが呼ばれることはありません。
指定した語が見つかった場合には、MatchCallback()関数が呼ばれます。 ただし、マッチした語の部分が例外語(これも事前に指定される)の一部か全部として含まれる場合には、コールバックは呼ばれません。
例えば、abcにマッチして、zabcが例外語だった場合は以下のとおりになります。
  • abcdは、abcにマッチし、コールバックが呼ばれます。
  • zabcdは、abcにマッチしますが、zabcが例外語でabcへのマッチを含むのでコールバックは呼ばれません。

WordFilter.h21 行目に定義があります。

型定義メンバ詳解

nn::nlib::succinct::WordFilter::MatchCallback

パターンにマッチした場合に呼び出されるコールバックです。

引数
[in]firstマッチしたパターンの先頭へのポインタ
[in]lastマッチしたパターンの末尾へのポインタ
[in]nodeidマッチしたパターンのID
[in]user_objユーザー定義オブジェクトへのポインタ

WordFilter.h23 行目に定義があります。

関数詳解

nn::nlib::succinct::WordFilter::Export ( BinaryWriter w) const
noexcept

オブジェクトを(ファイルに)書き出します。

引数
[in]w書き出し用オブジェクト
戻り値
成功した場合はtrue
説明
書きだしたデータはImport()関数で読みだして復元することができます。 また、データは常にリトルエンディアンで書き出されます。
nn::nlib::succinct::WordFilter::Import ( BinaryReader r)
noexcept

書き出されたオブジェクトを読み出します。

引数
[in]r読み出し用オブジェクト
戻り値
インポートが成功した場合は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.h39 行目に定義があります。

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ユーザー指定オブジェクトへのポインタ

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