Créer un classifieur Naive Bayes avec sac de mots

Ingénierie des caractéristiques pour le NLP en Python

Rounak Banik

Data Scientist

Filtrage de pourriel

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
Ingénierie des caractéristiques pour le NLP en Python

Étapes

  1. Prétraitement du texte
  2. Construction d'un modèle sac de mots
  3. Machine Learning
Ingénierie des caractéristiques pour le NLP en Python

Prétraiter le texte avec CountVectorizer

Paramètres de CountVectorizer

  • lowercase: False, True
  • strip_accents: 'unciode', 'ascii', None
  • stop_words: 'english', list, None
  • token_pattern: regex
  • tokenizer: function
Ingénierie des caractéristiques pour le NLP en Python

Créer le modèle BoW

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Create CountVectorizer object vectorizer = CountVectorizer(strip_accents='ascii', stop_words='english', lowercase=False)
# Import train_test_split from sklearn.model_selection import train_test_split # Split into training and test sets X_train, X_test, y_train, y_test = train_test_split(df['message'], df['label'], test_size=0.25)
Ingénierie des caractéristiques pour le NLP en Python

Créer le modèle BoW

...
...
# Generate training Bow vectors
X_train_bow = vectorizer.fit_transform(X_train)

# Generate test BoW vectors X_test_bow = vectorizer.transform(X_test)
Ingénierie des caractéristiques pour le NLP en Python

Entraîner le classifieur Naive Bayes

# Import MultinomialNB
from sklearn.naive_bayes import MultinomialNB

# Create MultinomialNB object clf = MultinomialNB()
# Train clf clf.fit(X_train_bow, y_train)
# Compute accuracy on test set accuracy = clf.score(X_test_bow, y_test) print(accuracy)
0.760051
Ingénierie des caractéristiques pour le NLP en Python

Passons à la pratique !

Ingénierie des caractéristiques pour le NLP en Python

Preparing Video For Download...