Speech and Language Processing – P2 | Học phương pháp cùng Ngẫm

Series “Học phương pháp cùng Ngẫm” chính thức khởi động chuyên đề mới, tập trung nghiên cứu và hệ thống hóa kiến thức từ tài liệu nền tảng của ngành Xử lý Ngôn ngữ Tự nhiên: “Speech and Language Processing” (Bản thảo lần thứ 3) của hai tác giả Daniel Jurafsky và James H. Martin.

Daniel Jurafsky and James H. Martin. 2025. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models, 3rd edition. Online manuscript released August 24, 2025. https://web.stanford.edu/~jurafsky/slp3.

Xử lý văn bản là một giai đoạn tiền đề trong lĩnh vực Xử lý Ngôn ngữ Tự nhiên (NLP). Giai đoạn này bao gồm các kỹ thuật cơ bản nhằm cấu trúc hóa dữ liệu văn bản thô thành một định dạng máy có thể phân tích. Trong phần thứ hai, chúng ta sẽ đi sâu vào ba khái niệm nền tảng: tokenization dựa trên luật, vai trò của kho ngữ liệu, và ứng dụng của biểu thức chính quy.

Tokenization Dựa trên Luật (Rule-based Tokenization)

Tokenization là quá trình phân tách một chuỗi văn bản thành các đơn vị cơ sở gọi là token. Trong khi các phương pháp dựa trên dữ liệu như BPE (Byte Pair Encoding) phân tách văn bản thành các đơn vị từ con (subword), tokenization dựa trên luật vận hành theo một bộ quy tắc được định nghĩa trước để xác định ranh giới của token.

Phương pháp này được ứng dụng trong các bối cảnh mà đầu vào đòi hỏi các đơn vị từ vựng hoàn chỉnh theo ngữ pháp, chẳng hạn như trong các thuật toán phân tích cú pháp (parsing). Nó cũng phù hợp cho các nghiên cứu ngôn ngữ học hoặc khoa học xã hội khi đối tượng phân tích là các từ theo đúng dạng chính tả của chúng.

Việc thiết lập quy tắc cho tokenization đối diện với một số thách thức:

  • Dấu câu: Cần xác định khi nào một dấu câu nên được tách thành một token riêng (ví dụ, dấu phẩy cuối câu) và khi nào nên được giữ lại như một phần của token (ví dụ, dấu chấm trong từ viết tắt Ph.D. hoặc dấu gạch nối trong San Francisco-based).
  • Biểu thức số và ký tự đặc biệt: Các thực thể như giá tiền ($45.55), ngày tháng (01/02/06), URL, hoặc địa chỉ email cần được xem là một token đơn nhất.
  • Từ xiết (Clitics): Các dạng rút gọn như doesn’t cần được mở rộng thành các token cấu thành (does và n’t) để thể hiện đúng thành phần ngữ pháp.
  • Biểu thức đa từ: Các cụm từ như New York có thể được định nghĩa để xử lý như một token duy nhất, tùy thuộc vào yêu cầu của ứng dụng.

Một tiêu chuẩn phổ biến cho tokenization dựa trên luật là Penn Treebank. Tiêu chuẩn này có các quy tắc cụ thể cho việc xử lý từ xiết, từ ghép và các loại dấu câu. Về mặt kỹ thuật, các hệ thống này thường được triển khai bằng các thuật toán tất định dựa trên biểu thức chính quy để đảm bảo tốc độ xử lý.

Một quy trình liên quan là phân đoạn câu (sentence segmentation). Quá trình này cũng sử dụng các quy tắc, chủ yếu dựa vào các dấu câu kết thúc câu như ., ?, !. Thách thức chính là sự không rõ ràng của dấu chấm, vốn có thể vừa là dấu kết thúc câu, vừa là một phần của từ viết tắt.

Vai trò của Kho Ngữ liệu (Corpora)

Mọi mô hình NLP đều được xây dựng và kiểm định trên dữ liệu. Một tập hợp văn bản được thu thập cho mục đích này được gọi là kho ngữ liệu (corpus). Chất lượng và hiệu suất của một hệ thống NLP phụ thuộc trực tiếp vào đặc tính của kho ngữ liệu được sử dụng. Ngôn ngữ trong kho ngữ liệu không tồn tại biệt lập mà phản ánh bối cảnh sản sinh ra nó.

Các yếu tố ngữ cảnh cần được xem xét bao gồm:

  • Ngôn ngữ và biến thể: Một thuật toán cần được đánh giá trên nhiều ngôn ngữ và các biến thể, phương ngữ của chúng (ví dụ, tiếng Anh của người Mỹ gốc Phi – AAE).
  • Hiện tượng chuyển mã (Code switching): Việc sử dụng nhiều hơn một ngôn ngữ trong cùng một phát ngôn là một hiện tượng phổ biến và cần được các mô hình xử lý.
  • Thể loại (Genre): Đặc điểm ngôn ngữ thay đổi đáng kể giữa các thể loại văn bản như tin tức, văn bản pháp lý, hay hội thoại.
  • Nhân khẩu học và thời gian: Ngôn ngữ chịu ảnh hưởng từ các yếu tố như tuổi tác, giới tính của người sản sinh văn bản, cũng như giai đoạn lịch sử.

Để đảm bảo tính minh bạch và khả năng tái lập, các kho ngữ liệu cần đi kèm tài liệu mô tả chi tiết, thường gọi là datasheet hoặc data statement. Tài liệu này cung cấp thông tin về động lực thu thập, bối cảnh, đặc điểm nhân khẩu học, quy trình thu thập và gán nhãn dữ liệu.

Biểu thức Chính quy (Regular Expressions)

Biểu thức chính quy (regex) là một ngôn ngữ hình thức dùng để đặc tả các khuôn mẫu (pattern) trong chuỗi văn bản. Đây là công cụ cốt lõi để triển khai các hệ thống tokenization dựa trên luật và nhiều tác vụ xử lý văn bản khác.

Một số toán tử cơ bản trong biểu thức chính quy bao gồm:

  • Phép tuyển và dãy ký tự []: Cho phép khớp với một ký tự trong một tập hợp xác định. Ví dụ, [a-z] khớp với một chữ cái thường. Dấu ^ bên trong ngoặc vuông ([^…]) dùng để phủ định tập hợp đó.
  • Lượng từ (Quantifiers):
    • ?: Khớp 0 hoặc 1 lần xuất hiện của biểu thức đứng trước.
    • *: Khớp 0 hoặc nhiều lần.
    • +: Khớp 1 hoặc nhiều lần.
    • {n}: Khớp đúng n lần.
  • Ký tự đại diện .: Khớp với một ký tự bất kỳ (ngoại trừ ký tự xuống dòng).
  • Neo và ranh giới: Các toán tử này không khớp với ký tự mà khớp với một vị trí.
    • ^: Vị trí đầu dòng.
    • $: Vị trí cuối dòng.
    • \b: Ranh giới của một từ.
  • Phép tuyển | và nhóm (): Toán tử | cho phép khớp một trong nhiều khuôn mẫu (cat|dog). Dấu ngoặc đơn () được dùng để nhóm các biểu thức lại với nhau nhằm xác định phạm vi của các toán tử khác.
  • Nhóm bắt giữ (Capture Groups): Khi một phần của khuôn mẫu được đặt trong ngoặc đơn (…), chuỗi con khớp với phần đó sẽ được “bắt giữ”. Các chuỗi con này có thể được tham chiếu lại trong các tác vụ thay thế, cho phép thực hiện các phép biến đổi chuỗi phức tạp. Ví dụ, re.sub(r”(\d{2})/(\d{4})”, r”\2-\1”, …) có thể đảo ngược tháng và năm trong một chuỗi ngày.
  • Khẳng định nhìn trước (Lookahead Assertions): Đây là các cấu trúc zero-width (không tiêu thụ ký tự) cho phép kiểm tra sự tồn tại (hoặc không tồn tại) của một khuôn mẫu tại vị trí tiếp theo. (?=…) là nhìn trước khẳng định và (?!…) là nhìn trước phủ định.

Tokenization dựa trên luật, sự hiểu biết về bản chất của kho ngữ liệu, và việc sử dụng thành thạo biểu thức chính quy là những thành phần không thể thiếu trong bộ công cụ của một người làm NLP. Mặc dù các phương pháp dựa trên học máy ngày càng chiếm ưu thế, các kỹ thuật dựa trên luật vẫn giữ vai trò của chúng trong các ứng dụng cụ thể và cung cấp một nền tảng vững chắc để hiểu về cấu trúc của dữ liệu văn bản.

Leave a Reply

Your email address will not be published. Required fields are marked *