n-gram’larla daha ayrıntılı olmak

Python ile Duygu Analizi

Violeta Misheva

Data Scientist

Bağlam önemlidir

Ben mutluyum, üzgün değilim.

Ben üzgünüm, mutlu değilim.

  • Bir sözcüğün önüne ‘değil’ koymak (olumsuzlama) bağlamın neden önemli olduğuna bir örnektir.
Python ile Duygu Analizi

BOW ile bağlamı yakalama

  • Unigramlar: tekil belirteçler

  • Bigramlar: ikili belirteçler

  • Trigramlar: üçlü belirteçler

  • n-gramlar: n belirteçlik diziler

Python ile Duygu Analizi

BOW ile bağlamı yakalama

Bugün hava harika.

  • Unigramlar: { The, weather, today, is, wonderful }

  • Bigramlar: {The weather, weather today, today is, is wonderful}

  • Trigramlar: {The weather today, weather today is, today is wonderful}

Python ile Duygu Analizi

CountVectorizer ile n-gramlar

from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(ngram_range=(min_n, max_n))
# Yalnızca unigramlar
ngram_range=(1, 1)
# Uni ve bigramlar
ngram_range=(1, 2)
Python ile Duygu Analizi

En iyi n nedir?

Daha uzun belirteç dizileri
  • Daha fazla özellik üretir
  • Modellerin doğruluğunu artırır
  • Aşırı uyum riski
Python ile Duygu Analizi

Sözlük boyutunu belirtme

CountVectorizer(max_features, max_df, min_df)
  • max_features: belirtilirse, sözlüğe yalnızca en sık görülen sözcükleri ekler
    • max_features = None ise tüm sözcükler eklenir
  • max_df: belirtilenden daha yüksek frekanslı terimleri yok sayar
    • Tamsayı ise mutlak sayım; float ise orandır
    • Varsayılan 1.0’dır; hiçbir terim yok sayılmaz
  • min_df: belirtilenden daha düşük frekanslı terimleri yok sayar
    • Tamsayı ise mutlak sayım; float ise orandır
    • Varsayılan 1.0’dır; hiçbir terim yok sayılmaz
Python ile Duygu Analizi

Hadi pratik yapalım!

Python ile Duygu Analizi

Preparing Video For Download...