ruBERT-tiny2 detección de emociones rusas
Aniemore
Clasificación de texto
ruBERT-tiny2 es un modelo de clasificación de emociones multiclase en ruso. Utiliza transformers y PyTorch, y ha sido entrenado para detectar emociones como neutralidad, felicidad, tristeza, entusiasmo, miedo, ira y disgusto en textos rusos.
Como usar
import torch
from transformers import BertForSequenceClassification, AutoTokenizer
LABELS = ['neutral', 'felicidad', 'tristeza', 'entusiasmo', 'miedo', 'ira', 'disgusto']
tokenizer = AutoTokenizer.from_pretrained('Aniemore/rubert-tiny2-russian-emotion-detection')
model = BertForSequenceClassification.from_pretrained('Aniemore/rubert-tiny2-russian-emotion-detection')
@torch.no_grad()
def predict_emotion(text: str) -> str:
"""
Tomamos el texto de entrada, lo tokenizamos, lo pasamos por el modelo y luego devolvemos la etiqueta predicha.
:param text: El texto a ser clasificado
:type text: str
:return: La emoción predicha
"""
inputs = tokenizer(text, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**inputs)
predicted = torch.nn.functional.softmax(outputs.logits, dim=1)
predicted = torch.argmax(predicted, dim=1).numpy()
return LABELS[predicted[0]]
@torch.no_grad()
def predict_emotions(text: str) -> list:
"""
Toma una cadena de texto, la tokeniza, la introduce al modelo y devuelve un diccionario de emociones y sus probabilidades.
:param text: El texto que quieres clasificar
:type text: str
:return: Un diccionario de emociones y sus probabilidades.
"""
inputs = tokenizer(text, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**inputs)
predicted = torch.nn.functional.softmax(outputs.logits, dim=1)
emotions_list = {}
for i in range(len(predicted.numpy()[0].tolist())):
emotions_list[LABELS[i]] = predicted.numpy()[0].tolist()[i]
return emotions_list
# Ejemplo de uso
simple_prediction = predict_emotion("Какой же сегодня прекрасный день, братья")
not_simple_prediction = predict_emotions("Какой же сегодня прекрасный день, братья")
print(simple_prediction)
print(not_simple_prediction)
Funcionalidades
- Clasificación de texto
- Transformers
- PyTorch
- Safetensors
- Clasificación de emociones en ruso
- Reconocimiento de emociones multiclase
Casos de uso
- Detección de emociones en textos rusos
- Análisis de sentimientos en tiempo real
- Monitoreo de emociones en redes sociales
- Estudios psicológicos y sociológicos