BoW Naive Bayes sınıflandırıcı oluşturma

Python ile NLP için Özellik Mühendisliği

Rounak Banik

Data Scientist

Spam filtreleme

message label
WINNER!! As a valued network customer you have been selected to receive a $900 prize reward! To claim call 09061701461 spam
Ah, work. I vaguely remember that. What does it feel like? ham
Python ile NLP için Özellik Mühendisliği

Adımlar

  1. Metin ön işleme
  2. Kelime torbası (BoW) modeli (veya temsili) oluşturma
  3. Makine öğrenimi
Python ile NLP için Özellik Mühendisliği

CountVectorizer ile metin ön işleme

CountVectorizer argümanları

  • lowercase: False, True
  • strip_accents: 'unciode', 'ascii', None
  • stop_words: 'english', list, None
  • token_pattern: regex
  • tokenizer: function
Python ile NLP için Özellik Mühendisliği

BoW modelini oluşturma

# CountVectorizer'ı içe aktarın
from sklearn.feature_extraction.text import CountVectorizer

# CountVectorizer nesnesi oluşturun vectorizer = CountVectorizer(strip_accents='ascii', stop_words='english', lowercase=False)
# train_test_split'i içe aktarın from sklearn.model_selection import train_test_split # Eğitim ve test setlerine ayırın X_train, X_test, y_train, y_test = train_test_split(df['message'], df['label'], test_size=0.25)
Python ile NLP için Özellik Mühendisliği

BoW modelini oluşturma

...
...
# Eğitim BoW vektörlerini üretin
X_train_bow = vectorizer.fit_transform(X_train)

# Test BoW vektörlerini üretin X_test_bow = vectorizer.transform(X_test)
Python ile NLP için Özellik Mühendisliği

Naive Bayes sınıflandırıcıyı eğitme

# MultinomialNB'yi içe aktarın
from sklearn.naive_bayes import MultinomialNB

# MultinomialNB nesnesi oluşturun clf = MultinomialNB()
# clf'yi eğitin clf.fit(X_train_bow, y_train)
# Test setinde doğruluğu hesaplayın accuracy = clf.score(X_test_bow, y_test) print(accuracy)
0.760051
Python ile NLP için Özellik Mühendisliği

Hadi pratik yapalım!

Python ile NLP için Özellik Mühendisliği

Preparing Video For Download...