Chương 1: Tổng quan Chương 2: Cơ sở lý thuyết Chương 3: Xây dựng mô hình phân lớp dự đoán sự cố kỹ thuật Chương 4: Thử nghiệm và đánh giá kết quả Kết luận và hướng phát triển 6 CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT 2.1 Phân lớp và phân lớp văn bản 2.1 Phân lớp - Classification Quá trình dự đoán một đối tượng dữ liệu thuộc một hay nhiều lớp đã cho trước dựa trên một mô hình phân lớp được gọi là bài toán phân lớp.1 Bài toán phân lớp theo chủ đề Để thực hiện được việc phân loại khi có dữ liệu mới thì máy tính cần có những dữ liệu trước đó đã được phân lớp theo chủ đề, nhưng với số lượng dữ liệu lớn làm thế nào để rút trích được những đặc trưng của từng chủ đề, làm thế nào dựa trên các đặc trưng để phân lớp cho dữ liệu mới – để làm được việc này chúng ta cần xây dựng một mô hình phân lớp hay hay nói cách khác nhiệm vụ của bài toán phân lớp là phải tìm được một mô hình phân lớp tối ưu nhất với yêu cầu của bài toán đặt ra. Với bài toán phân lớp, chúng ta có phân lớp nhị phân (binary classification), phân lớp đa lớp (multiclass classification) [13]. Bài toán phân lớp nhị phân là bài toán gán nhãn dữ liệu cho đối tượng vào 1 trong 2 lớp khác nhau dựa vào việc dữ liệu đó có hay không có các đặc trưng (features) của bộ phân lớp. Bài toán phân lớp đa lớp là quá trình phân lớp dữ liệu với số lượng lớp lớn hơn 2.
Như vậy với từng dữ liệu phải xem xét và phân lớp chúng vào những lớp khác nhau chứ không phải là 2 lớp như bài toán phân lớp nhị phân. Và thực 7 chất bài toán phân lớp nhị phân là một bài toán đặc biệt của phân lớp đa lớp. Ứng dụng của bài toán này được sử dụng rất nhiều và rộng rãi trong thực tế ví dụ như bài toán nhận dạng khuôn mặt, nhận diện giọng nói, phát hiện email spam, .2 Phân lớp nhận dạng email spam Để xây dựng mô hình cho bài toán phân lớp dữ liệu, chúng ta sẽ sử dụng các thuật toán học có giám sát (Supervised learning). Học có giám sát (Supervised learning) là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước.
Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn). Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning [13]. Một cách toán học, Supervised learning là khi chúng ra có một tập hợp biến đầu vào X={x1,x2,…,xN} và một tập hợp nhãn tương ứng Y={y1,y2,…,yN}, trong đó xi,yi là các vector. Các cặp dữ liệu biết trước (xi,yi)∈X×Y được gọi là tập training data (dữ liệu huấn luyện).
Từ tập training data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y: yi≈f(xi), ∀i=1,2,…,N Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính được nhãn tương ứng của nó y=f(x). Dưới đây là một số ví dụ cụ thể về phân lớp dữ liệu Ví dụ 1: để nhận dạng chữ viết tay của con người, chúng ta có bộ dữ liệu MNIST chứa ảnh của hàng nghìn ví dụ của mỗi chữ số được viết bởi nhiều người khác nhau. Chúng ta đưa các bức ảnh này vào trong một thuật toán và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số nào. Sau khi thuật toán tạo ra một mô hình, tức một hàm số mà đầu vào là một bức ảnh và đầu ra là một chữ số, khi nhận được một 8 bức ảnh mới mà mô hình chưa nhìn thấy bao giờ, nó sẽ dự đoán bức ảnh đó chứa chữ số nào.3 MNIST: bộ cơ sở dữ liệu của chữ số viết tay.
Ví dụ này khá giống với cách học của con người khi còn nhỏ. Ta đưa bảng chữ cái cho một đứa trẻ và chỉ cho chúng đây là chữ A, đây là chữ B. Sau một vài lần được dạy thì trẻ có thể nhận biết được đâu là chữ A, đâu là chữ B trong một cuốn sách mà chúng chưa nhìn thấy bao giờ. Ví dụ 2: Thuật toán dò các khuôn mặt trong một bức ảnh đã được phát triển từ rất lâu.
Thời gian đầu, facebook sử dụng thuật toán này để chỉ ra các khuôn mặt trong một bức ảnh và yêu cầu người dùng tag friends - tức gán nhãn cho mỗi khuôn mặt. Số lượng cặp dữ liệu (khuôn mặt, tên người) càng lớn, độ chính xác ở những lần tự động tag tiếp theo sẽ càng lớn. Bản thân thuật toán dò tìm các khuôn mặt trong một bức ảnh cũng là một thuật toán supervised learning với training data (dữ liệu học) là hàng ngàn cặp (ảnh, mặt người) và (ảnh, không phải mặt người) được đưa vào.4 Mô hình tổng quát cho bài toán phân lớp 2.2 Phân lớp văn bản – Text Classification Phân lớp văn bản (Text Classification) thuộc nhóm học có giám sát (Supervised learning) trong ML. Bài toán này yêu cầu dữ liệu phải được gán nhãn (label).
Mô hình sẽ học từ dữ liệu có nhãn đó, sau đó được dùng để dự đoán nhãn cho các dữ liệu mới mà mô hình chưa gặp [13]. Hiện nay phân lớp văn bản cũng được ứng dụng nhiều trong thực tế, như trong phân loại chủ đề cho một bài báo bất kỳ (kinh tế, xã hội, thể thao,……), hoặc xác định một văn bản thuộc nhóm “công văn”, “giấy mời”, “đoàn thanh niên”, “công đoàn”,…., chúng ta cần xây dựng một mô hình học máy để dự đoán, phân loại vào các nhóm. Khi đó, chúng ta cần một bộ dữ liệu có gán nhãn, tức là mỗi văn bản trong bộ dữ liệu huấn luyện phải được đánh dấu là thuộc nhóm chủ đề nào [3]. Vấn đề dữ liệu có lẽ là vấn đề nan giản nhất của mô hình học giám sát này.
Dưới đây là mô hình tổng quát về cách hoạt động của một bài toán phân lớp văn bản: 10 Hình 2.5 Luồng xử lý cơ bản Trong mô hình trên để thực hiện công đoạn trích xuất đặc trưng (feature extractor) [13] phải tiến hành các bước xử lý dữ liệu, cụ thể: Chuẩn bị tập dataset: bộ dữ liệu được tổng hợp từ nhiều nguồn, được sử dụng để huấn luyện (training) cho phần mềm. Text normalization (chuẩn hóa dữ liệu): công đoạn loại bỏ các thành phần không cần thiết từ dữ liệu, có thể hiểu là làm sạch dữ liệu xóa đi dữ liệu rác cuối cùng nhận được đoạn văn bản chỉ có text. Ví dụ, xóa đi tag HTML, xóa link, xóa ký tự đặc biệt "\n \t @",. Data preprocessing (tiền xử lý dữ liệu): chuyển dữ liệu, văn bản nhận được ở giai đoạn trên thành dữ liệu đầu vào (data input) thích hợp cho đúng với mô hình (model machine learning) sử dụng phân loại văn bản.
Ví dụ, các công việc cần thực hiện trước khi đưa vào thuật toán phân loại văn bản tiếng Việt như: tách từ, chuẩn hóa từ, loại bỏ stopwords, vertor hóa từ. Đây là công đoạn quan trọng trong bài toán phân loại văn bản. 11 Features (trích xuất đặc trưng): Với bài toán phân loại trên thực tế, khi muốn phân loại cần phải dựa theo một đặc điểm nào đó như giới tính, hình dạng, kích thước dựa trên sự quan sát hoặc số liệu cụ thể. Trong bài toán phân loại cũng vậy, nhưng nó đòi hỏi việc phải tự động phát hiện ra các đặc điểm của đối tượng rồi mới thực hiện phân loại cho phù hợp.
Ví dụ, phân loại hoa Hồng, phải phát hiện ra mỗi hoa đó có đặc điểm như thế nào xét cả về hình dạng, màu, kích thước, giống, mùi hương. Một đối tượng có rất nhiều đặc điểm, vậy dựa trên một hoặc nhiều đặc điểm nào để phân loại? Vì thế công đoạn này sẽ rút trích hay lựa chọn bộ đặc điểm nào tối ưu nhất, dễ nhận dạng nhất, dễ phát hiện ra đối tượng đó nhất. Cuối cùng công đoạn này sẽ thu được một tập dữ liệu đã được trích xuất sau đó đưa vào thuật toán machine learning phân loại. Có 2 loại feature: o Feature Selection (chọn lựa đặc trưng): là chọn ra một tập đặc trưng con từ không gian đặc trưng gốc.
o Feature Extraction (rút trích đặc trưng): là biến đổi (transform) không gian đặc trưng gốc thành một không gian đặc trưng nhỏ hơn để giảm số chiều đặc trưng. So với phương pháp chọn đặc trưng, rút trích không chỉ giảm số chiều mà còn thành công trong việc giải quyết vấn đề tính nhiều nghĩa (polysemy) và tính đồng nghĩa (synonym) của từ ở mức độ có thể chấp nhận. Sau khi giai đoạn trích xuất đặc trưng, sẽ tiến hành huấn luyện trên một thuật toán phân lớp và công đoạn cuối cùng là đánh giá kết quả nhận được. Hầu hết các phương pháp máy học áp dụng cho bài toán phân loại văn bản đều sử dụng cách biểu diễn văn bản dưới dạng vector đặc trưng.
Điểm khác biệt duy nhất chính là không gian đặc trưng được chọn lựa. Tuy nhiên ở đây ta thấy nảy sinh một vấn đề cơ bản: Số lượng từ xuất hiện trong văn bản sẽ rất lớn. Như vậy, mỗi vector có thể có hàng ngàn đặc trưng, hay nói cách khác mỗi vector sẽ có số chiều rất lớn. Do vậy các vector sẽ không đồng nhất về kích thước.
Để giải quyết vấn đề thông thường chúng ta sẽ chọn lựa những đặc trưng được đánh giá là hữu ích, bỏ đi những đặc trưng không quan trọng. Đối với phân loại văn bản, quá trình này rất quan trọng bởi vì vector văn bản có số chiều rất lớn (>>10000), trong đó số thành phần dư thừa 12 cũng rất nhiều. Vì vậy các phương pháp chọn lựa đặc trưng rất hiệu quả trong việc giảm chiều của vector đặc trưng văn bản, chiều của vector văn bản sau khi được giảm chỉ còn lại khoảng 1000 đến 5000 mà không mất đi độ chính xác phân loại.2 Xử lý ngôn ngữ tự nhiên Văn bản là ngôn ngữ phi cấu trúc, để máy tính có thể hiểu được và tiến hành phân loại tự động, chúng ta cần chuyển chúng về dạng thích hợp, dạng ngôn ngữ có cấu trúc mà máy tính có thể hiểu được đó là vector hóa văn bản [11]. Để chuyển đổi văn bản hay vector hóa văn bản, chúng ta phải thực hiện giai đoạn tiền xử lý dữ liệu, các việc chính trong giai đoạn này là tách từ và loại bỏ stop word.1 Đặc điểm của ngôn ngữ tiếng Việt Tiếng Việt là loại hình ngôn ngữ đơn lập.
Nghĩa là mỗi tiếng được phát âm tách rời nhau và được thể hiện bằng một chữ viết.