Inference Unlimited

Kendi Duygu Analizi Aracınızı LLM Kullanarak Oluşturma

Giriş

Duygu analizi, metnin duygusal tonunu belirleme sürecidir ve pazarlama, müşteri hizmetleri veya kamuoyu araştırmaları gibi birçok alanda kullanılabilir. Bu makalede, büyük dil modelleri (LLM) kullanarak kendi duygu analizi aracınızı nasıl oluşturacağınızı gösterelim.

Model Seçimi

İlk adım, uygun bir dil modeli seçmektir. Şunlar arasında seçebiliriz:

Örnek için Hugging Face Transformers ile DistilBERT modelini kullanacağız, BERT'in daha hafif bir versiyonu ve duygu analizi görevleri için iyi uygun.

Gereken Kütüphanelerin Yükleme

Başlamak için gerekli kütüphaneleri yükleyelim:

pip install transformers torch pandas

Model ve Tokenizer'ın Yüklenmesi

Ardından model ve tokenizer'ı yükleyelim:

from transformers import pipeline

# Hazır duygu analizi aracının yüklenmesi
sentiment_pipeline = pipeline("sentiment-analysis")

Veri Hazırlığı

Test etmek için bir veri seti hazırlayalım. Basit bir örnek kullanabiliriz:

texts = [
    "Bu ürünü seviyorum, harikadır!",
    "Önermezdim, çok hayal kırıklığına uğradım.",
    "Ortalama ürün, hiçbir şey özel.",
    "Etkisi memnun edici, ancak fiyat çok yüksek."
]

Duygu Analizi

Şimdi metinlerimiz için duygu analizi yapabiliriz:

results = sentiment_pipeline(texts)

for text, result in zip(texts, results):
    print(f"Metin: {text}")
    print(f"Duygu: {result['label']} (Güven: {result['score']:.2f})")
    print("---")

Modelin Uyarlanması

Eğer modelimizi belirli verilerimize uyarlamak istiyorsak, Hugging Face Transformers kütüphanesi kullanarak modelimizi veri setimizde eğitebiliriz.

from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import Trainer, TrainingArguments
import pandas as pd
from sklearn.model_selection import train_test_split

# Örnek veri seti
data = pd.DataFrame({
    "text": ["Bu ürünü seviyorum", "Önermezdim", "Ortalama ürün"],
    "label": [1, 0, 0]  # 1 - olumlu, 0 - olumsuz
})

# Verilerin eğitim ve test setlerine bölünmesi
train_texts, test_texts, train_labels, test_labels = train_test_split(
    data["text"], data["label"], test_size=0.2
)

# Tokenizer ve modelin yüklenmesi
model_name = "distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# Verilerin tokenizasyonu
train_encodings = tokenizer(list(train_texts), truncation=True, padding=True)
test_encodings = tokenizer(list(test_texts), truncation=True, padding=True)

# Verileri işlemek için sınıf
class SentimentDataset(torch.utils.data.Dataset):
    def __init__(self, encodings, labels):
        self.encodings = encodings
        self.labels = labels

    def __getitem__(self, idx):
        item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
        item["labels"] = torch.tensor(self.labels[idx])
        return item

    def __len__(self):
        return len(self.labels)

train_dataset = SentimentDataset(train_encodings, train_labels)
test_dataset = SentimentDataset(test_encodings, test_labels)

# Eğitim ayarları
training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=16,
    per_device_eval_batch_size=64,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="./logs",
    logging_steps=10,
)

# Modelin eğitilmesi
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=test_dataset
)

trainer.train()

Modelin Uygulanması

Modeli eğittikten sonra onu kaydedip duygu analizi için kullanabiliriz:

model.save_pretrained("./custom_sentiment_model")
tokenizer.save_pretrained("./custom_sentiment_model")

# Uyarlanmış modelin yüklenmesi
custom_model = AutoModelForSequenceClassification.from_pretrained("./custom_sentiment_model")
custom_tokenizer = AutoTokenizer.from_pretrained("./custom_sentiment_model")

# Örnek analiz
custom_pipeline = pipeline("sentiment-analysis", model=custom_model, tokenizer=custom_tokenizer)
print(custom_pipeline("Bu ürün harikadır!"))

Özet

Bu makalede, büyük dil modelleri kullanarak kendi duygu analizi aracınızı nasıl oluşturacağınızı adım adım gösterdik. Model seçimi, veri hazırlığı, duygu analizi ve modelin ihtiyacınıza göre uyarlanması hakkında ayrıntılı olarak konuşduk. Bu araçla, farklı alanlarda metinlerin duygusal tonunu etkili bir şekilde analiz edebiliriz.

Język: TR | Wyświetlenia: 12

← Powrót do listy artykułów