NLP & Sentiment Analysis

Sentiment Analizi: Müşteri Yorumlarında Duygu Analizi ve NLP

Müşteri yorumlarını otomatik analiz edin. Pozitif/negatif/nötr sınıflandırma, Türkçe NLP, aspect-based sentiment, sosyal medya monitoring ve marka itibar yönetimi için kapsamlı rehber.

📅 16 Şubat 2026⏱️ 12 dakika👁️ 9,845 görüntülenme

😊Sentiment Analizi Nedir?

Sentiment analizi (Duygu analizi), metinlerdeki duygusal tonu otomatik tespit eden NLP (Natural Language Processing) tekniğidir. Müşteri yorumlarının pozitif, negatif veya nötr olup olmadığını %85-95 doğrulukla belirler.

Sentiment Analizi Seviyeleri

1

Document-Level (Doküman Seviyesi)

Tüm metnin genel duygusu. En basit ve yaygın yöntem.

😊 Pozitif
"Bu ürün harika! Çok beğendim, herkese tavsiye ederim."
Score: +0.85
😐 Nötr
"Ürün geldi, paketi açtım. Normal bir ürün."
Score: 0.05
😞 Negatif
"Berbat! Kırık geldi, para israfı. Asla almayın!"
Score: -0.92
2

Sentence-Level (Cümle Seviyesi)

Her cümlenin ayrı duygusu. Karma yorumlarda faydalı.

+0.8"Ürün kalitesi çok iyi."
-0.7"Ama kargo 10 gün gecikti, çok kötü."
+0.6"Yine de memnunum, tekrar alırım."
Genel Sentiment: +0.23 (Hafif Pozitif)
3

Aspect-Based (Yön Bazlı) - En Gelişmiş

Ürünün farklı özelliklerine (aspect) göre sentiment. Restoran: yemek, servis, fiyat.

Yorum: "iPhone 15 Pro'nun kamerası mükemmel ama bataryası çok zayıf. Fiyatı da aşırı yüksek."
📷 Kamera
Sentiment: +0.9 😊
🔋 Batarya
Sentiment: -0.8 😞
💰 Fiyat
Sentiment: -0.7 😞

🇹🇷Türkçe Sentiment Analizi Zorlukları

Türkçe, eklemeli dil yapısı ve zengin kelime çeşitliliği nedeniyle sentiment analizinde İngilizce'den daha zorlayıcıdır.

⚠️Zorluk 1: Olumsuzluk Ekleri

Örnek:
"Güzel" → Pozitif (+0.8)
"Güzelsiz" → Negatif (-0.7)
Tek ek (-siz) duyguyu tamamen değiştiriyor
"Beğendim" → Pozitif (+0.7)
"Beğenmedim" → Negatif (-0.7)

⚠️Zorluk 2: İroni ve Kinaye

İroni:
"Çok güzel bir ürün, 3 günde kırıldı 👏"
Kelimeler pozitif ama gerçek sentiment negatif
"Harika bir satıcı, mesajlara 1 haftada cevap veriyor!"
Emoji ve context olmadan tespiti zor

⚠️Zorluk 3: Slang ve Jargon

Genç Dili:
"Ürün baya iyi" → Pozitif
"Ürün leş" → Negatif
"baya", "leş" standart sözlükte yok
"Bu ürün çok taş! 10 numara!"
"taş" → pozitif (slang), sözlükte nötr

⚠️Zorluk 4: Veri Eksikliği

Etiketli Veri:
• İngilizce: 10M+ etiketli yorum
• Türkçe: 100K-500K etiketli yorum
Model eğitimi için yetersiz
Çözüm: Transfer learning (multilingual BERT)

✅ Türkçe Sentiment Analizi için Öneriler

  • mBERT (Multilingual BERT): 104 dil desteği, Türkçe için iyi
  • BERTurk: Türkçe'ye özel eğitilmiş BERT modeli (ITU/TOBB)
  • XLM-RoBERTa: Cross-lingual model, %88-92 Türkçe accuracy
  • GPT-4: Zero-shot sentiment, prompt engineering ile %90+ doğruluk
  • Hybrid: Rule-based (ek kontrolü) + ML model (best practice)

💻Sentiment Analizi Implementation

Python ile Basit Sentiment Analizi

# 1. Transformers (Hugging Face) ile Türkçe Sentiment
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# BERTurk sentiment model
model_name = "savasy/bert-base-turkish-sentiment-cased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

def analyze_sentiment(text):
    # Tokenize
    inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)

    # Predict
    outputs = model(**inputs)
    probs = torch.softmax(outputs.logits, dim=1)

    # Labels: 0=negative, 1=positive
    sentiment = "Pozitif" if probs[0][1] > 0.5 else "Negatif"
    confidence = probs[0][1].item() if probs[0][1] > 0.5 else probs[0][0].item()

    return sentiment, confidence

# Test
text = "Bu ürün gerçekten harika! Çok memnun kaldım."
sentiment, confidence = analyze_sentiment(text)
print(f"Sentiment: {sentiment}, Confidence: {confidence:.2f}")
# Output: Sentiment: Pozitif, Confidence: 0.94

GPT-4 ile Zero-Shot Sentiment

# OpenAI GPT-4 kullanarak sentiment analizi
from openai import OpenAI

client = OpenAI()

def gpt4_sentiment(text):
    response = client.chat.completions.create(
        model="gpt-4-turbo-preview",
        messages=[
            {
                "role": "system",
                "content": """Sen bir sentiment analiz asistanısın.
                Verilen Türkçe metni analiz et ve şu formatta yanıt ver:
                {
                  "sentiment": "pozitif/negatif/nötr",
                  "score": 0.0 ile 1.0 arası,
                  "reason": "kısa açıklama"
                }"""
            },
            {
                "role": "user",
                "content": f"Metni analiz et: {text}"
            }
        ],
        response_format={ "type": "json_object" }
    )

    return response.choices[0].message.content

# Test
text = "Ürün güzel ama kargo çok geç geldi."
result = gpt4_sentiment(text)
print(result)
# Output: {"sentiment": "nötr", "score": 0.55, "reason": "Ürün hakkında pozitif, kargo hakkında negatif ifade var"}

Aspect-Based Sentiment (Advanced)

# Aspect-based sentiment extraction
import spacy
from transformers import pipeline

# Türkçe NLP model
nlp = spacy.load("xx_ent_wiki_sm")  # Multilingual

# Sentiment pipeline
sentiment_analyzer = pipeline(
    "sentiment-analysis",
    model="savasy/bert-base-turkish-sentiment-cased"
)

def aspect_based_sentiment(text, aspects):
    """
    aspects: ["kamera", "batarya", "fiyat", "ekran"]
    """
    results = {}

    # Metni cümlelere böl
    doc = nlp(text)
    sentences = [sent.text for sent in doc.sents]

    # Her aspect için ilgili cümleleri bul ve sentiment analiz et
    for aspect in aspects:
        aspect_sentences = [s for s in sentences if aspect.lower() in s.lower()]

        if aspect_sentences:
            # Her cümlenin sentiment'ini al
            sentiments = sentiment_analyzer(aspect_sentences)

            # Ortalama sentiment score
            avg_score = sum(s['score'] if s['label']=='POSITIVE' else -s['score']
                          for s in sentiments) / len(sentiments)

            results[aspect] = {
                'sentiment': 'pozitif' if avg_score > 0.2 else 'negatif' if avg_score < -0.2 else 'nötr',
                'score': avg_score,
                'mentions': len(aspect_sentences)
            }
        else:
            results[aspect] = None

    return results

# Test
text = """iPhone 15 Pro'nun kamerası gerçekten mükemmel, gece çekimleri harika.
Ama bataryası çok zayıf, akşama kadar zor dayaniyor.
Ekran kalitesi de süper ama fiyat çok yüksek."""

aspects = ["kamera", "batarya", "ekran", "fiyat"]
results = aspect_based_sentiment(text, aspects)

for aspect, data in results.items():
    if data:
        print(f"{aspect}: {data['sentiment']} ({data['score']:.2f})")

# Output:
# kamera: pozitif (0.87)
# batarya: negatif (-0.74)
# ekran: pozitif (0.81)
# fiyat: negatif (-0.68)

📊Kullanım Alanları ve ROI

1. E-Ticaret Yorum Analizi

Binlerce ürün yorumunu otomatik analiz et, düşük puanlı ürünleri tespit et

  • Use case: Hepsiburada, Trendyol seller paneli
  • Fayda: Problematik ürünleri 10x hızlı tespit
  • ROI: Müşteri memnuniyeti %15 artış, iade %20 azalma

2. Sosyal Medya Monitoring

Twitter, Instagram, Facebook'ta marka bahislerini izle

  • Use case: Crisis management, brand reputation
  • Fayda: Negatif kampanyaları 24 saat içinde tespit
  • ROI: PR krizlerini önleme, %40 hızlı müdahale

3. Müşteri Hizmetleri Önceliklendirme

Gelen ticket'ları sentiment'e göre sırala, negatif olanlar önce

  • Use case: Zendesk, Intercom entegrasyonu
  • Fayda: Kızgın müşterilere öncelik, churn önleme
  • ROI: Müşteri kaybı %25 azalma

4. Ürün Geliştirme Insights

Aspect-based sentiment ile hangi özellikler beğeniliyor/beğenilmiyor

  • Use case: Product roadmap belirleme
  • Fayda: Data-driven karar, müşteri sesi
  • ROI: Başarılı feature lansmanı %30 artış

Gerçek Örnek: Hepsiburada Yorum Analizi

Hepsiburada Seller Dashboard (2025)

50K+
Günlük Yorum Analizi
%91
Sentiment Doğruluğu
2 sn
Ortalama Analiz Süresi
Satıcılara otomatik uyarı:Ürün sentiment <3.0 → Email
Aspect insights:"Kargo geç" %34 negatif sebep
Aksiyon:Kargo firması değişti → %28 iyileşme

Sentiment Analizi Sisteminizi Kurmaya Hazır Mısınız?

Türkçe NLP, aspect-based sentiment, sosyal medya monitoring ile marka itibarınızı koruyun ve müşteri memnuniyetini artırın. Ücretsiz POC için iletişime geçin.

İlgili Makaleler