Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)Xác định bài viết chứa ý định người dùng trên diễn đàn (tt)
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: Tiến sĩ Ngô Xuân Bách
Phản biện 1: ………
Phản biện 2: ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3Đã có một số đề tài trước đây nghiên cứu về chủ đề phân tích ý định người dùng như
“Online commercial intention identification” việc xác định ý định người dùng được dựa trên lịch sử người dùng tìm kiếm trên mạng xã hội hay những website tìm kiếm Hoặc trong đề tài phân tích quan điểm người dùng “Natural Language Processing” dựa trên ý định người dùng mong muốn, nhận xét về sản phẩm Như vậy trong những đề tài trước, việc phân tích quan điểm hay ý định người dùng chủ yếu dựa vào hành vi của người dùng
Trong luận văn sẽ trình bày một hướng xác định khác của bài toán là việc phát hiện phân tích ý định của người dùng cần được dựa vào chính những nội dung, dữ liệu mà người dùng đưa ra Ví dụ như trong tình huống người dùng nhập “Tôi thấy iPhone nên có màn hình lớn hơn” sẽ có ý nghĩa khác so với câu “Tôi muốn mua một chiếc iPhone 5S”
Luận văn sẽ làm rõ cách giải quyết các vấn đề dưới đây:
- Xác định bài viết có chứa ý định giữa nhiều bài viết không có ý định
- Trong một văn bản chứa rất nhiều dữ liệu không liên quan tới chủ đề, tuy nhiên việc xử lý tập dữ liệu cần tìm ra được đâu là dữ liệu nhiễu không liên quan tới ý định người dùng để trích xuất ra được kết quả phân lớp chính xác nhất
- Khi thực hiện xác định ý định người dùng trên 1 chủ đề mới mà chưa có dữ liệu thực để làm dữ liệu học máy Việc áp dụng bài toán xác định ý định người dùng chéo miền là rất quan trọng Như vậy luận văn sẽ làm rõ được phương pháp xác định ý định người dùng trong 2 trường hợp: dữ liệu cùng miền và dữ liệu chéo miền
Để xây dựng chương trình xác định ý định người dùng, luận văn đưa ra các phương pháp xác định ý định người dùng đã có trước đây như thuật toán EM, thuật toán FS-EM và
Trang 4đề xuất thuật toán Co-Class áp dụng trong trường hợp xác định ý định với dữ liệu trái miền giúp cải thiện được kết quả thu được
Luận văn được chia làm 3 phần:
Chương 1: Luận văn giới thiệu chung về lĩnh vực xử lý ngôn ngữ tự nhiên, các bài
toán ứng dụng của lĩnh vực xử lý ngôn ngữ tự nhiên như phân loại văn bản, phân loại quan điểm v.v Giới thiệu về bài toán phát hiện ý định người dùng trên diễn đàn
Chương 2: Luận văn trình bày về các phương pháp phát hiện ý định sử dụng phương
pháp học máy: phương pháp phân lớp dữ liệu, phương pháp biểu diễn đặc trưng cho văn bản, thuật toán học máy sử dụng trong đề tài Phát biểu bài toán mở rộng của đề tài là khi áp dụng cho 2 trường hợp dữ liệu cùng miền và chéo miền, đưa ra giải pháp và so sánh về độ phức tạp giữa các thuật toán
Chương 3: Luận văn trình bày về kết quả thực nghiệm thuật toán để cuối cùng đưa
ra kết quả so sánh trong quá trình cài đặt thực tế, phân tích, đánh giá kết quả thu được và đưa ra kết luận
Trang 5CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÁT HIỆN Ý ĐỊNH
NGƯỜI DÙNG
Trong chương này, luận văn trình bày chung về lĩnh vực xử lý ngôn ngữ tự nhiên, các bài toán ứng dụng của lĩnh vực xử lý ngôn ngữ tự nhiên như phân loại văn bản, phân loại quan điểm v.v Hướng tiếp cận, lý do chọn đề tài và giới thiệu bài toán phát hiện ý định người dùng trên diễn đàn
1.1 Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (natural language processing – NLP) là một nhánh của trí tuệ nhân tạo, tập trung vào các ứng dụng xử lý trên ngôn ngữ của con người Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì xử lý ngôn ngữ tự nhiên liên quan đến việc xây dựng các hệ thống máy tính hiểu được tư duy và ý nghĩa của ngôn ngữ con người, từ đó có thể tiến hành xử lý chúng
Xử lý ngôn ngữ tự nhiên là lĩnh vực đã được nghiên cứu từ nhiều năm nay và đạt được nhiều bước tiến quan trọng trong những năm gần đây, đặc biệt trong việc xây dựng các ứng dụng như dịch máy, tìm kiếm thông tin, trích chọn thông tin, tóm tắt văn bản, trả lời tự động và khai phá quan điểm [1] [2] v.v
1.2 Khái niệm phân loại văn bản
Phân loại văn bản là xử lý nhóm các tài liệu thành các lớp khác nhau Việc phân lớp tài liệu liên quan đến xử lý ra quyết định Với mỗi xử lý phân loại, đầu vào là một văn bản, cần phải có một quyết định đưa ra xem văn bản đó có thuộc lớp nào hay không Nếu tài liệu thuộc một lớp nào đó thì sau đó cần chỉ ra lớp mà tài liệu đó thuộc vào Ví dụ đưa ra một văn bản bất kỳ như “Apple vừa cho ra mắt sản phẩm Iphone 7”, như vậy cần chỉ được văn bản trên thuộc lớp công nghệ di động, chứ không phải thuộc lớp thể thao, giải trí, xã hội…
Hình 1.1: Bài toán phân lớp văn bản
Trang 61.2.1 Bài toán phân loại văn bản
Phân loại văn bản có nhiều bài toán biến thể như:
- Phân cụm văn bản: Đưa các văn bản có nội dung giống nhau vào các nhóm
[8]
- Tóm tắt văn bản: Tóm tắt nội dung của một văn bản cho trước
- Xác định quan điểm văn bản
Tuy nhiên, trong nội dung luận văn sẽ tập trung vào 2 dạng biến thể của bài toán phân loại văn bản là:
- Bài toán phân lớp dữ liệu
- Bài toán ra quyết định, xác định quan điểm của văn bản
1.3 Bài toán phát hiện ý định người dùng trên diễn đàn
Ý tưởng của luận văn là sẽ đi sâu vào giải quyết bài toán xác định ý định người dùng, giả sử trong tình huống ta thu thập một tập các văn bản trên diễn đàn về một chủ đề bất kỳ, dựa vào nội dung của văn bản đó, ta cần xác định và đưa ra kết luận rằng người dùng có thực sự quan tâm, hay có nhu cầu muốn mua sản phẩm đó hay không
Tuy nhiên, không phải tất cả các bài viết của người dùng đều thể hiện ý định rõ ràng
là cần mua, bán sản phẩm nào đó như “Đã có ai đọc quyển sách này chưa”, bài viết chỉ muốn hỏi về nội dung của quyển sách mà không có nhu cầu mua Hay các bài viết chứa một lượng dữ liệu lớn, nhưng chỉ có một phần nhỏ trong đó thể hiện ra ý định của người dùng, còn phần còn lại chỉ là dữ liệu nhiễu gây khó khăn trong quá trình phát hiện ý định của người dùng như “Năm kia tôi mua chiếc máy tính để bàn này với giá 10 triệu đồng, máy sử dụng 2 năm vẫn mới và chạy tốt Tôi đang muốn nhượng lại máy tính để đổi máy tính xách tay Nhân tiện, tôi muốn mua máy tính xách tay với giá 15 triệu trở xuống Có ai bán không?”
Như vậy việc xác định ý định văn bản của người dùng không chỉ dừng lại ở việc phân biệt bài viết có thể hiện rõ ràng ý định của người dùng hay không, mà ta còn cần phải xác định được ý định của người dùng trên một tập dữ liệu nhiễu không liên quan, để trích xuất ra được kết quả chính xác
Trên thực tế, ta không thể thu thập được dữ liệu đầy đủ cho tất cả các miền, như vậy việc áp dụng dữ liệu của miền này để xác định ý định cho dữ liệu của miền dữ liệu khác mà đạt được kết quả chính xác cao là rất quan trọng [3]
Trang 7Luận văn gặp một số khó khăn khi xây dựng phương pháp giải quyết bài toán xác định ý định người dùng như sau:
- Xác định những bài viết có chứa ý định rõ ràng
- Giữa những thông tin gây nhiễu, xác định chính xác ý định của bài viết thể hiện
- Nghiên cứu áp dụng bài toán xác định ý định người dùng trong 2 trường hợp: dữ liệu cùng miền và dữ liệu chéo miền
1.4 Các nghiên cứu liên quan
Trong đề tài “Online commercial intention (OCI) identification [4]” việc xác định ý định người dùng được dựa trên lịch sử người dùng tìm kiếm trên mạng xã hội hay những website tìm kiếm Hoặc trong đề tài “Natural Language Processing” [7] việc xử lý ngôn ngữ tự nhiên được dựa trên quan điểm người dùng cần hoặc muốn
Như vậy điểm khác biệt của luận văn ở đây là việc phát hiện phân tích ý định của người dùng được dựa vào chính những nội dung, dữ liệu mà người dùng đưa ra
Như chương 1 đã trình bày, trong phần này đề tài trình bày rõ hơn về phương pháp xác định ý định của người dùng trên diễn đàn Phương pháp áp dụng xác định ý định của người dùng sẽ làm rõ được những vấn đề sau:
- Xác định những bài viết có chứa ý định và bài viết không có ý định
- Việc xử lý tập dữ liệu để trích xuất ra được đâu là dữ liệu nhiễu không liên quan tới ý định người dùng để trích xuất ra được kết quả chính xác
- Nghiên cứu áp dụng bài toán xác định ý định người dùng trong 2 trường hợp: dữ liệu cùng miền và dữ liệu chéo miền
1.5 Kết chương
Chương 1 đã trình bày khái quát về lĩnh vực xử lý ngôn ngữ tự nhiên, giới thiệu về bài toán phân loại văn bản Sau đó đề xuất bài toán xác định ý định người dùng và các nghiên cứu liên quan tới đề tài xác định ý định người dùng, từ đó đưa ra những vấn đề cần làm rõ và giải quyết trong luận văn
Trong Chương 2, luận văn sẽ trình bày về hướng giải quyết cho bài toán xác định ý định người dùng, và đi sâu hơn trình bày về các phương pháp sẽ áp dụng để giải quyết bài toán
Trang 8CHƯƠNG 2: CÁC PHƯƠNG PHÁP PHÁT HIỆN Ý ĐỊNH NGƯỜI
DÙNG DỰA TRÊN HỌC MÁY
Trong chương này, luận văn trình bày chi tiết về các phương pháp được áp dụng trong bài tốn phát hiện ý định người dùng Chương 2 gồm 3 phần:
- Trình bày về phương pháp giải quyết bài tốn phát hiện ý định người dùng đã
cĩ, đưa ra hướng phát triển thuật tốn để cải thiện kết quả xử lý trong 2 trường hợp dữ liệu cùng miền và chéo miền
- Trình bày về các phương pháp biểu diễu đặc trưng cho văn bản được áp dụng trong bài tốn phát hiện ý định người dùng: N-Gram, TF-IDF
- Trình bày về các phương pháp học máy, xây dựng mơ hình phân lớp dữ liệu cho bài tốn phát hiện ý định người dùng: Nạve Bayes, Support Vector Machine (SVM)
2.1 Phương pháp giải quyết bài tốn
Các bước thực hiện để xây dựng phương pháp giải quyết cho bài tốn xác định ý định người dùng được mơ tả như trong hình vẽ dưới đây:
Hình 2.1: Phương pháp xây dựng chương trình cho bài tốn
Để giải quyết bài tốn xác định ý định của người dùng trên diễn đàn, ta sẽ thực hiện xác định qua 2 giai đoạn chính như sau:
Giai đoạn Huấn luyện: sẽ thu thập dữ liệu mẫu, thực hiện tiền xử lý (loại bỏ các ký tự đặc biệt, ký tự thừa, các từ stopwords khơng ảnh hưởng tới ý nghĩa của văn bản) Xây dựng 2 bộ dữ liệu học đã gán nhãn và bộ dữ liệu thực nghiệm chưa gán nhãn Trong đề tài giai đoạn huấn luyện sẽ sử dụng 2 thuật tốn là TF-IDF, và N-Gram với n=1,2,3…
Giai đoạn Phân loại: sử dụng kết quả ở giai đoạn Tiền xử lý làm dữ liệu đầu vào cho các thuật tốn trích chọn đặc trưng và phân lớp, từ đĩ đưa ra kết luận về nhãn của bộ
Trang 9dữ liệu chưa gán nhãn Giai đoạn phân loại trong đề tài sẽ sử dụng 2 thuật tốn là SVM và thuật tốn Nạve Bayes để tiến hành phân lớp cho dữ liệu
Các phần tiếp theo của chương 2 sẽ trình bày chi tiết hơn về các thuật tốn được lựa chọn và áp dụng vào việc xác định ý định của văn bản
2.2 Các phương pháp biểu diễn đặc trưng của văn bản
2.2.1 Phương pháp TF-IDF
a Giới thiệu phương pháp
Trong phương pháp tiếp cận truyền thớng cũng là một trong những phương pháp được sử dụng nhiều nhất đĩ là phương pháp tần suất thuật ngữ “term frequency” (TF) hay tần suất thuật ngữ - nghịch đảo tần suất văn bản “term frequency-inverse document frequency” (viết tắt là TF-IDF) được sử dụng trong việc phân loại văn bản
Phương pháp này chỉ ra tầm quan trọng của một từ với văn bản trong hàng loạt các văn bản như thế nào Trong TF-IDF, tầm quan trọng của một từ với văn bản lớn hơn khi nĩ được sử dụng ở trong một văn bản, và nĩ sẽ thấp hơn khi một từ xuất hiện nhiều trong nhiều
bộ văn bản
2.2.2 Phương pháp N-Gram
a Giới thiệu phương pháp
Mơ hình ngơn ngữ thớng kê cho phép gán (ước lượng) xác suất cho một chuỡi m phần tử (thường là từ) P(w1w2…wm) tức là cho phép dự đốn khả năng một chuỡi từ xuất hiện trong ngơn ngữ đĩ Theo cơng thức Bayes:
Thì ta dễ dàng suy ra được:
P(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…* P(wm|w1w2…wm-1). (2.2) Theo cơng thức này thì bài tốn tính xác suất của mỡi chuỡi từ quy về bài tốn tính xác suất của một từ với điều kiện biết các từ trước nĩ (cĩ thể hiểu P(w1)=P(w1|start) là xác suất
để w1 đứng đầu chuỡi hay nĩi cách khác người ta cĩ thể đưa thêm ký hiệu đầu dịng start vào mỡi chuỡi)
Theo cơng thức Bayes, mơ hình ngơn ngữ cần phải cĩ một lượng bộ nhớ vơ cùng lớn
để cĩ thể lưu hết xác suất của tất cả các chuỡi độ dài nhỏ hơn m Rõ ràng, điều này là khơng thể khi m là độ dài của các văn bản ngơn ngữ tự nhiên (m cĩ thể tiến tới vơ cùng) Để cĩ thể
Trang 10tính được xác suất của văn bản với lượng bộ nhớ chấp nhận được, ta sử dụng xấp xỉ Markov bậc n:
P (wm|w1, w2,…, wm-1) = P(wm|wm-n,wn-m+1, …,wm-1) (2.3)
2.3 Các phương pháp học máy xây dựng mơ hình phân lớp dữ liệu
2.3.1 Phương pháp Nạve Bayes
a Định lý Bayes
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B Xác suất này được kí hiệu là P(A|B), và đọc là “xác suất của A nếu cĩ B” Theo định lý Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tớ:
- Xác suất xảy ra A của riêng nĩ, khơng quan tâm đến B Kí hiệu P(A)
- Xác suất xảy ra B của riêng nĩ, khơng quan tâm đến A Kí hiệu P(B)
- Xác suất xảy ra B khi biết A xảy ra Kí hiệu P(B|A)
Cơng thức Nạve Bayes được tính như sau
𝑃(𝐴𝑖|𝐵) = 𝑃(𝐵|𝐴𝑖)𝑃(𝐴𝑖)
∑𝑛𝑖=1𝑃(𝐵|𝐴𝑖)(𝑃(𝐴𝑖)
b Mạng Bayes (Bayesian Network)
Mạng Bayes là một đồ thị biểu diễn phân phới xác suất trên một tập biến Nĩ thường dùng để mã hĩa các tri thức của chuyên gia và ý niệm của họ về một lĩnh vực nào đĩ Do đĩ mạng Bayes cịn được gọi là mạng ý niệm (Belief Network) hoặc mạng nhân quả (Causal Network)
c Phân lớp Naive Bayes
Naive Bayes Classifier (NBC) [9] là một thuật ngữ trong xử lý sớ liệu thớng kê Bayes với một phân lớp xác suất dựa trên các ứng dụng định lý Bayes với giả định độc lập bền vững Một thuật ngữ mơ tả chi tiết cho những mơ hình xác suất sẽ là “mơ hình đặc trưng khơng phụ thuộc”
(2.4)
Trang 112.3.2 Phương pháp SVM (Support Vector Machine)
a Giới thiệu phương pháp
Trong những năm gần đây, phương pháp phân lớp sử dụng tập phân lớp vector hỗ trợ (máy vector hỗ trợ - Support Vector Machine – SVM) [5] được quan tâm và sử dụng nhiều trong lĩnh vực nhận dạng và phân lớp SVM là một họ các phương pháp dựa trên cơ sở các hàm nhân (kernel) để tối thiểu hoá rủi ro ước lượng Xét với các phương pháp phân lớp khác, khả năng phân lớp của SVM là tương đối tốt và hiệu quả
b Huấn luyện SVM
Huấn luyện SVM là việc giải bài toán quy hoạch toàn phương SVM Các phương pháp số giải bài toán quy hoạch này yêu cầu phải lưu trữ một ma trận có kích thước bằng bình phương của số lượng mẫu huấn luyện
2.4 Xây dựng chương trình giải quyết bài toán
Luận văn sẽ trình bày một số phương pháp xây dựng chương trình để giải quyết bài toán xác định ý định người dùng trên diễn đàn trong các phần dưới đây
Thuật toán gồm 2 bước xử lý:
- Đánh giá dữ liệu chưa được gán nhãn (bước E)
- Đánh giá các tham số của mô hình, khả năng lớn nhất có thể xảy ra (bước M) Từ bước (E) ta có thể xác định, đánh giá dữ liệu, và bước (M) sẽ tính toán lại các tham số để đưa ra kết quả tốt nhất
Trong một tình huống là các đặc trưng trích chọn ra từ dữ liệu đã gán nhãn có thể không phù hợp với dữ liệu chưa có nhãn, vì thực tế phần dữ liệu cần gán nhãn chưa có nhãn
để sử dụng trích chọn đặc trưng, mà các đặc trưng của tập dữ liệu lại rất quan trọng trong việc phân loại dữ liệu
Trang 12Để giải quyết vấn đề của thuật toán EM trong quá trình xử lý là cần tìm ra cách trích chọn đặc trưng của tập dữ liệu chưa được gán nhãn Luận văn đề xuất ra 2 phương pháp thay thế phương pháp EM: FS-EM (Feature Selection EM) và Co-Class (Co-classifiation)
2.4.2 Thuật toán FS-EM
Ở thuật toán EM, việc trích chọn đặc trưng trích ra từ tập dữ liệu được gán nhãn và không thay đổi Tuy nhiên, những đặc trưng này chỉ phù hợp với tập dữ liệu đã gán nhãn nhưng không hẳn phù hợp với dữ liệu chưa được gán nhãn Vì vậy, ta đề xuất thêm một bước chọn đặc trưng trong quá trình lặp để đánh giá nhãn cần gán, ví dụ như sau mỗi vòng lặp, ta chọn lại đặc trưng cho tập dữ liệu Như vậy, sau mỗi vòng lặp ta sẽ có một tập đặc trưng mới ứng với dữ liệu chưa được gán nhãn
Thuật toán FS-EM được trình bày chi tiết như sau:
Điểm yếu của thuật toán FS-EM là việc xây dựng bộ phân lớp dữ liệu h trong vòng
lặp chỉ sử dụng dựa trên bộ dữ liệu chưa được gán nhãn, mà không sử dụng đến dữ liệu đã gán nhãn ban đầu Trong khi đó dữ liệu đã được gán nhãn lại chứa các hông tin có ích và chính xác hơn cho việc phân lớp Vì vậy, ta đề xuất thêm thuật toán tiếp theo là Co-Class để giải quyết được vấn đề này
Input: Tập dữ liệu được gán nhãn DL và chưa gán nhãn DU
1 Chọn tập đặc trưng của tập dữ liệu được gán nhãn DL
2 Dựng bộ phân lớp h từ DL dựa trên đặc trưng
3 Lặp:
4 for: Với mỗi văn bản d trong tập dữ liệu DU
5 c = h(di) // gán nhãn cho d sử dụng bộ phân lớp h
6 end
7 Đặt DP là tập dữ liệu đã được gán nhãn của DU
8 Chọn tập đặc trưng mới dựa trên DP
9 Dựng bộ phân lớp h từ DP và dựa trên tập đặc trưng mới
10 Dừng vòng lặp khi nhãn tập dữ liệu DPkhông thay đổi
11 Trả về bộ phân lớp h của lần lặp cuối cùng
Trang 132.4.3 Thuật toán Co-Class
Thuật toán Co-Class là thuật toán kết hợp giữa cả dữ liệu đã được gán nhãn và dữ
liệu chưa được gán nhãn khi chạy qua bộ phân lớp h (DP) Co-Class giúp giải quyết được điểm yếu của thuật toán FS-EM là tận dụng được bộ phân lớp được xây dựng từ dữ liệu đã được gán nhãn và điểm mạnh của Co-Training là sử dụng một lúc 2 bộ phân lớp từ với 2 bộ dữ liệu khác nhau
Nhưng thay vì việc xây dựng bộ phân lớp dựa trên đặc trưng của thuật toán Training được thực hiện trên 2 tập dữ liệu khác nhau, để tạo ra 2 bộ phân lớp khác nhau Thì Co-Class sẽ chỉ sử dụng một bộ đặc trưng duy nhất để xây dựng ra 2 bộ phân lớp
Co-Chi tiết của thuật toán Co-Class được trình bày như sau:
Ở bước 11-13, kết quả phân lớp bộ dữ liệu chưa gán nhãn được thay thế bằng kết quả kết hợp giữa 2 bộ phân lớp Việc kết hợp sẽ theo quy tắc như sau:
(hL (di), hP (di)) = {+ ℎ𝐿(𝑑𝑖) = ℎ𝑃(𝑑𝑖) = +
− 𝑇𝑟ườ𝑛𝑔 ℎợ𝑝 𝑐ò𝑛 𝑙ạ𝑖
Input: Tập dữ liệu được gán nhãn DL và chưa gán nhãn DU
1 Chọn tập đặc trưng của tập dữ liệu được gán nhãn DL
2 Dựng bộ phân lớp h từ DL dựa trên đặc trưng
3 for: Với mỗi văn bản d trong tập dữ liệu DU
4 c = h(di) // gán nhãn cho d sử dụng bộ phân lớp h
5 end
6 Đặt DP là tập dữ liệu đã được gán nhãn của DU
7 Lặp:
8 Chọn bộ đặc trưng mới từ tập dữ liệu DP
9 Dựng bộ phân lớp h L sử dụng đặc trưng và tập dữ liệu DL
10 Dựng bộ phân lớp h P sử dụng đặc trưng và tập dữ liệu DP
11 for: Với mỗi văn bản d trong tập dữ liệu DU
12 c = (h L(di), h P(di)); // kết hợp 2 bộ phân lớp h L , h P
13 end
14 Đặt DP là tập dữ liệu đã được gán nhãn của DU
15 Dừng vòng lặp khi nhãn tập dữ liệu DPkhông thay đổi
16 Trả về bộ phân lớp h của lần lặp cuối cùng