nlp-pytorch-chatbot
Các bước xây dựng project này:
1) Theory + NLP concepts (stemming, tokenization, bag of words)
Tổng quan mô hình cần làm:
Với các câu bên trái, ta mong muốn phần loại chúng vào các loại câu. Ví dụ:
-
Các câu
Hi
,How are you?
sẽ được phần loại vào classgreeting
-
Các câu
Bye
,See you later
sẽ được phân loại vào classgoodbye
Để có thể ứng dụng mô hình Neural network
vào đây, ta không thể để nguyên các câu mà sử dụng được mà ta cần phải mã hóa các câu dựa trên tập các từ tìm được từ tất cả các câu.
Vậy việc đầu tiên ta cần làm đó là tìm bag of words
a) Bag of words
Bag of words
là vector với các phần tử là các từ khác nhau được lấy ra từ tất cả các câu trong dataset.
Ví dụ với 4 câu trên, ta tìm được ra bộ các từ Hi, How, are, you, bye, see, later
và từ đó thành lập được bag of words
.
Mục đích của bag of words
đó chính là giúp chúng ta mã hóa các câu thành các vector có giá trị các phần tử chính là số lần xuất hiện của các từ trong bag of words
.
Bằng việc mã hóa như vậy ta đã được các inputs
dưới dạng các vector.
Các class greeting, goodbye...
được gán cho các giá trị số khác nhau để phân biệt. Thường thì sau đó ta sẽ dùng one-hot encoding
để mã hóa tiếp các giá trị số này.
=> Với các inputs
và labels
như trên ta sẽ xây dựng được mạng Neural Network
:
Các kĩ thuật tiền xử lý cho các câu, từ có thể nhắc đến là:
b) Tokenization
- Đây là kĩ thuật splitting chuỗi (câu) thành các
meaningful units
(các từ, dấu câu, số)
c) Stemming
Đây là kĩ thuật tạo ra root form
của các từ