Chương 1 đã giới thiệu tổng quan về bài toán xử lý ngôn ngữ tự nhiên. Tìm hiểu bài toán phân loại văn bản và giới thiệu bài toán phát hiện ý định người dùng trong hệ thống hỏi đáp dành cho học sinh, sinh viên của trường Đại học, 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 phát hiện ý đị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. Luan van 9 CHƯƠNG 2: PHƯƠNG PHÁP PHÁT HIỆN Ý ĐỊNH NGƯỜI DÙNG SỬ DỤNG HỌC MÁY 2.1 Phương pháp giải quyết bài toán Để giải quyết bài toán phát hiện ý định người dùng trong hệ thống hỏi đáp của trường Đại học, từ những câu hỏi được tổng hợp từ hệ thống hỏi đáp ví dụ như: “các chủ đề NCKH năm nay là như thế nào ạ?”, “thủ tục đăng kí NCKH ?”; ta sẽ phân lớp và đưa được về nhóm “Nghiên cứu khoa học”.
Luận văn đã tham khảo và tìm hiểu sau đó đưa ra được các bước thực hiện để xây dựng phương pháp giải quyết cho bài toán xác định ý định người dùng được chia làm 2 giai đoạn: huấn luyện và kiểm thử. Hai giai đoạn được mô tả như trong hình 2.2 dưới đây: Hình 2.1 Giai đoạn huấn luyện mô hình Hình 2.2 Giai đoạn kiểm thử mô hình Áp dụng phương pháp chia làm 2 giai đoạn như đã trình bày ở trên, bài toán phát hiện ý định người dùng trong hệ thống hỏi đáp, luận văn sẽ thực hiện các bước sau: 1. Chia dữ liệu thành 2 phần: dữ liệu học và dữ liệu kiểm thử 2. Tiền xử lý dữ liệu đầu vào: Loại bỏ các ký tự đặc biệt, các tiền tố dư thừa, các từ stopwords 3.
Vector hóa từ cho tập dữ liệu Luan van 10 4. Áp dụng mô hình học máy để giải quyết bài toán, bao gồm mô hình mạng nơron và so sánh với phương pháp SVM 5. Đưa ra mô hình huấn luyện và kết quả kiểm thử. Tại bước 1, luận văn sẽ áp dụng phương pháp K-fold cross validation và chia dữ liệu thành 3 phần bằng nhau.
Cụ thể về phương pháp K-fold cross validation sẽ được luận văn trình bày tại mục 3.2 về thiết lập thực nghiệm. Trong bước 2, tiền xử lý dữ liệu, chẳng hạn với dữ liệu đầu vào mẫu như trên, ta phải loại bỏ các tiền tố dư thừa của việc đánh số thứ tự như “1767.” và các khoảng trắng cùng với các stopwords: “ạ”, “gì”, “thì”, … 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 phương pháp, mô hình và đưa ra đề xuất lựa chọn và áp dụng vào việc phát hiện ý định của người dùng trong hệ thống hỏi đáp.2 Các phương pháp biểu diễn đặc trưng của văn bản 2.1 Phương pháp N-Gram Mô hình ngôn ngữ là một phân bố xác suất trên các tập văn bản. Nói đơn giản, mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc một ngôn ngữ là bao nhiêu [2]. Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt: P[“hôm qua là thứ năm”] = 0.001 P[“năm thứ hôm là qua”] = 0 Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của xử lý ngôn ngữ tự nhiên như: kiểm lỗi chính tả, dịch máy hay phân đoạn từ.
Chính vì vậy, nghiên cứu mô hình ngôn ngữ chính là tiền đề để nghiên cứu các vấn đề, bài viết tiếp theo trong xử lý ngôn ngữ tự nhiên. Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình N-Gram. N-Gram là 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ự đoán khả năng một chuỗi từ xuất hiện trong ngôn ngữ đó. Luan van 11 Hình 2.3 Ví dụ về N-Gram Hay ta có thể hiểu N-Gram là tần suất xuất hiện của n kí tự (hoặc từ) liên tiếp nhau có trong dữ liệu của kho ngữ liệu.
Với n lần lượt bằng 1, 2, 3 ta có unigrams, bigrams, trigrams. Bigram được sử dụng nhiều trong việc phân tích hình thái (từ, cụm từ, từ loại) cho các ngôn ngữ khó phân tích như tiếng Việt, tiếng Nhật, tiếng Trung, … Dựa vào tần suất xuất hiện cạnh nhau của các từ, người ta sẽ tính cách chia 1 câu thành các từ sao cho tổng bigram là cao nhất có thể. Với thuật giải phân tích hình thái dựa vào trọng số nhỏ nhất, người ta sử dụng n = 1 để xác định tần suất xuất hiện của các từ và tính trọng số. Do đó, để đảm bảo tính thống kê chính xác đòi hỏi các dữ liệu của kho ngữ liệu phải lớn và có tính đại diện cao.2 Phương pháp TF-IDF TF-TDF là thuật ngữ viết tắt của Term Frequency – Inverse Document Frequency.
TF-IDF là trọng số của một từ trong văn bản thu được thông qua thống kê thể hiện mức độ quan trọng của từ này trong một văn bản. Mô hình TF-IDF là một cách để làm nổi bật các từ chỉ xuất hiện ở một vài văn bản. Bên cạnh đó là các từ xuất hiện càng nhiều ở các văn bản thì càng giảm giá trị của các từ này. Các từ hiếm, quan trọng thường có đặc điểm sau: Xuất hiện nhiều trong một văn bản Luan van 12 Xuất hiện ít trong cả tập ngữ liệu Số lần từ t xuất hiện trong văn bản d TF(t, d) = Tổng số từ trong văn bản d Công thức (2.1) Tính TF Tổng số văn bản trong tập mẫu D IDF(t, D) = log Số văn bản có chứa từ t Công thức (2.2) Tính IDF TF_IDF(t, d, D) = TF(t, d) ∗ IDF(t, D) Công thức (2.3) Tính TF_IDF Nhận thấy hàm IDF(t,D) đảm bảo tính chất nêu trên của từ quan trọng.
Một từ mà xuất hiện ở nhiều văn bản thì mẫu của hàm log lớn dẫn đến log tiến về 0 tương đương với từ này kém giá trị. Và ngược lại, số từ sử dụng trong các văn bản càng ít thì log sẽ tiến về giá trị lớn hơn. Sử dụng phương pháp TF-IDF sẽ mô tả được vector của tập ngữ liệu kích thước bằng số lượng văn bản x số lượng từ trong ngữ liệu. Mô hình TF-IDF nhấn mạnh được các từ quan trọng.3 Phương pháp Word Vectors Trong khi TF-IDF vẫn đặc trưng cho kiểu mô hình sử dụng phép đếm và xác suất thì Word2vec được ra đời với nhiều cải tiến đáng kể.
Word2vec là phương pháp biểu diễn một từ dưới dạng một phân bố quan hệ với các từ còn lại. Mỗi từ được biểu diễn bằng một vector có các phần tử mang giá trị là phân bố quan hệ của từ này đối với các từ khác trong từ điển. Năm 2013, Google đã khởi dựng dự án word2vec của riêng mình với dữ liệu được sử dụng từ Google News [10]. Bộ dữ liệu được coi là đồ sộ nhất cho tới bây giờ với 100 tỷ từ.
Luan van 13 Hình 2.4 Phân bố quan hệ giữa các từ trong word2vec [10] Ví dụ bài toán kinh điển King + Man – Woman = ?. Việc nhúng các từ trong không gian vector cho thấy sự tương tự giữa các từ. Giả sử như tại hình 3.1 là một sự khác biệt về mặt giới tính giữa các cặp từ (“man”,”woman”), (“uncle”,”aunt”), (“king”,”queen”) W(“woman”) – W(“man”) ≈ W(“aunt”) – W(“uncle”) W(“woman”) – W(“man”) ≈ W(“queen”) – W(“king”) Từ đó, kết quả của King + Man – Woman = Queen. Để xây dựng được vector mô tả phân bố quan hệ với tập từ điển, bản chất mô hình Word2vec sử dụng một mạng nơron đơn giản với một lớp ẩn.
Sau khi được huấn luyện trên toàn bộ tập văn bản, toàn bộ lớp ẩn sẽ có giá trị mô hình hóa quan hệ của từ trong tập văn bản được huấn luyện ở mức trừu tượng. Trong ngữ cảnh, từ sẽ được huấn luyện việc sử dụng thuật toán Continuous Bag of Words (CBOW) và skip gram. Bản chất của CBOW là sử dụng ngữ cảnh để đoán từ và bản chất của skip gram là dùng từ để dự đoán ngữ cảnh. Một trong hai cách sẽ được áp dụng để huấn luyện cho mô hình word2vec, trong đó cách sử dụng mô hình skip gram thường được sử dụng do việc đáp ứng tốt với tập dữ liệu lớn.
Khi sử dụng mô hình skip gram thì đầu vào là một từ trong câu, thuật toán sẽ nhìn vào những từ xung quanh nó. Giá trị số từ xung quanh nó được xét gọi là “window size”. Một window size bằng 5 có nghĩa sẽ xét 5 từ trước nó và 5 từ sau nó. Xác suất đầu ra sẽ liên quan tới khả năng tìm thấy các từ xung quanh từ hiện tại Luan van 14 đang xét.
Xét câu “The quick brown fox jumps over the lazy dog” với window size bằng 2. Từ được bôi đậm là từ đầu vào.5 Mô hình skip-gram trong Word2vec 2.3 Các phương pháp học máy xây dựng mô hình phân lớp 2.1 Phương pháp SVM Mô hình Support Vector Machine. Mô hình SVM là mô hình hết sức kinh điển trong bài toán phân loại. Tư tưởng của SVM [3] là định nghĩa ra một siêu mặt phẳng có thể phân tách các tập dữ liệu cần phân loại sao cho khoảng cách (margin) từ siêu mặt phẳng đến các tập cần phân loại là tương đương nhau và lớn nhất.
Thuật toán SVM ban đầu được thiết kế để giải quyết bài toán phân lớp nhị phân với ý tưởng chính như sau: Luan van 15 Hình 2.6 Khoảng cánh margin của 2 phân lớp là bằng nhau và lớn nhất [3] Trong không gian hai chiều đã biết khoảng cách từ một điểm có tọa độ (x0,y0) tới đường thẳng có phương trình w1x + w2y + b = 0 được tính bằng: | 𝑤1 𝑥0 + 𝑤2 𝑦0 + b | ℎ= √w12 + w22 Công thức (2.4) Tính khoảng khách không gian 2 chiều Trong không gian ba chiều khoảng cách từ một điểm có tọa độ (x0,y0,z0) tới một mặt phẳng có phương trình w1x + w2y + w3z +b = 0 được tính bằng: 𝑤1 |𝑤1 𝑥0 + 𝑤2 𝑦0 + 𝑤3 𝑧0 + b| ℎ= √w12 + w22 + w32 Công thức (2.5) Tính khoảng cách không gian 3 chiều Nhận thấy nếu bỏ dấu giá trị tuyệt đối của tử số thì có thể xác định được điểm đang xét nằm về phía nào của đường thẳng hay mặt phẳng. Không làm mất tính tổng quát thì những biểu thức trong dấu giá trị tuyệt đối nếu mang dấu dương Luan van 16 thì nằm cùng một phía dương còn những điểm làm cho biểu thức trong dấu giá trị tuyệt đối mang dấu âm thì nằm về phía âm. Những điểm nằm trên đường thẳng/ mặt phẳng sẽ làm cho giá trị của tử số bằng 0 hay khoảng cách bằng 0.