3 giai đoạn xử lý văn bản đầu vào trong NLP: tokenization, stop word và stemming

Trước khi sử dụng một mô hình (model) để huấn luyện robot, chúng ta cần phải tiến hành giai đoạn tiền xử lý, cho dù dữ liệu mà bạn đang làm việc ở định dạng nào: văn bản, hình ảnh hoặc âm thanh. 
3 giai đoạn xử lý văn bản đầu vào trong NLP: tokenization, stop word và stemming
3 giai đoạn xử lý văn bản đầu vào trong NLP: tokenization, stop word và stemming
Nguyễn Văn Hiến
14:57 ngày 07/11/2023
0
0

Trước khi sử dụng một mô hình (model) để huấn luyện robot, chúng ta cần phải tiến hành giai đoạn tiền xử lý, cho dù dữ liệu mà bạn đang làm việc ở định dạng nào: văn bản, hình ảnh hoặc âm thanh. 

Mỗi loại dữ liệu sẽ có cách mã hóa (token) khác nhau để chuyển đổi chúng thành các tín hiệu (tensors):

(1) Nếu dữ liệu là dạng text, việc mã hóa sẽ tiến hành theo trình tự: chuyển văn bản thành token; biểu diễn số của mã thông báo và chuyển chúng thành các tensors.

(2) Nếu dữ liệu là âm thanh, giọng nói thì sử dụng Featured extractor để chuyển đổi sang tensors.

(3) Nếu dữ liệu là hình ảnh thì sử dụng mô hình Image Processing để xứ lý.

3 giai đoạn trong tiến trình xử lý văn bản đầu vào

Có nhiều bước để xử ký văn bản đầu vào, như là token hóa (tokenization), loại bỏ từ thừa (stop word) và đưa từ ngữ về trạng thái gốc (stemming). Trong đó token hóa là bước quan trọng nhất trong tiến trình xử lý văn bản.

Tokenization: Tokenization là quá trình chia một đoạn văn bản thành các "token," nghĩa là các đơn vị nhỏ hơn, như từ hoặc dấu câu. Ví dụ, câu "This is a sentence" sau khi được tokenization sẽ trở thành các token riêng biệt: ["This", "is", "a", "sentence"]. Tokenization là bước quan trọng trong NLP vì nó giúp máy tính hiểu cấu trúc của văn bản.

Stop Words: Stop words là các từ phổ biến và thường gặp trong ngôn ngữ mà thường không đóng góp nhiều ý nghĩa cho việc phân tích văn bản. Các từ như "the," "and," "is," "in," thường được loại bỏ khỏi văn bản trong quá trình xử lý để giảm kích thước và cải thiện hiệu suất của các mô hình NLP. Loại bỏ stop words có thể giúp tập trung vào các từ quan trọng hơn trong văn bản.

Stemming: Stemming là quá trình chuyển các từ về dạng cơ sở (stem) bằng cách loại bỏ các phần đuôi từ.

Ví dụ, từ "running" có thể được chuyển về "run." Mục tiêu của stemming là giảm từ vựng của văn bản và đưa các từ về dạng cơ sở để cải thiện sự khớp giữa các từ tương tự. Tuy nhiên, stemming có thể dẫn đến việc mất mát một phần nghĩa của các từ.

Tìm hiểu về giai đoạn token hóa (Tokenization)

Theo định nghĩa của nhóm NLP Stanford: Tokenizer là công cụ để cắt văn bản ra thành nhiều mảnh, đồng thời loại bỏ các ký tự không cần thiết, và các mảnh rời rạc sau khi phân tách được gọi là token.

Một tokenizer có nhiệm vụ ngắt các khoản trắng (space) trong văn bản thành các từ đơn riêng lẽ theo một quy tắc được thiết lập trước, sau đó chuyển nó thành các ký tự số từ 0-9. Trong một vài trường hợp, người ta còn xem xét có nên phân tách thành ngữ và các cụm từ đặc biệt hay không?

Tại sao phải là các ký tự số? Đơn giản là máy tính không hiểu được ngôn ngữ của con người và các mô hình chỉ có thể xử lý các ký tự số. Hay nói cụ thể hơn, ngôn ngữ của con người là không có cấu trúc, và để máy tính xử lý được loại ngôn ngữ tự nhiên này thì phải tái cấu trúc nó về một định dạng có cấu trúc nào đó.

Mục tiêu của việc mã hóa rất đơn giản, tìm ra cốt lõi của văn bản, quan hệ phụ thuộc giữa các từ trong câu...

Sau khi đã có token, mô hình (model) sẽ lưu trữ token trong một cấu trúc dữ liệu đa chiều và từng bước xử lý chúng.

Các kiểu hình thức token hóa văn bản

Ở phần trên chúng tôi đã nói về hình thức phân đoạn từ (Word Token), ngoài ra trong xử lý ngôn ngữ còn có nhiều loại hình thức token khác nhau:

Word Tokenization (Phân đoạn từ)

Word tokenization là quá trình chia một đoạn văn bản thành các từ riêng biệt hoặc "token." Một token thường tương ứng với một từ hoặc một dãy liên kết các ký tự có nghĩa.

Cụ thể, Word Tokenization là quá trình chia văn bản thành các từ. Đây là loại tokenization phổ biến nhất và được sử dụng trong nhiều ứng dụng NLP khác nhau, chẳng hạn như phân tích cú pháp, phân tích ngữ nghĩa và phân loại văn bản.

Ví dụ: "This is a sentence" sau khi word tokenization sẽ trở thành ["This", "is", "a", "sentence"].

Sentence Tokenization (Phân đoạn câu)

Sentence tokenization là quá trình chia một đoạn văn bản thành các câu riêng biệt. Một câu thường bắt đầu bằng một ký tự chấm câu, dấu chấm phẩy, hoặc các dấu câu tương tự. Đây là một bước quan trọng trước khi thực hiện nhiều tác vụ NLP, chẳng hạn như tóm tắt văn bản và trả lời câu hỏi.

Ví dụ: "This is a sentence. And this is another one." sau khi sentence tokenization sẽ trở thành ["This is a sentence.", "And this is another one."].

Subword Tokenization (Phân đoạn phụ-từ)

Subword tokenization là quá trình chia một đoạn văn bản thành các phần nhỏ hơn hơn cả đơn vị từ (subword), chẳng hạn như các tiền tố, tiếp tố và thân từ. Loại tokenization này thường được sử dụng trong các mô hình ngôn ngữ lớn, vì nó giúp các mô hình học được các mối quan hệ giữa các từ và tạo ra các dự đoán chính xác hơn.

Các phương pháp subword tokenization thường sử dụng để xử lý các từ lạ, từ ngoại ngữ hoặc ngôn ngữ có cấu trúc phức tạp hơn. 

Ví dụ, trong subword tokenization, từ "unhappiness" có thể được chia thành ["un", "happiness"].

Character Tokenization (Phân đoạn ký tự)

Character tokenization là quá trình chia một đoạn văn bản thành các ký tự riêng biệt. Mỗi ký tự trong văn bản được coi là một token độc lập. Loại tokenization này thường được sử dụng trong các ứng dụng NLP đòi hỏi độ chính xác cao, chẳng hạn như nhận dạng thực thể tên và xác định vị trí cảm xúc.

Morphological Tokenization (Phân đoạn hình thái):

Morphological Tokenization là quá trình chia các từ thành các morpheme, tức là các đơn vị ngôn ngữ nhỏ nhất có nghĩa. Ví dụ như tiền tố, hậu tố, gốc từ, và các biến thể morfem khác.

Loại tokenization này thường được sử dụng trong các ngôn ngữ có nhiều quy tắc ngữ pháp phức tạp về hình thái học, chẳng hạn như tiếng Ả Rập và tiếng Hebrew.

Không phải tất cả các kiểu hình thức token đều được lựa chọn sử dụng trong một mô hình, tùy vào yêu cầu của ứng dụng mà lựa chọn hình thức cho phù hợp.
 

Tác giả

Nguyễn Văn Hiến

Tôi là Nguyễn Văn Hiến, Founder của Tummosoft. Tôi có hơn 20 năm lập trình, vào thời điểm máy vi tính còn là tài sản quý giá của người giàu. Nhưng sức đam mê công nghệ của tôi đã giúp tôi vượt qua những khó khăn và theo đuổi nghề lập trình. Đối với tôi, sáng tạo các sản phẩm công nghệ bằng ngôn ngữ cũng giống như người nghệ sĩ sáng tác những họa phẩm.

Tổng quan về xử lý ngôn ngữ tự nhiên

Chatbot ngày nay đã vượt qua vai trò là công cụ tiêu khiển, nó thông minh hơn, hiểu biết nhiều vấn đề hơn, biết lập trình và biết xử lý cả tình huống…. Và để có được thành tựu như hôm nay, chatbot đã khởi đầu bằng công nghệ kiểu như robot ELIZA.

Hệ thống lý luận Bayesian

Từ những năm 1960, việc sử dụng kho ngữ liệu lớn để xử lý ngôn ngữ tự nhiên bắt đầu được định hình. Bộ sưu tập Ameriacan English đã tổng hợp được hơn một triệu văn bản từ các tạp chí, báo, tiểu thuyết...

Mô hình xác xuất The Noisy Channel, giải pháp xử lý tín hiệu bị nhiễu sau truyền dẫn

Giai đoạn thứ 3 (1970-1983) chứng kiến sự phát triển mạnh mẽ của ngành xử lý ngôn ngữ tự nhiên và nhận dạng tiếng nói và đồng thời các thuật toán và mô hình đã được phát triển đó vẫn được duy trì phát triển.

Mô hình ẩn Hidden Markov Model (HMM), bước tiến lớn trong lĩnh vực trí tuệ nhân tạo

Mô hình ẩn Hidden Markov Model (HMM) được phát triển trên lý thuyết xác xuất thông kê, giả định rằng: Có 2 nguồn thông tin: (1) Một nguồn thì có thể thu thập được; và nguồn thứ (2) thì không thu thập được (bị ẩn). Và chúng ta có thể giải mã nguồn thông tin thứ 2 qua xác xuất và suy luận.

Xác suất có điều kiện (conditional probability) và ví dụ bằng Java

Xác suất có điều kiện là bài toán dùng để tính một sự kiện B có (hoặc không) khả năng xảy ra khi biết rằng sự kiện A đã xảy ra. Công thức dùng để tính xác xuất có điều kiện là P(B|A).

Automata không có gì khó hiểu!

Khi nhắc đến Lý thuyết tính toán (Theory of Computation) nghĩa là chúng ta đang bàn đến một nhánh của Khoa học máy tính (Coputer Science), lĩnh vực có thể giải quyết các vấn đề tính toán bằng cách sử dụng thuật toán (algorithm) và các mô hình tính toán (model of computation).