bert-election2020-twitter-stance-trump

kornosk
Clasificación de texto

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