# BERTweet

## BERTweet

[BERTweet](https://huggingface.co/papers/2005.10200)은 [BERT-base](./bert)와 동일한 아키텍처를 공유하지만, 영어 트윗 데이터로 [RoBERTa](./roberta)와 유사하게 사전 학습되었습니다. 품사 태깅, 개체명 인식, 텍스트 분류와 같은 트윗 관련 작업에서 매우 뛰어난 성능을 보입니다.

모든 원본 BERTweet 체크포인트는 [VinAI Research](https://huggingface.co/vinai?search_models=BERTweet) 조직에서 찾을 수 있습니다.

> [!TIP]
> BERTweet을 다양한 언어 작업에 적용하는 방법에 대한 추가 예제는 [BERT](./bert) 문서를 참조하세요.

아래 예제는 [Pipeline](/docs/transformers/main/ko/main_classes/pipelines#transformers.Pipeline), [AutoModel](/docs/transformers/main/ko/model_doc/auto#transformers.AutoModel), 그리고 명령줄을 사용하여 `<mask>` 토큰을 예측하는 방법을 보여줍니다.

```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}")
```

## The input is a single word "Notes".

참고

- 트윗 전용 토큰인 해시태그(#), 멘션(@), 이모지, 일반적인 약어에 맞게 커스텀 어휘가 사전 로드되어 있으므로 [AutoTokenizer](/docs/transformers/main/ko/model_doc/auto#transformers.AutoTokenizer) 또는 [BertweetTokenizer](/docs/transformers/main/ko/model_doc/bertweet#transformers.BertweetTokenizer)를 사용하세요. [emoji](https://pypi.org/project/emoji/) 라이브러리도 설치해야 합니다.
- BERT는 절대 위치 임베딩을 사용하므로 입력은 오른쪽으로 패딩(`padding="max_length"`)해야 합니다.

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

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

**매개변수:**

vocab_file (`str`) : 어휘 파일 경로.

merges_file (`str`) : merges 파일 경로.

normalization (`bool`, *선택 사항*, 기본값 `False`) : 정규화 전처리를 적용할지 여부.

bos_token (`str`, *선택 사항*, 기본값 `"<s>"`) : 사전 학습 시 사용된 시퀀스 시작 토큰입니다. 시퀀스 분류기 토큰으로 사용할 수 있습니다. 특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 시작에 사용되는 토큰은 이 토큰이 아닙니다. 사용되는 토큰은 `cls_token`입니다.

eos_token (`str`, *선택 사항*, 기본값 `"</s>"`) : 시퀀스 종료 토큰. 특수 토큰을 사용하여 시퀀스를 구성할 때, 시퀀스 종료에 사용되는 토큰은 이 토큰이 아닙니다. 사용되는 토큰은 `sep_token`입니다.

sep_token (`str`, *선택 사항*, 기본값 `"</s>"`) : 여러 시퀀스로 시퀀스를 구성할 때 사용되는 구분자 토큰입니다. 예를 들어 시퀀스 분류를 위한 두 시퀀스나 질의응답을 위한 텍스트와 질문 등에 사용됩니다. 특수 토큰으로 구성된 시퀀스의 마지막 토큰으로도 사용됩니다.

cls_token (`str`, *선택 사항*, 기본값 `"<s>"`) : 시퀀스 분류(토큰별 분류가 아닌 전체 시퀀스 분류) 수행 시 사용되는 분류기 토큰입니다. 특수 토큰을 사용하여 시퀀스를 구성할 때 시퀀스의 첫 번째 토큰입니다.

unk_token (`str`, *선택*, 기본값 `"<unk>"`) : 알 수 없는 토큰. 어휘에 없는 토큰은 ID로 변환할 수 없으므로 이 토큰으로 설정됩니다.

pad_token (`str`, *선택 사항*, 기본값 `"<pad>"`) : 패딩에 사용되는 토큰입니다. 예를 들어 길이가 다른 시퀀스를 배치할 때 사용됩니다.

mask_token (`str`, *선택 사항*, 기본값 `"<mask>"`) : 값을 마스킹하는 데 사용되는 토큰입니다. 이는 masked language modeling으로 이 모델을 학습할 때 사용되는 토큰입니다. 모델이 예측을 시도하는 대상이 되는 토큰입니다.

Byte-Pair-Encoding을 사용하여 BERTweet 토크나이저를 생성합니다.

이 토크나이저는 대부분의 주요 메서드를 포함하는 [PreTrainedTokenizer](/docs/transformers/main/ko/main_classes/tokenizer#transformers.PythonBackend)를 상속합니다. 해당 메서드에 대한 자세한 정보는 이 상위 클래스를 참고하세요.

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

```python
add_from_file(f)
```

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

…

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

```python
convert_tokens_to_string(tokens)
```

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

단일 문자열 내 토큰(문자열) 시퀀스를 변환합니다.

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

```python
normalizeToken(token)
```

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

Tweet의 토큰 정규화

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

```python
normalizeTweet(tweet)
```

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

Normalize a raw Tweet

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

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

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

어휘 및 병합 파일을 디렉토리에 저장합니다.

