bert-election2020-twitter-stance-trump
Modelo BERT preentrenado en Twitter para la Elección Presidencial de EE.UU. 2020, diseñado para detectar posturas hacia Donald Trump. Este modelo utiliza pesos preentrenados en el Modelo de Lenguaje enmascarado mejorado con conocimiento para la detección de postura, presentado en NAACL 2021. Está preentrenado en más de 5 millones de tweets en inglés sobre la Elección Presidencial de EE.UU. 2020 y luego afinado con datos etiquetados para la detección de posturas hacia Donald Trump.
Como usar
Uso
Este modelo de lenguaje preentrenado está afinado específicamente para la tarea de detección de postura hacia Donald Trump. Por favor, consulte el repositorio oficial para más detalles.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import numpy as np
# seleccionar 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-trump"
# 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 Trump!!!"
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 = "Trump 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 documento si encuentra esto útil. :)
Referencia
Knowledge Enhance Masked Language Model for Stance Detection, NAACL 2021.
Citabilidad
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
- Clasificación de postura en tweets
- Entrenado en inglés
Casos de uso
- Detección de posturas hacia Donald Trump en Twitter
- Análisis de sentimientos en tweets sobre la Elección Presidencial de EE.UU. 2020
- Investigación en ciencias sociales y análisis político