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

Sign up or log in to comment