Quy trình Tokenization và ý nghĩa trong xử lý ngôn ngữ tự nhiên
Mục lục:
- Tokenization là gì?
- Tokenization từ vựng
- Giới hạn và vấn đề của WORD tokenizations
- Tokenization dựa trên từng ký tự
- Tokenization dựa trên tiền tố và hậu tố của từ
- Byte pair encoding
- Wordpiece và Sentence piece
- Ưu điểm của subword tokenization
- So sánh các phương pháp tokenization
- Ý nghĩa và ngữ cảnh trong xử lý ngôn ngữ tự nhiên
Sự quan trọng của Tokenization trong xử lý ngôn ngữ tự nhiên
Tokenization là quá trình chuyển đổi các từ hay các đoạn văn thành các đơn vị nhỏ hơn, gọi là tokens, mà máy tính có thể hiểu và xử lý. Trước khi chúng ta có thể sử dụng các phương pháp xử lý ngôn ngữ tự nhiên như machine learninghay deep learning, việc chuyển đổi văn bản thành dạng số là bước không thể thiếu. Tokenization giúp chúng ta tạo ra các tokens đại diện cho các từ, ký tự hoặc cụm từ, từ đó chúng ta có thể xây dựng các mô hình và tính toán.
1. Tokenization là gì?
Tokenization là quá trình chia các câu hoặc từ/phrases thành các tokens nhỏ hơn. Có nhiều cách để tách từ trong quá trình tokenization, các token này có thể là từ đơn, ký tự, hoặc các phần riêng biệt của từ. Việc chọn phương pháp tokenization phụ thuộc vào mục đích và nhiệm vụ cụ thể của dự án.
2. Tokenization từ vựng
Trước tiên, chúng ta cần tạo một từ điển chứa tất cả các token có thể xuất hiện trong tập dữ liệu huấn luyện. Ví dụ, nếu chúng ta có một từ điển tiếng Anh, chúng ta có thể đánh số từng từ trong từ điển để tạo ra một danh sách các số tương ứng với từ đó. Bằng cách làm như vậy, mỗi từ sẽ có một số ký hiệu đi kèm. Bất cứ khi nào chúng ta gặp một chuỗi mới của các token/từ, chúng ta có thể chuyển đổi chuỗi đó thành một danh sách các số tương ứng, từ đó chúng ta có thể sử dụng nó trong các mô hình máy học.
3. Giới hạn và vấn đề của word tokenizations
Tuy nhiên, việc sử dụng word tokenizations có một số hạn chế và vấn đề. Nếu chúng ta bỏ qua các từ thông thường hoặc không thông thường trong quá trình xây dựng từ điển, khi gặp lại chúng trong việc sử dụng mô hình ngôn ngữ, sẽ gây ra lỗi "oov" (out of vocabulary). Điều này là hạn chế của việc sử dụng word tokenizations vì chúng ta phải liên kết từng từ trong văn bản với một giá trị token cụ thể. Điều này cũng có nghĩa là nếu chúng ta gặp phải lỗi chính tả hoặc muốn tạo ra các từ mới, chúng ta không thể thực hiện được điều đó vì các hệ thống tokenization này không cho phép chúng ta thay đổi từ điển một cách dễ dàng. Ngoài ra, việc sử dụng word tokenizations dẫn đến danh sách từ vựng lớn, vì chúng ta phải tính toán cho mọi loại từ. Ví dụ, nếu chúng ta có từ "nhanh", "nhanh hơn", "nhanh nhất", chúng ta phải có ba token khác nhau để lưu trữ ba từ này. Điều này gây ra việc tạo ra danh sách từ khá lớn.
4. Tokenization dựa trên từng ký tự
Một cách tiếp cận để giảm kích thước từ điển là sử dụng tokenization dựa trên từng ký tự. Ví dụ, trong tiếng Anh chúng ta có 26 ký tự viết thường, 26 ký tự viết hoa cùng với một số dấu câu và ký tự số khác. Với phương pháp này, chúng ta chỉ cần một từ điển nhỏ, với kích thước khoảng 100. Điều này giúp tạo ra một từ điển nhỏ hơn, cho phép chúng ta tạo ra các từ mới, và giúp chúng ta phân biệt được sự sai chính tả. Tuy nhiên, vấn đề của phương pháp này là ta mất đi sự hiểu biết về ý nghĩa của từ. Bởi vì chúng ta chia nhỏ từ thành từng ký tự, ta mất đi khái niệm về từ. Đồng thời, chiều dài của chuỗi trở nên rất dài khi sử dụng tokenization dựa trên từng ký tự. Ví dụ, nếu ta sử dụng word tokenization, Hai token đầu tiên trong câu này sẽ là từ "the" và "Moon". Tuy nhiên, nếu ta sử dụng ký tự tokenization, hai token đầu tiên sẽ là "t" và "h", dẫn đến chiều dài chuỗi dài và gây ra nhiều vấn đề.
5. Tokenization dựa trên tiền tố và hậu tố của từ
Giải pháp trung gian giữa hai phương pháp trên sẽ là sử dụng tokenization dựa trên các phần của từ. Chẳng hạn như chúng ta có thể tách từ "subject" thành "sub" và "ject", từ đó chúng ta có thể xây dựng các từ khác như "object", "subjective", "subordinate", "submarine". Có nhiều phương pháp tokenization khác nhau để xây dựng từ điển như Byte Pair Encoding (BPE), wordpiece, sentence piece. Những phương pháp này giúp giảm kích thước từ điển và đồng thời mẫu tự linh hoạt trong việc tìm kiếm các từ nằm ngoài từ điển và tìm hiểu cách tạo ra ý nghĩa đủ từ các từ mô tả.
6. Ưu điểm của subword tokenization
Đối với các bài toán xử lý ngôn ngữ tự nhiên, subword tokenization là phương pháp phổ biến và mạnh mẽ nhất. Subword tokenization giúp cân bằng tốt nhất giữa số lượng token và kích thước từ điển. Bằng cách chia các từ thành các đơn vị nhỏ hơn, thông qua việc sử dụng các tiền tố, hậu tố của từ, ta không chỉ có thể giữ được ý nghĩa và ngữ cảnh mà từ mang lại mà còn giảm thiểu việc xử lý các chuỗi dài và phức tạp.
7. So sánh các phương pháp tokenization
So sánh các phương pháp tokenization, chúng ta có thể thấy rằng subword là phương pháp mang lại sự cân bằng tốt nhất giữa số lượng token và kích thước từ điển. Các phương pháp khác như tokenization dựa trên từ và tokenization dựa trên ký tự có nhược điểm riêng, không thể giữ nguyên ý nghĩa của từ hoặc dẫn đến việc xử lý các chuỗi dài và phức tạp.
8. Ý nghĩa và ngữ cảnh trong xử lý ngôn ngữ tự nhiên
Sau khi chúng ta có các token, chúng ta cần tìm cách tích hợp ý nghĩa và ngữ cảnh vào xử lý, đây sẽ là chủ đề của video tiếp theo.