
# <a name="introduction"></a> BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of [BERTweet](https://huggingface.co/docs/transformers/model_doc/bertweet) we trained our model from scratch following [RoBERTa](https://huggingface.co/docs/transformers/model_doc/roberta) pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets.

## Usage

### Normalized Inputs

```python
import torch
from transformers import AutoModel, AutoTokenizer 

model = AutoModel.from_pretrained('melll-uff/bertweetbr')
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=False)

# INPUT TWEETS ALREADY NORMALIZED!
inputs = [
    "Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim :nota_musical:",
    "Que jogo ontem @USER :mãos_juntas:",
    "Demojizer para Python é :polegar_para_cima: e está disponível em HTTPURL"]

encoded_inputs = tokenizer(inputs, return_tensors="pt", padding=True)

with torch.no_grad():
    last_hidden_states = model(**encoded_inputs)

# CLS Token of last hidden states. Shape: (number of input sentences, hidden sizeof the model)
last_hidden_states[0][:,0,:]

tensor([[-0.1430, -0.1325,  0.1595,  ..., -0.0802, -0.0153, -0.1358],
        [-0.0108,  0.1415,  0.0695,  ...,  0.1420,  0.1153, -0.0176],
        [-0.1854,  0.1866,  0.3163,  ..., -0.2117,  0.2123, -0.1907]])
```

 ### Normalize raw input Tweets

 ```python
from emoji import demojize
import torch
from transformers import AutoModel, AutoTokenizer 

model = AutoModel.from_pretrained('melll-uff/bertweetbr')
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=True)

inputs = [
    "Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim 🎵",
    "Que jogo ontem @cristiano 🙏",
    "Demojizer para Python é 👍 e está disponível em https://pypi.org/project/emoji/"]

tokenizer.demojizer = lambda x: demojize(x, language='pt')

[tokenizer.normalizeTweet(s) for s in inputs]

# Tokenizer first normalizes tweet sentences
['Procuro um amor , que seja bom pra mim ... vou procurar , eu vou até o fim :nota_musical:',
 'Que jogo ontem @USER :mãos_juntas:',
 'Demojizer para Python é :polegar_para_cima: e está disponível em HTTPURL']

encoded_inputs = tokenizer(inputs, return_tensors="pt", padding=True)

with torch.no_grad():
    last_hidden_states = model(**encoded_inputs)

# CLS Token of last hidden states. Shape: (number of input sentences, hidden sizeof the model)
last_hidden_states[0][:,0,:]

tensor([[-0.1430, -0.1325,  0.1595,  ..., -0.0802, -0.0153, -0.1358],
        [-0.0108,  0.1415,  0.0695,  ...,  0.1420,  0.1153, -0.0176],
        [-0.1854,  0.1866,  0.3163,  ..., -0.2117,  0.2123, -0.1907]])
```

 ### Mask Filling with Pipeline

 ```python
from transformers import pipeline

model_name = 'melll-uff/bertweetbr'
tokenizer = AutoTokenizer.from_pretrained('melll-uff/bertweetbr', normalization=False)

filler_mask = pipeline("fill-mask", model=model_name, tokenizer=tokenizer)
filler_mask("Rio é a <mask> cidade do Brasil.", top_k=5)

# Output
[{'sequence': 'Rio é a melhor cidade do Brasil.',
  'score': 0.9871652126312256,
  'token': 120,
  'token_str': 'm e l h o r'},
 {'sequence': 'Rio é a pior cidade do Brasil.',
  'score': 0.005050931591540575,
  'token': 316,
  'token_str': 'p i o r'},
 {'sequence': 'Rio é a maior cidade do Brasil.',
  'score': 0.004420778248459101,
  'token': 389,
  'token_str': 'm a i o r'},
 {'sequence': 'Rio é a minha cidade do Brasil.',
  'score': 0.0021856199018657207,
  'token': 38,
  'token_str': 'm i n h a'},
 {'sequence': 'Rio é a segunda cidade do Brasil.',
  'score': 0.0002110043278662488,
  'token': 667,
  'token_str': 's e g u n d a'}]
```
{"language": "pt", "license": "apache-2.0"}
transformers pytorch roberta fill-mask pt license:apache-2.0 autotrain_compatible endpoints_compatible region:us
TAGS
#transformers #pytorch #roberta #fill-mask #pt #license-apache-2.0 #autotrain_compatible #endpoints_compatible #region-us 


# <a name="introduction"></a> BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of BERTweet we trained our model from scratch following RoBERTa pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets.

## Usage

### Normalized Inputs



 ### Normalize raw input Tweets

 

 ### Mask Filling with Pipeline

 
# <a name="introduction"></a> BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of BERTweet we trained our model from scratch following RoBERTa pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets. ## Usage ### Normalized Inputs



 ### Normalize raw input Tweets

 

 ### Mask Filling with Pipeline
TAGS
#transformers #pytorch #roberta #fill-mask #pt #license-apache-2.0 #autotrain_compatible #endpoints_compatible #region-us 
 # <a name="introduction"></a> BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of BERTweet we trained our model from scratch following RoBERTa pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets. ## Usage ### Normalized Inputs



 ### Normalize raw input Tweets

 

 ### Mask Filling with Pipeline
passage: TAGS
#transformers #pytorch #roberta #fill-mask #pt #license-apache-2.0 #autotrain_compatible #endpoints_compatible #region-us 
# <a name="introduction"></a> BERTweet.BR: A Pre-Trained Language Model for Tweets in Portuguese

Having the same architecture of BERTweet we trained our model from scratch following RoBERTa pre-training procedure on a corpus of approximately 9GB containing 100M Portuguese Tweets.## Usage### Normalized Inputs



 ### Normalize raw input Tweets

 

 ### Mask Filling with Pipeline