Projelere Dön
Veri Bilimi

Amazon Yorumları Duygu Analizi Projesi

Amazon üzerinden satış yapan bir üreticinin topladığı ürün yorumlarını inceleyerek duygu analizi (sentiment analysis) gerçekleştirdim. Kullanıcı yorumlarını olumlu/olumsuz olarak sınıflandırarak hızlı aksiyon alınmasını sağladım.

PythonNLTKScikit-learnPandasNumPyMatplotlibSeabornWordCloudNLP
Amazon Yorumları Duygu Analizi Projesi

Amazon Yorumları Duygu Analizi Projesi

Bu projede, Amazon üzerinden satış yapan bir üreticinin topladığı ürün yorumlarını inceleyerek duygu analizi (sentiment analysis) gerçekleştirilmiştir. Amaç, kullanıcıların yaptığı yorumların olumlu mu, olumsuz mu olduklarını otomatik olarak sınıflandırarak hızlı aksiyon almaktır. Proje içerisinde metin ön işleme, metin görselleştirme (barplot & wordcloud), duygu analizi (SentimentIntensityAnalyzer) ve sınıflandırma modelleri (Lojistik Regresyon & Random Forest) yer almaktadır.

İçerik

  • Proje Amacı ve Katma Değeri
  • Veri Seti ve Değişkenler
  • Adımlar ve Metodoloji
    1. Veri Ön İşleme
    2. Metin Görselleştirme
    3. Duygu Analizi
    4. Makine Öğrenmesi için Hazırlık
    5. Modelleme ve Değerlendirme
  • Sonuçlar ve Çıktılar

Proje Amacı ve Katma Değeri

Proje Amacı:

  • Müşteri yorumlarını anlamlandırarak olumlu (positive) ve olumsuz (negative) yorumları otomatik tespit etmek, böylece şirketin müşteri memnuniyetsizliğine hızlıca aksiyon almasını sağlamak.
  • Ürün geliştirme sürecinde, yorumlarda öne çıkan konular veya şikayetleri tespit ederek ürün kalitesini artırmak.

Katma Değer:

  • Müşteri geri bildirimini işleme sürecini hızlandırma.
  • Olumsuz yorumları erkenden yakalama ve böylece marka itibarını koruma.
  • Olumlu yorumları ise ön plana çıkararak yeni kullanıcılara ikna edici referans oluşturma.

Veri Seti ve Değişkenler

Dosya Adı: amazon.xlsx

  • Gözlem Sayısı: 5.611
  • Temel Değişkenler:
    • Star: Ürüne verilen yıldız (1-5)
    • Helpful: Yorumu faydalı bulan kullanıcı sayısı
    • Title: Yoruma ait kısa başlık
    • Review: Ürün hakkındaki detaylı yorum metni

Veri seti, kullanıcıların bıraktığı yorum metinlerine odaklanarak duygu analizi yapmamıza imkân sağlar. "Star" değişkeni, ortalama kullanıcı memnuniyetinin bir göstergesi olmakla birlikte, burada asıl değerli veri Review (yorum içeriği) sütununda saklıdır.

Adımlar ve Metodoloji

1. Veri Ön İşleme

Veri Okuma

  • pandas kütüphanesi kullanılarak amazon.xlsx dosyası DataFrame'e aktarılır.

Metin Temizleme

  • Lowercase: Tüm harfler küçük harfe dönüştürülür.
  • Noktalama ve Rakamların Silinmesi: Noktalama işaretleri ve sayılar temizlenerek kelime bazlı analiz kolaylaştırılır.
  • Stopwords Çıkarma: Bilgi içermeyen (the, and, a vs.) gibi kelimeler ayıklanır.
  • Frekansı Düşük Kelimelerin Çıkarılması: Veri setinde 1000'den az geçen kelimeler temizlenir.
  • Lemmatization: Kelimeleri kök forma indirgemek için (ör. "running" -> "run") WordNetLemmatizer kullanılır.

Bu adımlar sonucunda, Review metinleri gürültüden arındırılmış, makine öğrenmesi ve analiz için daha uygun bir yapıya kavuşur.

2. Metin Görselleştirme

Barplot:

  • Yorumlardaki kelimelerin frekanslarını (tf) hesaplayıp bunları bir tabloya dönüştürürüm.
  • tf değeri belirli bir eşikten (örn. 500) yüksek olan kelimeleri çubuk grafiği (barplot) şeklinde görselleştirerek hangi kelimelerin sık kullanıldığı gözlemlenir.

WordCloud:

  • Tüm temizlenmiş yorumlar birleştirilerek büyük bir text string elde edilir.
  • WordCloud kütüphanesiyle en sık tekrar eden kelimelerin daha büyük görüneceği şekilde bir kelime bulutu oluşturulur.
  • Bu, kullanıcıların hangi konular üzerinde durduklarını daha görsel biçimde ortaya koyar.

3. Duygu Analizi

SentimentIntensityAnalyzer

  • NLTK paketinin sağladığı SentimentIntensityAnalyzer nesnesi, metin için neg, neu, pos ve compound skorlarını hesaplar.

Polarity Scores

  • Metin başına sia.polarity_scores(text) çağrısıyla her bir yorumun duygusal tonuna dair skorlar elde edilir.

Olumlu/Olumsuz Etiketleme

  • compound skoru 0 üstünde olan yorumlar "pos", değilse "neg" olarak etiketlenir.
  • Bu sayede, Review sütunundan otomatik olarak bir sentiment (olumlu/olumsuz) bağımlı değişkeni üretilmiş olur.

4. Makine Öğrenmesi için Hazırlık

Bağımlı ve Bağımsız Değişkenler:

  • Bağımsız değişken = Önişlemden geçmiş Review metni.
  • Bağımlı değişken = Sentiment (pos/neg).

Train/Test Ayrımı

  • train_test_split kullanılarak veri seti %80 eğitim, %20 test şeklinde ikiye bölünür.

Sayısallaştırma (Vectorization)

  • Metinleri makine öğrenmesi algoritmalarına uygun hale getirmek için TfidfVectorizer seçilir.
  • Yalnızca eğitim verisine fit edilerek öğrenilen kelime dağarcığı test setine de transform ile uygulanır.

5. Modelleme ve Değerlendirme

Lojistik Regresyon (Logistic Regression)

  • LogisticRegression() ile model kurulup eğitim (fit) işlemi yapılır.
  • predict ve classification_report kullanılarak başarı metrikleri (accuracy, precision, recall, f1) incelenir.
  • cross_val_score ile çapraz doğrulama (cross validation) üzerinden ortalama performans değerlendirilir.

Random Forest

  • RandomForestClassifier() modeli benzer şekilde eğitilir ve test edilir.
  • Eğer gerekli görülürse n_estimators, max_depth vb. hiperparametrelerde ince ayarlar (tuning) yapılabilir.
  • Elde edilen doğruluk (accuracy) değerleri lojistik regresyon ile kıyaslanarak en iyi model seçilebilir.

Sonuçlar ve Çıktılar

Duygu Analizi

  • Yorumlar, otomatik olarak olumlu ve olumsuz şeklinde etiketlenebildi. Özellikle olumsuz yorumların belirlenmesi, ürün geliştirme ve müşteri hizmetleri tarafında hızlı aksiyon alınmasını sağlar.

Metin Görselleştirme

  • Kelime sıklıkları (barplot) ve kelime bulutu (wordcloud) yardımıyla, kullanıcıların en çok hangi ifadeleri kullandığı, dolayısıyla hangi konulardan bahsettiği görsel olarak anlaşılmıştır.

Model Performansı

  • Lojistik Regresyon ve Random Forest ile yapılan sınıflandırmalarda tatminkâr doğruluk değerleri elde edilmiştir. Geliştirilmiş bir pipeline veya hiperparametre optimizasyonu ile bu sonuçlar daha da iyileştirilebilir.

Katma Değer

  • Firmanın hem üretim hem de satış sonrası stratejilerini yeniden şekillendirmesine yardımcı olacak müşteri içgörüleri elde edilmiştir.
  • Olumlu yorumlar da pazarlama ve reklam materyallerinde kullanılabilecek güçlü referanslar sunar.

Amazon Yorumları Duygu Analizi Projesi, müşteri yorumlarındaki olumlu-olumsuz geri bildirimleri hızlı ve doğru şekilde sınıflandırarak işletmelerin daha güçlü bir müşteri deneyimi stratejisi geliştirmesine katkı sunar. Yorumların görsel ve istatistiksel analizi sayesinde, ürün veya hizmet kalitesini sürekli iyileştirmek ve pazarlama faaliyetlerinde müşteri odaklı bir yaklaşım benimsemek mümkün hale gelir.