Xây dựng bộ phân loại Naive Bayes với BoW

Khai thác đặc trưng cho NLP bằng Python

Rounak Banik

Data Scientist

Lọc thư rác

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
Khai thác đặc trưng cho NLP bằng Python

Các bước

  1. Tiền xử lý văn bản
  2. Xây dựng mô hình túi từ (BoW)
  3. Máy học
Khai thác đặc trưng cho NLP bằng Python

Tiền xử lý văn bản với CountVectorizer

Tham số CountVectorizer

  • lowercase: False, True
  • strip_accents: 'unciode', 'ascii', None
  • stop_words: 'english', list, None
  • token_pattern: regex
  • tokenizer: function
Khai thác đặc trưng cho NLP bằng Python

Xây dựng mô hình BoW

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Tạo đối tượng CountVectorizer vectorizer = CountVectorizer(strip_accents='ascii', stop_words='english', lowercase=False)
# Import train_test_split from sklearn.model_selection import train_test_split # Chia thành tập huấn luyện và kiểm tra X_train, X_test, y_train, y_test = train_test_split(df['message'], df['label'], test_size=0.25)
Khai thác đặc trưng cho NLP bằng Python

Xây dựng mô hình BoW

...
...
# Tạo vector BoW cho tập huấn luyện
X_train_bow = vectorizer.fit_transform(X_train)

# Tạo vector BoW cho tập kiểm tra X_test_bow = vectorizer.transform(X_test)
Khai thác đặc trưng cho NLP bằng Python

Huấn luyện bộ phân loại Naive Bayes

# Import MultinomialNB
from sklearn.naive_bayes import MultinomialNB

# Tạo đối tượng MultinomialNB clf = MultinomialNB()
# Huấn luyện clf clf.fit(X_train_bow, y_train)
# Tính độ chính xác trên tập kiểm tra accuracy = clf.score(X_test_bow, y_test) print(accuracy)
0.760051
Khai thác đặc trưng cho NLP bằng Python

Ayo berlatih!

Khai thác đặc trưng cho NLP bằng Python

Preparing Video For Download...