CHƯƠNG 1: BÀI TOÁN PHÂN LOẠI VĂN BẢN 1. TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI VĂN BẢN Phân loại văn bản - định nghĩa có vẻ đơn giản nhưng lại ẩn chứa sức mạnh to lớn. Nó được xem là một lĩnh vực quan trọng trong xử lý ngôn ngữ tự nhiên (NLP), với mục tiêu gán nhãn các văn bản vào một hoặc nhiều nhóm phân loại đã định trước. Các ứng dụng thực tế của phân loại văn bản bao gồm phân tích cảm xúc (xác định cảm xúc tích cực hoặc tiêu cực trong đánh giá), phát hiện spam (như phát hiện email spam), và phân loại chủ đề (như các bài báo tin tức vào các chủ đề liên quan).
Phân loại văn bản đóng vai trò quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) bằng cách cho phép máy tính hiểu và tổ chức các lượng lớn văn bản không có cấu trúc. Điều này đơn giản hóa các nhiệm vụ như lọc nội dung, hệ thống gợi ý, và phân tích phản hồi từ khách hàng. Các hình thức phân loại văn bản thường gặp bao gồm: [1] • Phân tích cảm xúc (Sentiment Analysis): Xác định cảm xúc hoặc tình cảm được thể hiện trong một đoạn văn bản, thường phân loại là tích cực, tiêu cực hoặc trung lập. Được sử dụng để phân tích đánh giá sản phẩm, bài đăng trên mạng xã hội và phản hồi từ khách hàng.
• Phát hiện độc hại (Toxicity Detection): Liên quan đến phân tích cảm xúc, nhận diện các ngôn từ xúc phạm hoặc có hại trực tuyến. Giúp các quản trị viên của cộng đồng trực tuyến duy trì môi trường kỳ lịch trong các thảo luận trực tuyến, bình luận hoặc bài đăng trên mạng xã hội. • Nhận diện ý định (Intent Recognition): Là một phần con của phân tích cảm xúc, được sử dụng để hiểu mục đích (hoặc ý định) đằng sau lời nhập văn bản của người dùng. Các trợ lý ảo và trợ lý ảo thường sử dụng nhận diện ý định để đáp ứng các truy vấn của người dùng.
• Phân loại nhị phân (Binary Classification): Phân loại văn bản thành một trong hai lớp hoặc danh mục. Một ví dụ phổ biến là phát hiện spam, phân loại các văn bản như email hoặc tin nhắn thành loại spam hoặc hợp lệ để tự động lọc bỏ nội dung không mong muốn và có thể gây hại. 3 • Phân loại đa lớp (Multiclass Classification): Phân loại văn bản thành ba lớp hoặc nhiều hơn. Điều này giúp dễ dàng tổ chức và truy xuất thông tin từ các nội dung như bài báo, bài đăng blog hoặc các nghiên cứu.
• Phân loại chủ đề (Topic Categorization): Liên quan đến phân loại đa lớp, nhóm các tài liệu hoặc bài báo vào các chủ đề hoặc đề tài được xác định trước. Ví dụ, các bài báo có thể được phân loại thành các chủ đề như chính trị, thể thao và giải trí. • Xác định ngôn ngữ (Language Identification): Xác định ngôn ngữ mà một đoạn văn bản được viết. Điều này hữu ích trong các ngữ cảnh đa ngôn ngữ và các ứng dụng liên quan đến ngôn ngữ.
• Nhận dạng thực thể định danh (Named Entity Recognition): Tập trung vào việc nhận diện và phân loại các thực thể định danh trong văn bản, như tên của người, tổ chức, địa điểm và ngày tháng. • Phân loại câu hỏi (Question Classification): Xử lý việc phân loại các câu hỏi dựa trên loại câu trả lời dự kiến, có ích cho các công cụ tìm kiếm và hệ thống trả lời câu hỏi. Bài toán phân loại văn bản có đầu vào và đầu ra như sau: Hình 1.1: Input và Output của bài toán phân loại văn bản [2] − Đầu vào (Input): • Văn bản đầu vào: Là các đoạn văn bản, câu, hoặc tài liệu mà chúng ta muốn phân loại vào các lớp hay danh mục đã được xác định trước. • Dữ liệu ngôn ngữ tự nhiên: Được biểu diễn bằng các từ, cụm từ, hoặc câu, có thể có các dạng khác nhau như tiếng Việt, tiếng Anh, hoặc các ngôn ngữ khác.
4 − Đầu ra (Output): • Nhãn hoặc lớp đầu ra: Là các nhãn hoặc lớp mà mô hình phân loại dự đoán cho mỗi đoạn văn bản đầu vào. Ví dụ như chính trị, kinh tế, giải trí, thể thao, y tế, v. trong phân loại các bài báo. • Xác suất phân loại: Một số mô hình có thể đưa ra xác suất cho mỗi lớp, giúp xác định độ chắc chắn của việc phân loại.
Qui trình thực hiện bài toán phân loại văn bản: [1] Hình 1.2: Qui trình thực hiện bài toán phân loại văn bản [3] • Thu thập dữ liệu: Thu thập một tập các tài liệu văn bản cùng với các nhãn tương ứng để sử dụng trong quá trình gán nhãn văn bản. • Tiền xử lý dữ liệu: Chuẩn bị dữ liệu văn bản bằng cách loại bỏ các ký tự không cần thiết, chuyển đổi về chữ thường, và xử lý các ký tự đặc biệt như dấu câu. • Tách từ (Tokenization): Phân chia văn bản thành các đơn vị nhỏ gọi là “tokens”, ví dụ như các từ. Quá trình này giúp tạo ra các đơn vị có thể tìm kiếm độc lập và hữu ích cho việc tìm kiếm vector và ngữ nghĩa, cung cấp kết quả dựa trên ý định người dùng.
• Trích xuất đặc trưng: Chuyển đổi văn bản thành các biểu diễn số học để mô hình học máy có thể hiểu. Các phương pháp phổ biến bao gồm đếm số lần xuất hiện của từ (gọi là Bag-of-Words) hoặc sử dụng nhúng từ để bắt lấy ý nghĩa của từ. • Huấn luyện mô hình: Sử dụng dữ liệu đã được tiền xử lý để huấn luyện một mô hình học máy. Mô hình sẽ học các mẫu và mối liên hệ giữa các đặc trưng của văn 5 bản và nhãn tương ứng.
Quá trình này giúp mô hình hiểu các quy ước gán nhãn văn bản từ các ví dụ đã được gán nhãn trước đó. • Đánh giá mô hình: Đánh giá hiệu suất của mô hình đã huấn luyện trong việc phân loại văn bản chưa được nhìn thấy. • Điều chỉnh siêu tham số (Hyperparameter tuning): Điều chỉnh các thiết lập của mô hình dựa trên kết quả đánh giá để tối ưu hóa hiệu suất của nó. • Triển khai mô hình (Model deployment): Quá trình sử dụng mô hình đã được huấn luyện và điều chỉnh để phân loại dữ liệu văn bản mới vào các danh mục phù hợp của chúng.2 BÀI TOÁN PHÂN LOẠI BÀI BÁO VÀ TIN TỨC TIẾNG VIỆT Phân loại bài báo và tin tức tiếng Việt là một nhánh cụ thể trong bài toán phân loại văn bản, với các đặc thù riêng về ngôn ngữ và ứng dụng thực tế.
Trên Internet hiện nay, nguồn thông tin từ các bài báo và tin tức tiếng Việt ngày càng phong phú và đa dạng. Bài toán đặt ra vấn đề là làm thế nào để tự động phân loại các văn bản này vào các danh mục chủ đề như chính trị, kinh tế, xã hội, thể thao, giải trí, và nhiều lĩnh vực khác. Đây là một bài toán quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP), giúp máy tính hiểu và tổ chức các lượng lớn dữ liệu văn bản một cách tự động và hiệu quả.1 Đặc điểm ngôn ngữ tiếng Việt Tiếng Việt có những đặc điểm ngôn ngữ riêng biệt so với các ngôn ngữ khác: − Tiếng Việt có hệ thống dấu thanh gồm 6 dấu làm tăng độ phức tạp trong việc xử lý ngôn ngữ − Cấu trúc từ vựng trong Tiếng Việt thường là từ đơn âm hoặc ghép từ đơn âm, tạo ra nhiều cách hiểu khác nhau tuỳ vào ngữ cảnh. Ví dụ, từ “nhà sách” có thể hiểu là nơi bán sách hoặc nhà thuộc về sách, phụ thuộc vào ngữ cảnh sử dụng.
− Về ngữ pháp, Tiếng Việt có cấu trúc linh hoạt và có nhiều điẻm khác biệt so với các ngôn ngữ khác 1.2 Thách thức trong phân loại bài báo, tin tức tiếng Việt Phân loại bài báo và tin tức tiếng Việt đặt ra nhiều thách thức. Đầu tiên, các nội dung này mang tính đa dạng về chủ đề và ngữ cảnh, từ chính trị, kinh tế, xã hội, đến thể 6 thao, giải trí và nhiều lĩnh vực khác. Điều này yêu cầu mô hình phân loại phải đủ linh hoạt để nhận diện và phân biệt giữa các loại nội dung khác nhau. Thứ hai, ngôn ngữ trong các bài viết thường sử dụng các biểu hiện ngôn ngữ tự nhiên, không chính thức, thậm chí là tiếng lóng, làm tăng độ phức tạp trong quá trình phân loại.
Bên cạnh đó, việc thu thập và gán nhãn dữ liệu tiếng Việt chất lượng để huấn luyện mô hình cũng là một thách thức lớn, đặc biệt là với số lượng dữ liệu lớn và độ phức tạp của ngôn ngữ tự nhiên.3 Phương pháp tiếp cận và mô hình ứng dụng cho bài toán Các mô hình học sâu như CNNs và RNNs, thường được áp dụng cho dữ liệu hình ảnh và dữ liệu tuần tự, hiện đang được sử dụng để phân loại văn bản [1]. Đặc biệt, PhoBERT và Longformer PhoBERT đã được phát triển để giải quyết các thách thức đặc thù của ngôn ngữ tiếng Việt. Những mô hình này có khả năng: − Hiểu ngữ cảnh tiếng Việt: Nắm bắt được ngữ cảnh và mối quan hệ giữa các từ trong câu tiếng Việt. − Học từ dữ liệu tiếng Việt: Học từ các tập dữ liệu tiếng Việt lớn, cải thiện độ chính xác và khả năng tổng quát hóa.
− Tự động hóa trích xuất đặc trưng: Tự động trích xuất các đặc trưng từ văn bản tiếng Việt, giảm thiểu sự can thiệp của con người. Trong khóa luận này, nhóm sẽ tiếp cận vấn đề theo hai hướng chính: − Sử dụng PhoBERT như một công cụ trích xuất đặc trưng: Đóng băng tất cả các lớp của PhoBERT và sử dụng nó như một bộ trích xuất đặc trưng. Sau đó, huấn luyện một hoặc nhiều bộ phân loại dựa trên các đặc trưng này với các nhãn đã biết. Phương pháp này sử dụng các trạng thái ẩn cuối cùng của PhoBERT để trích xuất đặc trưng.
Các trích xuất đặc trưng này tạo ra một ma trận đặc trưng để xây dựng các tập huấn luyện, kiểm tra và xác thực. − Fine-tuning PhoBERT: Tiến hành điều chỉnh lại các tham số của PhoBERT thông qua quá trình fine-tuning. Quá trình này cho phép điều chỉnh các trọng số của PhoBERT trên tập dữ liệu huấn luyện cụ thể, giúp cải thiện hiệu suất của mô hình cho bài toán phân loại văn bản tiếng Việt.3 CÁC CÔNG TRÌNH ỨNG DỤNG LIÊN QUAN TỚI BÀI TOÁN PHÂN LOẠI VĂN BẢN TIẾNG VIỆT 1.1 PhoBERT: Pre-trained language models for Vietnamese Trong nghiên cứu này, Dat Quoc Nguyen từ VinAI Research (Việt Nam) và Anh Tuan Nguyen từ NVIDIA (Hoa Kỳ) đã giới thiệu mô hình ngôn ngữ PhoBERT, là mô hình tiền huấn luyện đầu tiên dành riêng cho tiếng Việt, bao gồm hai phiên bản PhoBERTbase và PhoBERTlarge.