Tokenizer
類別keras_hub.tokenizers.Tokenizer()
分詞器層的基本類別。
KerasHub 庫中的分詞器都應該繼承這個層。此類別提供了兩個核心方法 tokenize()
和 detokenize()
,用於在純文字和序列之間來回轉換。分詞器是 `keras.layers.Layer` 的子類別,並且可以組合成 `keras.Model`。
子類別化者應始終實作 `tokenize()` 方法,這也會是在直接對輸入調用層時的預設行為。
如果分詞是可逆的,子類別化者可以選擇性地實作 `detokenize()` 方法。否則,可以跳過此步驟。
如果適用,子類別化者應實作 `get_vocabulary()`、`vocabulary_size()`、`token_to_id()` 和 `id_to_token()`。對於某些簡單的「無詞彙表」分詞器(例如下面顯示的空白字元分割器),這些方法不適用,可以跳過。
範例
class WhitespaceSplitterTokenizer(keras_hub.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, config_file="tokenizer.json", **kwargs)
從模型預設配置實例化 `keras_hub.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_hub.models.Tokenizer.from_preset()`,或者從模型類別調用,例如 `keras_hub.models.GemmaTokenizer.from_preset()`。如果從基底類別調用,則返回物件的子類別將從預設配置目錄中的配置推斷出來。
參數
範例
# Load a preset tokenizer.
tokenizer = keras_hub.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)
將分詞器儲存到預設配置目錄。
參數