標記器

[來源]

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 可以作為以下其中一項傳遞

  1. 內建預設集識別碼,例如 'bert_base_en'
  2. Kaggle 模型控點,例如 'kaggle://user/bert/keras/bert_base_en'
  3. Hugging Face 控點,例如 'hf://user/bert_base_en'
  4. 本機預設集目錄的路徑,例如 './bert_base_en'

對於任何 Tokenizer 子類別,您可以執行 cls.presets.keys() 以列出類別上可用的所有內建預設集。

可以使用兩種方式呼叫此建構函式。可以從基類別呼叫,例如 keras_hub.models.Tokenizer.from_preset(),也可以從模型類別呼叫,例如 keras_hub.models.GemmaTokenizer.from_preset()。如果從基類別呼叫,則會從預設集目錄中的設定檔推斷傳回物件的子類別。

引數

  • preset:字串。一個內建的預設設定檔識別碼、Kaggle 模型代碼、Hugging Face 代碼或本地目錄的路徑。
  • load_weights:布林值。如果為 True,權重將會載入模型架構中。如果為 False,權重將會隨機初始化。

範例

# 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)

將標記生成器儲存至預設設定檔目錄。

引數

  • preset_dir:本地模型預設設定檔目錄的路徑。