Xây dựng mô hình túi từ (bag of words)

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

Rounak Banik

Data Scientist

Tóm tắt định dạng dữ liệu cho thuật toán ML

Với mọi thuật toán ML,

  • Dữ liệu phải ở dạng bảng
  • Thuộc tính huấn luyện phải là số
Khai thác đặc trưng cho NLP bằng Python

Mô hình túi từ

  • Tách token từ
  • Tính tần suất token
  • Tạo vector từ từ các tần suất và vốn từ của corpus
Khai thác đặc trưng cho NLP bằng Python

Ví dụ mô hình túi từ

Corpus

"The lion is the king of the jungle"
"Lions have lifespans of a decade"
"The lion is an endangered species"
Khai thác đặc trưng cho NLP bằng Python

Ví dụ mô hình túi từ

Vốn từa, an, decade, endangered, have, is, jungle, king, lifespans, lion, Lions, of, species, the, The

"The lion is the king of the jungle"
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1]
"Lions have lifespans of a decade"
[1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0]
"The lion is an endangered species"
[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1]
Khai thác đặc trưng cho NLP bằng Python

Tiền xử lý văn bản

  • Lions, lionlion
  • The, thethe
  • Không dấu câu
  • Không stopword
  • Giảm kích thước vốn từ
  • Giảm số chiều giúp cải thiện hiệu năng
Khai thác đặc trưng cho NLP bằng Python

Mô hình túi từ với sklearn

corpus = pd.Series([
    'The lion is the king of the jungle',
    'Lions have lifespans of a decade',
    'The lion is an endangered species'
])
Khai thác đặc trưng cho NLP bằng Python

Mô hình túi từ với sklearn

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Tạo đối tượng CountVectorizer vectorizer = CountVectorizer()
# Tạo ma trận vector từ bow_matrix = vectorizer.fit_transform(corpus) print(bow_matrix.toarray())
array([[0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 3],
       [0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0],
       [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1]], dtype=int64)
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...