--- license: mit language: - ru tags: - russian - classification - emotion - emotion-detection - emotion-recognition - multiclass widget: - text: Как дела? - text: Дурак твой дед - text: Только попробуй!!! - text: Не хочу в школу( - text: Сейчас ровно час дня - text: >- А ты уверен, что эти полоски снизу не врут? Точно уверен? Вот прям 100 процентов? datasets: - Djacon/ru_go_emotions --- # First - you should prepare few functions to talk to model ```python import torch from transformers import BertForSequenceClassification, AutoTokenizer LABELS_RU = ['нейтрально', 'радость', 'грусть', 'гнев', 'интерес', 'удивление', 'отвращение', 'страх', 'вина', 'стыд'] tokenizer = AutoTokenizer.from_pretrained('Djacon/rubert-tiny2-russian-emotion-detection') model = BertForSequenceClassification.from_pretrained('Djacon/rubert-tiny2-russian-emotion-detection') # Predicting emotion in text @torch.no_grad() def predict_emotion(text: str) -> str: inputs = tokenizer(text, truncation=True, return_tensors='pt') inputs = inputs.to(model.device) outputs = model(**inputs) pred = torch.nn.functional.sigmoid(outputs.logits) pred = pred.argmax(dim=1) return LABELS_RU[pred[0]] # Probabilistic prediction of emotion in a text @torch.no_grad() def predict_emotions(text: str) -> dict: inputs = tokenizer(text, truncation=True, return_tensors='pt') inputs = inputs.to(model.device) outputs = model(**inputs) pred = torch.nn.functional.sigmoid(outputs.logits) emotions_list = {} for i in range(len(pred[0].tolist())): emotions_list[LABELS_RU[i]] = round(pred[0].tolist()[i], 4) return emotions_list ``` # And then - just gently ask a model to predict your emotion ```python simple_prediction = predict_emotion("Какой же сегодня прекрасный день, братья") not_simple_prediction = predict_emotions("Какой же сегодня прекрасный день, братья") print(simple_prediction) print(not_simple_prediction) # радость # {'нейтрально': 0.1985, 'радость': 0.7419, 'грусть': 0.0261, 'гнев': 0.0295, 'интерес': 0.1983, 'удивление': 0.4305, 'отвращение': 0.0082, 'страх': 0.008, 'вина': 0.0046, 'стыд': 0.0097} ``` # Citations ``` @misc{Djacon, author = {Djacon}, year = {2023}, publisher = {Hugging Face}, journal = {Hugging Face Hub}, } ```