from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch import gradio as gr import numpy as np MODEL_NAME = "cardiffnlp/twitter-xlm-roberta-base-sentiment" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME) labels = ['ნეგატიური', 'ნეიტრალური', 'პოზიტიური'] def classify_sentiment(text): inputs = tokenizer(text, return_tensors="pt", truncation=True) with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits probs = torch.nn.functional.softmax(logits, dim=1).numpy()[0] # Get label and confidence top_label = labels[np.argmax(probs)] confidence = np.max(probs) return {labels[i]: float(probs[i]) for i in range(len(labels))} iface = gr.Interface( fn=classify_sentiment, inputs=gr.Textbox(lines=3, placeholder="შეიყვანეთ ტვიტი ..."), outputs=gr.Label(num_top_classes=3), title="Twitter-ის განწყობის კლასიფიკატორი", description="იყენებს CardiffNLP-ის მრავალენოვან RoBERTa მოდელს ტვიტების დადებით, ნეიტრალურ ან უარყოფითად კლასიფიცირებისთვის." ) iface.launch(share=True)