ailia_tokenizer  1.3.0.0
マクロ定義 | 関数
ailia_tokenizer.h ファイル

ailia Tokenizer NLP TOKENIZER ライブラリ [詳解]

#include "ailia.h"
ailia_tokenizer.h の依存先関係図:

[ソースコード]

マクロ定義

#define AILIA_API   __stdcall
 
#define AILIA_TOKENIZER_TYPE_WHISPER   (0)
 Whisper向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_CLIP   (1)
 Clip向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_XLM_ROBERTA   (2)
 XLM_ROBERTA向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_MARIAN   (3)
 MARIAN向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_WORDPIECE   (4)
 Japanese BERT向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_CHARACTER   (5)
 Japanese BERT向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_T5   (6)
 T5向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_ROBERTA   (7)
 RoBERTa向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_BERT   (8)
 BERT向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_GPT2   (9)
 GPT2向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_TYPE_LLAMA   (10)
 LLAMA向けのトークナイザ [詳解]
 
#define AILIA_TOKENIZER_FLAG_NONE   (0)
 フラグを設定しません [詳解]
 
#define AILIA_TOKENIZER_FLAG_UTF8_SAFE   (1)
 UTF8として有効な文字のみ出力します [詳解]
 
#define ailiaTokenizerOpenModelFile   ailiaTokenizerOpenModelFileA
 
#define ailiaTokenizerOpenDictionaryFile   ailiaTokenizerOpenDictionaryFileA
 
#define ailiaTokenizerOpenVocabFile   ailiaTokenizerOpenVocabFileA
 
#define ailiaTokenizerOpenMergeFile   ailiaTokenizerOpenMergeFileA
 
#define ailiaTokenizerOpenAddedTokensFile   ailiaTokenizerOpenAddedTokensFileA
 
#define ailiaTokenizerOpenTokenizerConfigFile   ailiaTokenizerOpenTokenizerConfigFileA
 

関数

int AILIA_API ailiaTokenizerCreate (struct AILIATokenizer **net, int type, int flags)
 トークナイズオブジェクトを作成します。 [詳解]
 
int AILIA_API ailiaTokenizerOpenModelFileA (struct AILIATokenizer *net, const char *path)
 モデルファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenModelFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerOpenDictionaryFileA (struct AILIATokenizer *net, const char *path)
 辞書ファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenDictionaryFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerOpenVocabFileA (struct AILIATokenizer *net, const char *path)
 単語ファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenVocabFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerOpenMergeFileA (struct AILIATokenizer *net, const char *path)
 マージファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenMergeFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerOpenAddedTokensFileA (struct AILIATokenizer *net, const char *path)
 追加トークンファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenAddedTokensFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerOpenTokenizerConfigFileA (struct AILIATokenizer *net, const char *path)
 コンフィグファイルを読み込みます。 [詳解]
 
int AILIA_API ailiaTokenizerOpenTokenizerConfigFileW (struct AILIATokenizer *net, const wchar_t *path)
 
int AILIA_API ailiaTokenizerEncode (struct AILIATokenizer *net, const char *utf8)
 エンコードを行います。 [詳解]
 
int AILIA_API ailiaTokenizerEncodeWithSpecialTokens (struct AILIATokenizer *net, const char *utf8)
 スペシャルトークンを含んだエンコードを行います。 [詳解]
 
int AILIA_API ailiaTokenizerGetTokenCount (struct AILIATokenizer *net, unsigned int *count)
 トークンの数を取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetTokens (struct AILIATokenizer *net, int *tokens, unsigned int count)
 トークンを取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetWordIDs (struct AILIATokenizer *net, int *word_ids, unsigned int count)
 ワードIDを取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetCharStarts (struct AILIATokenizer *net, int *char_starts, unsigned int count)
 開始文字位置を取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetCharEnds (struct AILIATokenizer *net, int *char_ends, unsigned int count)
 終了文字位置を取得します。 [詳解]
 
int AILIA_API ailiaTokenizerDecode (struct AILIATokenizer *net, const int *tokens, unsigned int token_count)
 デコードを行います。 [詳解]
 
int AILIA_API ailiaTokenizerDecodeWithSpecialTokens (struct AILIATokenizer *net, const int *tokens, unsigned int token_count)
 スペシャルトークンを含んだデコードを行います。 [詳解]
 
int AILIA_API ailiaTokenizerGetTextLength (struct AILIATokenizer *net, unsigned int *len)
 テキストの長さを取得します。(NULL文字含む) [詳解]
 
int AILIA_API ailiaTokenizerGetText (struct AILIATokenizer *net, char *text, unsigned int len)
 テキストを取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetVocabSize (struct AILIATokenizer *net, unsigned int *size)
 Vocabの数を取得します。 [詳解]
 
int AILIA_API ailiaTokenizerGetVocab (struct AILIATokenizer *net, int token, const char **vocab)
 Vocabの取得を行います。 [詳解]
 
void AILIA_API ailiaTokenizerDestroy (struct AILIATokenizer *net)
 トークナイズオブジェクトを破棄します。 [詳解]
 
int AILIA_API ailiaTokenizerUtf8ToUtf32 (unsigned int *utf32, unsigned int *processed_byte, const char *utf8, unsigned int utf8_len)
 UTF8の文字をUTF32の文字に変換します。 [詳解]
 
int AILIA_API ailiaTokenizerUtf32ToUtf8 (char *utf8, unsigned int *processed_byte, unsigned int utf32)
 UTF32の文字をUTF8の文字に変換します。 [詳解]
 

詳解

ailia Tokenizer NLP TOKENIZER ライブラリ

日付
2024/07/26

マクロ定義詳解

◆ AILIA_API

#define AILIA_API   __stdcall

◆ AILIA_TOKENIZER_FLAG_NONE

#define AILIA_TOKENIZER_FLAG_NONE   (0)

フラグを設定しません

◆ AILIA_TOKENIZER_FLAG_UTF8_SAFE

#define AILIA_TOKENIZER_FLAG_UTF8_SAFE   (1)

UTF8として有効な文字のみ出力します

◆ AILIA_TOKENIZER_TYPE_BERT

#define AILIA_TOKENIZER_TYPE_BERT   (8)

BERT向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_BERT_JAPANESE_CHARACTER

#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_CHARACTER   (5)

Japanese BERT向けのトークナイザ

入力されたテキストは内部でNFKC形式でUnicode正規化を行います。

◆ AILIA_TOKENIZER_TYPE_BERT_JAPANESE_WORDPIECE

#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_WORDPIECE   (4)

Japanese BERT向けのトークナイザ

入力されたテキストは内部でNFKC形式でUnicode正規化を行います。

◆ AILIA_TOKENIZER_TYPE_CLIP

#define AILIA_TOKENIZER_TYPE_CLIP   (1)

Clip向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_GPT2

#define AILIA_TOKENIZER_TYPE_GPT2   (9)

GPT2向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_LLAMA

#define AILIA_TOKENIZER_TYPE_LLAMA   (10)

LLAMA向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_MARIAN

#define AILIA_TOKENIZER_TYPE_MARIAN   (3)

MARIAN向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_ROBERTA

#define AILIA_TOKENIZER_TYPE_ROBERTA   (7)

RoBERTa向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_T5

#define AILIA_TOKENIZER_TYPE_T5   (6)

T5向けのトークナイザ

add_special_tokens=Trueと同様に末尾にEOSシンボルを挿入します。 japanese_clipなど、add_special_tokens=Falseと同様の動作にする場合は、出力の末尾のEOSシンボルを削除してください。

◆ AILIA_TOKENIZER_TYPE_WHISPER

#define AILIA_TOKENIZER_TYPE_WHISPER   (0)

Whisper向けのトークナイザ

◆ AILIA_TOKENIZER_TYPE_XLM_ROBERTA

#define AILIA_TOKENIZER_TYPE_XLM_ROBERTA   (2)

XLM_ROBERTA向けのトークナイザ

◆ ailiaTokenizerOpenAddedTokensFile

#define ailiaTokenizerOpenAddedTokensFile   ailiaTokenizerOpenAddedTokensFileA

◆ ailiaTokenizerOpenDictionaryFile

#define ailiaTokenizerOpenDictionaryFile   ailiaTokenizerOpenDictionaryFileA

◆ ailiaTokenizerOpenMergeFile

#define ailiaTokenizerOpenMergeFile   ailiaTokenizerOpenMergeFileA

◆ ailiaTokenizerOpenModelFile

#define ailiaTokenizerOpenModelFile   ailiaTokenizerOpenModelFileA

◆ ailiaTokenizerOpenTokenizerConfigFile

#define ailiaTokenizerOpenTokenizerConfigFile   ailiaTokenizerOpenTokenizerConfigFileA

◆ ailiaTokenizerOpenVocabFile

#define ailiaTokenizerOpenVocabFile   ailiaTokenizerOpenVocabFileA

関数詳解

◆ ailiaTokenizerCreate()

int AILIA_API ailiaTokenizerCreate ( struct AILIATokenizer **  net,
int  type,
int  flags 
)

トークナイズオブジェクトを作成します。

引数
netトークナイザオブジェクトポインタへのポインタ
typeAILIA_TOKENIZER_TYPE_*
flagAILIA_TOKENIZER_FLAG_*の論理和
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

トークナイズオブジェクトを作成します。

◆ ailiaTokenizerDecode()

int AILIA_API ailiaTokenizerDecode ( struct AILIATokenizer *  net,
const int *  tokens,
unsigned int  token_count 
)

デコードを行います。

引数
netトークナイザオブジェクトポインタ
tokensデコードするトークン
token_countトークンの数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

デコードした結果はailiaTokenizerGetText APIで取得します。 skip_special_tokens=Trueと同様に、Special Tokenは出力しません。

◆ ailiaTokenizerDecodeWithSpecialTokens()

int AILIA_API ailiaTokenizerDecodeWithSpecialTokens ( struct AILIATokenizer *  net,
const int *  tokens,
unsigned int  token_count 
)

スペシャルトークンを含んだデコードを行います。

引数
netトークナイザオブジェクトポインタ
tokensデコードするトークン
token_countトークンの数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

デコードした結果はailiaTokenizerGetText APIで取得します。 skip_special_tokens=Falseと同様に、Special Tokenを出力します。

◆ ailiaTokenizerDestroy()

void AILIA_API ailiaTokenizerDestroy ( struct AILIATokenizer *  net)

トークナイズオブジェクトを破棄します。

引数
netトークナイザオブジェクトポインタ

◆ ailiaTokenizerEncode()

int AILIA_API ailiaTokenizerEncode ( struct AILIATokenizer *  net,
const char *  utf8 
)

エンコードを行います。

引数
netトークナイザオブジェクトポインタ
textエンコードするテキスト(UTF8)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

認識した結果はailiaTokenizerGetTokens APIで取得します。 split_special_tokens=Trueと同様に、Special Tokenは分割して文字列として扱われます。

◆ ailiaTokenizerEncodeWithSpecialTokens()

int AILIA_API ailiaTokenizerEncodeWithSpecialTokens ( struct AILIATokenizer *  net,
const char *  utf8 
)

スペシャルトークンを含んだエンコードを行います。

引数
netトークナイザオブジェクトポインタ
textエンコードするテキスト(UTF8)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

認識した結果はailiaTokenizerGetTokens APIで取得します。 split_special_tokens=Falseと同様に、Special Tokenを出力します。

◆ ailiaTokenizerGetCharEnds()

int AILIA_API ailiaTokenizerGetCharEnds ( struct AILIATokenizer *  net,
int *  char_ends,
unsigned int  count 
)

終了文字位置を取得します。

引数
netトークナイザオブジェクトポインタ
char_ends終了文字位置
count格納先トークン数

◆ ailiaTokenizerGetCharStarts()

int AILIA_API ailiaTokenizerGetCharStarts ( struct AILIATokenizer *  net,
int *  char_starts,
unsigned int  count 
)

開始文字位置を取得します。

引数
netトークナイザオブジェクトポインタ
char_starts開始文字位置
count格納先トークン数

◆ ailiaTokenizerGetText()

int AILIA_API ailiaTokenizerGetText ( struct AILIATokenizer *  net,
char *  text,
unsigned int  len 
)

テキストを取得します。

引数
netトークナイザオブジェクトポインタ
textテキスト(UTF8)
lenバッファサイズ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaTokenizerDecode() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。

◆ ailiaTokenizerGetTextLength()

int AILIA_API ailiaTokenizerGetTextLength ( struct AILIATokenizer *  net,
unsigned int *  len 
)

テキストの長さを取得します。(NULL文字含む)

引数
netトークナイザオブジェクトポインタ
lenテキストの長さ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaTokenizerGetTokenCount()

int AILIA_API ailiaTokenizerGetTokenCount ( struct AILIATokenizer *  net,
unsigned int *  count 
)

トークンの数を取得します。

引数
netトークナイザオブジェクトポインタ
countオブジェクト数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaTokenizerGetTokens()

int AILIA_API ailiaTokenizerGetTokens ( struct AILIATokenizer *  net,
int *  tokens,
unsigned int  count 
)

トークンを取得します。

引数
netトークナイザオブジェクトポインタ
tokensトークン
count格納先トークン数

◆ ailiaTokenizerGetVocab()

int AILIA_API ailiaTokenizerGetVocab ( struct AILIATokenizer *  net,
int  token,
const char **  vocab 
)

Vocabの取得を行います。

引数
netトークナイザオブジェクトポインタ
tokenトークン
vocabVocabのテキスト(UTF8)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

vocabを解放する必要はありません。 vocabの有効期間は次にailiaTokenizer APIを呼び出すまでになります。

◆ ailiaTokenizerGetVocabSize()

int AILIA_API ailiaTokenizerGetVocabSize ( struct AILIATokenizer *  net,
unsigned int *  size 
)

Vocabの数を取得します。

引数
netトークナイザオブジェクトポインタ
sizeVocabの要素数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaTokenizerGetWordIDs()

int AILIA_API ailiaTokenizerGetWordIDs ( struct AILIATokenizer *  net,
int *  word_ids,
unsigned int  count 
)

ワードIDを取得します。

引数
netトークナイザオブジェクトポインタ
word_idsワードID
count格納先トークン数

◆ ailiaTokenizerOpenAddedTokensFileA()

int AILIA_API ailiaTokenizerOpenAddedTokensFileA ( struct AILIATokenizer *  net,
const char *  path 
)

追加トークンファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
pathスペシャルトークンファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

追加トークンファイル (json) を読み込みます。AILIA_TOKENIZER_TYPE_WHISPERの場合のみ有効です。

◆ ailiaTokenizerOpenAddedTokensFileW()

int AILIA_API ailiaTokenizerOpenAddedTokensFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerOpenDictionaryFileA()

int AILIA_API ailiaTokenizerOpenDictionaryFileA ( struct AILIATokenizer *  net,
const char *  path 
)

辞書ファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
pathMecabの辞書ファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

Mecabの辞書ファイルを読み込みます。AILIA_TOKENIZER_TYPE_BERT_JAPANESE_XXXの場合のみ必要です。

◆ ailiaTokenizerOpenDictionaryFileW()

int AILIA_API ailiaTokenizerOpenDictionaryFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerOpenMergeFileA()

int AILIA_API ailiaTokenizerOpenMergeFileA ( struct AILIATokenizer *  net,
const char *  path 
)

マージファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
pathマージファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

マージファイル (txt) を読み込みます。AILIA_TOKENIZER_TYPE_ROBERTAもしくはAILIA_TOKENIZER_TYPE_WHISPERもしくはAILIA_TOKENIZER_TYPE_GPT2の場合のみ有効です。

◆ ailiaTokenizerOpenMergeFileW()

int AILIA_API ailiaTokenizerOpenMergeFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerOpenModelFileA()

int AILIA_API ailiaTokenizerOpenModelFileA ( struct AILIATokenizer *  net,
const char *  path 
)

モデルファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
pathSentencePieceのモデルファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

SentencePieceのモデルファイルを読み込みます。AILIA_TOKENIZER_TYPE_XLM_ROBERTAもしくはAILIA_TOKENIZER_TYPE_MARIANの場合のみ必要です。

◆ ailiaTokenizerOpenModelFileW()

int AILIA_API ailiaTokenizerOpenModelFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerOpenTokenizerConfigFileA()

int AILIA_API ailiaTokenizerOpenTokenizerConfigFileA ( struct AILIATokenizer *  net,
const char *  path 
)

コンフィグファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
pathコンフィグファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

トークナイザコンフィグファイル (json) を読み込みます。AILIA_TOKENIZER_TYPE_BERTの場合のみ有効です。

◆ ailiaTokenizerOpenTokenizerConfigFileW()

int AILIA_API ailiaTokenizerOpenTokenizerConfigFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerOpenVocabFileA()

int AILIA_API ailiaTokenizerOpenVocabFileA ( struct AILIATokenizer *  net,
const char *  path 
)

単語ファイルを読み込みます。

引数
netトークナイザオブジェクトポインタへのポインタ
path単語ファイルのパス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

単語ファイル (ROBERTAとWHISPERとGPT2はjson、それ以外はtxt) を読み込みます。

◆ ailiaTokenizerOpenVocabFileW()

int AILIA_API ailiaTokenizerOpenVocabFileW ( struct AILIATokenizer *  net,
const wchar_t *  path 
)

◆ ailiaTokenizerUtf32ToUtf8()

int AILIA_API ailiaTokenizerUtf32ToUtf8 ( char *  utf8,
unsigned int *  processed_byte,
unsigned int  utf32 
)

UTF32の文字をUTF8の文字に変換します。

引数
utf8UTF8の文字(4byte以上必要)
processed_byte書き込んだ文字数(UTF8)
utf32UTF32の文字
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaTokenizerUtf8ToUtf32()

int AILIA_API ailiaTokenizerUtf8ToUtf32 ( unsigned int *  utf32,
unsigned int *  processed_byte,
const char *  utf8,
unsigned int  utf8_len 
)

UTF8の文字をUTF32の文字に変換します。

引数
utf32UTF32の文字
processed_byte消費したバイト数(UTF8)
utf8UTF8の文字
utf8_lenバッファサイズ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。