Xử lý ngôn ngữ tự nhiên, một nhánh nghiên cứu của trí tuệ nhân tạo, được phát triển nhằm xây dựng các chương trình máy tính có khả năng phân tích, xử lý, và hiểu ngôn ngữ con người. Công nghệ này đã và đang mang lại những ứng dụng hỗ trợ thiết thực trong các hoạt động vận hành doanh nghiệp cũng như nâng cao trải nghiệm khách hàng.
Một trong những mong muốn mãnh liệt, xuất hiện từ rất sớm của các nhà khoa học máy tính (computer science) nói chung và trí tuệ nhân tạo (artificial intelligence) nói riêng là xây dựng thành công các hệ thống, chương trình máy tính có khả năng giao tiếp với con người thông qua ngôn ngữ tự nhiên (natural language), tức thứ ngôn ngữ con người sử dụng hàng ngày thay vì các ngôn ngữ lập trình (programming language) hay ngôn ngữ máy (computer language) bậc thấp. Xử lý ngôn ngữ tự nhiên (natural language processing), một nhánh nghiên cứu của trí tuệ nhân tạo, trong đó phát triển các thuật toán, xây dựng các chương trình máy tính có khả năng phân tích, xử lý, và hiểu ngôn ngữ của con người, chính là lĩnh vực nhằm hiện thực hóa mục tiêu này. Do đó ngay từ khi trí tuệ nhân tạo mới ra đời (năm 1956), các nhà nghiên cứu đã đặt xử lý ngôn ngữ tự nhiên là một trong hai nhiệm vụ trọng tâm của trí tuệ nhân tạo, bên cạnh việc phát triển các chương trình máy tính có khả năng chiến thắng con người trong các trò chơi trí tuệ đối kháng. Bài viết này sẽ giới thiệu về lĩnh vực xử lý ngôn ngữ tự nhiên, các bước cơ bản trong xử lý ngôn ngữ tự nhiên, một số ứng dụng của xử lý ngôn ngữ tự nhiên, và cách thức công nghệ này giúp máy tính giao tiếp với con người.
Giới thiệu về xử lý ngôn ngữ tự nhiên (NLP)
Xử lý ngôn ngữ tự nhiên là một nhánh của Trí tuệ nhân tạo, tập trung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người, dưới dạng tiếng nói (speech) hoặc văn bản (text). Mục tiêu của lĩnh vực này là giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói.
Xử lý ngôn ngữ tự nhiên ra đời từ những năm 40 của thế kỷ 20, trải qua các giai đoạn phát triển với nhiều phương pháp và mô hình xử lý khác nhau. Có thể kể tới các phương pháp sử dụng ô-tô-mát và mô hình xác suất (những năm 50), các phương pháp dựa trên ký hiệu, các phương pháp ngẫu nhiên (những năm 70), các phương pháp sử dụng học máy truyền thống (những năm đầu thế kỷ 21), và đặc biệt là sự bùng nổ của học sâu trong thập kỷ vừa qua.
Xử lý ngôn ngữ tự nhiên có thể được chia ra thành hai nhánh lớn, không hoàn toàn độc lập, bao gồm xử lý tiếng nói (speech processing) và xử lý văn bản (text processing). Xử lý tiếng nói tập trung nghiên cứu, phát triển các thuật toán, chương trình máy tính xử lý ngôn ngữ của con người ở dạng tiếng nói (dữ liệu âm thanh). Các ứng dụng quan trọng của xử lý tiếng nói bao gồm nhận dạng tiếng nói và tổng hợp tiếng nói. Nếu như nhận dạng tiếng nói là chuyển ngôn ngữ từ dạng tiếng nói sang dạng văn bản thì ngược lại, tổng hợp tiếng nói chuyển ngôn ngữ từ dạng văn bản thành tiếng nói. Xử lý văn bản tập trung vào phân tích dữ liệu văn bản. Các ứng dụng quan trọng của xử lý văn bản bao gồm tìm kiếm và truy xuất thông tin, dịch máy, tóm tắt văn bản tự động, hay kiểm lỗi chính tả tự động. Xử lý văn bản đôi khi được chia tiếp thành hai nhánh nhỏ hơn bao gồm hiểu văn bản và sinh văn bản. Nếu như hiểu liên quan tới các bài toán phân tích văn bản thì sinh liên quan tới nhiệm vụ tạo ra văn bản mới như trong các ứng dụng về dịch máy hoặc tóm tắt văn bản tự động.
Xử lý văn bản bao gồm 4 bước chính sau:
- Phân tích hình vị: là sự nhận biết, phân tích, và miêu tả cấu trúc của hình vị trong một ngôn ngữ cho trước và các đơn vị ngôn ngữ khác, như từ gốc, biên từ, phụ tố, từ loại, v.v. Trong xử lý tiếng Việt, hai bài toán điển hình trong phần này là tách từ (word segmentation) và gán nhãn từ loại (part-of-speech tagging).
- Phân tích cú pháp: là quy trình phân tích một chuỗi các biểu tượng, ở dạng ngôn ngữ tự nhiên hoặc ngôn ngữ máy tính, tuân theo văn phạm hình thức. Văn phạm hình thức thường dùng trong phân tích cú pháp của ngôn ngữ tự nhiên bao gồm Văn phạm phi ngữ cảnh (Context-free grammar – CFG), Văn phạm danh mục kết nối (Combinatory categorial grammar – CCG), và Văn phạm phụ thuộc (Dependency grammar – DG). Đầu vào của quá trình phân tích là một câu gồm một chuỗi từ và nhãn từ loại của chúng, và đầu ra là một cây phân tích thể hiện cấu trúc cú pháp của câu đó.
- Phân tích ngữ nghĩa: là quá trình liên hệ cấu trúc ngữ nghĩa, từ cấp độ cụm từ, mệnh đề, câu và đoạn đến cấp độ toàn bài viết, với ý nghĩa độc lập của chúng. Nói cách khác, việc này nhằm tìm ra ngữ nghĩa của đầu vào ngôn từ. Phân tích ngữ nghĩa bao gồm hai mức độ: Ngữ nghĩa từ vựng biểu hiện các ý nghĩa của những từ thành phần, và phân biệt nghĩa của từ; Ngữ nghĩa thành phần liên quan đến cách thức các từ liên kết để hình thành những nghĩa rộng hơn.
- Phân tích diễn ngôn: là phân tích văn bản có xét tới mối quan hệ giữa ngôn ngữ và ngữ cảnh sử dụng (context-of-use). Phân tích diễn ngôn, do đó, được thực hiện ở mức độ đoạn văn hoặc toàn bộ văn bản thay vì chỉ phân tích riêng ở mức câu.
Điều gì khiến NLP là một lĩnh vực khó?
Có nhiều lý do khiến xử lý ngôn ngữ tự nhiên là một nhiệm vụ khó như tập từ vựng rộng lớp và được cập nhật thường xuyên, cấu trúc ngữ pháp linh hoạt và đôi khi khá lỏng lẻo, ngôn ngữ đôi khi thể hiện cảm xúc, ẩn ý của người viết. Tuy nhiên có hai lý do cơ bản nhất là tính nhập nhằng của ngôn ngữ (ambiguity) và sự cần thiết của tri thức nền (background knowledge). Tính nhập nhằng ta sẽ trao đổi ở phần sau, trước hết nói về tri thức nền.
Một đứa trẻ, từ khi sinh ra cho tới khi tập nói, tập đọc trải qua một giai đoạn dài phát triển. Trong giai đoạn này đứa trẻ không ngừng tiếp xúc với thế giới bên ngoài, có các trải nghiệm và tiếp thu kiến thức từ thế giới xung quanh. Những tri thức cơ bản dần dần được hình thành như lửa thì nóng, nước đá thì lạnh, đi đường đèn đỏ thì dừng, đèn xanh thì đi, nhưng không có đèn tím. Những tri thức này giúp ích rất nhiều cho con người trong việc hiểu ngôn ngữ. Việc đưa các tri thức nền này vào máy tính là thách thức lớn, đến nay vẫn chưa có giải pháp tốt.
Tiếp đến, về tính nhập nhằng của ngôn ngữ, nhập nhằng là hiện tượng xảy ra khi ngôn ngữ có thể được hiểu theo nhiều cách khác nhau, tùy thuộc vào ngữ cảnh mà nó xuất hiện. Trong xử lý ngôn ngữ tự nhiên, nhập nhằng có thể xuất hiện ở nhiều cấp độ, từ vựng, ngữ pháp, ngữ nghĩa, dẫn tới khó khăn trong việc xử lý trên máy tính. Xét các ví dụ sau:
Ví dụ 1:
They book that hotel. (S1)
They read that book. (S2)
Đầu tiên, từ book là nhập nhằng về mặt từ loại. Book có thể là một động từ (trong câu S1) hoặc một danh từ (trong câu S2) tùy thuộc vào ngữ cảnh xuất hiện của nó. Hiện tượng này gây khó khăn cho bài toán gán nhãn từ loại, một bước trong phân tích cú pháp. Không chỉ vậy, book cũng nhập nhằng về mặt ngữ nghĩa. Book có thể là một hành động đặt hàng thứ gì đó (trong câu S1) hoặc có thể là một văn bản viết được xuất bản dưới dạng in ấn hay điện tử (trong câu S2). Hiện tượng này gây khó khăn cho bài toán xác định nghĩa của từ, là một bước trong phân tích ngữ nghĩa.
Ví dụ 2:
Ở góc độ ngữ pháp, câu này có thể được giải thích theo hai cây cú pháp như trên Hình 1. Những cấu trúc khác nhau dẫn đến những cách hiểu khác nhau: “a computer understands you like your mother does” hoặc “a computer understands that you like your mother”. Hiện tượng này gây khó khăn cho cả hai bài toán là phân tích cú pháp và phân tích ngữ nghĩa.
Một số ứng dụng của NLP
NLP ngày càng được ứng dụng nhiều. Một số ứng dụng có thể kể đến như:
- Nhận dạng tiếng nói (Automatic Speech Recognition – ASR, hoặc Speech To Text – STT) chuyển đổi ngôn ngữ từ dạng tiếng nói sang dạng văn bản, thường được ứng dụng trong các chương trình điều khiển qua giọng nói.
- Tổng hợp tiếng nói (Speech synthesis hoặc Text to Speech – TTS) chuyển đổi ngôn ngữ từ dạng văn bản sang tiếng nói, thường được dùng trong đọc văn bản tự động.
- Truy xuất thông tin (Information Retrieval – IR) có nhiệm vụ tìm các tài liệu dưới dạng không có cấu trúc (thường là văn bản) đáp ứng nhu cầu về thông tin từ những nguồn tổng hợp lớn. Những hệ thống truy xuất thông tin phổ biến nhất bao gồm các công cụ tìm kiếm như Google, Yahoo, hoặc Bing search. Những công cụ này cho phép tiếp nhận một câu truy vấn dưới dạng ngôn ngữ tự nhiên làm đầu vào và cho ra một danh sách các tài liệu được sắp xếp theo mức độ phù hợp.
- Trích chọn thông tin (Information Extraction – IE) nhận diện một số loại thực thể được xác định trước, mối quan hệ giữa các thực thể và các sự kiện trong văn bản ngôn ngữ tự nhiên. Khác với truy xuất thông tin trả về một danh sách các văn bản hợp lệ thì trích chọn thông tin trả về chính xác thông tin mà người dùng cần. Những thông tin này có thể là về con người, địa điểm, tổ chức, ngày tháng, hoặc thậm chí tên công ty, mẫu sản phẩm hay giá cả.
- Trả lời câu hỏi (Question Answering – QA) có khả năng tự động trả lời câu hỏi của con người ở dạng ngôn ngữ tự nhiên bằng cách truy xuất thông tin từ một tập hợp tài liệu. Một hệ thống QA đặc trưng thường bao gồm ba mô đun: Mô đun xử lý truy vấn (Query Processing Module) – tiến hành phân loại câu hỏi và mở rộng truy vấn; Mô đun xử lý tài liệu (Document Processing Module) – tiến hành truy xuất thông tin để tìm ra tài liệu thích hợp; và Mô hình xử lý câu trả lời (Answer Processing Module) – trích chọn câu trả lời từ tài liệu đã được truy xuất.
- Tóm tắt văn bản tự động (Automatic Text Summarization) là bài toán thu gọn văn bản đầu vào để cho ra một bản tóm tắt ngắn gọn với những nội dung quan trọng nhất của văn bản gốc. Có hai phương pháp chính trong tóm tắt, là phương pháp trích xuất (extractive) và phương pháp tóm lược ý (abstractive). Những bản tóm tắt trích xuất được hình thành bằng cách ghép một số câu được lấy y nguyên từ văn bản cần thu gọn. Những bản tóm lược ý thường truyền đạt những thông tin chính của đầu vào và có thể sử dụng lại những cụm từ hay mệnh đề trong đó, nhưng nhìn chung được thể hiện ở ngôn ngữ của người tóm tắt.
- Chatbot là việc chương trình máy tính có khả năng trò chuyện (chat), hỏi đáp với con người qua hình thức hội thoại dưới dạng văn bản (text). Chatbot thường được sử dụng trong ứng dụng hỗ trợ khách hàng, giúp người dùng tìm kiếm thông tin sản phẩm, hoặc giải đáp thắc mắc.
- Dịch máy (Machine Translation – MT) là việc sử dụng máy tính để tự động hóa một phần hoặc toàn bộ quá trình dịch từ ngôn ngữ này sang ngôn ngữ khác. Các phương pháp dịch máy phổ biến bao gồm dịch máy dựa trên ví dụ (example-based machine translation – EBMT), dịch máy dựa trên luật (rule-based machine translation – RBMT), dịch máy thống kê (statistical machine translation – SMT), và dịch máy sử dụng mạng nơ-ron (neural machine translation).
- Kiểm lỗi chính tả tự động là việc sử dụng máy tính để tự động phát hiện các lỗi chính tả trong văn bản (lỗi từ vựng, lỗi ngữ pháp, lỗi ngữ nghĩa) và đưa ra gợi ý cách chỉnh sửa lỗi.
Giao tiếp giữa người và máy dựa trên NLP
Ngày nay, nhiều hệ thống/chương trình máy tính có khả năng giao tiếp với con người thông qua ngôn ngữ tự nhiên, hoặc dưới dạng văn bản, hoặc dưới dạng tiếng nói. Các ứng dụng tiêu biểu giao tiếp dưới dạng văn bản có thể kể đến như tìm kiếm thông tin, chatbot, dịch máy. Các ứng dụng giao tiếp qua tiếng nói như trợ lý ảo, tìm kiếm bằng giọng nói (điện thoại, tivi), và điều khiển qua giọng nói (điện thoại, các thiết bị gia đình).
Hình 2 mô tả kiến trúc tiêu biểu của một chương trình máy tính giao tiếp với con người qua tiếng nói. Chương trình sẽ bao gồm các bước cơ bản sau:
- Nhận dạng tiếng nói: ở bước này, máy tính sẽ nhận dạng yêu cầu của người dùng ở dạng tiếng nói và chuyển yêu cầu này về dạng văn bản.
- Xử lý yêu cầu: máy tính sẽ phân tích yêu cầu ở dạng văn bản, xử lý, đưa ra câu trả lời sử dụng các kỹ thuật trong xử lý văn bản.
- Tổng hợp tiếng nói: ở bước này, câu trả lời sẽ được chuyển từ dạng văn bản sang tiếng nói và gửi tới người dùng.
Công nghệ xử lý ngôn ngữ tự nhiên ngày càng có nhiều ứng dụng tốt, dần phổ biến, và gần gũi với cuộc sống hàng ngày. Với sự tiến bộ không ngừng về mặt kỹ thuật, tốc độ xử lý, độ chính xác được cải thiện, xử lý ngôn ngữ tự nhiên đã từng bước trở thành công nghệ giúp máy tính hiểu và giao tiếp với con người thông qua ngôn ngữ của chính chúng ta.
Nguồn tham khảo
(1) ACL Anthology. N.d. A Digital Archive of Research Papers in Computational Linguistics.
(2) Daniel Jurafsky, James H. Martin. 2009. Prentice-Hall 2nd edition. Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics.
(3) Christopher Manning and Hinrich Schütze. 1999. MIT Press. Foundations of Statistical Natural Language Processing.
(4) Christopher Manning, Hinrich Schütze, and Prabhakar Raghavan. 2008. Cambridge University Press. Introduction to Information Retrieval.