Output
#1
by
akanesen
- opened
API'yi direkt kullandığımız zaman tensor'ü çıktı olarak alıyorum. Burada Positive, Neutral, Negative output'u nasıl yapabilirim?
Hugging Face pipeline arayüzüyle modeli doğrudan çalıştırdığınızda, modelin döndürdüğü çıktı genellikle şöyle bir sözlük olur:
[{'label': 'positive', 'score': 0.987}]
Ancak bazı modeller (özellikle özelleştirilmiş olanlar) doğrudan bir tensor (logits) döndürebilir. Bu durumda pipeline yerine AutoModelForSequenceClassification ve AutoTokenizer sınıflarını kullanarak model çıktısını kendiniz işleyebilirsiniz.
Aşağıda doğrudan tensor çıktısı alan bir modelin positive, neutral, negative puanlarını nasıl elde edeceğinizi gösteriyorum:
Tensor Çıktısı ile Sentiment Etiketleme (Softmax Uygulamalı)
Kopyala
Düzenle
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import gradio as gr
import torch.nn.functional as F
# Model ve tokenizer yükleniyor
model_name = "tkurtulus/TurkishAirlines-SentimentAnalysisModel"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# Etiket isimleri (sıralama modele bağlı olabilir, kontrol edin)
labels = ["negative", "neutral", "positive"] # model.config.id2label ile de alınabilir
def sentiment_analysis(text):
# Tokenization
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
# Model çıktısı (logits)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
# Softmax uygulayarak olasılıkları elde et
probs = F.softmax(logits, dim=-1).squeeze().tolist()
# Sonuçları etiketlerle eşleştir
return {labels[i]: float(f"{prob:.4f}") for i, prob in enumerate(probs)}
tolgadev
changed discussion status to
closed