ailia_tokenizer
1.4.0.0
|
ailia Tokenizer NLP TOKENIZER ライブラリ [詳解]
#include "ailia.h"
関数 | |
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の取得を行います。 [詳解] | |
int AILIA_API | ailiaTokenizerAddSpecialTokens (struct AILIATokenizer *net, const char **tokens, unsigned int count) |
SpecialTokenの追加を行います。 [詳解] | |
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 ライブラリ
#define AILIA_API __stdcall |
#define AILIA_TOKENIZER_FLAG_NONE (0) |
フラグを設定しません
#define AILIA_TOKENIZER_FLAG_UTF8_SAFE (1) |
UTF8として有効な文字のみ出力します
#define AILIA_TOKENIZER_TYPE_BERT (8) |
BERT向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_CHARACTER (5) |
Japanese BERT向けのトークナイザ
入力されたテキストは内部でNFKC形式でUnicode正規化を行います。
#define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_WORDPIECE (4) |
Japanese BERT向けのトークナイザ
入力されたテキストは内部でNFKC形式でUnicode正規化を行います。
#define AILIA_TOKENIZER_TYPE_CLIP (1) |
Clip向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_GPT2 (9) |
GPT2向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_LLAMA (10) |
LLAMA向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_MARIAN (3) |
MARIAN向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_ROBERTA (7) |
RoBERTa向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_T5 (6) |
T5向けのトークナイザ
add_special_tokens=Trueと同様に末尾にEOSシンボルを挿入します。 japanese_clipなど、add_special_tokens=Falseと同様の動作にする場合は、出力の末尾のEOSシンボルを削除してください。
#define AILIA_TOKENIZER_TYPE_WHISPER (0) |
Whisper向けのトークナイザ
#define AILIA_TOKENIZER_TYPE_XLM_ROBERTA (2) |
XLM_ROBERTA向けのトークナイザ
#define ailiaTokenizerOpenAddedTokensFile ailiaTokenizerOpenAddedTokensFileA |
#define ailiaTokenizerOpenDictionaryFile ailiaTokenizerOpenDictionaryFileA |
#define ailiaTokenizerOpenMergeFile ailiaTokenizerOpenMergeFileA |
#define ailiaTokenizerOpenModelFile ailiaTokenizerOpenModelFileA |
#define ailiaTokenizerOpenTokenizerConfigFile ailiaTokenizerOpenTokenizerConfigFileA |
#define ailiaTokenizerOpenVocabFile ailiaTokenizerOpenVocabFileA |
int AILIA_API ailiaTokenizerAddSpecialTokens | ( | struct AILIATokenizer * | net, |
const char ** | tokens, | ||
unsigned int | count | ||
) |
SpecialTokenの追加を行います。
net | トークナイザオブジェクトポインタ |
tokens | トークン(UTF8) |
count | 追加する個数 |
AILIA_TOKENIZER_TYPE_ROBERTAの場合のみ有効です。
int AILIA_API ailiaTokenizerCreate | ( | struct AILIATokenizer ** | net, |
int | type, | ||
int | flags | ||
) |
トークナイズオブジェクトを作成します。
net | トークナイザオブジェクトポインタへのポインタ |
type | AILIA_TOKENIZER_TYPE_* |
flag | AILIA_TOKENIZER_FLAG_*の論理和 |
トークナイズオブジェクトを作成します。
int AILIA_API ailiaTokenizerDecode | ( | struct AILIATokenizer * | net, |
const int * | tokens, | ||
unsigned int | token_count | ||
) |
デコードを行います。
net | トークナイザオブジェクトポインタ |
tokens | デコードするトークン |
token_count | トークンの数 |
デコードした結果はailiaTokenizerGetText APIで取得します。 skip_special_tokens=Trueと同様に、Special Tokenは出力しません。
int AILIA_API ailiaTokenizerDecodeWithSpecialTokens | ( | struct AILIATokenizer * | net, |
const int * | tokens, | ||
unsigned int | token_count | ||
) |
スペシャルトークンを含んだデコードを行います。
net | トークナイザオブジェクトポインタ |
tokens | デコードするトークン |
token_count | トークンの数 |
デコードした結果はailiaTokenizerGetText APIで取得します。 skip_special_tokens=Falseと同様に、Special Tokenを出力します。
void AILIA_API ailiaTokenizerDestroy | ( | struct AILIATokenizer * | net | ) |
トークナイズオブジェクトを破棄します。
net | トークナイザオブジェクトポインタ |
int AILIA_API ailiaTokenizerEncode | ( | struct AILIATokenizer * | net, |
const char * | utf8 | ||
) |
エンコードを行います。
net | トークナイザオブジェクトポインタ |
text | エンコードするテキスト(UTF8) |
認識した結果はailiaTokenizerGetTokens APIで取得します。 split_special_tokens=Trueと同様に、Special Tokenは分割して文字列として扱われます。
int AILIA_API ailiaTokenizerEncodeWithSpecialTokens | ( | struct AILIATokenizer * | net, |
const char * | utf8 | ||
) |
スペシャルトークンを含んだエンコードを行います。
net | トークナイザオブジェクトポインタ |
text | エンコードするテキスト(UTF8) |
認識した結果はailiaTokenizerGetTokens APIで取得します。 split_special_tokens=Falseと同様に、Special Tokenを出力します。
int AILIA_API ailiaTokenizerGetCharEnds | ( | struct AILIATokenizer * | net, |
int * | char_ends, | ||
unsigned int | count | ||
) |
終了文字位置を取得します。
net | トークナイザオブジェクトポインタ |
char_ends | 終了文字位置 |
count | 格納先トークン数 |
int AILIA_API ailiaTokenizerGetCharStarts | ( | struct AILIATokenizer * | net, |
int * | char_starts, | ||
unsigned int | count | ||
) |
開始文字位置を取得します。
net | トークナイザオブジェクトポインタ |
char_starts | 開始文字位置 |
count | 格納先トークン数 |
int AILIA_API ailiaTokenizerGetText | ( | struct AILIATokenizer * | net, |
char * | text, | ||
unsigned int | len | ||
) |
テキストを取得します。
net | トークナイザオブジェクトポインタ |
text | テキスト(UTF8) |
len | バッファサイズ |
ailiaTokenizerDecode() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。
int AILIA_API ailiaTokenizerGetTextLength | ( | struct AILIATokenizer * | net, |
unsigned int * | len | ||
) |
テキストの長さを取得します。(NULL文字含む)
net | トークナイザオブジェクトポインタ |
len | テキストの長さ |
int AILIA_API ailiaTokenizerGetTokenCount | ( | struct AILIATokenizer * | net, |
unsigned int * | count | ||
) |
トークンの数を取得します。
net | トークナイザオブジェクトポインタ |
count | オブジェクト数 |
int AILIA_API ailiaTokenizerGetTokens | ( | struct AILIATokenizer * | net, |
int * | tokens, | ||
unsigned int | count | ||
) |
トークンを取得します。
net | トークナイザオブジェクトポインタ |
tokens | トークン |
count | 格納先トークン数 |
int AILIA_API ailiaTokenizerGetVocab | ( | struct AILIATokenizer * | net, |
int | token, | ||
const char ** | vocab | ||
) |
Vocabの取得を行います。
net | トークナイザオブジェクトポインタ |
token | トークン |
vocab | Vocabのテキスト(UTF8) |
vocabを解放する必要はありません。 vocabの有効期間は次にailiaTokenizer APIを呼び出すまでになります。
int AILIA_API ailiaTokenizerGetVocabSize | ( | struct AILIATokenizer * | net, |
unsigned int * | size | ||
) |
Vocabの数を取得します。
net | トークナイザオブジェクトポインタ |
size | Vocabの要素数 |
int AILIA_API ailiaTokenizerGetWordIDs | ( | struct AILIATokenizer * | net, |
int * | word_ids, | ||
unsigned int | count | ||
) |
ワードIDを取得します。
net | トークナイザオブジェクトポインタ |
word_ids | ワードID |
count | 格納先トークン数 |
int AILIA_API ailiaTokenizerOpenAddedTokensFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
追加トークンファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | スペシャルトークンファイルのパス |
追加トークンファイル (json) を読み込みます。AILIA_TOKENIZER_TYPE_WHISPERの場合のみ有効です。
int AILIA_API ailiaTokenizerOpenAddedTokensFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerOpenDictionaryFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
辞書ファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | Mecabの辞書ファイルのパス |
Mecabの辞書ファイルを読み込みます。AILIA_TOKENIZER_TYPE_BERT_JAPANESE_XXXの場合のみ必要です。
int AILIA_API ailiaTokenizerOpenDictionaryFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerOpenMergeFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
マージファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | マージファイルのパス |
マージファイル (txt) を読み込みます。AILIA_TOKENIZER_TYPE_ROBERTAもしくはAILIA_TOKENIZER_TYPE_WHISPERもしくはAILIA_TOKENIZER_TYPE_GPT2の場合のみ有効です。
int AILIA_API ailiaTokenizerOpenMergeFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerOpenModelFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
モデルファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | SentencePieceのモデルファイルのパス |
SentencePieceのモデルファイルを読み込みます。AILIA_TOKENIZER_TYPE_XLM_ROBERTAもしくはAILIA_TOKENIZER_TYPE_MARIANの場合のみ必要です。
int AILIA_API ailiaTokenizerOpenModelFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerOpenTokenizerConfigFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
コンフィグファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | コンフィグファイルのパス |
トークナイザコンフィグファイル (json) を読み込みます。AILIA_TOKENIZER_TYPE_BERTの場合のみ有効です。
int AILIA_API ailiaTokenizerOpenTokenizerConfigFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerOpenVocabFileA | ( | struct AILIATokenizer * | net, |
const char * | path | ||
) |
単語ファイルを読み込みます。
net | トークナイザオブジェクトポインタへのポインタ |
path | 単語ファイルのパス |
単語ファイル (ROBERTAとWHISPERとGPT2はjson、それ以外はtxt) を読み込みます。
int AILIA_API ailiaTokenizerOpenVocabFileW | ( | struct AILIATokenizer * | net, |
const wchar_t * | path | ||
) |
int AILIA_API ailiaTokenizerUtf32ToUtf8 | ( | char * | utf8, |
unsigned int * | processed_byte, | ||
unsigned int | utf32 | ||
) |
UTF32の文字をUTF8の文字に変換します。
utf8 | UTF8の文字(4byte以上必要) |
processed_byte | 書き込んだ文字数(UTF8) |
utf32 | UTF32の文字 |
int AILIA_API ailiaTokenizerUtf8ToUtf32 | ( | unsigned int * | utf32, |
unsigned int * | processed_byte, | ||
const char * | utf8, | ||
unsigned int | utf8_len | ||
) |
UTF8の文字をUTF32の文字に変換します。
utf32 | UTF32の文字 |
processed_byte | 消費したバイト数(UTF8) |
utf8 | UTF8の文字 |
utf8_len | バッファサイズ |