networkbot / functions /sentiment.py
Adieva-15's picture
config.py fixed
616d402
Raw
History Blame Contribute Delete
996 Bytes
from config import model_name
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def sentiment_analysis(text)->str:
'''принимает строку, возвращает тональность'''
try:
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
#вероятности классов
probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
pred_class = torch.argmax(probabilities, dim=-1).item()
if pred_class <= 1:
return "Негативный"
elif pred_class ==2:
return "Нейтральный"
else:
return "Позитивный"
except Exception as e:
return f"Error: {str(e)}"