Duygu analizi için Hugging Face pipeline'ları

Python ile Natural Language Processing (NLP)

Fouad Trad

Machine Learning Engineer

Özet: NLP iş akışı

Bölüm 1'in ön işleme, Bölüm 2'nin özellik çıkarımı kapsadığını gösteren tam iş akışı diyagramı.

Python ile Natural Language Processing (NLP)

Hugging Face pipeline'ları

Bölüm 3 ve 4'ün tüm adımları (ön işleme, özellik çıkarımı, modelleme) saran hugging face pipeline'larını kapsadığını gösteren tam iş akışı diyagramı.

  • Tüm adımları tek çağrıda yöneten hazır iş akışı
  • Bir pipeline tanımlamak için gerekir:
    • NLP görevi
    • Görevi yapacak model
Python ile Natural Language Processing (NLP)

Duygu analizi için pipeline'lar

 

 

  • Metin sınıflandırma görevi
  • Metnin olumlu ya da olumsuz duygu içerip içermediğini tahmin eder

Olumlu duygu için başparmak yukarı olan mutlu yüz, olumsuz için başparmak aşağı olan üzgün yüz gösteren görsel.

Python ile Natural Language Processing (NLP)

Metin sınıflandırma için modeller

Web sitesinde kaydırarak doğru görevi seçip uygun modelleri bulmayı gösteren bir gif.

1 https://huggingface.co/models
Python ile Natural Language Processing (NLP)

Kodda pipeline'lar

from transformers import pipeline

classification_pipeline = pipeline(
task="sentiment-analysis", # or text-classification
model="distilbert/distilbert-base-uncased-finetuned-sst-2-english" )
result = classification_pipeline("I really liked the movie!!")
print(result)
[{'label': 'POSITIVE', 'score': 0.9998093247413635}]
Python ile Natural Language Processing (NLP)

Bir metin grubunda duygu analizi

texts = ["I really liked the movie!!",
         "Great job ruining my day.",
         "This product exceeded my expectations.",
         "Wow, just what I needed... another problem.", 
         "Absolutely fantastic experience!"]

results = classification_pipeline(texts)
print(results)
[{'label': 'POSITIVE', 'score': 0.9998093247413635}, 
 {'label': 'NEGATIVE', 'score': 0.8666700124740601}, 
 {'label': 'POSITIVE', 'score': 0.998874843120575}, 
 {'label': 'POSITIVE', 'score': 0.98626708984375}, 
 {'label': 'POSITIVE', 'score': 0.9998812675476074}]
Python ile Natural Language Processing (NLP)

Duygu analizi modellerini değerlendirme

texts = ["I really liked the movie!!",
         "Great job ruining my day.",
         "This product exceeded my expectations.",
         "Wow, just what I needed... another problem.", 
         "Absolutely fantastic experience!"]

true_labels = ["POSITIVE", "NEGATIVE", "POSITIVE", "NEGATIVE", "POSITIVE"]
results = classification_pipeline(texts)
predicted_labels = [result['label'] for result in results]
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(true_labels, predicted_labels)

print(f"Accuracy: {accuracy}")
Accuracy: 0.80
Python ile Natural Language Processing (NLP)

Hadi pratik yapalım!

Python ile Natural Language Processing (NLP)

Preparing Video For Download...