Sau khi nhập câu hỏi, người dùng có thể lựa chọn một trong ba tùy chọn trích xuất đặc trưng:
- Syllables: chỉ sử dụng âm tiết của câu hỏi
- Syllables and pos: sử dụng âm tiết của câu hỏi và nhãn từ loại
- Syllables and pos and dependency: sử dụng âm tiết của câu hỏi, nhãn từ loại
và đặc trưng cú pháp của câu.
Bước tiếp theo người dùng click vào nút predict và chờ đợi, hệ thống sẽ xử lý câu
hỏi, trích xuất đặc trưng và đưa ra nhãn dự đoán cho câu hỏi đó trong ô Label.
60 trang |
Chia sẻ: builinh123 | Lượt xem: 1537 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đồ án Các đặc trưng ngôn ngữ cho bài toán phân loại câu hỏi tiếng Việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ì, v.v.)
9 WHAP Cụm tính từ nghi vấn (lạnh thế nào, đẹp ra sao, v.v.)
10 WHRP Cụm từ nghi vấn dùng khi hỏi về thời gian, nơi chốn, v.v.
11 WHPP Cụm giới từ nghi vấn (với ai, bằng cách nào, v.v.)
12 S Câu trần thuật (khẳng định hoặc phủ định)
13 SQ Câu hỏi
14 SBAR Mệnh đề phụ (bổ nghĩa cho danh từ, động từ, và tính từ)
Bảng 2-3: Nhãn chức năng cú pháp [13]
STT Tên Chú thích
1 SUB Nhãn chức năng chủ ngữ
2 DOB Nhãn chức năng tân ngữ trực tiếp
3 IOB Nhãn chức năng tân ngữ gián tiếp
4 TPC Nhãn chức năng chủ đề
5 PRD Nhãn chức năng vị ngữ không phải cụm động từ
6 LGS Nhãn chức năng chủ ngữ logic của câu ở thể bị động
7 EXT Nhãn chức năng bổ ngữ chỉ phạm vi hay tần suất của
hành động
8 H Nhãn phần tử trung tâm (của cụm từ hoặc mệnh đề)
9 – 12 TC, CMD,
EXC, SPL
Nhãn phân loại câu: đề thuyết, mệnh lệnh, cảm thán, đặc
biệt
13 TTL Tít báo hay tiêu đề
14 VOC Thành phần hô cách
15 TMP Nhãn chức năng trạng ngữ chỉ thời gian
16 LOC Nhãn chức năng trạng ngữ chỉ nơi chốn
17 DIR Nhãn chức năng trạng ngữ chỉ hướng
18 MNR Nhãn chức năng trạng ngữ chỉ cách thức
19 PRP Nhãn chức năng trạng ngữ chỉ mục đích hay lí do
20 ADV Nhãn chức năng trạng ngữ nói chung
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 16 SVTH: Nguyễn Đình Nghị – D11CNPM3
Ví dụ phân tích phụ thuộc một câu tiếng Việt:
Hình 2-2: Phân tích phụ thuộc của một câu tiếng Việt [2].
Trong đồ án, chúng tôi sử dụng công cụ VnDP [23] (A Vietnamese dependency
parsing toolkit) để chuyển định dạng các câu hỏi về dạng cây cú pháp phụ thuộc.
Ví dụ chúng ta có 2 câu:
Câu 1: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn
hơn?
Câu 2: Hà Nội là thành phố có diện tích lớn nhất Việt Nam phải không?
Biểu diễn cây cú pháp:
1 Trong Trong E E - 10 loc - -
2 hai hai M M - 3 det - -
3 thành_phố thành_phố N N - 1 pob - -
4 Hà_Nội Hà_Nội N N - 3 nmod - -
5 và và C C - 4 coord - -
6 Bắc_Ninh Bắc_Ninh N N - 5 conj - -
7 , , , , - 6 punct - -
8 thành_phố thành_phố N N - 10 sub - -
9 nào nào P P - 8 nmod - -
10 có có V V - 0 root - -
11 diện_tích diện_tích N N - 10 dob - -
12 lớn lớn A A - 11 nmod - -
13 hơn hơn A A - 12 amod - -
1 Hà_Nội Hà_Nội N N - 2 sub - -
2 là là V V - 0 root - -
3 thành_phố thành_phố N N - 2 dob - -
4 có có V V - 2 vmod - -
5 diện_tích diện_tích N N - 4 dob - -
6 lớn lớn A A - 5 nmod - -
7 nhất nhất R R - 6 amod - -
8 Việt_Nam Việt_Nam N N - 9 sub - -
9 phải phải A A - 2 dep - -
10 không không R R - 9 amod - -
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 17 SVTH: Nguyễn Đình Nghị – D11CNPM3
Sau khi có biểu diễn cây cú pháp, chúng ta trích rút đặc trưng root và child, mỗi
một câu chỉ có một root duy nhất, và mỗi root có thể có nhiều child:
Câu 1: root = “có”
child = “trong” child = “thành phố” child = “diện tích”
Câu 2: root = “là”
child = “Hà_Nội” child = “thành_phố” child = “có” child = “đẹp”
Từ tập đặc trưng của cây cú pháp, chúng ta cũng xây dựng tập từ điển chứa các
đặc trưng đó và biểu diễn các đặc trưng dưới dạng vector đặc trưng tương tự như các
loại đặc trưng khác.
2.3 Các thuật toán học máy
Có nhiều thuật toán khác nhau cho phân lớp như Naïve Bayes, K-láng giềng gần
nhất, cây quyết định (Decision Tree), Máy véc tơ hỗ trợ (Support Vector Machine),
Mạng lọc thưa (Sparse Network of Winnows - SNoW), Mô hình Entropy cực đại, v.v.
Tuy nhiên phần tiếp theo của đồ án, chúng tôi chỉ trình bày 3 thuật toán là Máy véc tơ
hỗ trợ, Naïve Bayes và K-láng giềng gần nhất, đây là các thuật toán được sử dụng
nhiều trong phân loại câu hỏi và cũng sẽ được sử dụng trong phần thực nghiệm ở
chương 3.
2.3.1 Máy véc tơ hỗ trợ (Support Vector Machine)
Support Vector Machine [17] viết tắt là SVM, là một phương pháp trong thống
kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan
đến nhau để phân loại và phân tích hồi quy. SVM dạng chuẩn nhận dữ liệu vào và
phân loại chúng vào 2 lớp khác nhau.
a) Ý tƣởng
Cho trước một tập huấn luyện, được biểu diễn trong không gian vector, trong đó
mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng quyết định tốt nhất
có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng là lớp + và
lớp -. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên)
của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó, khoảng cách biên
càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác.
Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn nhất, điều
này được minh họa như sau:
Hình 2-3: Siêu phẳng phân chia dữ liệu học thành 2 lớp + và – với khoảng cách biên
lớn nhất [17].
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 18 SVTH: Nguyễn Đình Nghị – D11CNPM3
b) Cơ sở lý thuyết
SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là tìm được
một không gian F và siêu phẳng quyết định f trên F sao cho sai số phân loại là thấp
nhất.
Cho tập mẫu (x1, y1), (x2, y2), (xf, yf)} với xi ∈ Rn, thuộc vào hai lớp nhãn: yi ∈
{-1,1} là nhãn lớp tương ứng của các xi (-1 biểu thị lớp I, 1 biểu thị lớp II).
Ta có, phương trình siêu phẳng chứa vectơ ⃑⃑⃑ trong không gian: ⃑⃑⃑ ⃑⃑
( ⃑⃑ ⃑) ( ⃑⃑⃑ ⃑⃑ ) {
⃑⃑⃑ ⃑⃑
⃑⃑⃑ ⃑⃑
Như vậy, f(Xi) biểu diễn sự phân lớp của Xi vào hai lớp như đã nêu. Ta nói yi =
+1 nếu Xi thuộc lớp I và yi = -1 nếu Xi thuộc lớp II. Khi đó, để có siêu phẳng f ta sẽ
phải giải bài toán sau: Tìm min w với W thỏa mãn điều kiện sau:
( ( ⃑⃑⃑ ⃑⃑ )) ∈ ⃑⃑ ⃑⃑ ⃑⃑
Bài toán SVM có thể giải bằng kỹ thuật sử dụng toán tử Lagrange để biến đổi về
thành dạng đẳng thức. Một đặc điểm thú vị của SVM là mặt phẳng quyết định chỉ phụ
thuộc các Support Vector và nó có khoảng cách đến mặt phẳng quyết định là
. Cho
dù các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống như ban đầu. Đây
chính là điểm nổi bật của phương pháp SVM so với các phương pháp khác vì tất cả
các dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết quả.
Bài toán phân 2 lớp với SVM
Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu trong tương lai,
nghĩa là với một mẫu dữ liệu mới xi thì cần phải xác định xi được phân vào lớp +1 hay
lớp -1
Hình 2-4: Minh họa bài toán phân 2 lớp bằng phương pháp SVM [17].
Để xác định hàm phân lớp dựa trên phương pháp SVM, ta sẽ tiến hành tìm hai
siêu phẳng song song sao cho khoảng cách y giữa chúng là lớn nhất có thể để phân
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 19 SVTH: Nguyễn Đình Nghị – D11CNPM3
tách hai lớp này ra làm hai phía. Hàm phân tách tương ứng với phương trình siêu
phẳng nằm giữa hai siêu phẳng tìm được.
Các điểm mà nằm trên hai siêu phẳng phân tách được gọi là các Support Vector.
Các điểm này sẽ quyết định đến hàm phân tách dữ liệu.
Bài toán nhiều phân lớp với SVM
Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu
thành 2 phần và quá trình này lặp lại nhiều lần. Khi đó hàm quyết định phân dữ liệu
vào lớp thứ i của tập n, 2-lớp sẽ là:
( )
Những phần tử x là support vector sẽ thỏa điều kiện:
( ) {
Như vậy, bài toán phân nhiều lớp sử dụng phương pháp SVM hoàn toàn có thể
thực hiện giống như bài toán 2 lớp. Bằng cách sử dụng cách thức “một - đối - một”.
Giả sử bài toán cần phân loại có k lớp (k > 2), chiến lược "một-đối-một”sẽ tiến
hành
( )
lần phân lớp nhị phân sử dụng phương pháp SVM. Mỗi lớp sẽ tiến hành
phân tách với k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai
lớp bằng phương pháp SVM.
c) Các bƣớc chính của phƣơng pháp SVM
Phương pháp SVM yêu cầu dữ liệu được biểu diễn như các vector của các
số thực. Như vậy nếu đầu vào chưa phải là số thì ta cần phải tìm cách
chuyển chúng về dạng số của SVM.
Tiền xử lý dữ liệu: Thực hiện biến đổi dữ liệu phù hợp cho quá trình tính
toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn
(scaling) dữ liệu để chuyển về đoạn [-1, 1] hoặc [0, 1].
Chọn hàm hạt nhân: Lựa chọn hàm hạt nhân phù hợp tương ứng cho từng
bài toán cụ thể để đạt được độ chính xác cao trong quá trình phân lớp.
Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng đụng. Điều
này cũng quyết định đến tính chính xác của quá trình phân lớp.
Sử dụng các tham số cho việc huấn luyện với tập mẫu. Trong quá trình
huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu
phẳng trong quá trình phân lớp, xác định hàm phân lớp trong không gian
đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô
tả hạt nhân, giải quyết cho cả hai trường hợp dữ liệu là phân tách và không
phân tách tuyến tính trong không gian đặc trưng.
Kiểm thử tập dữ liệu Test.
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 20 SVTH: Nguyễn Đình Nghị – D11CNPM3
2.3.2 Naïve Bayes
a) Giới thiệu
Naïve Bayes (NB) [17] là phương pháp phân loại có giám sát dựa vào xác suất
được sử dụng rộng rãi trong lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997]
[Jason, 2001], được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm
1961 [Maron, 1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực như trong các
công cụ tìm kiếm [Rijsbergen et al, 1970], các bộ lọc email [Sahami et al, 1998] v.v.
b) Cơ sở lý thuyết
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
( )
( )
( )
( ) ( )
( )
Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
- D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng ( ).
- Ci: phân lớp i, với i = {1,2,,m}.
- Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes:
( )
( ) ( )
( )
Theo tính chất độc lập điều kiện:
( ) ∏ ( )
Trong đó:
- ( ) là xác suất thuộc phân lớp i khi biết trước mẫu X.
- ( ) xác suất là phân lớp i.
- ( ) xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân
lớp i.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính ( ) và ( ).
Bước 2: Phân lớp ( ), ta cần tính xác suất thuộc từng phân
lớp khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức:
∈
( ( )∏ ( )
)
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 21 SVTH: Nguyễn Đình Nghị – D11CNPM3
c) Áp dụng cho bài toán phân loại câu hỏi
Ý tưởng:
Ý tưởng cơ bản của cách tiếp cận Naïve Bayes là sử dụng xác suất có điều kiện
giữa từ và chủ đề để dự đoán xác suất chủ đề của một câu hỏi cần phân loại. Điểm
quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả
các từ trong câu hỏi đều độc lập với nhau. Giả định đó làm cho việc tính toán NB hiệu
quả và nhanh chóng hơn các phương pháp khác vì không sử dụng việc kết hợp các từ
để đưa ra phán đoán chủ đề. Kết quả dự đoán bị ảnh hưởng bởi kích thước tập dữ liệu,
chất lượng của không gian đặc trưng.
Hướng dẫn cài đặt:
Mô tả vector đặc trưng của văn bản: là vector có số chiều là số đặc trưng trong
toàn tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa đặc trưng
đó sẽ có giá trị 1, ngược lại là 0.
Thuật toán gồm 2 giai đoạn huấn luyện và phân lớp:
Huấn luyện: tính ( ) và ( )
Đầu vào:
- Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M
là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).
- Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.
Đầu ra:
- Các giá trị xác suất ( ) và ( ).
Công thức tính ( ) đã làm trơn Laplace:
( )
Trong đó:
- |docsi|: số văn bản của tập huấn luyện thuộc phân lớp i.
- |total docs|: số văn bản trong tập huấn luyện.
- M: số phân lớp
Cài đặt:
- Khởi tạo mảng A, B có kích thước m.
- Duyệt qua các văn bản trong tập dữ liệu, đếm số văn bản trong mỗi phân lớp
lưu vào A.
- Tính xác suất cho từng phân lớp theo công thức trên và lưu vào mảng B.
Công thức tính ( ) đã làm trơn Laplace:
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 22 SVTH: Nguyễn Đình Nghị – D11CNPM3
( )
| |
Trong đó:
- | |: Số văn bản trong trong phân lớp i có đặc trưng thứ k mang giá trị
xk. (hay số văn bản trong lớp i, có xuất hiện/không xuất hiện đặc trưng k)
- : Số văn bản của tập huấn luyện thuộc phân lớp i.
- Số giá trị có thể có của đặc trưng thứ k
Cài đặt:
- Với vector đặc trưng như mô tả bên trên, dk ở đây mang giá trị là 2, tương
ứng với xuất hiện và không xuất hiện. Do chỉ có 2 giá trị, ta có thể tính nhanh
xác suất không xuất hiện theo công thức ( ̅) ( ).
- Khởi tạo mảng 3 chiều C, chiều 1 có kích thước là m (số phân lớp), chiều 2
có kích thước là N (số đặc trưng), chiều 3 có kích là 2 (dk) để lưu các giá trị
( ).
- Duyệt qua các văn bản trong tập dữ liệu, tiến hành thống kê các chỉ số cần
thiết để tính xác suất ( ) theo công thức trên và lưu vào mảng C.
Phân lớp
Đầu vào:
- Vector đặc trưng của văn bản cần phân lớp
- Các giá trị xác suất tính ( ) và ( ).
Đầu ra:
- Giá trị xác suất thuộc phân lớp I khi biết trước mẫu X
Dựa vào vector đặc trưng của văn bản cần phân lớp, áp dụng công thức trên tính
xác suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất.
2.3.3 K láng giềng gần nhất (K-nearest neighbors)
a) Giới thiệu
K-Nearest Neighbors (KNN) [17] được sử dụng rất phổ biến trong lĩnh vực Data
Mining. KNN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần
nhất giữa đối tượng cần xếp lớp với tất cả các đối tượng trong Training Data.
Một đối tượng được phân lớp dựa vào k láng giềng của nó. K là số nguyên dương
được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng cách
Euclide để tính khoảng cách giữa các đối tượng.
b) Cơ sở lý thuyết
Bộ phân lớp dựa trên thuật toán K người láng giềng gần nhất là một bộ phân lớp
dựa trên bộ nhớ, đơn giản vì nó được xây dựng bằng cách lưu trữ tất cả các đối tượng
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 23 SVTH: Nguyễn Đình Nghị – D11CNPM3
trong tập huấn luyện. Để phân lớp cho một điểm dữ liệu mới x, trước hết bộ phân lớp
sẽ tính khoảng cách từ điểm dữ liệu trong tập huấn luyện. Qua đó tìm được tập N(x, D,
k) gồm k điểm dữ liệu mẫu có khoảng cách đến x là gần nhất.
Ví dụ nếu các dữ liệu mẫu được biểu diễn bởi không gian vector thì chúng ta có
thể sử dụng khoảng cách Euclide để tính khoảng cách giữa các điểm dữ liệu với nhau.
Sau khi xác định được tập N(x, D, k), bộ phân lớp sẽ gán nhãn cho điểm dữ liệu x
bằng lớp chiếm đại đa số trong tập N(x, D, k). Mặc dù rất đơn giản, nhưng thuật toán
K người láng giềng gần nhất đã cho kết quả tốt trong nhiều ứng dụng thực tế.
Để áp dụng thuật toán K người láng giềng vào tài liệu văn bản, chúng ta sử dụng
hàm tính trọng số cho mỗi lớp theo biểu thức:
( ) ∑ ( )
∈ ( )
Trong đó Nc(x, D, k) là tập con chỉ chứa các đối tượng thuộc lớp c của tập N(x,
D, k).
Khi đó tài liệu x sẽ được phân vào lớp c0 nếu:
( ) * ( ) ∈ +
Phương pháp K người láng giềng gần nhất là một phương pháp đơn giản. Tuy
nhiên, thuật toán này ổn định và sai sót thấp khi số văn bản trong tập văn bản láng
giềng phải lớn.
c) Mô tả thuật toán
- Xác định giá trị tham số K (số láng giềng gần nhất).
- Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng
trong training data (thường sử dụng khoảng cách Euclide, Cosine).
- Sắp xếp khoảng cách theo thứ tự tăng dần và xác định k láng giềng gần
nhất với đối tượng cần phần lớp.
- Lấy tất cả các lớp của k láng giềng gần nhất đã xác định.
Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng
d) Áp dụng cho bài toán phân loại câu hỏi
Ý tưởng:
Khi cần phân loại một câu hỏi mới, thuật toán sẽ tính khoảng cách (khoảng cách
Euclide, Cosine) của tất cả các câu hỏi trong tập huấn luyện đến câu hỏi này để tìm
ra k câu hỏi gần nhất (gọi là k “láng giềng”), sau đó dùng các khoảng cách này đánh
trọng số cho tất cả chủ đề. Trọng số của một chủ đề chính là tổng tất cả các câu hỏi
trong k láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong k láng giềng sẽ
có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo mức độ giảm dần và các
chủ đề có trọng số cao sẽ được chọn là chủ đề của câu hỏi cần phân loại.
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 24 SVTH: Nguyễn Đình Nghị – D11CNPM3
Khoảng cách giữa 2 văn bản chính là độ tương tự giữa 2 văn bản đó, 2 văn bản
có giá trị độ tương tự càng lớn thì khoảng cách càng gần nhau.
Ví dụ: Dùng công thức Cosine để tính độ tương tự giữa 2 văn bản:
( ) ( )
‖ ‖ ‖ ‖
Văn bản A: Tôi là học sinh.
Văn Bản B: Tôi là sinh viên.
Văn bản C: Tôi là giáo viên.
Biểu diễn văn bản theo vector:
Tôi là học sinh viên giáo
Văn bản A 1 1 1 1 0 0
Văn bản B 1 1 0 1 1 0
Văn bản C 1 1 0 0 1 1
Vector A = (1,1,1,1,0,0)
Vector B = (1,1,0,1,1,0)
Vector C = (1,1,0,0,1,1)
( ⃑ ) ( ⃑ )
√
( ) ( )
√
Điều đó cho thấy văn bản A tương tự văn bản B hơn so với C.
Hướng dẫn cài đặt:
Thông thường các thuật toán sẽ gồm 2 giai đoạn huấn luyện và phân lớp, riêng
đối với thuật toán KNN do thuật toán này không cần tạo ra mô hình khi làm trên tập
huấn luyện các văn bản đã có nhãn/lớp sẵn, nên không cần giai đoạn huấn luyện (giai
đoạn huấn luyện của KNN là gán nhãn cho các văn bản trong tập huấn luyện bằng
cách gom nhóm các văn bản có vector đặc trưng giống nhau thành cùng 1 nhóm).
Mô tả vector đặc trưng của văn bản: là vector có số chiều là số đặc trưng trong
toàn tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa đặc trưng
đó sẽ có giá trị 1, ngược lại là 0.
Đầu vào:
- Vector đặc trưng của văn bản cần phân lớp.
- Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M
là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).
- Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.
Đầu ra:
ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
GVHD: TS. Ngô Xuân Bách 25 SVTH: Nguyễn Đình Nghị – D11CNPM3
- Nhãn/lớp của văn bản cần phân loại.
Quá trình phân lớp gồm các bước sau:
- Xác định giá trị tham số K (số láng giềng gần nhất). Tùy vào mỗi tập huấn
luyện (số lượng mẫu trong tập huấn luyện, không gian tập mẫu có phủ hết các
trường hợp) mà việc chọn số K sẽ ảnh hưởng đến kết quả phân lớp.
- Lần lượt duyệt qua các văn bản (được đại diện bằng vector đặc trưng của văn
bản) trong tập huấn luyện và tính độ tương tự của văn bản đó với văn bản cần
phân lớp.
- Sau khi đã có mảng các giá trị lưu độ tương tự của văn bản cần phân lớp với
các văn bản trong tập huấn luyện, ta sắp xếp độ tương tự các văn bản theo thứ
tự giảm dần (lưu ý đây là độ tương tự, độ tương tự càng lớn tức là khoảng
cách càng gần) và lấy ra k văn bản đầu tiên trong mảng (tức là k văn bản gần
với văn bản cần phân lớp nhất).
- Khởi tạo mảng A có độ dài bằng số phân lớp để lưu số văn bản của mỗi lớp.
Duyệt qua k văn bản, đếm số văn bản trong từng phân lớp và lưu vào mảng.
- Duyệt qua mảng A, tìm lớp có số văn bản nhiều nhất và chọn là lớp cho văn
bản mới.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 26 SVTH: Nguyễn Đình Nghị – D11CNPM3
CHƢƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ
Sau khi tìm hiểu các phương pháp giải quyết bài toán, trong chương 3, đồ án
trình bày chi tiết thực nghiệm gồm có quá trình thu thập và xử lý dữ liệu, các phương
pháp làm thực nghiệm, kết quả và đánh giá.
3.1 Dữ liệu thực nghiệm
3.1.1 Chuẩn bị dữ liệu
Dữ liệu chuẩn bị cho thực nghiệm gồm 3000 câu hỏi tiếng Việt thuộc 22 loại
khác nhau được thu thập từ địa chỉ web:
Mỗi câu hỏi có dạng: . 3000 câu hỏi được lưu vào file có tên
“questions.txt”.
Hình 3-1: File questions.txt.
Bảng 3-1: Số lượng câu hỏi của mỗi nhãn.
STT Nhãn tiếng Anh Nhãn tiếng Việt Số câu hỏi
1 Location Địa điểm 420
2 Count Số lượng 265
3 Manner Cách thức 266
4 Description Mô tả 266
5 Reason Lý do 190
6 Food Món ăn 103
7 Sport Thể thao 62
8 Definition Định nghĩa 266
9 Animal Động vật 112
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 27 SVTH: Nguyễn Đình Nghị – D11CNPM3
10 Human Người 268
11 Money Tiền bạc 71
12 Event Sự kiện 56
13 Date Ngày tháng 218
14 Period Giai đoạn 75
15 Vehicle Xe cộ 27
16 Product Sản phẩm 42
17 Termeq Thuật ngữ 93
18 Substance Vật chất 41
19 ABBR Viết tắt 72
20 Color Màu sắc 40
21 Distance Khoảng cách 34
22 Plant Cây cối 13
*** Total 3000
3.1.2 Tiền xử lý dữ liệu
Trước khi xử lý dữ liệu ta thực hiện tách riêng nhãn phân loại của 3000 câu hỏi
và lưu vào tệp labels.txt, và tệp questions.txt lúc này chỉ còn chứa 3000 câu hỏi mà
không chứa nhãn phân loại.
Hình 3-2: File labels.txt.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 28 SVTH: Nguyễn Đình Nghị – D11CNPM3
a) Tách từ
Trong đồ án, chúng tôi sử dụng công cụ tách từ tiếng Việt là vnTokenizer [19].
Chương trình chạy dưới dạng dòng lệnh:
- vnTokenizer.sh nếu chạy trên các hệ điều hành Linux/Unix/Mac OS
- vnTokenizer.bat nếu chạy trên các hệ điều hành MS Windows
Yêu cầu máy cần cài JRE (Java Runtime Enviroment) phiên bản 1.6
Câu lệnh tách từ cho một tệp trên hệ điều hành MS Windows như sau:
vnTokenizer.bat -i -o []
Hai tùy chọn -i và -o là bắt buộc. Ngoài ra, người dùng có thể cung cấp các tùy
chọn không bắt buộc sau đây:
+) -xo: dùng định dạng XML để biểu diễn kết quả thay vì định dạng mặc định
là văn bản thô.
+) -nu: không sử dụng dấu gạch dưới khi ghi kết quả. Nếu tùy chọn này được
sử dụng thì trong kết quả, các âm tiết không được nối với nhau bằng ký tự gạch dưới,
mà bằng ký tự trắng.
+) -sd: sử dụng mô-đun tách câu trước khi thực hiện tách từ. Nếu tùy chọn này
được sử dụng thì trước tiên vnTokenizer thực hiện tách văn bản input thành một tập
các câu, sau đó thực hiện tách từ từng câu một.
Các tùy chọn này có thể được phối hợp đồng thời với nhau để cho ra kết quả
mong muốn. Khi thực nghiệm, chúng tôi chỉ sử dụng hai tùy chọn -i và –o và kết quả
tách từ được lưu vào tệp “questions.tok” như sau:
Hình 3-3: File questions.tok.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 29 SVTH: Nguyễn Đình Nghị – D11CNPM3
b) Gán nhãn từ
Để thực hiện việc gán nhãn từ loại, chúng tôi sử dụng công cụ gán nhãn từ tiếng
Việt là vnTagger [20]. Chương trình chạy dưới dạng dòng lệnh:
-vnTagger.sh nếu chạy trên các hệ điều hành Linux/Unix/Mac OS
-vnTagger.bat nếu chạy trên các hệ điều hành MS Windows
Yêu cầu máy cần cài JRE (Java Runtime Enviroment) phiên bản 1.6
Câu lệnh gán nhãn từ cho một tệp trên hệ điều hành MS Windows như sau:
vnTagger.bat -i -o []
Hai tùy chọn -i và -o là bắt buộc. Ngoài ra, người dùng có thể cung cấp các tùy
chọn không bắt buộc sau đây:
+) –u: thêm gạch dưới giữa các âm tiết của một từ
+) –p: không dùng định dạng XML để biểu diễn kết quả
Các tùy chọn này có thể được phối hợp đồng thời với nhau để cho ra kết quả
mong muốn. Khi thực nghiệm, ngoài sử dụng hai tùy chọn -i và –o, chúng tôi còn sử
dụng cả hai tùy chọn –u và –p và kết quả gán nhãn từ được lưu vào tệp
“questions.tagger” như sau:
Hình 3-4: File questions.tagger.
Sau khi gán nhãn từ loại, chúng tôi thực hiện trích rút nhãn từ loại và lưu vào tệp
“questions.pos”.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 30 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-5: File questions.pos.
c) Biểu diễn cây cú pháp
Để xây dựng cây cú pháp cho câu hỏi, chúng tôi sử dụng công cụ VnDP toolkit
[23]. VnDP toolkit là bộ công cụ phân tích cú pháp phụ thuộc tiếng Việt, tích hợp bộ
phân tích cú pháp MSTParser và bộ gán nhãn từ RDRPOSTagger. Công cụ được viết
bằng ngôn ngữ java:
Đầu vào: tệp dữ liệu đã được tách từ
Đầu ra:
- Tệp .TAGGED biểu diễn kết quả gán nhãn từ
- Tệp .DEP.CONLL biểu diễn các câu dưới dạng cây cú pháp
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 31 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-6: File questions.DEP.CONLL.
Sau khi đã biểu diễn các câu dưới dạng cây cú pháp, chúng tôi thực hiện trích rút
cây cú pháp, lấy các từ gốc là các từ có nhãn là root, lưu vào tệp “questions.root” với
định dạng: root=”” và các từ con của từ gốc, lưu vào tệp “questions.child”
với định dạng: child=””
Hình 3-7: File questions.root.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 32 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-8: File questions.child.
3.2 Thiết lập thực nghiệm
3.2.1 Thực nghiệm với 3000 câu hỏi
a. SVM
Trong thực nghiệm với thuật toán SVM, chúng tôi sử dụng công cụ libsvm để
phân loại câu hỏi cho thuật toán với các đặc trưng từ vựng, âm tiết, n-gram, nhãn từ
loại và cây cú pháp.
Bước 1: Xây dựng từ điển
Sử dụng tệp “questions.txt” xây dựng ba bộ từ điển chứa các đặc trưng âm tiết
được biểu diễn theo 1 gram, 1+2 grams và 1+2+3 grams. Sử dụng tệp “questions.tok”
xây dựng ba bộ từ điển chứa các đặc trưng từ vựng được biểu diễn theo 1 gram, 1+2
grams và 1+2+3 grams. Các từ điển có định dạng: :
Hình 3-9: File từ điển.
Bước 2: Chuyển đồi định dạng libsvm
Dựa vào sáu bộ từ điển đã xây dựng, chuyển đổi định dạng hai tệp
“questions.txt” và “questions.tok” về đúng định dạng của libsvm:
: : ...
Trong đó:
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 33 SVTH: Nguyễn Đình Nghị – D11CNPM3
- là nhãn phân loại, giá trị đích của tập huấn luyện. Đối với việc phân
lớp, nó là một số nguyên xác định một lớp. Đối với hồi qui, nó là một số thực
bất kỳ.
- là một số nguyên bắt đầu từ 1, trong trường hợp này nó là vị trí của
âm tiết hoặc từ vựng trong từ điển.
- là số lần xuất hiện của âm tiết hoặc từ vựng trong câu.
Mỗi tệp được chuyển về định dạng của libsvm theo 3 kiểu: 1 gram, 1+2 grams,
và 1+2+3 grams.
Hình 3-10: Định dạng dữ liệu cho libsvm.
Như vậy, sau khi chuyển đổi định dạng sẽ có 6 tệp:
Bảng 3-2: Các tệp sau khi chuyển đổi
Dữ liệu gốc Tệp chuyển đổi
questions.txt
(âm tiết)
Âm tiết 1 gram
Âm tiết 1+2 grams
Âm tiết 1+2+3 grams
questions.tok
(từ vựng)
Từ vựng 1 gram
Từ vựng 1+2 grams
Từ vựng 1+2+3 grams
Bước 3: Tạo các bộ dữ liệu thực nghiệm
Chia ngẫu nhiên mỗi tệp làm 5 phần, mỗi phần gồm 600 câu, gọi 5 phần đó lần
lượt là set1, set2, set3, set4, set5. Sử dụng 4 phần (2400 câu) để tiến hành huấn luyện,
và 1 phần còn lại (600 câu) để kiểm tra và việc này sẽ được thực hiện 5 lần. Sau tiến
hành 5 lần như trên kết quả cuối cùng sẽ được tính bằng trung bình cộng của 5 kết quả
của 5 lần tương ứng.
- Lần 1: tập train gồm phần 2+3+4+5 còn tập test sẽ là phần 1.
- Lần 2: tập train gồm phần 1+3+4+5 còn tập test sẽ là phần 2.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 34 SVTH: Nguyễn Đình Nghị – D11CNPM3
- Lần 3: tập train gồm phần 1+2+4+5 còn tập test sẽ là phần 3.
- Lần 4: tập train gồm phần 1+2+3+5 còn tập test sẽ là phần 4.
- Lần 5: tập train gồm phần 1+2+3+4 còn tập test sẽ là phần 5.
Như vậy, mỗi tệp sẽ có 5 thực nghiệm khác nhau, do có 6 tệp nên tổng cộng số
thực nghiệm cần phải thực hiện là 30 thực nghiệm.
Bước 4: Chạy thực nghiệm với công cụ libsvm
Một tập thực nghiệm sẽ có hai tệp, một tệp train và một tệp test, tên của chúng là
trainN.txt và testN.txt (N=1,2,3,4,5). Mở command window để gõ lệnh, chuyển đường
dẫn lệnh về thư mục chứa svm-scale.exe:
- Scale tệp train: svm-scale –l 0 –u 1 –s rangeN trainN.txt > trainN.scale.
- Scale tệp test: svm-scale –r rangeN testN.txt > testN.scale.
- Chọn tham số C và gamma: thay đổi đường dẫn lệnh về thư mục chứa
grid.py, gõ lệnh python grid.py trainN.scale.
- Thay đổi đường dẫn lệnh về thư mục chứa svm-train.exe và svm-predict.exe.
- Huấn luyện dữ liệu: svm-train –c –g -b 1
trainN.scale.
- Dự đoán: svm-predict –b 1 testN.scale trainN.scale.model testN.predict .
Bước 5: Bổ sung đặc trưng nhãn từ loại và cây cú pháp
Sau khi có được kết quả của tất cả các trường hợp, tính giá trị trung bình của 5
thực nghiệm cho mỗi tệp. Lựa chọn bộ dữ liệu thực nghiệm mà cho kết quả dự đoán
tốt nhất để bổ sung thêm các đặc trưng nhãn từ loại và cây cú pháp. Sau đó tiến hành
chạy lại thực nghiệm với công cụ libsvm.
b. Các thuật toán khác
Sau khi sử dụng libsvm tiến hành thực nghiệm với các đặc trưng khác nhau,
chúng tôi sử dụng bộ dữ liệu đạt được kết quả tốt nhất để áp dụng các thuật toán Naïve
Bayes, K-láng giềng gần nhất bằng cách sử dụng công cụ Weka [22].
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 35 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-11: Giao diện màn hình chính của Weka.
Để có thể sử dụng công cụ Weka, chúng ta cần chuyển đổi định dạng dữ liệu về
đúng dạng ARFF, CSV, C4.5, hoặc binary. Trong đồ án, chúng tôi chuyển định dạng
dữ liệu về dạng file ARFF.
Định dạng dữ liệu (ARFF):
- Phần khai báo
@ralation
@attribute
@attribute
- Các kiểu dữ liệu:
Numeric: dữ liệu dạng số Ví dụ: @ATTRIBUTE name numeric
Nominal: dữ liệu rời rạc Ví dụ: @ATTRIBUTE class {sport, count}
String: dữ liệu chuỗi Ví dụ: @ATTRIBUTE name string Date
Date: dữ liệu kiểu ngày Ví dụ: @ATTRIBUTE discovered date
- Phần dữ liệu:
Mỗi mẫu dữ liệu được đặt trên một dòng, giá trị của các thuộc tính được liệt kê
theo thứ tự từ trái qua phải và ngăn cách bởi dấu phẩy.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 36 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-12: Định dạng dữ liệu file arrff.
Sau khi chuyển đổi định dạng dữ liệu, chúng tôi tiến hành làm thực nghiệm sử
dụng Weka với các thuật toán Naïve Bayes và K-láng giềng gần nhất.
c. Cách thức đánh giá
Sau khi đã thực nghiệm xong, việc tiếp theo là cần phải đánh giá xem kết quả
thực nghiệm có tốt không. Để đánh giá kết quả phân loại câu hỏi, ta sử dụng một số
chỉ số đánh giá:
Recall: độ chính xác của dự đoán cho từng nhãn
Recall =
Precision: độ chính xác của mỗi lần dự đoán
Precision =
Từ thực nghiệm chúng ta có 3 giá trị: Human, Model, Match
Trong đó:
- Human: Số câu hỏi thực tế
- Model: Số câu hỏi mà máy dự đoán
- Match: Số câu hỏi được máy dự đoán đúng
Chúng ta có công thức:
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 37 SVTH: Nguyễn Đình Nghị – D11CNPM3
Rec =
=
Prec =
=
F1
Tiêu chí đánh giá F1 là sự kết hợp của 2 tiêu chí đánh giá Precision và Recall
F1 =
F1 là một giá trị trung bình điều hòa của các tiêu chí Precision và Recall
- F1 có xu hướng lấy giá trị gần với giá trị nào nhỏ hơn giữa 2 giá trị Precision
và Recall
- F1 có giá trị lớn nếu cả 2 giá trị Precision và Recall đều lớn
d. Kết quả
Kết quả chạy SVM cho đặc trưng từ vựng, âm tiết và n-grams:
Bảng 3-3: Kết quả thực nghiệm SVM sử dụng n-grams, âm tiết và từ vựng
Đặc
trƣng
n-grams
Lần 1
(%)
Lần 2
(%)
Lần 3
(%)
Lần 4
(%)
Lần 5
(%)
TB (%)
Từ
vựng
1gram 84.50 85.00 82.83 84.00 83.83 84.03
1+2grams 82.83 85.50 81.83 83.00 83.17 83.27
1+2+3grams 83.17 83.83 82.00 81.67 82.67 82.67
Âm tiết
1gram 83.00 83.83 83.33 81.83 81.50 82.70
1+2grams 84.83 87.67 84.67 84.00 85.33 85.30
1+2+3grams 84.17 87.00 83.83 82.50 84.83 84.47
Bảng 3-4: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams)
STT Nhãn Human Model Match Precision (%) Recall (%) F1(%)
1 Location 420 434 370 85.25 88.10 86.65
2 Count 265 281 251 89.32 94.72 91.94
3 Manner 266 285 259 90.88 97.37 94.01
4 Description 266 297 219 73.74 82.33 77.80
5 Reason 190 183 176 96.17 92.63 94.37
6 Food 103 90 74 82.22 71.84 76.68
7 Sport 62 58 48 82.76 77.42 80.00
8 Definition 266 289 241 83.39 90.60 86.85
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 38 SVTH: Nguyễn Đình Nghị – D11CNPM3
9 Animal 112 99 95 95.96 84.82 90.05
10 Human 268 278 218 78.42 81.34 79.85
11 Money 71 64 58 90.63 81.69 85.93
12 Event 56 51 29 56.86 51.79 54.21
13 Date 218 211 195 92.42 89.45 90.91
14 Period 75 67 64 95.52 85.33 90.14
15 Vehicle 27 21 13 61.90 48.15 54.17
16 Product 42 42 29 69.05 69.05 69.05
17 Termeq 93 83 71 85.54 76.34 80.68
18 Substance 41 31 30 96.77 73.17 83.33
19 ABBR 72 62 52 83.87 72.22 77.61
20 Color 40 36 34 94.44 85.00 89.47
21 Distance 34 28 25 89.29 73.53 80.65
22 Plant 13 10 8 80.00 61.54 69.57
*** Total 3000 3000 2559 84.29 78.56 81.09
Recall là tiêu chí đánh giá dựa trên số lần mỗi nhãn được đoán đúng. Tuy nhiên,
mỗi một nhãn sẽ được dự đoán một số lần nào đó, và số lượng này có thể lớn hơn hoặc
nhỏ hơn số lượng thực tế. Nếu như một nhãn được dự đoán nhiều lần hơn số lượng
thực tế thì số lần dự đoán đúng cũng sẽ tăng lên. Vì vậy nếu số câu hỏi được dự đoán
đúng tăng lên mà số lần dự đoán cũng tăng lên thì hiệu suất của thuật toán không thực
sự tốt. Cho nên chúng tôi sử dụng thêm tiêu chí Precision. Tiêu chí này ngoài việc
quan tâm tới số lần dự đoán đúng, nó còn quan tâm tới số lần mà mỗi nhãn được dự
đoán. Tuy nhiên cả hai tiêu chí này vẫn chưa thể hiện được hiệu suất dự đoán. Để giải
quyết vấn đề đó, chúng tôi sử dụng tiêu chí F1 là một sự kết hợp hài hòa của hai tiêu
chí Recall và Precision: F1 =
.
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 39 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-13: So sánh độ chính xác giữa đặc trưng âm tiết và đặc trưng từ vựng.
Kết quả thực nghiệm cho thấy việc sử dụng đặc trưng âm tiết đạt hiệu quả cao
hơn đặc trưng từ vựng. Nguyên nhân có thể là do trong một câu thì số lượng âm tiết sẽ
nhiều hơn số lượng từ vựng, do đó số đặc trưng âm tiết nhiều hơn sẽ giúp việc dự đoán
được tốt hơn. Kết quả cao nhất đạt được là 85.30% khi sử dụng đặc trưng âm tiết 1+2
grams. Vì vậy, bộ dữ liệu đặc trưng âm tiết 1+2grams sẽ được sử dụng để bổ sung
thêm các đặc trưng khác.
Hình 3-14: Độ chính xác cho mỗi nhãn (âm tiết 1+2 grams).
Dựa vào bảng 3-4 và hình 3-14 ta thấy có 11 nhãn đạt được độ chính xác khá
tốt, cao hơn độ chính xác trung bình đó là các nhãn Location, Count, Manner, Reason,
Definition, Animal, Money, Date, Period, Substance và Color. Các nhãn này có giá trị
84.03
83.27
82.67 82.7
85.3
84.47
81
81.5
82
82.5
83
83.5
84
84.5
85
85.5
1 gram 1+2 grams 1+2+3 grams
Từ vựng
Âm tiết
0
10
20
30
40
50
60
70
80
90
100
Lo
ca
ti
o
n
C
o
u
n
t
M
an
n
er
D
es
cr
ip
ti
o
n
R
ea
so
n
Fo
o
d
Sp
o
rt
D
ef
in
it
io
n
A
n
im
al
H
u
m
an
M
o
n
ey
Ev
en
t
D
at
e
P
er
io
d
V
eh
ic
le
P
ro
d
u
ct
Te
rm
eq
Su
b
st
an
ce
A
B
B
R
C
o
lo
r
D
is
ta
n
ce
P
la
n
t
To
ta
l
F1
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 40 SVTH: Nguyễn Đình Nghị – D11CNPM3
F1, precision và recall đều cao hơn giá trị trung bình của tất cả các nhãn và sự chênh
lệch giữa precision và recall là không lớn. Trong khi ở các nhãn có giá trị F1 nhỏ hơn
giá trị trung bình thì các giá trị precision và recall thường có chênh lệch khá lớn.
Kết quả thực nghiệm SVM khi bổ sung các đặc trưng:
Bảng 3-5: Kết quả thực nghiệm khi bổ sung thêm các đặc trưng
Bảng 3-6: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams + nhãn từ loại + root)
STT Nhãn Human Model Match Precision (%) Recall (%) F1(%)
1 Location 420 423 365 86.29 86.90 86.59
2 Count 265 279 253 90.68 95.47 93.01
3 Manner 266 281 258 91.81 96.99 94.33
4 Description 266 303 220 72.61 82.71 77.33
5 Reason 190 184 175 95.11 92.11 93.59
6 Food 103 91 71 78.02 68.93 73.19
7 Sport 62 58 48 82.76 77.42 80.00
8 Definition 266 288 245 85.07 92.11 88.45
9 Animal 112 101 94 93.07 83.93 88.26
10 Human 268 279 222 79.57 82.84 81.17
11 Money 71 66 61 92.42 85.92 89.05
12 Event 56 50 30 60.00 53.57 56.60
13 Date 218 210 194 92.38 88.99 90.65
14 Period 75 67 65 97.01 86.67 91.55
15 Vehicle 27 19 12 63.16 44.44 52.17
16 Product 42 46 30 65.22 71.43 68.18
17 Termeq 93 83 71 85.54 76.34 80.68
Các đặc trƣng Độ chính xác
Âm tiết 1+2 grams 85.30%
Âm tiết 1+2 grams + nhãn từ loại 85.37% (+0.07%)
Âm tiết 1+2 grams + nhãn từ loại + root 85.53% (+0.23%)
Âm tiết 1+2 grams + nhãn từ loại + root + child 85.40% (+0.10%)
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 41 SVTH: Nguyễn Đình Nghị – D11CNPM3
18 Substance 41 31 29 93.55 70.73 80.56
19 ABBR 72 65 55 84.62 76.39 80.29
20 Color 40 37 35 94.59 87.50 90.91
21 Distance 34 29 25 86.21 73.53 79.37
22 Plant 13 10 8 80.00 61.54 69.57
*** Total 3000 3000 2566 84.08 78.93 81.16
Hình 3-15: So sánh độ chính xác giữa các đặc trưng.
Kết quả tốt nhất của tất cả các thực nghiệm là 85.53% khi sử dụng thuật toán
SVM kết hợp các đặc trưng âm tiết 1+2grams, nhãn từ loại và đặc trưng root của cây
cú pháp. Độ chính xác giữa các thực nghiệm là không quá lớn, sự chênh lệch lớn nhất
là 85.53% – 85.3% = 0.23%. Do đó, độ chênh lệch chỉ số F1 cũng không quá lớn:
81.16% – 81.09% = 0.07%.
Kết quả thực nghiệm với các thuật toán khác
Bảng 3-7: Kết quả thực nghiệm của các thuật toán khác nhau
Thuật toán Độ chính xác
SVM 85.53%
Naïve Bayes 77.56%
K láng giềng gần nhất (k=1) 70.83%
K láng giềng gần nhất (k=5) 66.60%
85.15
85.2
85.25
85.3
85.35
85.4
85.45
85.5
85.55
âm tiết 1+2grams âm tiết 1+2grams +
nhãn từ loại
âm tiết 1+2grams +
nhãn từ loại + root
âm tiết 1+2grams +
nhãn từ loại + root +
child
Độ chính xác giữa các đặc trƣng
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 42 SVTH: Nguyễn Đình Nghị – D11CNPM3
Kết quả thực nghiệm cho thấy thuật toán SVM là lựa chọn tốt nhất cho bài toán
phân loại câu hỏi. Độ chính xác có sự chênh lệch khá lớn giữa thuật toán SVM và các
thuật toán khác. Chênh lệch lớn nhất là giữa thuật toán SVM và thuật toán K-láng
giềng gần nhất ( ), độ chênh lệch là 85.53% - 66.60% = 18.93%.
3.2.2 Thực nghiệm bổ sung câu truy vấn
a. Phƣơng pháp thực nghiệm
Hình 3-16: Phương pháp thực nghiệm bổ sung câu truy vấn
Trong thực nghiệm bổ sung câu truy vấn, các câu hỏi trong bộ dữ liệu ban đầu sẽ
được đưa vào các hệ thống máy tìm kiếm và lấy ra các kết quả truy vấn. Sau đó các
câu truy vấn sẽ được bổ sung vào tập các câu hỏi ban đầu với mục đích tăng kích
thước dữ liệu huấn luyện. Khi kích thước dữ liệu huấn luyện tăng lên, chúng tôi hi
vọng sẽ có thêm nhiều thông tin cho quá trình huấn luyện, từ đó sẽ xây dựng được một
mô hình huấn luyện tốt hơn, góp phần cải thiện kết quả phân loại. Sau khi bổ sung các
kết quả truy vấn, chúng tôi tiến hành trích xuất các đặc trưng và áp dụng các thuật toán
học máy thống kê để tiến hành làm thực nghiệm.
b. Dữ liệu thực nghiệm
Với bộ dữ liệu 3000 câu hỏi ban đầu, chúng tôi đưa từng câu hỏi vào máy tìm
kiếm Google, tiến hành thu thập 5 kết quả đầu tiên được máy tìm kiếm trả về, lưu kết
quả vào tệp “question_and_query.txt”, mỗi dòng trong tệp có dạng:
tab tab
Question Máy tìm kiếm
Kết quả truy
vấn
Huấn luyện
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 43 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình 3-17: File question_and_query.txt.
c. Thiết lập thực nghiệm
Trong thực nghiệm bổ cung các câu truy vấn, chúng tôi chỉ tiến hành thực
nghiệm sử dụng thuật toán SVM với bộ dữ liệu có kết quả tốt nhất của thực nghiệm
3000 câu hỏi trên các đặc trưng từ vựng, âm tiết và n-grasm. Do thực nghiệm với âm
tiết 1+2grams đạt kết quả tốt nhất nên các câu truy vấn sẽ được bổ sung vào bộ dữ liệu
âm tiết 1+2grams.
- Các âm tiết trong các câu truy vấn sẽ được bổ sung vào từ điển 1+2grams,
mỗi âm tiết được viết thêm kí tự “q_” vào phía trước để phân biệt với các âm
tiết trong câu hỏi.
- Chuyển đổi định dạng các câu truy vấn về định dạng libsvm.
- Bổ sung các câu truy vấn đã được chuyển đổi định dạng vào các tệp train và
test của bộ dữ liệu âm tiết 1+2grams sao cho đúng thứ tự câu.
- Chạy thực nghiệm với công cụ libsvm cho bộ dữ liệu.
d. Kết quả thực nghiệm
Bảng 3-8: Kết quả thực nghiệm bổ sung câu truy vấn
Đặc trƣng
Lần 1
(%)
Lần 2
(%)
Lần
3 (%)
Lần
4 (%)
Lần 5
(%)
TB (%)
Âm tiết 1+2grams 84.83 87.67 84.67 84.00 85.33 85.30
Âm tiết 1+2grams
+ câu truy vấn
80.67 82.50 81.83 79.50 81.33 81.17 (-4.13)
Như vậy thực nghiệm với việc bổ sung các câu truy vấn không cho kết quả tốt
hơn với việc chỉ sử dụng câu hỏi. Điều này cho thấy việc sử dụng thêm các câu truy
vấn từ máy tìm kiếm google không phù hợp với bài toán phân loại câu hỏi. Các câu
truy vấn đã tạo ra nhiễu, làm cho mô hình huấn luyện không đạt được kết quả tốt nhất.
Ví dụ câu hỏi: Con vật nào được đặt chân đầu tiên vào không gian?
ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá
GVHD: TS. Ngô Xuân Bách 44 SVTH: Nguyễn Đình Nghị – D11CNPM3
5 kết quả tìm kiếm từ google:
Chạy đua vào không gian – Wikipedia tiếng Việt
Người đầu tiên đặt chân lên mặt trăng - Các bài viết - KhoaHoc.TV
Động vật đầu tiên bay vào không gian - Các bài viết
Ký ức của người đầu tiên đi bộ ngoài không gian - VnExpress
Chân Không Vật Chất - Nơi Vật Chất Tạo Nên Không Gian (Michel ...
Câu hỏi có nhãn là Động vật, nhưng trong 5 kết quả tìm kiếm được trả về từ máy
tìm kiếm google lại cho ra 4 kết quả không liên quan tới động vật, mà chỉ có một kết
quả liên quan tới động vật là câu: Động vật đầu tiên bay vào không gian. Điều này đã
tạo ra nhiễu cho mô hình huấn luyện, làm cho việc huấn luyện không chính xác, và do
đó kết quả phân loại sẽ không được tốt. Yêu cầu đặt ra cần phải có thêm các nghiên
cứu với các phương pháp khác để có thể cải thiện tốt hơn độ chính xác trong việc phân
loại câu hỏi.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 45 SVTH: Nguyễn Đình Nghị – D11CNPM3
KẾT LUẬN
Phân loại câu hỏi tiếng Việt vẫn là một vấn đề còn khá mới, nhưng nó có ý nghĩa
vô cùng quan trọng. Từ việc giải quyết bài toán phân loại câu hỏi tiếng Việt, giúp cho
chúng ta tiến gần hơn việc có thể xây dựng được một hệ thống hỏi đáp dành riêng cho
tiếng Việt, góp phần đem lại sự thuận tiện hơn cho người dùng trong việc thu thập và
tìm kiếm thông tin tiếng Việt. Ngoài ra, chúng ta có thể dựa vào nghiên cứu này để
phát triển trí tuệ nhân tạo cho robot, giúp chúng có thể hiểu và trả lời các câu hỏi tiếng
Việt, từ đó có thể giải quyết được các công việc của con người, có thể làm việc dựa
trên mệnh lệnh mà con người đưa ra.
Nhìn chung, đồ án đã đạt được một số thành tựu như:
- Trình bày một cách khái quát nhất về hệ thống hỏi đáp tự động và nêu lên ý
nghĩa, vai trò của bài toán phân loại câu hỏi tiếng Việt.
- Khảo sát, nghiên cứu 5 loại đặc trưng tiếng Việt khác nhau cho bài toán phân
loại câu hỏi tiếng Việt.
- Nghiên cứu và làm thực nghiệm với 3 thuật toán học máy khác nhau.
- So sánh và phân tích các kết quả thực nghiệm và chúng tôi đã tìm ra được
trường hợp cho kết quả tốt nhất.
- Từ kết quả thực nghiệm, chúng tôi xây dựng thành công một ứng dụng demo
giúp phân loại câu hỏi dựa trên các đặc trưng khác nhau.
Đồ án vẫn còn một số hạn chế như:
- Nghiên cứu vẫn còn đơn giản.
- Kết quả thực nghiệm đạt được vẫn chưa thực sự tốt so với những nghiên cứu
trước đây. Đặc biệt với việc bổ sung các câu truy vấn đã làm cho kết quả thực
nghiệm không những không tăng lên mà còn giảm đi.
- Phần mềm demo vẫn còn hạn chế, tốc độ xử lý vẫn còn chậm, đặc biệt là khi
dự đoán với đặc trưng nhãn từ loại và cây cú pháp.
Về hướng phát triển tương lai, chúng tôi sẽ tiến hành phát triển một tập dữ liệu
tiếng Việt lớn hơn và nghiên cứu sử dụng thêm nhiều đặc trưng tiếng Việt khác, góp
phần cải thiện tốt hơn khả năng phân loại. Ngoài ra chúng tôi cũng sẽ nghiên cứu và
thử nghiệm với một số thuật toán khác để tìm ra thuật toán phù hợp nhất với bài toán
phân loại câu hỏi tiếng Việt.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 46 SVTH: Nguyễn Đình Nghị – D11CNPM3
PHỤ LỤC
A. Công cụ sử dụng
Bảng A-1: Các công cụ sử dụng
Công cụ Trang chủ
Java SE JDK 7u21
Netbean 8.0.1 https://netbeans.org/
Notepad++
vnTokenizer
vnTagger
VnDP: A Vietnamese
dependency parsing
toolkit
libSVM https://www.csie.ntu.edu.tw/~cjlin/libsvm/
Weka
B. Chƣơng trình demo
Phần này trình bày hệ thống phân loại câu hỏi của chúng tôi. Hệ thống nhận đầu
vào là câu hỏi của người dùng dưới dạng ngôn ngữ tự nhiên và trả về nhãn phân loại
cho từng câu hỏi của người dùng.
Người dùng có thể nhập câu hỏi theo 2 cách:
- Cách 1: Nhập bằng tay, người dùng tự gõ câu hỏi vào ô question
- Cách 2: Nhập bằng file, người dùng tự gõ đường dẫn file hoặc duyệt đến file
chứa câu hỏi và click nút import để nhập tất cả câu hỏi trong file vào ô
question.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 47 SVTH: Nguyễn Đình Nghị – D11CNPM3
Hình B-1: Giao diện nhập câu hỏi bằng tay.
Hình B-2: Giao diện nhập câu hỏi bằng file.
Sau khi nhập câu hỏi, người dùng có thể lựa chọn một trong ba tùy chọn trích
xuất đặc trưng:
- Syllables: chỉ sử dụng âm tiết của câu hỏi
- Syllables and pos: sử dụng âm tiết của câu hỏi và nhãn từ loại
- Syllables and pos and dependency: sử dụng âm tiết của câu hỏi, nhãn từ loại
và đặc trưng cú pháp của câu.
Bước tiếp theo người dùng click vào nút predict và chờ đợi, hệ thống sẽ xử lý câu
hỏi, trích xuất đặc trưng và đưa ra nhãn dự đoán cho câu hỏi đó trong ô Label.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 48 SVTH: Nguyễn Đình Nghị – D11CNPM3
Sau khi chương trình thực hiện xong, người dùng có thể click vào nút Clear để
xóa dữ liệu trong hai ô Question và ô Label và tiếp tục chương trình với các câu hỏi
mới.
Hình B-3: Giao diện chạy chương trình.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 49 SVTH: Nguyễn Đình Nghị – D11CNPM3
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Anh
[1] I. Fahmi (2009). Automatic term and relation extraction for medical question
answering system. PhD Thesis, the University of Groningen, The Netherlands.
[2] Phuong Le-Hong, Xuan-Hieu Pham and Tien-Dung Nguyen, Using dependency
analysis to improve question classification, Knowledge and Systems
Enginneering, Springer International Publishing, 2015, pages 653-655.
[3] Zhiheng Huang, Marcus Thint and Zengchang Qin, Question Classification
using Head Words and their Hypernyms, Proceedings of the 2008 Conference
on Empirical Methods in Natural Languae Processing, pages 927-936,
Honolulu, October 2008.
[4] Boris Katz. Annotating the World Wide Web Using Natural Language.
Proceedings of the 5th RIAO Conference on Computer Assisted Information
Searching on the Internet (RIAO '97), 1997, pages 136-139.
[5] Deepak Ravichandran, Abraham Ittycheriah, and Salim Roukos. 2003.
Automatic derivation of surface text patterns for a maximum entropy based
question answering system. In Proceedings of the 2003 Conference of the North
American Chapter of the Association for Computational Linguistics on Human
Language Technology: companion volume of the Proceedings of HLT-NAACL
2003--short papers - Volume 2 (NAACL-Short '03), Vol. 2. Association for
Computational Linguistics, Stroudsburg, PA, USA, 85-87.
[6] Hakan Sundblad, Question Classification in Question Answering Systems,
Linkuping Studies in Science and Technology, June 2007, ISBN 978-91-85831-
55-5.
[7] Dang Hai Tran, Cuong Xuan Chu, Son Bao Pham and Minh Le Nguyen,
Learning Based Approaches for Vietnamese Question Classification Using
Keywords Extraction from the Web, International Joint Conference on Natural
Language Processing, pages 740-746, Nagoya, Japan, 14-18 October 2013.
[8] Vu Mai Tran, Vinh Duc Nguyen, Oanh Thi Tran, Uyen Thu Thi Pham and
Thuy-Quang Ha. An Experimental Study of Vietnamese Question Answering
System. International Conference on Asian Language Processing, {IALP} 2009,
Singapore, December 7-9, 2009, pages 152-155.
[9] Dell Zhang and Wee Sun Lee. 2003. Question classification using support
vector machines. In Proceedings of the 26th annual international ACM SIGIR
conference on Research and development in informaion retrieval (SIGIR '03).
ACM, New York, NY, USA, pages 26-32.
ĐỒ ÁN TỐT NGHIỆP
GVHD: TS. Ngô Xuân Bách 50 SVTH: Nguyễn Đình Nghị – D11CNPM3
Tài liệu tiếng Việt
[10] Trần Cao Đệ, Phạm Nguyên Khang, Phân loại văn bản với máy học vector hỗ
trợ và cây quyết định, Tạp chí Khoa học 2012:21a 52-63, Trường Đại học Cần
Thơ.
[11] Đỗ Bá Lâm, Lê Thanh Hương, Xây dựng hệ thống phân tích cú pháp tiếng
Việt sử dụng văn phạm HPSG, Đại học Bách Khoa Hà Nội, 2008. ICT08-
VLSP-SP85-2.
[12] Hà Thị Minh Lộc, Xây dựng mô hình hệ thống hỏi đáp tự động hỗ trợ đào tạo
trực tuyến, Luận văn thạc sĩ, Học viện Công nghệ Bưu chính Viễn thông, 2013.
[13] Nguyễn Phương Thái, Vũ Xuân Lương, Nguyễn Thị Minh Huyền, Xây dựng
treebank tiếng Việt, Viện Khoa học và Công nghệ Tiên tiến Nhật Bản, 07/2008.
[14] Nguyễn Minh Thành, Phân loại văn bản, Đồ án môn học Xử lý ngôn ngữ tự
nhiên, Đại học quốc gia Thành phố Hồ Chí Minh, 01/2011.
[15] Nguyễn Đức Vinh, Phân tích câu hỏi trong hệ thống hỏi đáp tiếng Việt, Khóa
luận tốt nghiệp đại học, Đại học quốc gia Hà Nội, 2009.
Danh mục các Website tham khảo:
[16] Google : https://www.google.com
[17] Wikipedia:
[18] Natural Language Processing:
[19] Lê Hồng Phương, vnTokenizer - Vietnamese words segmentation ,
2010.
[20] Lê Hồng Phương, vnTagger - Vietnamese words segmentation ,
2010.
[21]
[22]
[23]
[24]
[25]
[26] https://answers.yahoo.com/
[27] https://www.question.com/topic/google/
Các file đính kèm theo tài liệu này:
- cac_dac_trung_ngon_ngu_cho_bai_toan_phan_loai_cau_hoi_tieng_viet_5644.pdf