| # Twitter-scratch-roBERTa-base |
|
|
| This is a RoBERTa-base model trained from scratch on ~58M tweets, as described and evaluated in the [_TweetEval_ benchmark (Findings of EMNLP 2020)](https://arxiv.org/pdf/2010.12421.pdf). |
| To evaluate this and other LMs on Twitter-specific data, please refer to the [Tweeteval official repository](https://github.com/cardiffnlp/tweeteval). |
|
|
| ## Preprocess Text |
| Replace usernames and links for placeholders: "@user" and "http". |
| ```python |
| def preprocess(text): |
| new_text = [] |
| for t in text.split(" "): |
| t = '@user' if t.startswith('@') and len(t) > 1 else t |
| t = 'http' if t.startswith('http') else t |
| new_text.append(t) |
| return " ".join(new_text) |
| ``` |
|
|
| ## Example Masked Language Model |
|
|
| ```python |
| from transformers import pipeline, AutoTokenizer |
| import numpy as np |
| |
| MODEL = "cardiffnlp/twitter-scratch-roberta-base" |
| fill_mask = pipeline("fill-mask", model=MODEL, tokenizer=MODEL) |
| tokenizer = AutoTokenizer.from_pretrained(MODEL) |
| |
| def print_candidates(): |
| for i in range(5): |
| token = tokenizer.decode(candidates[i]['token']) |
| score = np.round(candidates[i]['score'], 4) |
| print(f"{i+1}) {token} {score}") |
| |
| texts = [ |
| "I am so <mask> π", |
| "I am so <mask> π’" |
| ] |
| for text in texts: |
| t = preprocess(text) |
| print(f"{'-'*30}\n{t}") |
| candidates = fill_mask(t) |
| print_candidates() |
| ``` |
|
|
| Output: |
|
|
| ``` |
| ------------------------------ |
| I am so <mask> π |
| 1) happy 0.530 |
| 2) grateful 0.083 |
| 3) excited 0.078 |
| 4) thankful 0.053 |
| 5) blessed 0.041 |
| ------------------------------ |
| I am so <mask> π’ |
| 1) sad 0.439 |
| 2) sorry 0.088 |
| 3) tired 0.045 |
| 4) hurt 0.026 |
| 5) upset 0.026 |
| ``` |
| |
| |
| ### BibTeX entry and citation info |
| |
| Please cite the [reference paper](https://aclanthology.org/2020.findings-emnlp.148/) if you use this model. |
| |
| ```bibtex |
| @inproceedings{barbieri-etal-2020-tweeteval, |
| title = "{T}weet{E}val: Unified Benchmark and Comparative Evaluation for Tweet Classification", |
| author = "Barbieri, Francesco and |
| Camacho-Collados, Jose and |
| Espinosa Anke, Luis and |
| Neves, Leonardo", |
| booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2020", |
| month = nov, |
| year = "2020", |
| address = "Online", |
| publisher = "Association for Computational Linguistics", |
| url = "https://aclanthology.org/2020.findings-emnlp.148", |
| doi = "10.18653/v1/2020.findings-emnlp.148", |
| pages = "1644--1650" |
| } |
| ``` |