BERT pre-entrenado en Twitter sobre las Elecciones de EE.UU. 2020 para la Detección de Posturas hacia Joe Biden (f-BERT)
Pesos pre-entrenados para f-BERT en el Modelo de Lenguaje Mejorado con Conocimiento para la Detección de Posturas, NAACL 2021. Este modelo está pre-entrenado en más de 5 millones de tweets en inglés sobre las Elecciones Presidenciales de EE.UU. 2020. Luego, se ajusta utilizando nuestros datos etiquetados por postura para la detección de posturas hacia Joe Biden. El modelo está inicializado con BERT-base y entrenado con el objetivo normal de MLM con una capa de clasificación ajustada para la detección de posturas hacia Joe Biden.
Como usar
Este modelo de lenguaje pre-entrenado está ajustado a la tarea de detección de posturas específicamente para Joe Biden. Por favor, consulte el repositorio oficial para más detalles.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import numpy as np
# elegir GPU si está disponible
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# seleccionar la ruta del modelo aquí
pretrained_LM_path = "kornosk/bert-election2020-twitter-stance-biden"
# cargar el modelo
tokenizer = AutoTokenizer.from_pretrained(pretrained_LM_path)
model = AutoModelForSequenceClassification.from_pretrained(pretrained_LM_path)
id2label = {
0: "AGAINST",
1: "FAVOR",
2: "NONE"
}
##### Predicción Neutral #####
sentence = "Hello World."
inputs = tokenizer(sentence.lower(), return_tensors="pt")
outputs = model(**inputs)
predicted_probability = torch.softmax(outputs[0], dim=1)[0].tolist()
print("Sentence:", sentence)
print("Prediction:", id2label[np.argmax(predicted_probability)])
print("Against:", predicted_probability[0])
print("Favor:", predicted_probability[1])
print("Neutral:", predicted_probability[2])
##### Predicción Favor #####
sentence = "Go Go Biden!!!"
inputs = tokenizer(sentence.lower(), return_tensors="pt")
outputs = model(**inputs)
predicted_probability = torch.softmax(outputs[0], dim=1)[0].tolist()
print("Sentence:", sentence)
print("Prediction:", id2label[np.argmax(predicted_probability)])
print("Against:", predicted_probability[0])
print("Favor:", predicted_probability[1])
print("Neutral:", predicted_probability[2])
##### Predicción Against #####
sentence = "Biden is the worst."
inputs = tokenizer(sentence.lower(), return_tensors="pt")
outputs = model(**inputs)
predicted_probability = torch.softmax(outputs[0], dim=1)[0].tolist()
print("Sentence:", sentence)
print("Prediction:", id2label[np.argmax(predicted_probability)])
print("Against:", predicted_probability[0])
print("Favor:", predicted_probability[1])
print("Neutral:", predicted_probability[2])
Por favor, considere citar nuestro artículo si encuentra esto útil:
Reference
Knowledge Enhance Masked Language Model for Stance Detection, NAACL 2021.
Citation
@inproceedings{kawintiranon2021knowledge,
title={Knowledge Enhanced Masked Language Model for Stance Detection},
author={Kawintiranon, Kornraphop and Singh, Lisa},
booktitle={Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
year={2021},
publisher={Association for Computational Linguistics},
url={https://www.aclweb.org/anthology/2021.naacl-main.376}
}
Funcionalidades
- Clasificación de textos
- Transformers
- PyTorch
- JAX
- Detección de posturas
- Elecciones 2020
- Política
Casos de uso
- Detección de posturas en tweets sobre Joe Biden.
- Clasificación de opiniones en redes sociales sobre política.
- Análisis de sentimientos en campañas electorales.