What is Tokenization?
Tokenization được hiểu đơn giản là quá trình chia nhỏ văn bản thành các thành phần nhỏ hơn, gọi là token. Các token này có thể là từ, cụm từ hoặc có thể là ký tự. Sau quá trình này, các token sẽ được đẩy làm các vector giúp cho máy tính nắm được thông tin.
Rule-Based Tokenization
Rule-based Tokenization là một phương pháp sử dụng một số quy tắc được xác định từ trước để thực hiện quá trình tokenization. Các quy tắc này có thể dựa trên biểu thức chính quy hoặc mẫu ngữ pháp. Ví dụ, một quy tắc đơn giản có thể là chia văn bản thành các token theo các ký tự khoảng trắng như dấu cách hoặc tab. Một quy tắc khác có thể là chia văn bản theo các dấu câu như dấu phẩy hoặc dấu chấm.
Điểm mạnh: Đơn giản và nhanh chóng Điểm yếu: Dễ bị mắc lỗi nếu không được xây dựng cẩn thận và thực tế ngôn ngữ không đơn giản như vậy
Dictionary-Based Tokenization
Dictionary-Based Tokenization là phương pháp tokenization với ý tưởng chính là sử dụng một danh sách các từ hoặc cụm từ được định nghĩa từ trước để khớp các phân đoạn văn bản với các token. Danh sách từ được định nghĩa từ trước này có thể gọi là Dictionary hoặc là Lexicon. -> Có thể xử lý những trường hợp những từ viết tắt, tiếng lóng hoặc là icon
Điểm mạnh: Xử lý những trường hợp bất thường mà không phù hợp với quy tắc. Có tính linh động vì có thể tùy chỉnh cho từng tác vụ cụ thể. Điểm yếu: Cần một Dict có sẵn, gặp bắt lợi những trường hợp chưa chuẩn bị trong từ điển.
Statistical-Based Tokenization
Statistical-based tokenization là một phương pháp sử dụng các mô hình thống kê được huấn luyện trên khối lượng lớn văn bản để học các mẫu phân bố xác suất cho việc chia nhỏ văn bản thành các token. Các mô hình này sử dụng các đặc điểm khác nhau như tần suất n-gram hoặc thẻ loại từ để xác định vị trí chèn ranh giới giữa các token.
Điểm mạnh: Khả năng thích ứng mở rộng và khả năng linh động Điểm yếu: Yêu cầu vấn đề về dữ liệu và Chi phí tính toán
Penn Tree Tokenization
Phương pháp này dựa trên các hướng dẫn phân tách từ Penn Treebank, được sử dụng rộng rãi trong lĩnh vực xử lý ngôn ngữ tự nhiên. Theo phương pháp này, các token được phân tách bằng các ký tự khoảng trắng, nhưng một số dấu câu được xem như các token riêng biệt.
Moses Tokenization
Phương pháp này là một dạng phân tách từ nâng cao hơn, trong đó các token được phân tách bằng các ký tự khoảng trắng và một số dấu câu nhất định. Ngoài ra, nó có thể xử lý các ký tự Unicode và các trường hợp đặc biệt như chữ viết tắt và số.
Subword Tokenization
Phương pháp này rất hữu ích khi xử lý các ngôn ngữ có vốn từ vựng lớn hoặc xử lý những từ "ngoài vốn từ vựng". Theo phương pháp này, các từ được phân tách thành các đơn vị dưới từ dựa trên tần suất xuất hiện của chúng trong kho văn bản. Điểm mạnh: Xử lý tốt các từ "ngoài vốn từ vựng" bằng cách chia chúng thành các đơn vị dưới từ nhỏ hơn. Có thể được sử dụng để tạo ra một vốn từ vựng kích thước cố định. Điểm yếu: Có thể tạo ra một số lượng lớn dưới từ cho những từ dài, dẫn đến chuỗi token dài hơn và sử dụng bộ nhớ cao hơn. Huấn luyện có thể tốn nhiều tài nguyên tính toán, đặc biệt đối với các bộ dữ liệu lớn hơn. Byte-Pair Encoding
Đây là một kỹ thuật nén dữ liệu cũng có thể được sử dụng cho việc phân tách từ. Nó hoạt động bằng cách thay thế cặp byte xuất hiện thường xuyên nhất bằng một byte đơn, và lặp lại quá trình này cho đến khi đạt được kích thước vốn từ vựng mong muốn.
Some Tools Support Tokenization Processing
NLTK TextBlob spaCy Gensim Keras Tokenization Pretrain: BERT