# Tokenizer

Tokenizer bertugas menyiapkan input untuk model. Library ini berisi tokenizer untuk semua model. Sebagian besar tokenizer tersedia dalam dua versi: implementasi Python penuh dan implementasi "Fast" yang berbasis pada library Rust [🤗 Tokenizers](https://github.com/huggingface/tokenizers). Implementasi "Fast" memungkinkan:

1. peningkatan kecepatan yang signifikan, terutama saat melakukan tokenisasi batched dan
2. metode tambahan untuk memetakan antara string asli (karakter dan kata) dan ruang token (misalnya, mendapatkan indeks token yang mencakup karakter tertentu atau rentang karakter yang sesuai dengan token tertentu).

Kelas dasar [PreTrainedTokenizer](/docs/transformers/main/id/main_classes/tokenizer#transformers.PythonBackend) dan [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend) mengimplementasikan metode umum untuk mengkodekan input string menjadi input model (lihat di bawah) serta menginstansiasi/menyimpan tokenizer python dan "Fast" baik dari file atau direktori lokal maupun dari tokenizer pretrained yang disediakan oleh pustaka (diunduh dari repositori AWS S3 HuggingFace). Keduanya bergantung pada [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase) yang berisi metode-metode umum.

[PreTrainedTokenizer](/docs/transformers/main/id/main_classes/tokenizer#transformers.PythonBackend) dan [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend) dengan demikian mengimplementasikan metode utama untuk menggunakan semua tokenizer:

- Tokenizing (memecah string menjadi string token sub-kata), mengonversi string token menjadi id dan sebaliknya, serta melakukan encoding/decoding (yaitu, melakukan tokenisasi dan mengonversi ke bilangan bulat).
- Menambahkan token baru ke dalam kosakata dengan cara yang independen dari struktur dasarnya (BPE, SentencePiece...).
- Mengelola token khusus (seperti mask, beginning-of-sentence, dll.): menambahkannya, menugaskannya ke atribut dalam tokenizer untuk akses yang mudah, dan memastikan token tersebut tidak dipecah selama proses tokenisasi.

[BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding) menyimpan keluaran dari metode encoding milik [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase) (`__call__`, `encode_plus` dan `batch_encode_plus`) dan diturunkan dari kamus Python. Ketika tokenizer adalah tokenizer Python murni, kelas ini berperilaku seperti kamus Python standar dan menyimpan berbagai input model yang dihitung oleh metode-metode tersebut (`input_ids`, `attention_mask`...). Ketika tokenizer adalah tokenizer "Fast" (yaitu, didukung oleh [tokenizers library](https://github.com/huggingface/tokenizers) HuggingFace), kelas ini juga menyediakan beberapa metode alignment lanjutan yang dapat digunakan untuk memetakan antara string asli (karakter dan kata) dan ruang token (misalnya, mendapatkan indeks token yang mencakup karakter tertentu atau rentang karakter yang sesuai dengan token tertentu).

## Tokenizer Multimodal

Selain itu, setiap tokenizer dapat berupa tokenizer "multimodal", yang berarti tokenizer tersebut akan menyimpan semua token khusus yang relevan sebagai bagian dari atribut tokenizer untuk memudahkan akses. Sebagai contoh, jika tokenizer dimuat dari model vision-language seperti LLaVA, Anda akan dapat mengakses `tokenizer.image_token_id` untuk mendapatkan token gambar khusus yang digunakan sebagai placeholder.

Untuk mengaktifkan token khusus tambahan untuk jenis tokenizer apa pun, Anda harus menambahkan baris-baris berikut dan menyimpan tokenizer. Token khusus tambahan tidak harus terkait dengan modalitas dan bisa berupa apa pun yang sering dibutuhkan oleh model. Pada kode di bawah, tokenizer di `output_dir` akan memiliki akses langsung ke tiga token khusus tambahan.

```python
vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)
```

## PreTrainedTokenizer[[transformers.PythonBackend]]

#### transformers.PythonBackend[[transformers.PythonBackend]]

```python
transformers.PythonBackend(**kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L400)

**Parameter:**

model_max_length (`int`, *opsional*) : Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan [from_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.from_pretrained), nilai ini akan diset ke nilai yang disimpan untuk model terkait di `max_model_input_sizes` (lihat di atas). Jika tidak ada nilai yang diberikan, nilai default akan menjadi VERY_LARGE_INTEGER (`int(1e30)`).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

truncation_side (`str`, *opsional*) : Sisi tempat model harus menerapkan pemotongan. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

chat_template (`str`, *opsional*) : String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.

model_input_names (`list[string]`, *opsional*) : Daftar input yang diterima oleh forward pass model (seperti `"token_type_ids"` atau `"attention_mask"`). Nilai default diambil dari atribut kelas dengan nama yang sama.

bos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili awal dari sebuah kalimat.

eos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili akhir dari sebuah kalimat.

unk_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).

sep_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).

pad_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme perhatian atau perhitungan loss.

cls_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili kelas dari input (dipakai, misalnya, oleh BERT).

mask_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token ter-mask (digunakan oleh tujuan pra-pelatihan pemodelan bahasa ter-mask, seperti BERT). Akan diasosiasikan dengan `self.mask_token` dan `self.mask_token_id`.

extra_special_tokens (daftar `str` atau `tokenizers.AddedToken`, *opsional*) : Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token-token tersebut dilewati saat decoding dengan `skip_special_tokens` yang diset ke True. Jika token-token tersebut tidak termasuk dalam kosakata, mereka akan ditambahkan di akhir kosakata.

split_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika `<s>` adalah `bos_token`, maka `tokenizer.tokenize("<s>") = ['<s>`]. Sebaliknya, jika `split_special_tokens=True`, maka `tokenizer.tokenize("<s>")` akan menghasilkan `['<','s', '>']`.

Kelas dasar untuk semua tokenizer lambat.

Mewarisi dari [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase).

Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, dan menambahkan token ke kosakata.

Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece...).

Atribut kelas (ditimpa oleh kelas turunan)

- **vocab_files_names** (`dict[str, str]`) -- Kamus yang menggunakan nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
- **pretrained_vocab_files_map** (`dict[str, dict[str, str]]`) -- Kamus dari kamus, dengan kunci tingkat atas berupa nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat bawah berupa `short-cut-names` dari model pretrained, dengan nilai terkait berupa `url` ke file kosakata pretrained yang terkait.
- **model_input_names** (`list[str]`) -- Daftar input yang diharapkan pada forward pass model.
- **padding_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa `'right'` atau `'left'`.
- **truncation_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa `'right'` atau `'left'`.

#### __call__[[transformers.PythonBackend.__call__]]

```python
__call__(text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, add_special_tokens: bool = True, padding: bool | str | PaddingStrategy = False, truncation: bool | str | TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, is_split_into_words: bool = False, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_offsets_mapping: bool = False, return_length: bool = False, verbose: bool = True, tokenizer_kwargs: dict[str, Any] | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2449)

**Parameter:**

text (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

tokenizer_kwargs (`dict[str, Any]`, *opsional*) : kwargs tambahan untuk diteruskan ke tokenizer. Nilai-nilai ini akan digabungkan dengan parameter eksplisit dan kwargs lainnya, dengan parameter eksplisit memiliki prioritas lebih tinggi.

add_special_tokens (`bool`, *opsional*, default `True`) : Menentukan apakah token khusus akan ditambahkan saat meng-encode urutan. Hal ini akan menggunakan fungsi `PretrainedTokenizerBase.build_inputs_with_special_tokens` yang mendasarinya, yang mendefinisikan token apa saja yang secara otomatis ditambahkan ke input ids. Ini berguna jika Anda ingin menambahkan token `bos` atau `eos` secara otomatis.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:  - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, `str` atau [TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:  - `True` atau `'longest_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_second'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `False` atau `'do_not_truncate'` (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang urutan yang melebihi ukuran input maksimum yang diizinkan oleh model).

max_length (`int`, *opsional*) : Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding. Jika tidak disetel atau disetel ke `None`, ini akan menggunakan panjang maksimum model yang telah ditentukan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

stride (`int`, *opsional*, default 0) : Jika diatur ke sebuah angka bersamaan dengan `max_length`, token yang meluap yang dikembalikan saat `return_overflowing_tokens=True` akan memuat beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, sekuens akan di-*pad* menjadi kelipatan dari nilai yang diberikan. Memerlukan `padding` untuk diaktifkan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor alih-alih daftar bilangan bulat python. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` Numpy.

return_token_type_ids (`bool`, *opsional*) : Apakah akan mengembalikan token type ID. Jika dibiarkan pada nilai default, akan mengembalikan token type ID sesuai default tokenizer tertentu, yang didefinisikan oleh atribut `return_outputs`.  [Apa itu token type ID?](../glossary#token-type-ids)

return_attention_mask (`bool`, *opsional*) : Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan sesuai dengan default tokenizer yang bersangkutan, yang didefinisikan oleh atribut `return_outputs`.  [Apa itu attention mask?](../glossary#attention-mask)

return_overflowing_tokens (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengan `truncation_strategy = longest_first` atau `True`, error akan dilemparkan alih-alih mengembalikan token yang meluap.

return_special_tokens_mask (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan informasi mask token khusus.

return_offsets_mapping (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan `(char_start, char_end)` untuk setiap token. Ini hanya tersedia pada fast tokenizer yang mewarisi dari [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend); jika menggunakan tokenizer Python, metode ini akan melempar `NotImplementedError`.

return_length  (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan panjang dari input yang dikodekan.

verbose (`bool`, *opsional*, default `True`) : Apakah akan mencetak informasi dan peringatan yang lebih banyak.

- ****kwargs** : diteruskan ke metode `self.tokenize()`

**Mengembalikan:** [BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding) dengan bidang berikut:

- **input_ids** -- Daftar id token yang akan diberikan ke model.

  [Apa itu input ID?](../glossary#input-ids)

- **token_type_ids** -- Daftar token type id yang akan diberikan ke model (ketika `return_token_type_ids=True` atau jika *"token_type_ids"* ada di `self.model_input_names`).

  [Apa itu token type ID?](../glossary#token-type-ids)

- **attention_mask** -- Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika `return_attention_mask=True` atau jika *"attention_mask"* ada di `self.model_input_names`).

  [Apa itu attention mask?](../glossary#attention-mask)

- **overflowing_tokens** -- Daftar sekuens token yang meluap (ketika `max_length` ditentukan dan `return_overflowing_tokens=True`).
- **num_truncated_tokens** -- Jumlah token yang dipangkas (ketika `max_length` ditentukan dan `return_overflowing_tokens=True`).
- **special_tokens_mask** -- Daftar angka 0 dan 1, di mana 1 menandakan token khusus yang ditambahkan dan 0 menandakan token urutan reguler (ketika `add_special_tokens=True` dan `return_special_tokens_mask=True`).
- **length** -- Panjang dari input (ketika `return_length=True`)

Metode utama untuk melakukan tokenisasi dan persiapan satu atau beberapa urutan, atau satu atau beberapa pasangan urutan, untuk model.

#### add_tokens[[transformers.PythonBackend.add_tokens]]

```python
add_tokens(new_tokens: str | AddedToken | Sequence[str | AddedToken], special_tokens: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1218)

**Parameter:**

new_tokens (`str`, `tokenizers.AddedToken` atau urutan dari *str* atau `tokenizers.AddedToken`) : Token hanya ditambahkan jika belum ada dalam kosakata. `tokenizers.AddedToken` membungkus token string agar Anda dapat mempersonalisasi perilakunya: apakah token ini harus hanya cocok dengan satu kata, apakah token ini harus menghapus semua spasi potensial di sisi kiri, apakah token ini harus menghapus semua spasi potensial di sisi kanan, dan sebagainya.

special_tokens (`bool`, *opsional*, default `False`) : Menentukan apakah token tersebut bersifat khusus. Hal ini terutama mengubah perilaku normalisasi. Lihat detail `tokenizers.AddedToken` di pustaka tokenizers HuggingFace.

**Mengembalikan:** `int`

Jumlah token yang ditambahkan ke dalam kosakata.

#TODO hapus ini dari sini! PreTrainedTokenizerBase harus tidak bergantung pada AddedToken.

Tambahkan daftar token baru. Jika token baru tidak ada dalam kosakata, token tersebut akan ditambahkan ke akhir. Oleh karena itu, token yang ditambahkan dan token dari kosakata algoritma tokenisasi tidak diperlakukan dengan cara yang sama.

Tokenizer cepat dengan pre-tokenizer `Metaspace` yang menggunakan `prepend_scheme="always"` (misalnya NLLB) menambahkan `"▁"` ke teks yang mengikuti token yang ditambahkan. Setelah `tokenizer.add_tokens(["abcd"])`, `"abcdgym"` ditokenisasi menjadi `["abcd", "▁gym"]` dan didekode menjadi `"abcd gym"`. Jika token yang ditambahkan dapat muncul di dalam kata, ganti pre-tokenizer

ke `prepend_scheme="first"` sehingga hanya awal input yang diberi awalan:

```python
from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)
```

Contoh:

```python
# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))
```

#### add_special_tokens[[transformers.PythonBackend.add_special_tokens]]

```python
add_special_tokens(special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]], replace_extra_special_tokens = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1113)

**Parameter:**

special_tokens_dict (dictionary *str* ke *str*, `tokenizers.AddedToken`, atau `Sequence[Union[str, AddedToken]]`) : Kunci harus berada dalam daftar atribut khusus yang sudah ditentukan: [`bos_token`, `eos_token`, `unk_token`, `sep_token`, `pad_token`, `cls_token`, `mask_token`, `extra_special_tokens`]. Token hanya ditambahkan jika belum ada dalam kosakata (diuji dengan memeriksa apakah tokenizer memberikan indeks `unk_token` kepada token tersebut).

replace_extra_special_tokens (`bool`, *opsional*, default `True`) : Jika `True`, daftar token khusus tambahan yang ada akan diganti oleh daftar yang diberikan dalam `special_tokens_dict`. Sebaliknya, `extra_special_tokens` akan diperluas. Dalam kasus pertama, token tersebut TIDAK akan dihapus dari kosakata lengkap tokenizer - mereka hanya ditandai sebagai token non-khusus. Ingat, ini hanya memengaruhi token mana yang dilewati selama decoding, bukan `added_tokens_encoder` dan `added_tokens_decoder`. Ini berarti bahwa `extra_special_tokens` sebelumnya masih merupakan token yang ditambahkan, dan tidak akan dipecah oleh model.

**Mengembalikan:** `int`

Jumlah token yang ditambahkan ke dalam kosakata.

Tambahkan kamus token khusus (eos, pad, cls, dll.) ke encoder dan hubungkan ke atribut kelas. Jika token khusus TIDAK ada dalam kosakata, token tersebut akan ditambahkan ke kosakata (diindeks mulai dari indeks terakhir kosakata saat ini).

Saat menambahkan token baru ke dalam kosakata, Anda harus memastikan untuk juga mengubah ukuran matriks embedding token dari model agar matriks embedding-nya sesuai dengan tokenizer.

Untuk melakukan hal tersebut, silakan gunakan metode [resize_token_embeddings()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.resize_token_embeddings).

Menggunakan `add_special_tokens` akan memastikan token khusus Anda dapat digunakan dalam beberapa cara:

- Token khusus dapat dilewati saat decoding menggunakan `skip_special_tokens = True`.
- Token khusus ditangani dengan cermat oleh tokenizer (tidak pernah dipecah), mirip dengan `AddedTokens`.
- Anda dapat dengan mudah merujuk ke token khusus menggunakan atribut kelas tokenizer seperti `tokenizer.cls_token`. Hal ini memudahkan pengembangan skrip pelatihan dan fine-tuning yang tidak bergantung pada model tertentu.

Jika memungkinkan, token khusus sudah didaftarkan untuk model pretrained yang disediakan (misalnya [BertTokenizer](/docs/transformers/main/id/model_doc/lxmert#transformers.BertTokenizer) `cls_token` sudah didaftarkan sebagai `'[CLS]'` dan untuk XLM juga sudah didaftarkan sebagai `'</s>'`).

Contoh:

```python
# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"
```

#### apply_chat_template[[transformers.PythonBackend.apply_chat_template]]

```python
apply_chat_template(conversation: list[dict[str, str]] | list[list[dict[str, str]]], tools: list[dict | Callable] | None = None, documents: list[dict[str, str]] | None = None, chat_template: str | None = None, add_generation_prompt: bool = False, continue_final_message: bool | str = False, tokenize: bool = True, sanitize_control_tokens: bool = False, padding: bool | str | PaddingStrategy = False, truncation: bool = False, max_length: int | None = None, return_tensors: str | TensorType | None = None, return_dict: bool = True, return_assistant_tokens_mask: bool = False, tokenizer_kwargs: dict[str, Any] | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L3021)

**Parameter:**

conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) : Daftar dict dengan kunci "role" dan "content", yang merepresentasikan riwayat chat sejauh ini.

tools (`list[Union[Dict, Callable]]`, *opsional*) : Daftar alat (fungsi callable) yang akan dapat diakses oleh model. Jika template tidak mendukung pemanggilan fungsi, argumen ini tidak akan berpengaruh. Setiap alat harus diberikan sebagai JSON Schema, yang mencantumkan nama, deskripsi, dan tipe argumen untuk alat tersebut. Lihat [panduan penggunaan alat](https://huggingface.co/docs/transformers/en/chat_extras#passing-tools) kami untuk informasi lebih lanjut.

documents (`list[dict[str, str]]`, *opsional*) : Daftar dict yang merepresentasikan dokumen yang akan dapat diakses oleh model jika model tersebut sedang melakukan RAG (retrieval-augmented generation). Jika template tidak mendukung RAG, argumen ini tidak akan berpengaruh. Kami merekomendasikan agar setiap dokumen berupa dict yang berisi kunci "title" dan "text".

chat_template (`str`, *opsional*) : Template Jinja yang akan digunakan untuk konversi ini. Biasanya tidak perlu meneruskan apa pun ke argumen ini, karena template model akan digunakan secara default.

add_generation_prompt (bool, *optional*) : Jika ini diatur, prompt dengan token yang menandakan awal pesan asisten akan ditambahkan ke hasil yang telah diformat. Hal ini berguna ketika Anda ingin menghasilkan respons dari model. Perhatikan bahwa argumen ini akan diteruskan ke chat template, sehingga argumen ini harus didukung dalam template agar memiliki efek.

continue_final_message (bool atau str, *opsional*) : Jika ini diatur, chat akan diformat sedemikian rupa sehingga pesan terakhir dalam chat bersifat terbuka, tanpa token EOS. Model akan melanjutkan pesan ini alih-alih memulai pesan baru. Hal ini memungkinkan Anda untuk "prefill" sebagian respons model. Jika string diteruskan, string tersebut akan digunakan sebagai kunci untuk field yang akan dilanjutkan (misalnya "reasoning_content"). Tidak dapat digunakan bersamaan dengan `add_generation_prompt`.

tokenize (`bool`, defaultnya `True`) : Apakah akan melakukan tokenisasi pada output. Jika `False`, output akan berupa string.

sanitize_control_tokens (`bool`, defaultnya `False`) : Jika diaktifkan, token kontrol yang muncul dalam pesan, alat, atau dokumen akan dikodekan sebagai teks biasa, sehingga hanya token kontrol yang ditulis oleh template chat itu sendiri yang dikodekan sebagai token. Token kontrol adalah token khusus dari tokenizer, ditambah token yang ditambahkan dalam `tokenizer.chat_control_tokens`. Jika variabel tersebut tidak disetel, token kontrol akan disimpulkan dari token yang ditambahkan yang muncul dalam teks dan literal string template chat. Hanya token kontrol utuh yang disanitasi, sehingga jika template menggabungkan string dari input menjadi token kontrol (seperti `'<|' + message['role'] + '|>'`), string-string tersebut harus divalidasi secara terpisah. Kunci Dict juga tidak disanitasi.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara: - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, defaultnya `False`) : Apakah akan memotong (truncate) urutan pada panjang maksimum. Tidak berpengaruh jika tokenize adalah `False`.

max_length (`int`, *opsional*) : Panjang maksimum (dalam token) yang digunakan untuk padding atau truncation. Tidak berpengaruh jika tokenize adalah `False`. Jika tidak ditentukan, atribut `max_length` dari tokenizer akan digunakan sebagai nilai default.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor dari framework tertentu. Tidak berpengaruh jika tokenize adalah `False`. Nilai yang dapat diterima adalah: - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` NumPy.

return_dict (`bool`, defaultnya `True`) : Apakah akan mengembalikan kamus dengan output bernama. Tidak berpengaruh jika tokenize adalah `False`.

tokenizer_kwargs (`dict[str : Any]`, *opsional*): kwargs tambahan untuk diteruskan ke tokenizer.

return_assistant_tokens_mask (`bool`, defaultnya `False`) : Apakah akan mengembalikan mask untuk token yang dihasilkan asisten. Untuk token yang dihasilkan oleh asisten, mask akan berisi 1. Untuk token user dan system, mask akan berisi 0. Fungsi ini hanya tersedia untuk chat template yang mendukungnya melalui kata kunci `{% generation %}`.

- ****kwargs** : kwargs tambahan untuk diteruskan ke template renderer. Akan dapat diakses oleh chat template.

**Mengembalikan:** `Union[list[int], Dict]`

Daftar id token yang mewakili chat yang telah ditokenisasi sejauh ini, termasuk token kontrol. Output ini siap untuk diteruskan ke model, baik secara langsung maupun melalui metode seperti `generate()`. Jika `return_dict` diset, akan mengembalikan dict dari output tokenizer.

Mengonversi daftar kamus dengan kunci `"role"` dan `"content"` menjadi daftar token id. Metode ini ditujukan untuk digunakan dengan model chat, dan akan membaca atribut chat_template tokenizer untuk menentukan format dan token kontrol yang akan digunakan saat mengonversi.

#### batch_decode[[transformers.PythonBackend.batch_decode]]

```python
batch_decode(sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2933)

**Parameter:**

sequences (`Union[list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Daftar id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode `__call__`.

skip_special_tokens (`bool`, *opsional*, default `False`) : Apakah token khusus akan dihapus saat decoding.

clean_up_tokenization_spaces (`bool`, *opsional*) : Apakah akan membersihkan spasi tokenisasi atau tidak. Jika `None`, akan menggunakan nilai default `self.clean_up_tokenization_spaces`.

kwargs (argumen kata kunci tambahan, *opsional*) : Akan diteruskan ke metode decode spesifik model yang mendasarinya.

**Mengembalikan:** `list[str]`

Daftar kalimat yang telah didekode.

Konversi daftar dari daftar id token menjadi daftar string dengan memanggil decode.

Metode ini disediakan untuk kompatibilitas mundur. Metode `decode` sekarang menangani input berbatch secara native, sehingga Anda dapat menggunakan `decode` secara langsung alih-alih `batch_decode`.

#### decode[[transformers.PythonBackend.decode]]

```python
decode(token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2885)

**Parameter:**

token_ids (`Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Satu urutan atau batch (daftar urutan) dari id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode `__call__`.

skip_special_tokens (`bool`, *opsional*, default `False`) : Apakah token khusus akan dihapus saat decoding.

kwargs (argumen kata kunci tambahan, *opsional*) : Akan diteruskan ke metode decode spesifik model yang mendasarinya.

**Mengembalikan:** `Union[str, list[str]]`

String yang telah didekode untuk satu sekuens, atau daftar string yang telah didekode untuk batch sekuens.

Mengonversi rangkaian id menjadi string, atau daftar rangkaian menjadi daftar string, menggunakan tokenizer dan kosakata dengan opsi untuk menghapus token khusus dan merapikan spasi tokenisasi.

Mirip dengan melakukan `self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))`.

#### encode[[transformers.PythonBackend.encode]]

```python
encode(text: TextInput | PreTokenizedInput | EncodedInput, text_pair: TextInput | PreTokenizedInput | EncodedInput | None = None, add_special_tokens: bool = True, padding: bool | str | PaddingStrategy = False, truncation: bool | str | TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, padding_side: str | None = None, return_tensors: str | TensorType | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2263)

**Parameter:**

text (`str`, `list[str]` atau `list[int]`) : Urutan pertama yang akan dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode `tokenize`) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode `convert_tokens_to_ids`).

text_pair (`str`, `list[str]` atau `list[int]`, *opsional*) : Urutan kedua opsional untuk dienkod. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode `tokenize`) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode `convert_tokens_to_ids`).

add_special_tokens (`bool`, *opsional*, default `True`) : Menentukan apakah token khusus akan ditambahkan saat meng-encode urutan. Hal ini akan menggunakan fungsi `PretrainedTokenizerBase.build_inputs_with_special_tokens` yang mendasarinya, yang mendefinisikan token apa saja yang secara otomatis ditambahkan ke input ids. Ini berguna jika Anda ingin menambahkan token `bos` atau `eos` secara otomatis.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:  - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, `str` atau [TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:  - `True` atau `'longest_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_second'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `False` atau `'do_not_truncate'` (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang urutan yang melebihi ukuran input maksimum yang diizinkan oleh model).

max_length (`int`, *opsional*) : Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding. Jika tidak disetel atau disetel ke `None`, ini akan menggunakan panjang maksimum model yang telah ditentukan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

stride (`int`, *opsional*, default 0) : Jika diatur ke sebuah angka bersamaan dengan `max_length`, token yang meluap yang dikembalikan saat `return_overflowing_tokens=True` akan memuat beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, sekuens akan di-*pad* menjadi kelipatan dari nilai yang diberikan. Memerlukan `padding` untuk diaktifkan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor alih-alih daftar bilangan bulat python. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` Numpy.

- ****kwargs** : Diteruskan ke metode `.tokenize()`.

**Mengembalikan:** `list[int]`, `torch.Tensor`, atau `np.ndarray`

ID tokenisasi dari teks.

Mengonversi string menjadi urutan id (bilangan bulat), menggunakan tokenizer dan kosakata.

Sama seperti melakukan `self.convert_tokens_to_ids(self.tokenize(text))`.

#### push_to_hub[[transformers.PythonBackend.push_to_hub]]

```python
push_to_hub(repo_id: str, commit_message: str | None = None, commit_description: str | None = None, private: bool | None = None, token: bool | str | None = None, revision: str | None = None, create_pr: bool = False, max_shard_size: int | str | None = '50GB', tags: list[str] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/hub.py#L822)

**Parameter:**

repo_id (`str`) : Nama repositori tempat Anda ingin mendorong tokenizer Anda. Nama ini harus mencakup nama organisasi Anda saat mendorong ke organisasi tertentu.

commit_message (`str`, *opsional*) : Pesan untuk commit saat push. Akan default ke `"Upload tokenizer"`.

commit_description (`str`, *opsional*) : Deskripsi dari commit yang akan dibuat

private (`bool`, *opsional*) : Apakah akan membuat repo menjadi privat. Jika `None` (default), repo akan bersifat publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.

token (`bool` atau `str`, *opsional*) : Token yang akan digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika `True` (default), akan menggunakan token yang dihasilkan saat menjalankan `hf auth login` (disimpan di `~/.huggingface`).

revision (`str`, *opsional*) : Cabang untuk mendorong file yang diunggah.

create_pr (`bool`, *opsional*, default `False`) : Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.

max_shard_size (`int` atau `str`, *opsional*, default `"50GB"`) : Hanya berlaku untuk model. Ukuran maksimum untuk checkpoint sebelum dipecah menjadi shard. Setiap shard checkpoint akan memiliki ukuran lebih kecil dari nilai ini. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti `"5MB"`).

tags (`list[str]`, *opsional*) : Daftar tag untuk didorong ke Hub.

Unggah file tokenizer ke 🤗 Model Hub.

Contoh:

```python
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")
```

#### build_inputs_with_special_tokens[[transformers.PythonBackend.build_inputs_with_special_tokens]]

```python
build_inputs_with_special_tokens(token_ids_0: list, token_ids_1: list[int] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L865)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar ID tempat token khusus akan ditambahkan.

token_ids_1 (`list[int]`, *opsional*) : Daftar ID kedua opsional untuk pasangan sekuens.

**Mengembalikan:** `list[int]`

Daftar ID input dengan token khusus yang sesuai.

Bangun input model dari sebuah urutan atau sepasang urutan dengan menambahkan token khusus.

Metode ini secara dinamis membangun input berdasarkan `special_tokens_pattern` tokenizer:
- `"none"`: Tidak ada token khusus
- `"cls_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]
- `"eos"`: seq0 [EOS] atau seq0 [EOS] seq1 [EOS]
- `"bos"`: [BOS] seq0 atau [BOS] seq0 [BOS] seq1
- `"bos_eos"`: [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]
- `"cls_double_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]
- `"prefix_suffix"`: `<prefix_tokens> seq0 [seq1] <suffix_tokens>` (prefix/suffix kustom yang disimpan pada tokenizer)

#### create_token_type_ids_from_sequences[[transformers.PythonBackend.create_token_type_ids_from_sequences]]

```python
create_token_type_ids_from_sequences(token_ids_0: list, token_ids_1: list[int] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1298)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar ID.

token_ids_1 (`list[int]`, *opsional*) : Daftar ID kedua opsional untuk pasangan sekuens.

**Mengembalikan:** `list[int]`

ID tipe token sesuai dengan pola yang dikonfigurasi.

Buat mask dari dua urutan yang diteruskan untuk digunakan dalam tugas klasifikasi pasangan urutan.

Metode ini secara dinamis membangun ID tipe token berdasarkan atribut konfigurasi tokenizer:
- `token_type_ids_pattern`: Pola yang digunakan ("all_zeros" atau "bert_style")
- `token_type_ids_include_special_tokens`: Apakah token khusus diperhitungkan dalam perhitungan panjang

Contoh:
```python
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs
```

#### get_added_vocab[[transformers.PythonBackend.get_added_vocab]]

```python
get_added_vocab()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L488)

**Mengembalikan:** `dict[str, int]`

Token yang ditambahkan.

Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks. Hasilnya mungkin berbeda dari panggilan cepat karena saat ini kami selalu menambahkan token meskipun token tersebut sudah ada dalam kosakata. Ini adalah sesuatu yang harus kami ubah.

#### get_special_tokens_mask[[transformers.PythonBackend.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list, token_ids_1: list | None = None, already_has_special_tokens: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L969)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar id dari urutan pertama.

token_ids_1 (`list[int]`, *opsional*) : Daftar id dari urutan kedua.

already_has_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah daftar token sudah diformat dengan token khusus untuk model.

**Mengembalikan:** Daftar bilangan bulat dalam rentang [0, 1]

1 untuk token khusus, 0 untuk token urutan.

Mengambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan. Metode ini dipanggil saat menambahkan token khusus menggunakan metode `prepare_for_model` atau `encode_plus` tokenizer.

Metode ini secara dinamis membangun mask token khusus berdasarkan `special_tokens_pattern` tokenizer:
- `"none"`: Tidak ada token khusus (default, mengembalikan semua 0)
- `"cls_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]
- `"eos"`: seq0 [EOS] atau seq0 [EOS] seq1 [EOS]
- `"bos"`: [BOS] seq0 atau [BOS] seq0 [BOS] seq1
- `"bos_eos"`: [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]
- `"cls_double_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]
- `"prefix_suffix"`: `<prefix_tokens> seq0 [seq1] <suffix_tokens>`

#### num_special_tokens_to_add[[transformers.PythonBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L602)

**Parameter:**

pair (`bool`, *opsional*, defaultnya `False`) : Apakah jumlah token yang ditambahkan harus dihitung dalam kasus pasangan sekuens atau sekuens tunggal.

**Mengembalikan:** `int`

Jumlah token khusus yang ditambahkan ke dalam sekuens.

Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.

Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.

#### prepare_for_model[[transformers.PythonBackend.prepare_for_model]]

```python
prepare_for_model(ids: list, pair_ids: list[int] | None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = False, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_length: bool = False, verbose: bool = True, prepend_batch_axis: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1121)

**Parameter:**

ids : ID input yang ditokenisasi dari urutan pertama.

pair_ids : ID input yang ditokenisasi dari urutan kedua (opsional).

Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).

#### prepare_for_tokenization[[transformers.PythonBackend.prepare_for_tokenization]]

```python
prepare_for_tokenization(text: str, is_split_into_words: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L841)

**Parameter:**

text (`str`) : Teks yang akan disiapkan.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci untuk digunakan dalam tokenisasi.

**Mengembalikan:** `tuple[str, dict[str, Any]]`

Teks yang telah disiapkan dan kwargs yang tidak digunakan.

Melakukan transformasi yang diperlukan sebelum tokenisasi.

Metode ini harus mengambil argumen dari `kwargs` dan juga mengembalikan `kwargs` yang tersisa. Kami menguji `kwargs` di akhir proses encoding untuk memastikan semua argumen telah digunakan.

#### save_vocabulary[[transformers.PythonBackend.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1362)

**Parameter:**

save_directory (`str`) : Direktori tempat menyimpan kosa kata.

filename_prefix (`str`, *opsional*) : Prefiks opsional untuk ditambahkan ke nama file yang disimpan.

**Mengembalikan:** `tuple[str, ...]`

Path ke file yang disimpan, atau tuple kosong jika tidak ada file yang disimpan.

Implementasi default untuk pola penyimpanan kosakata umum. Menyimpan self.encoder/self.vocab sebagai JSON, opsional dengan self.bpe_ranks sebagai merges. Mengembalikan tuple kosong jika tidak ada kosakata.

Override metode ini jika tokenizer Anda memerlukan logika penyimpanan khusus (misalnya, model SentencePiece, beberapa file kosakata, atau format file khusus).

#### tokenize[[transformers.PythonBackend.tokenize]]

```python
tokenize(text: str, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L625)

**Parameter:**

text : Urutan yang akan dikodekan.

- ****kwargs** : Diteruskan ke metode pra-pemrosesan `prepare_for_tokenization` yang spesifik untuk model.

**Mengembalikan:**

Daftar token.

Mengonversi string menjadi urutan token, menggunakan tokenizer.

#### truncate_sequences[[transformers.PythonBackend.truncate_sequences]]

```python
truncate_sequences(ids: list, pair_ids: list[int] | None = None, num_tokens_to_remove: int = 0, truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first', stride: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1231)

Memotong urutan sesuai dengan strategi yang ditentukan.

## PreTrainedTokenizerFast[[transformers.TokenizersBackend]]

[PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend) bergantung pada pustaka [tokenizers](https://huggingface.co/docs/tokenizers). Tokenizer yang diperoleh dari pustaka 🤗 tokenizers dapat dimuat dengan sangat sederhana ke dalam 🤗 transformers. Lihat halaman [Menggunakan tokenizer dari 🤗 tokenizers](../fast_tokenizers) untuk memahami cara melakukannya.

#### transformers.TokenizersBackend[[transformers.TokenizersBackend]]

```python
transformers.TokenizersBackend(*args, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L86)

**Parameter:**

model_max_length (`int`, *opsional*) : Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan [from_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.from_pretrained), nilai ini akan diset ke nilai yang disimpan untuk model terkait di `max_model_input_sizes` (lihat di atas). Jika tidak ada nilai yang diberikan, nilai default akan menjadi VERY_LARGE_INTEGER (`int(1e30)`).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

truncation_side (`str`, *opsional*) : Sisi tempat model harus menerapkan pemotongan. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

chat_template (`str`, *opsional*) : String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.

model_input_names (`list[string]`, *opsional*) : Daftar input yang diterima oleh forward pass model (seperti `"token_type_ids"` atau `"attention_mask"`). Nilai default diambil dari atribut kelas dengan nama yang sama.

bos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili awal dari sebuah kalimat.

eos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili akhir dari sebuah kalimat.

unk_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).

sep_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).

pad_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme perhatian atau perhitungan loss.

cls_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili kelas dari input (dipakai, misalnya, oleh BERT).

mask_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token ter-mask (digunakan oleh tujuan pra-pelatihan pemodelan bahasa ter-mask, seperti BERT). Akan diasosiasikan dengan `self.mask_token` dan `self.mask_token_id`.

extra_special_tokens (daftar `str` atau `tokenizers.AddedToken`, *opsional*) : Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token-token tersebut dilewati saat decoding dengan `skip_special_tokens` yang diset ke True. Jika token-token tersebut tidak termasuk dalam kosakata, mereka akan ditambahkan di akhir kosakata.

split_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika `<s>` adalah `bos_token`, maka `tokenizer.tokenize("<s>") = ['<s>`]. Sebaliknya, jika `split_special_tokens=True`, maka `tokenizer.tokenize("<s>")` akan menghasilkan `['<','s', '>']`.

tokenizer_object (`tokenizers.Tokenizer`) : Objek `tokenizers.Tokenizer` dari 🤗 tokenizers untuk diinstansiasi. Lihat [Menggunakan tokenizer dari 🤗 tokenizers](../fast_tokenizers) untuk informasi lebih lanjut.

tokenizer_file (`str`) : Path ke file JSON lokal yang merepresentasikan objek `tokenizers.Tokenizer` yang sebelumnya diserialisasi dari 🤗 tokenizers.

Kelas dasar untuk semua tokenizer cepat (membungkus pustaka tokenizers HuggingFace).

Mewarisi dari [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase).

Menangani semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, serta menambahkan token ke dalam kosakata.

Kelas ini juga berisi token yang ditambahkan secara terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece...).

Atribut kelas (ditimpa oleh kelas turunan)

- **vocab_files_names** (`dict[str, str]`) -- Kamus yang menggunakan nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
- **pretrained_vocab_files_map** (`dict[str, dict[str, str]]`) -- Kamus dari kamus, dengan kunci tingkat atas berupa nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat bawah berupa `short-cut-names` dari model pretrained, dengan nilai terkait berupa `url` ke file kosakata pretrained yang terkait.
- **model_input_names** (`list[str]`) -- Daftar input yang diharapkan pada forward pass model.
- **padding_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa `'right'` atau `'left'`.
- **truncation_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa `'right'` atau `'left'`.

#### __call__[[transformers.TokenizersBackend.__call__]]

```python
__call__(text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, text_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None, add_special_tokens: bool = True, padding: bool | str | PaddingStrategy = False, truncation: bool | str | TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, is_split_into_words: bool = False, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_offsets_mapping: bool = False, return_length: bool = False, verbose: bool = True, tokenizer_kwargs: dict[str, Any] | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2449)

**Parameter:**

text (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

tokenizer_kwargs (`dict[str, Any]`, *opsional*) : kwargs tambahan untuk diteruskan ke tokenizer. Nilai-nilai ini akan digabungkan dengan parameter eksplisit dan kwargs lainnya, dengan parameter eksplisit memiliki prioritas lebih tinggi.

add_special_tokens (`bool`, *opsional*, default `True`) : Menentukan apakah token khusus akan ditambahkan saat meng-encode urutan. Hal ini akan menggunakan fungsi `PretrainedTokenizerBase.build_inputs_with_special_tokens` yang mendasarinya, yang mendefinisikan token apa saja yang secara otomatis ditambahkan ke input ids. Ini berguna jika Anda ingin menambahkan token `bos` atau `eos` secara otomatis.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:  - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, `str` atau [TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:  - `True` atau `'longest_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_second'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `False` atau `'do_not_truncate'` (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang urutan yang melebihi ukuran input maksimum yang diizinkan oleh model).

max_length (`int`, *opsional*) : Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding. Jika tidak disetel atau disetel ke `None`, ini akan menggunakan panjang maksimum model yang telah ditentukan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

stride (`int`, *opsional*, default 0) : Jika diatur ke sebuah angka bersamaan dengan `max_length`, token yang meluap yang dikembalikan saat `return_overflowing_tokens=True` akan memuat beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, sekuens akan di-*pad* menjadi kelipatan dari nilai yang diberikan. Memerlukan `padding` untuk diaktifkan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor alih-alih daftar bilangan bulat python. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` Numpy.

return_token_type_ids (`bool`, *opsional*) : Apakah akan mengembalikan token type ID. Jika dibiarkan pada nilai default, akan mengembalikan token type ID sesuai default tokenizer tertentu, yang didefinisikan oleh atribut `return_outputs`.  [Apa itu token type ID?](../glossary#token-type-ids)

return_attention_mask (`bool`, *opsional*) : Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan sesuai dengan default tokenizer yang bersangkutan, yang didefinisikan oleh atribut `return_outputs`.  [Apa itu attention mask?](../glossary#attention-mask)

return_overflowing_tokens (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengan `truncation_strategy = longest_first` atau `True`, error akan dilemparkan alih-alih mengembalikan token yang meluap.

return_special_tokens_mask (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan informasi mask token khusus.

return_offsets_mapping (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan `(char_start, char_end)` untuk setiap token. Ini hanya tersedia pada fast tokenizer yang mewarisi dari [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend); jika menggunakan tokenizer Python, metode ini akan melempar `NotImplementedError`.

return_length  (`bool`, *opsional*, default `False`) : Apakah akan mengembalikan panjang dari input yang dikodekan.

verbose (`bool`, *opsional*, default `True`) : Apakah akan mencetak informasi dan peringatan yang lebih banyak.

- ****kwargs** : diteruskan ke metode `self.tokenize()`

**Mengembalikan:** [BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding) dengan bidang berikut:

- **input_ids** -- Daftar id token yang akan diberikan ke model.

  [Apa itu input ID?](../glossary#input-ids)

- **token_type_ids** -- Daftar token type id yang akan diberikan ke model (ketika `return_token_type_ids=True` atau jika *"token_type_ids"* ada di `self.model_input_names`).

  [Apa itu token type ID?](../glossary#token-type-ids)

- **attention_mask** -- Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika `return_attention_mask=True` atau jika *"attention_mask"* ada di `self.model_input_names`).

  [Apa itu attention mask?](../glossary#attention-mask)

- **overflowing_tokens** -- Daftar sekuens token yang meluap (ketika `max_length` ditentukan dan `return_overflowing_tokens=True`).
- **num_truncated_tokens** -- Jumlah token yang dipangkas (ketika `max_length` ditentukan dan `return_overflowing_tokens=True`).
- **special_tokens_mask** -- Daftar angka 0 dan 1, di mana 1 menandakan token khusus yang ditambahkan dan 0 menandakan token urutan reguler (ketika `add_special_tokens=True` dan `return_special_tokens_mask=True`).
- **length** -- Panjang dari input (ketika `return_length=True`)

Metode utama untuk melakukan tokenisasi dan persiapan satu atau beberapa urutan, atau satu atau beberapa pasangan urutan, untuk model.

#### add_tokens[[transformers.TokenizersBackend.add_tokens]]

```python
add_tokens(new_tokens: str | AddedToken | Sequence[str | AddedToken], special_tokens: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1218)

**Parameter:**

new_tokens (`str`, `tokenizers.AddedToken` atau urutan dari *str* atau `tokenizers.AddedToken`) : Token hanya ditambahkan jika belum ada dalam kosakata. `tokenizers.AddedToken` membungkus token string agar Anda dapat mempersonalisasi perilakunya: apakah token ini harus hanya cocok dengan satu kata, apakah token ini harus menghapus semua spasi potensial di sisi kiri, apakah token ini harus menghapus semua spasi potensial di sisi kanan, dan sebagainya.

special_tokens (`bool`, *opsional*, default `False`) : Menentukan apakah token tersebut bersifat khusus. Hal ini terutama mengubah perilaku normalisasi. Lihat detail `tokenizers.AddedToken` di pustaka tokenizers HuggingFace.

**Mengembalikan:** `int`

Jumlah token yang ditambahkan ke dalam kosakata.

#TODO hapus ini dari sini! PreTrainedTokenizerBase harus tidak bergantung pada AddedToken.

Tambahkan daftar token baru. Jika token baru tidak ada dalam kosakata, token tersebut akan ditambahkan ke akhir. Oleh karena itu, token yang ditambahkan dan token dari kosakata algoritma tokenisasi tidak diperlakukan dengan cara yang sama.

Tokenizer cepat dengan pre-tokenizer `Metaspace` yang menggunakan `prepend_scheme="always"` (misalnya NLLB) menambahkan `"▁"` ke teks yang mengikuti token yang ditambahkan. Setelah `tokenizer.add_tokens(["abcd"])`, `"abcdgym"` ditokenisasi menjadi `["abcd", "▁gym"]` dan didekode menjadi `"abcd gym"`. Jika token yang ditambahkan dapat muncul di dalam kata, ganti pre-tokenizer

ke `prepend_scheme="first"` sehingga hanya awal input yang diberi awalan:

```python
from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)
```

Contoh:

```python
# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))
```

#### add_special_tokens[[transformers.TokenizersBackend.add_special_tokens]]

```python
add_special_tokens(special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]], replace_extra_special_tokens = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1113)

**Parameter:**

special_tokens_dict (dictionary *str* ke *str*, `tokenizers.AddedToken`, atau `Sequence[Union[str, AddedToken]]`) : Kunci harus berada dalam daftar atribut khusus yang sudah ditentukan: [`bos_token`, `eos_token`, `unk_token`, `sep_token`, `pad_token`, `cls_token`, `mask_token`, `extra_special_tokens`]. Token hanya ditambahkan jika belum ada dalam kosakata (diuji dengan memeriksa apakah tokenizer memberikan indeks `unk_token` kepada token tersebut).

replace_extra_special_tokens (`bool`, *opsional*, default `True`) : Jika `True`, daftar token khusus tambahan yang ada akan diganti oleh daftar yang diberikan dalam `special_tokens_dict`. Sebaliknya, `extra_special_tokens` akan diperluas. Dalam kasus pertama, token tersebut TIDAK akan dihapus dari kosakata lengkap tokenizer - mereka hanya ditandai sebagai token non-khusus. Ingat, ini hanya memengaruhi token mana yang dilewati selama decoding, bukan `added_tokens_encoder` dan `added_tokens_decoder`. Ini berarti bahwa `extra_special_tokens` sebelumnya masih merupakan token yang ditambahkan, dan tidak akan dipecah oleh model.

**Mengembalikan:** `int`

Jumlah token yang ditambahkan ke dalam kosakata.

Tambahkan kamus token khusus (eos, pad, cls, dll.) ke encoder dan hubungkan ke atribut kelas. Jika token khusus TIDAK ada dalam kosakata, token tersebut akan ditambahkan ke kosakata (diindeks mulai dari indeks terakhir kosakata saat ini).

Saat menambahkan token baru ke dalam kosakata, Anda harus memastikan untuk juga mengubah ukuran matriks embedding token dari model agar matriks embedding-nya sesuai dengan tokenizer.

Untuk melakukan hal tersebut, silakan gunakan metode [resize_token_embeddings()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.resize_token_embeddings).

Menggunakan `add_special_tokens` akan memastikan token khusus Anda dapat digunakan dalam beberapa cara:

- Token khusus dapat dilewati saat decoding menggunakan `skip_special_tokens = True`.
- Token khusus ditangani dengan cermat oleh tokenizer (tidak pernah dipecah), mirip dengan `AddedTokens`.
- Anda dapat dengan mudah merujuk ke token khusus menggunakan atribut kelas tokenizer seperti `tokenizer.cls_token`. Hal ini memudahkan pengembangan skrip pelatihan dan fine-tuning yang tidak bergantung pada model tertentu.

Jika memungkinkan, token khusus sudah didaftarkan untuk model pretrained yang disediakan (misalnya [BertTokenizer](/docs/transformers/main/id/model_doc/lxmert#transformers.BertTokenizer) `cls_token` sudah didaftarkan sebagai `'[CLS]'` dan untuk XLM juga sudah didaftarkan sebagai `'</s>'`).

Contoh:

```python
# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"
```

#### apply_chat_template[[transformers.TokenizersBackend.apply_chat_template]]

```python
apply_chat_template(conversation: list[dict[str, str]] | list[list[dict[str, str]]], tools: list[dict | Callable] | None = None, documents: list[dict[str, str]] | None = None, chat_template: str | None = None, add_generation_prompt: bool = False, continue_final_message: bool | str = False, tokenize: bool = True, sanitize_control_tokens: bool = False, padding: bool | str | PaddingStrategy = False, truncation: bool = False, max_length: int | None = None, return_tensors: str | TensorType | None = None, return_dict: bool = True, return_assistant_tokens_mask: bool = False, tokenizer_kwargs: dict[str, Any] | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L3021)

**Parameter:**

conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) : Daftar dict dengan kunci "role" dan "content", yang merepresentasikan riwayat chat sejauh ini.

tools (`list[Union[Dict, Callable]]`, *opsional*) : Daftar alat (fungsi callable) yang akan dapat diakses oleh model. Jika template tidak mendukung pemanggilan fungsi, argumen ini tidak akan berpengaruh. Setiap alat harus diberikan sebagai JSON Schema, yang mencantumkan nama, deskripsi, dan tipe argumen untuk alat tersebut. Lihat [panduan penggunaan alat](https://huggingface.co/docs/transformers/en/chat_extras#passing-tools) kami untuk informasi lebih lanjut.

documents (`list[dict[str, str]]`, *opsional*) : Daftar dict yang merepresentasikan dokumen yang akan dapat diakses oleh model jika model tersebut sedang melakukan RAG (retrieval-augmented generation). Jika template tidak mendukung RAG, argumen ini tidak akan berpengaruh. Kami merekomendasikan agar setiap dokumen berupa dict yang berisi kunci "title" dan "text".

chat_template (`str`, *opsional*) : Template Jinja yang akan digunakan untuk konversi ini. Biasanya tidak perlu meneruskan apa pun ke argumen ini, karena template model akan digunakan secara default.

add_generation_prompt (bool, *optional*) : Jika ini diatur, prompt dengan token yang menandakan awal pesan asisten akan ditambahkan ke hasil yang telah diformat. Hal ini berguna ketika Anda ingin menghasilkan respons dari model. Perhatikan bahwa argumen ini akan diteruskan ke chat template, sehingga argumen ini harus didukung dalam template agar memiliki efek.

continue_final_message (bool atau str, *opsional*) : Jika ini diatur, chat akan diformat sedemikian rupa sehingga pesan terakhir dalam chat bersifat terbuka, tanpa token EOS. Model akan melanjutkan pesan ini alih-alih memulai pesan baru. Hal ini memungkinkan Anda untuk "prefill" sebagian respons model. Jika string diteruskan, string tersebut akan digunakan sebagai kunci untuk field yang akan dilanjutkan (misalnya "reasoning_content"). Tidak dapat digunakan bersamaan dengan `add_generation_prompt`.

tokenize (`bool`, defaultnya `True`) : Apakah akan melakukan tokenisasi pada output. Jika `False`, output akan berupa string.

sanitize_control_tokens (`bool`, defaultnya `False`) : Jika diaktifkan, token kontrol yang muncul dalam pesan, alat, atau dokumen akan dikodekan sebagai teks biasa, sehingga hanya token kontrol yang ditulis oleh template chat itu sendiri yang dikodekan sebagai token. Token kontrol adalah token khusus dari tokenizer, ditambah token yang ditambahkan dalam `tokenizer.chat_control_tokens`. Jika variabel tersebut tidak disetel, token kontrol akan disimpulkan dari token yang ditambahkan yang muncul dalam teks dan literal string template chat. Hanya token kontrol utuh yang disanitasi, sehingga jika template menggabungkan string dari input menjadi token kontrol (seperti `'<|' + message['role'] + '|>'`), string-string tersebut harus divalidasi secara terpisah. Kunci Dict juga tidak disanitasi.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara: - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, defaultnya `False`) : Apakah akan memotong (truncate) urutan pada panjang maksimum. Tidak berpengaruh jika tokenize adalah `False`.

max_length (`int`, *opsional*) : Panjang maksimum (dalam token) yang digunakan untuk padding atau truncation. Tidak berpengaruh jika tokenize adalah `False`. Jika tidak ditentukan, atribut `max_length` dari tokenizer akan digunakan sebagai nilai default.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor dari framework tertentu. Tidak berpengaruh jika tokenize adalah `False`. Nilai yang dapat diterima adalah: - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` NumPy.

return_dict (`bool`, defaultnya `True`) : Apakah akan mengembalikan kamus dengan output bernama. Tidak berpengaruh jika tokenize adalah `False`.

tokenizer_kwargs (`dict[str : Any]`, *opsional*): kwargs tambahan untuk diteruskan ke tokenizer.

return_assistant_tokens_mask (`bool`, defaultnya `False`) : Apakah akan mengembalikan mask untuk token yang dihasilkan asisten. Untuk token yang dihasilkan oleh asisten, mask akan berisi 1. Untuk token user dan system, mask akan berisi 0. Fungsi ini hanya tersedia untuk chat template yang mendukungnya melalui kata kunci `{% generation %}`.

- ****kwargs** : kwargs tambahan untuk diteruskan ke template renderer. Akan dapat diakses oleh chat template.

**Mengembalikan:** `Union[list[int], Dict]`

Daftar id token yang mewakili chat yang telah ditokenisasi sejauh ini, termasuk token kontrol. Output ini siap untuk diteruskan ke model, baik secara langsung maupun melalui metode seperti `generate()`. Jika `return_dict` diset, akan mengembalikan dict dari output tokenizer.

Mengonversi daftar kamus dengan kunci `"role"` dan `"content"` menjadi daftar token id. Metode ini ditujukan untuk digunakan dengan model chat, dan akan membaca atribut chat_template tokenizer untuk menentukan format dan token kontrol yang akan digunakan saat mengonversi.

#### batch_decode[[transformers.TokenizersBackend.batch_decode]]

```python
batch_decode(sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2933)

**Parameter:**

sequences (`Union[list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Daftar id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode `__call__`.

skip_special_tokens (`bool`, *opsional*, default `False`) : Apakah token khusus akan dihapus saat decoding.

clean_up_tokenization_spaces (`bool`, *opsional*) : Apakah akan membersihkan spasi tokenisasi atau tidak. Jika `None`, akan menggunakan nilai default `self.clean_up_tokenization_spaces`.

kwargs (argumen kata kunci tambahan, *opsional*) : Akan diteruskan ke metode decode spesifik model yang mendasarinya.

**Mengembalikan:** `list[str]`

Daftar kalimat yang telah didekode.

Konversi daftar dari daftar id token menjadi daftar string dengan memanggil decode.

Metode ini disediakan untuk kompatibilitas mundur. Metode `decode` sekarang menangani input berbatch secara native, sehingga Anda dapat menggunakan `decode` secara langsung alih-alih `batch_decode`.

#### decode[[transformers.TokenizersBackend.decode]]

```python
decode(token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensor, skip_special_tokens: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2885)

**Parameter:**

token_ids (`Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]`) : Satu urutan atau batch (daftar urutan) dari id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode `__call__`.

skip_special_tokens (`bool`, *opsional*, default `False`) : Apakah token khusus akan dihapus saat decoding.

kwargs (argumen kata kunci tambahan, *opsional*) : Akan diteruskan ke metode decode spesifik model yang mendasarinya.

**Mengembalikan:** `Union[str, list[str]]`

String yang telah didekode untuk satu sekuens, atau daftar string yang telah didekode untuk batch sekuens.

Mengonversi rangkaian id menjadi string, atau daftar rangkaian menjadi daftar string, menggunakan tokenizer dan kosakata dengan opsi untuk menghapus token khusus dan merapikan spasi tokenisasi.

Mirip dengan melakukan `self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))`.

#### encode[[transformers.TokenizersBackend.encode]]

```python
encode(text: TextInput | PreTokenizedInput | EncodedInput, text_pair: TextInput | PreTokenizedInput | EncodedInput | None = None, add_special_tokens: bool = True, padding: bool | str | PaddingStrategy = False, truncation: bool | str | TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, padding_side: str | None = None, return_tensors: str | TensorType | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L2263)

**Parameter:**

text (`str`, `list[str]` atau `list[int]`) : Urutan pertama yang akan dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode `tokenize`) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode `convert_tokens_to_ids`).

text_pair (`str`, `list[str]` atau `list[int]`, *opsional*) : Urutan kedua opsional untuk dienkod. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode `tokenize`) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode `convert_tokens_to_ids`).

add_special_tokens (`bool`, *opsional*, default `True`) : Menentukan apakah token khusus akan ditambahkan saat meng-encode urutan. Hal ini akan menggunakan fungsi `PretrainedTokenizerBase.build_inputs_with_special_tokens` yang mendasarinya, yang mendefinisikan token apa saja yang secara otomatis ditambahkan ke input ids. Ini berguna jika Anda ingin menambahkan token `bos` atau `eos` secara otomatis.

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:  - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

truncation (`bool`, `str` atau [TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *opsional*, default `False`) : Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:  - `True` atau `'longest_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_first'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `'only_second'`: Memotong hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari pasangan jika sepasang urutan (atau batch pasangan) diberikan. - `False` atau `'do_not_truncate'` (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang urutan yang melebihi ukuran input maksimum yang diizinkan oleh model).

max_length (`int`, *opsional*) : Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding. Jika tidak disetel atau disetel ke `None`, ini akan menggunakan panjang maksimum model yang telah ditentukan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

stride (`int`, *opsional*, default 0) : Jika diatur ke sebuah angka bersamaan dengan `max_length`, token yang meluap yang dikembalikan saat `return_overflowing_tokens=True` akan memuat beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, sekuens akan di-*pad* menjadi kelipatan dari nilai yang diberikan. Memerlukan `padding` untuk diaktifkan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor alih-alih daftar bilangan bulat python. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` Numpy.

- ****kwargs** : Diteruskan ke metode `.tokenize()`.

**Mengembalikan:** `list[int]`, `torch.Tensor`, atau `np.ndarray`

ID tokenisasi dari teks.

Mengonversi string menjadi urutan id (bilangan bulat), menggunakan tokenizer dan kosakata.

Sama seperti melakukan `self.convert_tokens_to_ids(self.tokenize(text))`.

#### push_to_hub[[transformers.TokenizersBackend.push_to_hub]]

```python
push_to_hub(repo_id: str, commit_message: str | None = None, commit_description: str | None = None, private: bool | None = None, token: bool | str | None = None, revision: str | None = None, create_pr: bool = False, max_shard_size: int | str | None = '50GB', tags: list[str] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/hub.py#L822)

**Parameter:**

repo_id (`str`) : Nama repositori tempat Anda ingin mendorong tokenizer Anda. Nama ini harus mencakup nama organisasi Anda saat mendorong ke organisasi tertentu.

commit_message (`str`, *opsional*) : Pesan untuk commit saat push. Akan default ke `"Upload tokenizer"`.

commit_description (`str`, *opsional*) : Deskripsi dari commit yang akan dibuat

private (`bool`, *opsional*) : Apakah akan membuat repo menjadi privat. Jika `None` (default), repo akan bersifat publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.

token (`bool` atau `str`, *opsional*) : Token yang akan digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika `True` (default), akan menggunakan token yang dihasilkan saat menjalankan `hf auth login` (disimpan di `~/.huggingface`).

revision (`str`, *opsional*) : Cabang untuk mendorong file yang diunggah.

create_pr (`bool`, *opsional*, default `False`) : Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.

max_shard_size (`int` atau `str`, *opsional*, default `"50GB"`) : Hanya berlaku untuk model. Ukuran maksimum untuk checkpoint sebelum dipecah menjadi shard. Setiap shard checkpoint akan memiliki ukuran lebih kecil dari nilai ini. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti `"5MB"`).

tags (`list[str]`, *opsional*) : Daftar tag untuk didorong ke Hub.

Unggah file tokenizer ke 🤗 Model Hub.

Contoh:

```python
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")
```

#### convert_to_native_format[[transformers.TokenizersBackend.convert_to_native_format]]

```python
convert_to_native_format(trust_remote_code = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L103)

Bangun backend `tokenizers.Tokenizer` dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).

#### get_added_vocab[[transformers.TokenizersBackend.get_added_vocab]]

```python
get_added_vocab()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L740)

**Mengembalikan:** `dict[str, int]`

Token yang ditambahkan.

Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks.

#### num_special_tokens_to_add[[transformers.TokenizersBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L837)

**Parameter:**

pair (`bool`, *opsional*, defaultnya `False`) : Apakah jumlah token yang ditambahkan harus dihitung dalam kasus pasangan sekuens atau sekuens tunggal.

**Mengembalikan:** `int`

Jumlah token khusus yang ditambahkan ke dalam sekuens.

Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.

Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.

#### save_pretrained[[transformers.TokenizersBackend.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, legacy_format: bool | None = None, filename_prefix: str | None = None, push_to_hub: bool = False, save_format: str | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L559)

**Parameter:**

save_format (`str`, *opsional*) : `"mistral"` untuk menyimpan sebagai `tekken.json` asli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama dinormalisasi menjadi `tekken.json` saat disimpan, dan tokenizer yang diinstansiasi harus tetap cocok persis dengannya. `"hf"` atau `None` untuk format HuggingFace default.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke metode [push_to_hub()](/docs/transformers/main/id/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub).

**Mengembalikan:** Tuple dari `str`

File yang disimpan.

Simpan status tokenizer lengkap.

Memperluas [save_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained) dengan dukungan `save_format`, untuk tokenizer yang dikonversi dari file kosakata asli (misalnya `tekken.json` milik Mistral). Lihat metode dasar untuk `legacy_format`, `filename_prefix`, dan `push_to_hub`.

#### set_truncation_and_padding[[transformers.TokenizersBackend.set_truncation_and_padding]]

```python
set_truncation_and_padding(padding_strategy: PaddingStrategy, truncation_strategy: TruncationStrategy, max_length: int, stride: int, pad_to_multiple_of: int | None, padding_side: str | None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L896)

**Parameter:**

padding_strategy ([PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy)) : Jenis padding yang akan diterapkan pada input

truncation_strategy ([TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)) : Jenis pemotongan yang akan diterapkan pada input

max_length (`int`) : Ukuran maksimum dari sebuah sekuens.

stride (`int`) : Stride yang digunakan saat menangani overflow.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

Definisikan strategi pemotongan (truncation) dan padding untuk fast tokenizers (yang disediakan oleh pustaka HuggingFace tokenizers) dan kembalikan pengaturan tokenizer setelahnya.

Tokenizer yang disediakan tidak memiliki strategi padding / truncation sebelum bagian yang dikelola. Jika tokenizer Anda telah menetapkan strategi padding / truncation sebelumnya, strategi tersebut akan direset menjadi tanpa padding / truncation saat keluar dari bagian yang dikelola.

#### train_new_from_iterator[[transformers.TokenizersBackend.train_new_from_iterator]]

```python
train_new_from_iterator(text_iterator, vocab_size, length = None, new_special_tokens = None, special_tokens_map = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L1192)

**Parameter:**

text_iterator (generator dari `list[str]`) : Korpus pelatihan. Harus berupa generator dari batch teks, misalnya daftar dari daftar teks jika semuanya ada di memori.

vocab_size (`int`) : Ukuran kosakata yang Anda inginkan untuk tokenizer Anda.

length (`int`, *opsional*) : Jumlah total urutan dalam iterator. Ini digunakan untuk memberikan pelacakan kemajuan yang bermakna

new_special_tokens (daftar `str` atau `AddedToken`, *opsional*) : Daftar token khusus baru untuk ditambahkan ke tokenizer yang sedang Anda latih.

special_tokens_map (`dict[str, str]`, *opsional*) : Jika Anda ingin mengganti nama beberapa token khusus yang digunakan tokenizer ini, berikan pemetaan dari nama token khusus lama ke nama token khusus baru melalui argumen ini.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke trainer dari pustaka 🤗 Tokenizers.

**Mengembalikan:** [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend)

Tokenizer baru dengan tipe yang sama dengan tokenizer asli, dilatih pada `text_iterator`.

Melatih tokenizer pada korpus baru dengan nilai default yang sama (dalam hal token khusus atau pipeline tokenisasi) seperti tokenizer saat ini.

#### update_post_processor[[transformers.TokenizersBackend.update_post_processor]]

```python
update_post_processor()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L627)

Memperbarui post processor dasar dengan `bos_token` dan `eos_token` saat ini.

## PythonBackend[[transformers.PythonBackend]]

#### transformers.PythonBackend[[transformers.PythonBackend]]

```python
transformers.PythonBackend(**kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L400)

**Parameter:**

model_max_length (`int`, *opsional*) : Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan [from_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.from_pretrained), nilai ini akan diset ke nilai yang disimpan untuk model terkait di `max_model_input_sizes` (lihat di atas). Jika tidak ada nilai yang diberikan, nilai default akan menjadi VERY_LARGE_INTEGER (`int(1e30)`).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

truncation_side (`str`, *opsional*) : Sisi tempat model harus menerapkan pemotongan. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

chat_template (`str`, *opsional*) : String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.

model_input_names (`list[string]`, *opsional*) : Daftar input yang diterima oleh forward pass model (seperti `"token_type_ids"` atau `"attention_mask"`). Nilai default diambil dari atribut kelas dengan nama yang sama.

bos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili awal dari sebuah kalimat.

eos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili akhir dari sebuah kalimat.

unk_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).

sep_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).

pad_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme perhatian atau perhitungan loss.

cls_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili kelas dari input (dipakai, misalnya, oleh BERT).

mask_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token ter-mask (digunakan oleh tujuan pra-pelatihan pemodelan bahasa ter-mask, seperti BERT). Akan diasosiasikan dengan `self.mask_token` dan `self.mask_token_id`.

extra_special_tokens (daftar `str` atau `tokenizers.AddedToken`, *opsional*) : Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token-token tersebut dilewati saat decoding dengan `skip_special_tokens` yang diset ke True. Jika token-token tersebut tidak termasuk dalam kosakata, mereka akan ditambahkan di akhir kosakata.

split_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika `<s>` adalah `bos_token`, maka `tokenizer.tokenize("<s>") = ['<s>`]. Sebaliknya, jika `split_special_tokens=True`, maka `tokenizer.tokenize("<s>")` akan menghasilkan `['<','s', '>']`.

Kelas dasar untuk semua tokenizer lambat.

Mewarisi dari [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase).

Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, dan menambahkan token ke kosakata.

Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece...).

Atribut kelas (ditimpa oleh kelas turunan)

- **vocab_files_names** (`dict[str, str]`) -- Kamus yang menggunakan nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
- **pretrained_vocab_files_map** (`dict[str, dict[str, str]]`) -- Kamus dari kamus, dengan kunci tingkat atas berupa nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat bawah berupa `short-cut-names` dari model pretrained, dengan nilai terkait berupa `url` ke file kosakata pretrained yang terkait.
- **model_input_names** (`list[str]`) -- Daftar input yang diharapkan pada forward pass model.
- **padding_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa `'right'` atau `'left'`.
- **truncation_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa `'right'` atau `'left'`.

#### build_inputs_with_special_tokens[[transformers.PythonBackend.build_inputs_with_special_tokens]]

```python
build_inputs_with_special_tokens(token_ids_0: list, token_ids_1: list[int] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L865)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar ID tempat token khusus akan ditambahkan.

token_ids_1 (`list[int]`, *opsional*) : Daftar ID kedua opsional untuk pasangan sekuens.

**Mengembalikan:** `list[int]`

Daftar ID input dengan token khusus yang sesuai.

Bangun input model dari sebuah urutan atau sepasang urutan dengan menambahkan token khusus.

Metode ini secara dinamis membangun input berdasarkan `special_tokens_pattern` tokenizer:
- `"none"`: Tidak ada token khusus
- `"cls_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]
- `"eos"`: seq0 [EOS] atau seq0 [EOS] seq1 [EOS]
- `"bos"`: [BOS] seq0 atau [BOS] seq0 [BOS] seq1
- `"bos_eos"`: [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]
- `"cls_double_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]
- `"prefix_suffix"`: `<prefix_tokens> seq0 [seq1] <suffix_tokens>` (prefix/suffix kustom yang disimpan pada tokenizer)

#### create_token_type_ids_from_sequences[[transformers.PythonBackend.create_token_type_ids_from_sequences]]

```python
create_token_type_ids_from_sequences(token_ids_0: list, token_ids_1: list[int] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1298)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar ID.

token_ids_1 (`list[int]`, *opsional*) : Daftar ID kedua opsional untuk pasangan sekuens.

**Mengembalikan:** `list[int]`

ID tipe token sesuai dengan pola yang dikonfigurasi.

Buat mask dari dua urutan yang diteruskan untuk digunakan dalam tugas klasifikasi pasangan urutan.

Metode ini secara dinamis membangun ID tipe token berdasarkan atribut konfigurasi tokenizer:
- `token_type_ids_pattern`: Pola yang digunakan ("all_zeros" atau "bert_style")
- `token_type_ids_include_special_tokens`: Apakah token khusus diperhitungkan dalam perhitungan panjang

Contoh:
```python
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs
```

#### get_added_vocab[[transformers.PythonBackend.get_added_vocab]]

```python
get_added_vocab()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L488)

**Mengembalikan:** `dict[str, int]`

Token yang ditambahkan.

Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks. Hasilnya mungkin berbeda dari panggilan cepat karena saat ini kami selalu menambahkan token meskipun token tersebut sudah ada dalam kosakata. Ini adalah sesuatu yang harus kami ubah.

#### get_special_tokens_mask[[transformers.PythonBackend.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list, token_ids_1: list | None = None, already_has_special_tokens: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L969)

**Parameter:**

token_ids_0 (`list[int]`) : Daftar id dari urutan pertama.

token_ids_1 (`list[int]`, *opsional*) : Daftar id dari urutan kedua.

already_has_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah daftar token sudah diformat dengan token khusus untuk model.

**Mengembalikan:** Daftar bilangan bulat dalam rentang [0, 1]

1 untuk token khusus, 0 untuk token urutan.

Mengambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan. Metode ini dipanggil saat menambahkan token khusus menggunakan metode `prepare_for_model` atau `encode_plus` tokenizer.

Metode ini secara dinamis membangun mask token khusus berdasarkan `special_tokens_pattern` tokenizer:
- `"none"`: Tidak ada token khusus (default, mengembalikan semua 0)
- `"cls_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]
- `"eos"`: seq0 [EOS] atau seq0 [EOS] seq1 [EOS]
- `"bos"`: [BOS] seq0 atau [BOS] seq0 [BOS] seq1
- `"bos_eos"`: [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]
- `"cls_double_sep"`: [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]
- `"prefix_suffix"`: `<prefix_tokens> seq0 [seq1] <suffix_tokens>`

#### num_special_tokens_to_add[[transformers.PythonBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L602)

**Parameter:**

pair (`bool`, *opsional*, defaultnya `False`) : Apakah jumlah token yang ditambahkan harus dihitung dalam kasus pasangan sekuens atau sekuens tunggal.

**Mengembalikan:** `int`

Jumlah token khusus yang ditambahkan ke dalam sekuens.

Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.

Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.

#### prepare_for_model[[transformers.PythonBackend.prepare_for_model]]

```python
prepare_for_model(ids: list, pair_ids: list[int] | None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = False, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_length: bool = False, verbose: bool = True, prepend_batch_axis: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1121)

**Parameter:**

ids : ID input yang ditokenisasi dari urutan pertama.

pair_ids : ID input yang ditokenisasi dari urutan kedua (opsional).

Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).

#### prepare_for_tokenization[[transformers.PythonBackend.prepare_for_tokenization]]

```python
prepare_for_tokenization(text: str, is_split_into_words: bool = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L841)

**Parameter:**

text (`str`) : Teks yang akan disiapkan.

is_split_into_words (`bool`, *opsional*, default `False`) : Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata-kata). Jika disetel ke `True`, tokenizer mengasumsikan input sudah dipecah menjadi kata-kata (misalnya, dengan memisahkannya berdasarkan spasi) yang kemudian akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci untuk digunakan dalam tokenisasi.

**Mengembalikan:** `tuple[str, dict[str, Any]]`

Teks yang telah disiapkan dan kwargs yang tidak digunakan.

Melakukan transformasi yang diperlukan sebelum tokenisasi.

Metode ini harus mengambil argumen dari `kwargs` dan juga mengembalikan `kwargs` yang tersisa. Kami menguji `kwargs` di akhir proses encoding untuk memastikan semua argumen telah digunakan.

#### save_vocabulary[[transformers.PythonBackend.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1362)

**Parameter:**

save_directory (`str`) : Direktori tempat menyimpan kosa kata.

filename_prefix (`str`, *opsional*) : Prefiks opsional untuk ditambahkan ke nama file yang disimpan.

**Mengembalikan:** `tuple[str, ...]`

Path ke file yang disimpan, atau tuple kosong jika tidak ada file yang disimpan.

Implementasi default untuk pola penyimpanan kosakata umum. Menyimpan self.encoder/self.vocab sebagai JSON, opsional dengan self.bpe_ranks sebagai merges. Mengembalikan tuple kosong jika tidak ada kosakata.

Override metode ini jika tokenizer Anda memerlukan logika penyimpanan khusus (misalnya, model SentencePiece, beberapa file kosakata, atau format file khusus).

#### tokenize[[transformers.PythonBackend.tokenize]]

```python
tokenize(text: str, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L625)

**Parameter:**

text : Urutan yang akan dikodekan.

- ****kwargs** : Diteruskan ke metode pra-pemrosesan `prepare_for_tokenization` yang spesifik untuk model.

**Mengembalikan:**

Daftar token.

Mengonversi string menjadi urutan token, menggunakan tokenizer.

#### truncate_sequences[[transformers.PythonBackend.truncate_sequences]]

```python
truncate_sequences(ids: list, pair_ids: list[int] | None = None, num_tokens_to_remove: int = 0, truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first', stride: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_python.py#L1231)

Memotong urutan sesuai dengan strategi yang ditentukan.

## TokenizersBackend[[transformers.TokenizersBackend]]

#### transformers.TokenizersBackend[[transformers.TokenizersBackend]]

```python
transformers.TokenizersBackend(*args, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L86)

**Parameter:**

model_max_length (`int`, *opsional*) : Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan [from_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.from_pretrained), nilai ini akan diset ke nilai yang disimpan untuk model terkait di `max_model_input_sizes` (lihat di atas). Jika tidak ada nilai yang diberikan, nilai default akan menjadi VERY_LARGE_INTEGER (`int(1e30)`).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

truncation_side (`str`, *opsional*) : Sisi tempat model harus menerapkan pemotongan. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

chat_template (`str`, *opsional*) : String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.

model_input_names (`list[string]`, *opsional*) : Daftar input yang diterima oleh forward pass model (seperti `"token_type_ids"` atau `"attention_mask"`). Nilai default diambil dari atribut kelas dengan nama yang sama.

bos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili awal dari sebuah kalimat.

eos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili akhir dari sebuah kalimat.

unk_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).

sep_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).

pad_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme perhatian atau perhitungan loss.

cls_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili kelas dari input (dipakai, misalnya, oleh BERT).

mask_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token ter-mask (digunakan oleh tujuan pra-pelatihan pemodelan bahasa ter-mask, seperti BERT). Akan diasosiasikan dengan `self.mask_token` dan `self.mask_token_id`.

extra_special_tokens (daftar `str` atau `tokenizers.AddedToken`, *opsional*) : Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token-token tersebut dilewati saat decoding dengan `skip_special_tokens` yang diset ke True. Jika token-token tersebut tidak termasuk dalam kosakata, mereka akan ditambahkan di akhir kosakata.

split_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika `<s>` adalah `bos_token`, maka `tokenizer.tokenize("<s>") = ['<s>`]. Sebaliknya, jika `split_special_tokens=True`, maka `tokenizer.tokenize("<s>")` akan menghasilkan `['<','s', '>']`.

tokenizer_object (`tokenizers.Tokenizer`) : Objek `tokenizers.Tokenizer` dari 🤗 tokenizers untuk diinstansiasi. Lihat [Menggunakan tokenizer dari 🤗 tokenizers](../fast_tokenizers) untuk informasi lebih lanjut.

tokenizer_file (`str`) : Path ke file JSON lokal yang merepresentasikan objek `tokenizers.Tokenizer` yang sebelumnya diserialisasi dari 🤗 tokenizers.

Kelas dasar untuk semua tokenizer cepat (membungkus pustaka tokenizers HuggingFace).

Mewarisi dari [PreTrainedTokenizerBase](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase).

Menangani semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, serta menambahkan token ke dalam kosakata.

Kelas ini juga berisi token yang ditambahkan secara terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece...).

Atribut kelas (ditimpa oleh kelas turunan)

- **vocab_files_names** (`dict[str, str]`) -- Kamus yang menggunakan nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
- **pretrained_vocab_files_map** (`dict[str, dict[str, str]]`) -- Kamus dari kamus, dengan kunci tingkat atas berupa nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat bawah berupa `short-cut-names` dari model pretrained, dengan nilai terkait berupa `url` ke file kosakata pretrained yang terkait.
- **model_input_names** (`list[str]`) -- Daftar input yang diharapkan pada forward pass model.
- **padding_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa `'right'` atau `'left'`.
- **truncation_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa `'right'` atau `'left'`.

#### convert_to_native_format[[transformers.TokenizersBackend.convert_to_native_format]]

```python
convert_to_native_format(trust_remote_code = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L103)

Bangun backend `tokenizers.Tokenizer` dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).

#### get_added_vocab[[transformers.TokenizersBackend.get_added_vocab]]

```python
get_added_vocab()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L740)

**Mengembalikan:** `dict[str, int]`

Token yang ditambahkan.

Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks.

#### num_special_tokens_to_add[[transformers.TokenizersBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L837)

**Parameter:**

pair (`bool`, *opsional*, defaultnya `False`) : Apakah jumlah token yang ditambahkan harus dihitung dalam kasus pasangan sekuens atau sekuens tunggal.

**Mengembalikan:** `int`

Jumlah token khusus yang ditambahkan ke dalam sekuens.

Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.

Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.

#### save_pretrained[[transformers.TokenizersBackend.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, legacy_format: bool | None = None, filename_prefix: str | None = None, push_to_hub: bool = False, save_format: str | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L559)

**Parameter:**

save_format (`str`, *opsional*) : `"mistral"` untuk menyimpan sebagai `tekken.json` asli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama dinormalisasi menjadi `tekken.json` saat disimpan, dan tokenizer yang diinstansiasi harus tetap cocok persis dengannya. `"hf"` atau `None` untuk format HuggingFace default.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke metode [push_to_hub()](/docs/transformers/main/id/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub).

**Mengembalikan:** Tuple dari `str`

File yang disimpan.

Simpan status tokenizer lengkap.

Memperluas [save_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained) dengan dukungan `save_format`, untuk tokenizer yang dikonversi dari file kosakata asli (misalnya `tekken.json` milik Mistral). Lihat metode dasar untuk `legacy_format`, `filename_prefix`, dan `push_to_hub`.

#### set_truncation_and_padding[[transformers.TokenizersBackend.set_truncation_and_padding]]

```python
set_truncation_and_padding(padding_strategy: PaddingStrategy, truncation_strategy: TruncationStrategy, max_length: int, stride: int, pad_to_multiple_of: int | None, padding_side: str | None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L896)

**Parameter:**

padding_strategy ([PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy)) : Jenis padding yang akan diterapkan pada input

truncation_strategy ([TruncationStrategy](/docs/transformers/main/id/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)) : Jenis pemotongan yang akan diterapkan pada input

max_length (`int`) : Ukuran maksimum dari sebuah sekuens.

stride (`int`) : Stride yang digunakan saat menangani overflow.

pad_to_multiple_of (`int`, *opsional*) : Jika diatur, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi `>= 7.5` (Volta).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

Definisikan strategi pemotongan (truncation) dan padding untuk fast tokenizers (yang disediakan oleh pustaka HuggingFace tokenizers) dan kembalikan pengaturan tokenizer setelahnya.

Tokenizer yang disediakan tidak memiliki strategi padding / truncation sebelum bagian yang dikelola. Jika tokenizer Anda telah menetapkan strategi padding / truncation sebelumnya, strategi tersebut akan direset menjadi tanpa padding / truncation saat keluar dari bagian yang dikelola.

#### train_new_from_iterator[[transformers.TokenizersBackend.train_new_from_iterator]]

```python
train_new_from_iterator(text_iterator, vocab_size, length = None, new_special_tokens = None, special_tokens_map = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L1192)

**Parameter:**

text_iterator (generator dari `list[str]`) : Korpus pelatihan. Harus berupa generator dari batch teks, misalnya daftar dari daftar teks jika semuanya ada di memori.

vocab_size (`int`) : Ukuran kosakata yang Anda inginkan untuk tokenizer Anda.

length (`int`, *opsional*) : Jumlah total urutan dalam iterator. Ini digunakan untuk memberikan pelacakan kemajuan yang bermakna

new_special_tokens (daftar `str` atau `AddedToken`, *opsional*) : Daftar token khusus baru untuk ditambahkan ke tokenizer yang sedang Anda latih.

special_tokens_map (`dict[str, str]`, *opsional*) : Jika Anda ingin mengganti nama beberapa token khusus yang digunakan tokenizer ini, berikan pemetaan dari nama token khusus lama ke nama token khusus baru melalui argumen ini.

kwargs (`dict[str, Any]`, *opsional*) : Argumen kata kunci tambahan yang diteruskan ke trainer dari pustaka 🤗 Tokenizers.

**Mengembalikan:** [PreTrainedTokenizerFast](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend)

Tokenizer baru dengan tipe yang sama dengan tokenizer asli, dilatih pada `text_iterator`.

Melatih tokenizer pada korpus baru dengan nilai default yang sama (dalam hal token khusus atau pipeline tokenisasi) seperti tokenizer saat ini.

#### update_post_processor[[transformers.TokenizersBackend.update_post_processor]]

```python
update_post_processor()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L627)

Memperbarui post processor dasar dengan `bos_token` dan `eos_token` saat ini.

## SentencePieceBackend[[transformers.SentencePieceBackend]]

#### transformers.SentencePieceBackend[[transformers.SentencePieceBackend]]

```python
transformers.SentencePieceBackend(**kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L45)

**Parameter:**

model_max_length (`int`, *opsional*) : Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan [from_pretrained()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.from_pretrained), nilai ini akan diset ke nilai yang disimpan untuk model terkait di `max_model_input_sizes` (lihat di atas). Jika tidak ada nilai yang diberikan, nilai default akan menjadi VERY_LARGE_INTEGER (`int(1e30)`).

padding_side (`str`, *opsional*) : Sisi tempat model harus menerapkan padding. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

truncation_side (`str`, *opsional*) : Sisi tempat model harus menerapkan pemotongan. Harus dipilih dari ['right', 'left']. Nilai default diambil dari atribut kelas dengan nama yang sama.

chat_template (`str`, *opsional*) : String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.

model_input_names (`list[string]`, *opsional*) : Daftar input yang diterima oleh forward pass model (seperti `"token_type_ids"` atau `"attention_mask"`). Nilai default diambil dari atribut kelas dengan nama yang sama.

bos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili awal dari sebuah kalimat.

eos_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili akhir dari sebuah kalimat.

unk_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).

sep_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).

pad_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme perhatian atau perhitungan loss.

cls_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili kelas dari input (dipakai, misalnya, oleh BERT).

mask_token (`str` atau `tokenizers.AddedToken`, *opsional*) : Token khusus yang mewakili token ter-mask (digunakan oleh tujuan pra-pelatihan pemodelan bahasa ter-mask, seperti BERT). Akan diasosiasikan dengan `self.mask_token` dan `self.mask_token_id`.

extra_special_tokens (daftar `str` atau `tokenizers.AddedToken`, *opsional*) : Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token-token tersebut dilewati saat decoding dengan `skip_special_tokens` yang diset ke True. Jika token-token tersebut tidak termasuk dalam kosakata, mereka akan ditambahkan di akhir kosakata.

split_special_tokens (`bool`, *opsional*, defaultnya `False`) : Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika `<s>` adalah `bos_token`, maka `tokenizer.tokenize("<s>") = ['<s>`]. Sebaliknya, jika `split_special_tokens=True`, maka `tokenizer.tokenize("<s>")` akan menghasilkan `['<','s', '>']`.

Kelas dasar untuk tokenizer berbasis SentencePiece yang dimuat dari file sentencepiece.model.

Mewarisi dari [PreTrainedTokenizer](/docs/transformers/main/id/main_classes/tokenizer#transformers.PythonBackend).

Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, dan menambahkan token ke kosakata.

Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece...).

Atribut kelas (ditimpa oleh kelas turunan)

- **vocab_files_names** (`dict[str, str]`) -- Kamus yang menggunakan nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
- **pretrained_vocab_files_map** (`dict[str, dict[str, str]]`) -- Kamus dari kamus, dengan kunci tingkat atas berupa nama kata kunci `__init__` dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat bawah berupa `short-cut-names` dari model pretrained, dengan nilai terkait berupa `url` ke file kosakata pretrained yang terkait.
- **model_input_names** (`list[str]`) -- Daftar input yang diharapkan pada forward pass model.
- **padding_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa `'right'` atau `'left'`.
- **truncation_side** (`str`) -- Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa `'right'` atau `'left'`.

#### convert_tokens_to_string[[transformers.SentencePieceBackend.convert_tokens_to_string]]

```python
convert_tokens_to_string(tokens: list)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L232)

Mengonversi urutan token (string) dalam satu string.

#### get_vocab[[transformers.SentencePieceBackend.get_vocab]]

```python
get_vocab()
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L104)

Mengembalikan vocab sebagai dict

#### save_vocabulary[[transformers.SentencePieceBackend.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L237)

**Parameter:**

save_directory (`str`) : Direktori tempat menyimpan kosa kata.

filename_prefix (`str`, *opsional*) : Prefiks opsional untuk ditambahkan ke nama file yang disimpan.

**Mengembalikan:** `tuple(str)`

Path ke file yang disimpan.

Simpan kosakata sentencepiece (salin file asli) ke sebuah direktori.

## BatchEncoding[[transformers.BatchEncoding]]

#### transformers.BatchEncoding[[transformers.BatchEncoding]]

```python
transformers.BatchEncoding(data: dict[str, Any] | None = None, encoding: EncodingFast | Sequence[EncodingFast] | None = None, tensor_type: None | str | TensorType = None, prepend_batch_axis: bool = False, n_sequences: int | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L201)

**Parameter:**

data (`dict`, *opsional*) : Kamus berisi daftar/array/tensor yang dikembalikan oleh metode `__call__`/`encode_plus`/`batch_encode_plus` ('input_ids', 'attention_mask', dll.).

encoding (`tokenizers.Encoding` atau `Sequence[tokenizers.Encoding]`, *opsional*) : Jika tokenizer adalah fast tokenizer yang menghasilkan informasi tambahan seperti pemetaan dari ruang kata/karakter ke ruang token, instance `tokenizers.Encoding` atau daftar instance (untuk batch) menyimpan informasi ini.

tensor_type (`Union[None, str, TensorType]`, *opsional*) : Anda dapat memberikan tensor_type di sini untuk mengonversi daftar integer menjadi Tensor PyTorch/Numpy saat inisialisasi.

prepend_batch_axis (`bool`, *opsional*, defaultnya `False`) : Apakah akan menambahkan sumbu batch saat mengonversi ke tensor (lihat `tensor_type` di atas). Perhatikan bahwa parameter ini berpengaruh jika parameter `tensor_type` disetel, *tidak berpengaruh jika tidak*.

n_sequences (`Optional[int]`, *opsional*) : Jumlah urutan input yang direpresentasikan oleh setiap encoding (`None` untuk tidak diketahui, `1` untuk satu urutan, dan `2` untuk sepasang urutan).

Menyimpan output dari metode [__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__), `~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus` dan `~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus` (token, attention_masks, dll).

Kelas ini diturunkan dari kamus python dan dapat digunakan sebagai kamus. Selain itu, kelas ini menyediakan metode utilitas untuk memetakan dari ruang kata/karakter ke ruang token.

#### char_to_token[[transformers.BatchEncoding.char_to_token]]

```python
char_to_token(batch_or_char_index: int, char_index: int | None = None, sequence_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L547)

**Parameter:**

batch_or_char_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks karakter dalam urutan

char_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_char_index*, ini dapat berupa indeks karakter dalam urutan.

sequence_index (`int`, *opsional*, default 0) : Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks karakter yang diberikan.

**Mengembalikan:** `int`

Indeks token, atau None jika indeks karakter merujuk pada token yang hanya berisi spasi dan spasi dipangkas dengan `trim_offsets=True`.

Dapatkan indeks token dalam output terenkripsi yang mencakup karakter dalam string asli untuk urutan batch.

Dapat dipanggil sebagai:

- `self.char_to_token(char_index)` jika ukuran batch adalah 1
- `self.char_to_token(batch_index, char_index)` jika ukuran batch lebih besar atau sama dengan 1

Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.

#### char_to_word[[transformers.BatchEncoding.char_to_word]]

```python
char_to_word(batch_or_char_index: int, char_index: int | None = None, sequence_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L632)

**Parameter:**

batch_or_char_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks karakter dalam string asli.

char_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_char_index*, ini dapat berupa indeks karakter dalam string asli.

sequence_index (`int`, *opsional*, default 0) : Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks karakter yang diberikan.

**Mengembalikan:** `int`

Indeks kata yang mengandung karakter tersebut.

Dapatkan kata dalam string asli yang sesuai dengan karakter dalam string asli dari sebuah sekuens dalam batch.

Dapat dipanggil sebagai:

- `self.char_to_word(char_index)` jika ukuran batch adalah 1
- `self.char_to_word(batch_index, char_index)` jika ukuran batch lebih dari 1

Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.

#### convert_to_tensors[[transformers.BatchEncoding.convert_to_tensors]]

```python
convert_to_tensors(tensor_type: str | TensorType | None = None, prepend_batch_axis: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L671)

**Parameter:**

tensor_type (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jenis tensor yang akan digunakan. Jika `str`, harus salah satu nilai dari enum [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType). Jika `None`, tidak ada modifikasi yang dilakukan.

prepend_batch_axis (`bool`, *opsional*, defaultnya `False`) : Apakah dimensi batch akan ditambahkan selama konversi.

Konversi konten internal menjadi tensor.

#### sequence_ids[[transformers.BatchEncoding.sequence_ids]]

```python
sequence_ids(batch_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L341)

**Parameter:**

batch_index (`int`, *opsional*, default 0) : Indeks untuk diakses dalam batch.

**Mengembalikan:** `list[Optional[int]]`

Daftar yang menunjukkan id urutan yang sesuai untuk setiap token. Token khusus yang ditambahkan oleh tokenizer dipetakan ke `None` dan token lainnya dipetakan ke indeks urutan yang sesuai.

Kembalikan daftar yang memetakan token ke id kalimat aslinya:

- `None` untuk token khusus yang ditambahkan di sekitar atau di antara urutan,
- `0` untuk token yang sesuai dengan kata dalam urutan pertama,
- `1` untuk token yang sesuai dengan kata dalam urutan kedua ketika sepasang urutan dikodekan secara bersama.

#### ke[[transformers.BatchEncoding.to]]

```python
to(device: str | torch.device | int, non_blocking: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L765)

**Parameter:**

device (`str` atau `torch.device` atau `int`) : Perangkat untuk menempatkan tensor.

non_blocking (`bool`) : Apakah akan melakukan salinan secara asinkron.

**Mengembalikan:** [BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding)

Instans yang sama setelah dimodifikasi.

Kirim semua nilai ke perangkat dengan memanggil `v.to(device, non_blocking=non_blocking)` (hanya PyTorch).

#### token_to_chars[[transformers.BatchEncoding.token_to_chars]]

```python
token_to_chars(batch_or_token_index: int, token_index: int | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L508)

**Parameter:**

batch_or_token_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut.

token_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_token_index*, ini dapat berupa indeks token atau token-token dalam urutan.

**Mengembalikan:** [CharSpan](/docs/transformers/main/id/internal/tokenization_utils#transformers.CharSpan)

Rentang karakter dalam string asli, atau None, jika token (misalnya , ) tidak sesuai dengan karakter apa pun dalam string asal.

Dapatkan rentang karakter yang sesuai dengan token terenkod dalam urutan batch.

Rentang karakter dikembalikan sebagai [CharSpan](/docs/transformers/main/id/internal/tokenization_utils#transformers.CharSpan) dengan:

- **start** -- Indeks karakter pertama dalam string asli yang terkait dengan token.
- **end** -- Indeks karakter setelah karakter terakhir dalam string asli yang terkait dengan token.

Dapat dipanggil sebagai:

- `self.token_to_chars(token_index)` jika ukuran batch adalah 1
- `self.token_to_chars(batch_index, token_index)` jika ukuran batch lebih besar atau sama dengan 1

#### token_to_sequence[[transformers.BatchEncoding.token_to_sequence]]

```python
token_to_sequence(batch_or_token_index: int, token_index: int | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L378)

**Parameter:**

batch_or_token_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut.

token_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_token_index*, ini dapat berupa indeks token dalam urutan.

**Mengembalikan:** `int`

Indeks dari urutan input yang berisi token (`0` untuk urutan pertama atau `1` untuk urutan kedua dari sebuah pasangan).

Dapatkan indeks dari urutan yang direpresentasikan oleh token yang diberikan. Dalam kasus penggunaan umum, metode ini mengembalikan `0` untuk satu urutan atau urutan pertama dari sepasang, dan `1` untuk urutan kedua dari sepasang

Dapat dipanggil sebagai:

- `self.token_to_sequence(token_index)` jika ukuran batch adalah 1
- `self.token_to_sequence(batch_index, token_index)` jika ukuran batch lebih dari 1

Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu, kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.

#### token_to_word[[transformers.BatchEncoding.token_to_word]]

```python
token_to_word(batch_or_token_index: int, token_index: int | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L417)

**Parameter:**

batch_or_token_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut.

token_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_token_index*, ini dapat berupa indeks token dalam urutan.

**Mengembalikan:** `int`

Indeks kata dalam urutan input.

Dapatkan indeks kata yang sesuai (yaitu yang membentuk) dengan token terenkod dalam urutan batch.

Dapat dipanggil sebagai:

- `self.token_to_word(token_index)` jika ukuran batch adalah 1
- `self.token_to_word(batch_index, token_index)` jika ukuran batch lebih dari 1

Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu, kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.

#### tokens[[transformers.BatchEncoding.tokens]]

```python
tokens(batch_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L326)

**Parameter:**

batch_index (`int`, *opsional*, default 0) : Indeks untuk diakses dalam batch.

**Mengembalikan:** `list[str]`

Daftar token pada indeks tersebut.

Kembalikan daftar token (sub-bagian dari string input setelah pemecahan kata/subkata dan sebelum konversi ke indeks integer) pada indeks batch tertentu (hanya berfungsi untuk output tokenizer cepat).

#### word_ids[[transformers.BatchEncoding.word_ids]]

```python
word_ids(batch_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L362)

**Parameter:**

batch_index (`int`, *opsional*, default 0) : Indeks untuk diakses dalam batch.

**Mengembalikan:** `list[Optional[int]]`

Daftar yang menunjukkan kata yang sesuai dengan setiap token. Token khusus yang ditambahkan oleh tokenizer dipetakan ke `None` dan token lainnya dipetakan ke indeks kata yang sesuai (beberapa token akan dipetakan ke indeks kata yang sama jika mereka merupakan bagian dari kata tersebut).

Kembalikan daftar yang memetakan token ke kata aslinya dalam kalimat awal untuk fast tokenizer.

#### word_to_chars[[transformers.BatchEncoding.word_to_chars]]

```python
word_to_chars(batch_or_word_index: int, word_index: int | None = None, sequence_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L587)

**Parameter:**

batch_or_word_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari kata dalam urutan tersebut

word_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_word_index*, ini dapat berupa indeks kata dalam urutan.

sequence_index (`int`, *opsional*, default 0) : Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks kata yang diberikan.

**Mengembalikan:** `CharSpan`

Rentang karakter terkait dalam string. CharSpan adalah NamedTuple dengan:

- start: indeks karakter pertama yang terkait dengan kata dalam string asli
- end: indeks karakter setelah karakter terakhir yang terkait dengan kata dalam string asli

Dapatkan rentang karakter dalam string asli yang sesuai dengan kata tertentu dalam urutan batch.

Span karakter dikembalikan sebagai CharSpan NamedTuple dengan:

- start: indeks karakter pertama dalam string asli
- end: indeks karakter setelah karakter terakhir dalam string asli

Dapat dipanggil sebagai:

- `self.word_to_chars(word_index)` jika ukuran batch adalah 1
- `self.word_to_chars(batch_index, word_index)` jika ukuran batch lebih besar atau sama dengan 1

#### word_to_tokens[[transformers.BatchEncoding.word_to_tokens]]

```python
word_to_tokens(batch_or_word_index: int, word_index: int | None = None, sequence_index: int = 0)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L455)

**Parameter:**

batch_or_word_index (`int`) : Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari kata dalam urutan tersebut.

word_index (`int`, *opsional*) : Jika indeks batch diberikan dalam *batch_or_word_index*, ini dapat berupa indeks kata dalam urutan.

sequence_index (`int`, *opsional*, default 0) : Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks kata yang diberikan.

**Mengembalikan:** ([TokenSpan](/docs/transformers/main/id/internal/tokenization_utils#transformers.TokenSpan), *opsional*)

Rentang token dalam urutan yang dikodekan. Mengembalikan `None` jika tidak ada token yang sesuai dengan kata tersebut. Hal ini dapat terjadi terutama ketika token tersebut adalah token khusus yang digunakan untuk memformat tokenisasi. Misalnya, ketika kami menambahkan token kelas di awal tokenisasi.

Dapatkan rentang token terenkod yang sesuai dengan sebuah kata dalam urutan dari batch.

Token spans dikembalikan sebagai [TokenSpan](/docs/transformers/main/id/internal/tokenization_utils#transformers.TokenSpan) dengan:

- **start** -- Indeks token pertama.
- **end** -- Indeks token setelah token terakhir.

Dapat dipanggil sebagai:

- `self.word_to_tokens(word_index, sequence_index: int = 0)` jika ukuran batch adalah 1
- `self.word_to_tokens(batch_index, word_index, sequence_index: int = 0)` jika ukuran batch lebih besar atau sama dengan 1

Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.

