ailia_tokenizer  1.6.0.0
ailia_tokenizer.h
[詳解]
1 
9 #ifndef INCLUDED_AILIA_TOKENIZER
10 #define INCLUDED_AILIA_TOKENIZER
11 
12 /* エラーコードと構造体 */
13 
14 #include "ailia.h"
15 
16 /* 呼び出し規約 */
17 
18 #if defined(_WIN64) || defined(_M_X64) || defined(__amd64__) || defined(__x86_64__) || defined(__APPLE__) || \
19  defined(__ANDROID__) || defined(ANDROID) || defined(__linux__) || defined(NN_NINTENDO_SDK)
20 #define AILIA_API
21 #else
22 #define AILIA_API __stdcall
23 #endif
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 /****************************************************************
30  * アルゴリズム定義
31  **/
32 
42 #define AILIA_TOKENIZER_TYPE_WHISPER (0)
43 
53 #define AILIA_TOKENIZER_TYPE_CLIP (1)
54 
64 #define AILIA_TOKENIZER_TYPE_XLM_ROBERTA (2)
65 
75 #define AILIA_TOKENIZER_TYPE_MARIAN (3)
76 
90 #define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_WORDPIECE (4)
91 
105 #define AILIA_TOKENIZER_TYPE_BERT_JAPANESE_CHARACTER (5)
106 
122 #define AILIA_TOKENIZER_TYPE_T5 (6)
123 
133 #define AILIA_TOKENIZER_TYPE_ROBERTA (7)
134 
144 #define AILIA_TOKENIZER_TYPE_BERT (8)
145 
155 #define AILIA_TOKENIZER_TYPE_GPT2 (9)
156 
166 #define AILIA_TOKENIZER_TYPE_LLAMA (10)
167 
177 #define AILIA_TOKENIZER_TYPE_GEMMA (11)
178 
179 /****************************************************************
180  * フラグ定義
181  **/
182 
192 #define AILIA_TOKENIZER_FLAG_NONE (0)
193 
203 #define AILIA_TOKENIZER_FLAG_UTF8_SAFE (1)
204 
205 /****************************************************************
206  * トークナイズオブジェクトのインスタンス
207  **/
208 
209 struct AILIATokenizer;
210 
211 /****************************************************************
212  * Tokenizer API
213  **/
214 
236 int AILIA_API ailiaTokenizerCreate(struct AILIATokenizer** net, int type, int flags);
237 
257 int AILIA_API ailiaTokenizerOpenModelFileA(struct AILIATokenizer* net, const char *path);
258 int AILIA_API ailiaTokenizerOpenModelFileW(struct AILIATokenizer* net, const wchar_t *path);
259 
279 int AILIA_API ailiaTokenizerOpenDictionaryFileA(struct AILIATokenizer* net, const char *path);
280 int AILIA_API ailiaTokenizerOpenDictionaryFileW(struct AILIATokenizer* net, const wchar_t *path);
281 
301 int AILIA_API ailiaTokenizerOpenVocabFileA(struct AILIATokenizer* net, const char *path);
302 int AILIA_API ailiaTokenizerOpenVocabFileW(struct AILIATokenizer* net, const wchar_t *path);
303 
323 int AILIA_API ailiaTokenizerOpenMergeFileA(struct AILIATokenizer* net, const char *path);
324 int AILIA_API ailiaTokenizerOpenMergeFileW(struct AILIATokenizer* net, const wchar_t *path);
325 
345 int AILIA_API ailiaTokenizerOpenAddedTokensFileA(struct AILIATokenizer* net, const char *path);
346 int AILIA_API ailiaTokenizerOpenAddedTokensFileW(struct AILIATokenizer* net, const wchar_t *path);
347 
367 int AILIA_API ailiaTokenizerOpenTokenizerConfigFileA(struct AILIATokenizer* net, const char *path);
368 int AILIA_API ailiaTokenizerOpenTokenizerConfigFileW(struct AILIATokenizer* net, const wchar_t *path);
369 
391 int AILIA_API
392 ailiaTokenizerEncode(struct AILIATokenizer* net, const char *utf8);
393 
415 int AILIA_API
416 ailiaTokenizerEncodeWithSpecialTokens(struct AILIATokenizer* net, const char *utf8);
417 
433 int AILIA_API ailiaTokenizerGetTokenCount(struct AILIATokenizer* net, unsigned int* count);
434 
457 int AILIA_API ailiaTokenizerGetTokens(struct AILIATokenizer* net, int* tokens, unsigned int count);
458 
483 int AILIA_API ailiaTokenizerGetWordIDs(struct AILIATokenizer* net, int* word_ids, unsigned int count);
484 
511 int AILIA_API ailiaTokenizerGetCharStarts(struct AILIATokenizer* net, int* char_starts, unsigned int count);
512 
539 int AILIA_API ailiaTokenizerGetCharEnds(struct AILIATokenizer* net, int* char_ends, unsigned int count);
540 
564 int AILIA_API
565 ailiaTokenizerDecode(struct AILIATokenizer* net, const int *tokens, unsigned int token_count);
566 
590 int AILIA_API
591 ailiaTokenizerDecodeWithSpecialTokens(struct AILIATokenizer* net, const int *tokens, unsigned int token_count);
592 
608 int AILIA_API ailiaTokenizerGetTextLength(struct AILIATokenizer* net, unsigned int* len);
609 
631 int AILIA_API ailiaTokenizerGetText(struct AILIATokenizer* net, char* text, unsigned int len);
632 
648 int AILIA_API ailiaTokenizerGetVocabSize(struct AILIATokenizer* net, unsigned int* size);
649 
673 int AILIA_API
674 ailiaTokenizerGetVocab(struct AILIATokenizer* net, int token, const char **vocab);
675 
697 int AILIA_API
698 ailiaTokenizerAddSpecialTokens(struct AILIATokenizer* net, const char **tokens, unsigned int count);
699 
709 void AILIA_API ailiaTokenizerDestroy(struct AILIATokenizer* net);
710 
711 /****************************************************************
712  * Utility API
713  **/
714 
734 int AILIA_API ailiaTokenizerUtf8ToUtf32(unsigned int* utf32, unsigned int* processed_byte, const char* utf8, unsigned int utf8_len);
735 
753 int AILIA_API ailiaTokenizerUtf32ToUtf8(char* utf8, unsigned int* processed_byte, unsigned int utf32);
754 
755 #ifdef UNICODE
756 #define ailiaTokenizerOpenModelFile ailiaTokenizerOpenModelFileW
757 #define ailiaTokenizerOpenDictionaryFile ailiaTokenizerOpenDictionaryFileW
758 #define ailiaTokenizerOpenVocabFile ailiaTokenizerOpenVocabFileW
759 #define ailiaTokenizerOpenMergeFile ailiaTokenizerOpenMergeFileW
760 #define ailiaTokenizerOpenAddedTokensFile ailiaTokenizerOpenAddedTokensFileW
761 #define ailiaTokenizerOpenConfigFile ailiaTokenizerOpenConfigFileW
762 #else
763 #define ailiaTokenizerOpenModelFile ailiaTokenizerOpenModelFileA
764 #define ailiaTokenizerOpenDictionaryFile ailiaTokenizerOpenDictionaryFileA
765 #define ailiaTokenizerOpenVocabFile ailiaTokenizerOpenVocabFileA
766 #define ailiaTokenizerOpenMergeFile ailiaTokenizerOpenMergeFileA
767 #define ailiaTokenizerOpenAddedTokensFile ailiaTokenizerOpenAddedTokensFileA
768 #define ailiaTokenizerOpenTokenizerConfigFile ailiaTokenizerOpenTokenizerConfigFileA
769 #endif
770 
771 #ifdef __cplusplus
772 }
773 #endif
774 #endif /* !defined(INCLUDED_AILIA_TOKENIZER) */
int AILIA_API ailiaTokenizerOpenAddedTokensFileW(struct AILIATokenizer *net, const wchar_t *path)
int AILIA_API ailiaTokenizerGetWordIDs(struct AILIATokenizer *net, int *word_ids, unsigned int count)
ワードIDを取得します。
int AILIA_API ailiaTokenizerOpenVocabFileW(struct AILIATokenizer *net, const wchar_t *path)
int AILIA_API ailiaTokenizerGetText(struct AILIATokenizer *net, char *text, unsigned int len)
テキストを取得します。
int AILIA_API ailiaTokenizerOpenAddedTokensFileA(struct AILIATokenizer *net, const char *path)
追加トークンファイルを読み込みます。
#define AILIA_API
Definition: ailia_tokenizer.h:22
int AILIA_API ailiaTokenizerOpenModelFileA(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 ailiaTokenizerOpenModelFileW(struct AILIATokenizer *net, const wchar_t *path)
int AILIA_API ailiaTokenizerUtf8ToUtf32(unsigned int *utf32, unsigned int *processed_byte, const char *utf8, unsigned int utf8_len)
UTF8の文字をUTF32の文字に変換します。
int AILIA_API ailiaTokenizerDecode(struct AILIATokenizer *net, const int *tokens, unsigned int token_count)
デコードを行います。
int AILIA_API ailiaTokenizerOpenDictionaryFileW(struct AILIATokenizer *net, const wchar_t *path)
int AILIA_API ailiaTokenizerAddSpecialTokens(struct AILIATokenizer *net, const char **tokens, unsigned int count)
SpecialTokenの追加を行います。
int AILIA_API ailiaTokenizerGetTokens(struct AILIATokenizer *net, int *tokens, unsigned int count)
トークンを取得します。
int AILIA_API ailiaTokenizerOpenTokenizerConfigFileA(struct AILIATokenizer *net, const char *path)
コンフィグファイルを読み込みます。
int AILIA_API ailiaTokenizerOpenMergeFileW(struct AILIATokenizer *net, const wchar_t *path)
int AILIA_API ailiaTokenizerOpenMergeFileA(struct AILIATokenizer *net, const char *path)
マージファイルを読み込みます。
int AILIA_API ailiaTokenizerGetCharEnds(struct AILIATokenizer *net, int *char_ends, unsigned int count)
終了文字位置を取得します。
int AILIA_API ailiaTokenizerGetCharStarts(struct AILIATokenizer *net, int *char_starts, unsigned int count)
開始文字位置を取得します。
int AILIA_API ailiaTokenizerOpenDictionaryFileA(struct AILIATokenizer *net, const char *path)
辞書ファイルを読み込みます。
int AILIA_API ailiaTokenizerDecodeWithSpecialTokens(struct AILIATokenizer *net, const int *tokens, unsigned int token_count)
スペシャルトークンを含んだデコードを行います。
int AILIA_API ailiaTokenizerGetTokenCount(struct AILIATokenizer *net, unsigned int *count)
トークンの数を取得します。
int AILIA_API ailiaTokenizerCreate(struct AILIATokenizer **net, int type, int flags)
トークナイズオブジェクトを作成します。
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 ailiaTokenizerEncodeWithSpecialTokens(struct AILIATokenizer *net, const char *utf8)
スペシャルトークンを含んだエンコードを行います。
int AILIA_API ailiaTokenizerUtf32ToUtf8(char *utf8, unsigned int *processed_byte, unsigned int utf32)
UTF32の文字をUTF8の文字に変換します。
int AILIA_API ailiaTokenizerOpenVocabFileA(struct AILIATokenizer *net, const char *path)
単語ファイルを読み込みます。
int AILIA_API ailiaTokenizerGetTextLength(struct AILIATokenizer *net, unsigned int *len)
テキストの長さを取得します。(NULL文字含む)
void AILIA_API ailiaTokenizerDestroy(struct AILIATokenizer *net)
トークナイズオブジェクトを破棄します。