# BERTweet

## BERTweet

[BERTweet](https://huggingface.co/papers/2005.10200) memiliki arsitektur yang sama dengan [BERT-base](./bert), tetapi dipretrain seperti [RoBERTa](./roberta) pada Tweet berbahasa Inggris. Model ini menunjukkan kinerja yang sangat baik pada tugas-tugas terkait Tweet seperti part-of-speech tagging, named entity recognition, dan klasifikasi teks.

Anda dapat menemukan semua checkpoint BERTweet asli di bawah organisasi [VinAI Research](https://huggingface.co/vinai?search_models=BERTweet).

> [!TIP]
> Lihat dokumentasi [BERT](./bert) untuk contoh lebih lanjut tentang cara menerapkan BERTweet ke tugas bahasa yang berbeda.

Contoh di bawah ini menunjukkan cara memprediksi token `<mask>` dengan [Pipeline](/docs/transformers/main/id/main_classes/pipelines#transformers.Pipeline), [AutoModel](/docs/transformers/main/id/model_doc/auto#transformers.AutoModel), dan dari baris perintah.

```python
from transformers import pipeline

pipeline = pipeline(
    task="fill-mask",
    model="vinai/bertweet-base",
    device=0
)
pipeline("Plants create <mask> through a process known as photosynthesis.")
```

```python
import torch

from transformers import AutoModelForMaskedLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
   "vinai/bertweet-base",
)
model = AutoModelForMaskedLM.from_pretrained(
    "vinai/bertweet-base",
    device_map="auto"
)
inputs = tokenizer("Plants create <mask> through a process known as photosynthesis.", return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)
    predictions = outputs.logits

masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)

print(f"The predicted token is: {predicted_token}")
```

## Catatan

- Gunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer) atau [BertweetTokenizer](/docs/transformers/main/id/model_doc/bertweet#transformers.BertweetTokenizer) karena sudah dimuat dengan kosakata khusus yang disesuaikan untuk token spesifik tweet seperti hashtag (#), mention (@), emoji, dan singkatan umum. Pastikan juga untuk menginstal pustaka [emoji](https://pypi.org/project/emoji/).
- Input harus di-*pad* di sisi kanan (`padding="max_length"`) karena BERT menggunakan *embedding* posisi absolut.

## BertweetTokenizer[[transformers.BertweetTokenizer]]

#### transformers.BertweetTokenizer[[transformers.BertweetTokenizer]]

```python
transformers.BertweetTokenizer(vocab_file, merges_file, normalization = False, bos_token = '<s>', eos_token = '</s>', sep_token = '</s>', cls_token = '<s>', unk_token = '<unk>', pad_token = '<pad>', mask_token = '<mask>', **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L51)

**Parameter:**

vocab_file (`str`) : Path ke file kosakata.

merges_file (`str`) : Path ke file merges.

normalization (`bool`, *opsional*, defaultnya `False`) : Apakah akan menerapkan prapemrosesan normalisasi atau tidak.

bos_token (`str`, *opsional*, defaultnya `"<s>"`) : Token awal urutan yang digunakan selama pra-pelatihan. Dapat digunakan sebagai token klasifikator urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk awal urutan. Token yang digunakan adalah `cls_token`.

eos_token (`str`, *opsional*, defaultnya `"</s>"`) : Token akhir urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk akhir urutan. Token yang digunakan adalah `sep_token`.

sep_token (`str`, *opsional*, defaultnya `"</s>"`) : Token pemisah, yang digunakan saat membangun urutan dari beberapa urutan, misalnya dua urutan untuk klasifikasi urutan atau untuk teks dan pertanyaan untuk penjawaban pertanyaan. Token ini juga digunakan sebagai token terakhir dari urutan yang dibangun dengan token khusus.

cls_token (`str`, *opsional*, defaultnya `"<s>"`) : Token klasifikator yang digunakan saat melakukan klasifikasi urutan (klasifikasi seluruh urutan, bukan klasifikasi per-token). Ini adalah token pertama dari urutan saat dibangun dengan token khusus.

unk_token (`str`, *opsional*, defaultnya `"<unk>"`) : Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini.

pad_token (`str`, *opsional*, defaultnya `"<pad>"`) : Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda.

mask_token (`str`, *opsional*, defaultnya `"<mask>"`) : Token yang digunakan untuk memask nilai. Ini adalah token yang digunakan saat melatih model ini dengan pemodelan bahasa ter-mask. Ini adalah token yang akan coba diprediksi oleh model.

Membangun tokenizer BERTweet, menggunakan Byte-Pair-Encoding.

Tokenizer ini mewarisi dari [PreTrainedTokenizer](/docs/transformers/main/id/main_classes/tokenizer#transformers.PythonBackend) yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

#### add_from_file[[transformers.BertweetTokenizer.add_from_file]]

```python
add_from_file(f)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L332)

Memuat kamus yang sudah ada dari file teks dan menambahkan simbolnya ke instance ini.

#### convert_tokens_to_string[[transformers.BertweetTokenizer.convert_tokens_to_string]]

```python
convert_tokens_to_string(tokens)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L291)

Mengonversi urutan token (string) dalam satu string.

#### normalizeToken[[transformers.BertweetTokenizer.normalizeToken]]

```python
normalizeToken(token)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L264)

Normalisasi token dalam Tweet

#### normalizeTweet[[transformers.BertweetTokenizer.normalizeTweet]]

```python
normalizeTweet(tweet)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L230)

Normalisasi Tweet mentah

#### save_vocabulary[[transformers.BertweetTokenizer.save_vocabulary]]

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

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/bertweet/tokenization_bertweet.py#L302)

Simpan file kosa kata dan penggabungan ke sebuah direktori.

