Bag of words là gì?

Noun AI
bag-of-words
Túi từ

Mô hình túi từ (bag of words) là một cách trích xuất các đặc trưng (feature) từ văn bản để sử dụng trong mô hình hóa (modeling), chẳng hạn như với các thuật toán học máy (machine learning algorithm). Cách tiếp cận này rất đơn giản và linh hoạt, có thể được sử dụng trong vô số cách để trích xuất các đặc trưng từ tài liệu (document).

Một túi từ (bag of words) là một đại diện (representation) của văn bản mô tả sự xuất hiện của các từ trong một tài liệu. Nó liên quan đến hai điều:

  • Một vốn từ vựng của các từ đã biết.
  • Một thước đo về sự hiện diện của các từ đã biết.

Nó được gọi là "túi" từ, bởi vì bất kỳ thông tin nào về thứ tự hoặc cấu trúc của các từ trong tài liệu đều bị loại bỏ. Mô hình chỉ quan tâm đến việc các từ đã biết có xuất hiện trong tài liệu hay không, chứ không phải ở vị trí nào trong tài liệu.

Chúng ta sẽ tạo mô hình bag-of-words bằng một ví dụ:

Bước 1: Thu thập dữ liệu

Dưới đây là đoạn trích của vài dòng văn bản đầu tiên từ cuốn sách “Câu chuyện về hai thành phố” của Charles Dickens.

It was the best of times,
it was the worst of times,
it was the age of wisdom,
it was the age of foolishness,

Đối với ví dụ nhỏ này, hãy coi mỗi dòng là một tài liệu riêng biệt và 4 dòng là toàn bộ kho tài liệu của chúng ta.

Bước 2: Thiết kế Từ vựng

Bây giờ chúng ta có thể lập danh sách tất cả các từ trong kho từ vựng mô hình của chúng ta. Các từ duy nhất ở đây (bỏ qua chữ hoa và dấu câu) là:

“it”
“was”
“the”
“best”
“of”
“times”
“worst”
“age”
“wisdom”
“foolishness”

Từ vựng ở đây gồm 10 từ trong kho từ vựng chứa 24 từ

Bước 3: Tạo vectơ tài liệu (document vector)

Bước tiếp theo là cho điểm (score) các từ trong mỗi tài liệu. Mục tiêu là biến mỗi tài liệu văn bản tthành một vectơ mà chúng ta có thể sử dụng làm đầu vào hoặc đầu ra cho mô hình học máy (machine learning model).

Vì chúng ta biết từ vựng có 10 từ, chúng ta có thể sử dụng một đại diện cho tài liệu có độ dài cố định là 10, với một vị trí trong vectơ để cho điểm mỗi từ.

Phương pháp tính điểm đơn giản nhất là đánh dấu sự hiện diện của các từ dưới dạng giá trị boolean, 0 cho trường hợp vắng mặt, 1 cho có mặt.

Sử dụng thứ tự tùy ý của các từ được liệt kê ở trên trong vốn từ vựng của chúng ta, chúng ta có thể xem qua tài liệu đầu tiên ("It was the best of times") và chuyển nó thành một vectơ nhị phân (binary vector).

Điểm của tài liệu sẽ như sau:

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]

Ba tài liệu khác sẽ trông như sau:

"it was the worst of times" = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]
"it was the age of wisdom" = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0]
"it was the age of foolishness" = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]
Learning English Everyday