Tokenize là gì

Top 5 Word Tokenizer mà mọi nhà khoa học dữ liệu NLP nên biết

Mã hóa từ trong NLP sử dụng gói NLTK

Hình ảnh của tác giả

Token hóa là gì?

Tokenization là quá trình chia nhỏ văn bản thành các phần nhỏ hơn được gọi là token. Những phần nhỏ hơn này có thể là câu, từ hoặc phụ từ. Ví dụ: câu Tôi đã thắng có thể được mã hóa thành hai mã thông báo từ Tôi và đã thắng.

Định nghĩa chính thức về mã thông báo, theo ngôn ngữ học, là sự xuất hiện riêng lẻ của một đơn vị ngôn ngữ trong lời nói hoặc chữ viết, tương phản với loại hoặc lớp đơn vị ngôn ngữ mà nó là một ví dụ.

Các phương pháp mã hóa truyền thống bao gồm mã hóa khoảng trắng, dấu chấm câu hoặc mã hóa regex. Các mô hình ngôn ngữ mới như BERT và GPT đã thúc đẩy sự phát triển của các phương pháp mã hóa tiên tiến như mã hóa cặp byte, WordPiece và Thị trường câu.

Tại sao mã hóa lại hữu ích?

Tokenization cho phép máy đọc văn bản. Cả phương pháp học sâu và truyền thống trong lĩnh vực xử lý ngôn ngữ tự nhiên đều phụ thuộc rất nhiều vào mã hóa. Nó thường là bước tiền xử lý trong hầu hết các ứng dụng xử lý ngôn ngữ tự nhiên. Ví dụ, để đếm số lượng từ trong một văn bản, văn bản được chia nhỏ bằng cách sử dụng bộ tách sóng. Trong phương pháp học sâu và truyền thống, mã hóa được sử dụng cho kỹ thuật tính năng. Ví dụ: văn bản đầu vào được xử lý bằng cách sử dụng mã hóa từ khóa phụ WordPiece trước khi nó được đưa vào kiến ​​trúc mạng thần kinh của BERT.

Tokenizers từ là gì?

Word tokenizers là một trong những loại tokenizers chia một văn bản thành các từ. Các tokenizers này có thể được sử dụng để tạo ra một túi các từ thể hiện văn bản, có thể được sử dụng cho các tác vụ phía dưới như xây dựng mô hình word2vec hoặc TF-IDF.

Word tokenizers trong NLTK

[Sổ tay Jupyter cho bài tập này có sẵn tại đây ]

NLTK là một gói thường được sử dụng cho các ứng dụng xử lý ngôn ngữ tự nhiên. Các nltk.tokenize mô-đun cung cấp một số tùy chọn cho tokenizers. Chúng ta sẽ xem xét năm tùy chọn để mã hóa từ trong bài viết này.

Trước khi chúng tôi tiếp tục, hãy để chúng tôi nhập các chức năng có liên quan từ gói

Mã hóa khoảng trắng

Đây là hình thức mã hóa đơn giản và thường được sử dụng nhất. Nó tách văn bản bất cứ khi nào nó tìm thấy các ký tự khoảng trắng.

Nó là một lợi thế vì nó là một phương pháp mã hóa nhanh chóng và dễ hiểu. Tuy nhiên, do tính đơn giản của nó, nó không tính đến các trường hợp đặc biệt. Trong ví dụ, Jones sẽ là một mã thông báo hữu ích hơn Jones!.

Mã hóa dựa trên dấu câu

Mã hóa dựa trên dấu câu hơi nâng cao hơn so với mã hóa dựa trên khoảng trắng vì nó phân chia dựa trên khoảng trắng và dấu câu và cũng giữ lại các dấu câu.

Token hóa dựa trên dấu câu sẽ khắc phục được vấn đề ở trên và cung cấp mã thông báo Jones có ý nghĩa. Tuy nhiên, trong những trường hợp như "Ms.", có thể hữu ích nếu giữ lại dấu câu để phân biệt "Ms." từ "Ms" / "MS" / "mS" có thể có nghĩa là những thứ khác nhau trong các ngữ cảnh khác nhau.

Mặc định / TreebankWordTokenizer

Phương pháp mã hóa mặc định trong NLTK liên quan đến việc mã hóa bằng cách sử dụng các cụm từ thông dụng như được định nghĩa trong Penn Treebank [dựa trên văn bản tiếng Anh]. Nó giả định rằng văn bản đã được chia thành các câu.

Đây là một hình thức mã hóa rất hữu ích vì nó kết hợp một số quy tắc ngôn ngữ học để chia câu thành các mã thông báo tối ưu nhất.

TweetTokenizer

Các văn bản đặc biệt, như tweet Twitter, có cấu trúc đặc trưng và các trình mã hóa chung được đề cập ở trên không tạo ra các mã thông báo khả thi khi áp dụng cho các tập dữ liệu này. NLTK cung cấp một công cụ mã hóa đặc biệt cho các tweet để trợ giúp trong trường hợp này. Đây là một trình mã hóa dựa trên quy tắc có thể xóa mã HTML, xóa các ký tự có vấn đề, xóa các chốt điều khiển Twitter và chuẩn hóa độ dài văn bản bằng cách giảm sự xuất hiện của các chữ cái lặp lại.

MWETokenizer

Tokenizer biểu thức nhiều từ là một tokenizer bổ trợ dựa trên quy tắc do NLTK cung cấp. Khi văn bản đã được mã hóa bởi trình mã hóa tùy chọn, một số mã thông báo có thể được nhóm lại thành các biểu thức nhiều từ.

Ví dụ: tên Martha Jones được kết hợp thành một mã thông báo duy nhất thay vì được chia thành hai mã thông báo. Tokenizer này rất linh hoạt vì nó là bất khả thi của tokenizer cơ sở được sử dụng để tạo ra các mã thông báo.

Phần kết luận

Tokenization là một phần không thể thiếu của quá trình xử lý ngôn ngữ tự nhiên. Đây là bước đầu tiên trong việc dạy máy móc cách tiếp cận và vẫn quan trọng khi lĩnh vực này tiến triển thành học sâu. Có ba loại tokenizations - câu, từ và tiểu từ.

Trong bài viết này, chúng tôi đã đi sâu vào năm tùy chọn để mã hóa từ. Kết quả được tóm tắt trong bảng dưới đây:

Video liên quan

Chủ Đề