Tokenizer
類別keras_nlp.tokenizers.Tokenizer()
標記器層的基類別。
KerasNLP 程式庫中的標記器都應該繼承此層。此類別提供兩個核心方法 tokenize()
和 detokenize()
,用於在純文字和序列之間進行轉換。標記器是 keras.layers.Layer
的子類別,並且可以組合成 keras.Model
。
子類別應該始終實作 tokenize()
方法,當直接在輸入上呼叫層時,這也是預設的方法。
如果標記化是可逆的,則子類別可以選擇性地實作 detokenize()
方法。否則,可以跳過此方法。
如果適用,子類別應該實作 get_vocabulary()
、vocabulary_size()
、token_to_id()
和 id_to_token()
。對於一些簡單的「無詞彙表」標記器,例如以下所示的空格分隔符號,這些方法不適用,可以跳過。
範例
class WhitespaceSplitterTokenizer(keras_nlp.tokenizers.Tokenizer):
def tokenize(self, inputs):
return tf.strings.split(inputs)
def detokenize(self, inputs):
return tf.strings.reduce_join(inputs, separator=" ", axis=-1)
tokenizer = WhitespaceSplitterTokenizer()
# Tokenize some inputs.
tokenizer.tokenize("This is a test")
# Shorthard for `tokenize()`.
tokenizer("This is a test")
# Detokenize some outputs.
tokenizer.detokenize(["This", "is", "a", "test"])
from_preset
方法Tokenizer.from_preset(preset, **kwargs)
從模型預設集實例化 keras_nlp.models.Tokenizer
。
預設集是配置、權重和其他檔案資產的目錄,用於儲存和載入預先訓練的模型。preset
可以作為以下其中之一傳遞
'bert_base_en'
'kaggle://user/bert/keras/bert_base_en'
'hf://user/bert_base_en'
'./bert_base_en'
對於任何 Tokenizer
子類別,您可以執行 cls.presets.keys()
來列出類別上可用的所有內建預設集。
此建構函數可以透過兩種方式之一呼叫。可以從基類別呼叫,例如 keras_nlp.models.Tokenizer.from_preset()
,也可以從模型類別呼叫,例如 keras_nlp.models.GemmaTokenizer.from_preset()
。如果從基類別呼叫,則會從預設集目錄中的配置推斷出返回物件的子類別。
參數
True
,權重將會載入模型架構中。如果為 False
,權重將會隨機初始化。範例
# Load a preset tokenizer.
tokenizer = keras_nlp.tokenizer.Tokenizer.from_preset("bert_base_en")
# Tokenize some input.
tokenizer("The quick brown fox tripped.")
# Detokenize some input.
tokenizer.detokenize([5, 6, 7, 8, 9])
save_to_preset
方法Tokenizer.save_to_preset(preset_dir)
儲存 tokenizer 至預設目錄。
參數