LỜI CAM ĐOAN. 2
LỜI CẢM ƠN . 3
MỤC LỤC. 4
DANH MỤC THUẬT NGỮ VÀ CÁC KÝ HIỆU VIẾT TẮT . 6
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ. 7
DANH MỤC CÁC BẢNG BIỂU . 7
TÓM TẮT . 8
MỞ ĐẦU. 10
CHưƠNG 1: GIỚI THIỆU TỔNG QUAN . 13
1 Tổng quan về hệ thống trả lời tự động. 13
1.1 Hệ thống hướng nhiệm vụ và hướng hội thoại. 14
1.2 Tình hình nghiên cứu trong và ngoài nước . 15
2 Xử lý ngôn ngữ tự nhiên và ứng dụng. 17
2.1 Sơ lược về ngôn ngữ tự nhiên. 17
2.2 Các ứng dụng xử lý ngôn ngữ tự nhiên . 18
2.3 Tiền xử lý văn bản . 18
2.3.1 Chuẩn hóa và biến đổi văn bản . 18
2.3.2 Biểu diễn văn bản dưới dạng vector. 19
3 Bài toán phân loại văn bản. 19
3.1 Bài toán phân loại văn bản . 19
3.2 Một số thuật toán phân loại văn bản. 20
3.2.1 Thuật toán Naive Bayes. 20
3.2.2 Thuật toán SVM. 23
3.2.3 Mạng nơ-ron nhân tạo. 31
3.3 Các phương pháp đánh giá một hệ thống phân lớp. 36
3.3.1 Đánh giá theo độ chính xác Accuracy. 37
3.3.2 Ma trận nhầm lẫn. 37
75 trang |
Chia sẻ: honganh20 | Ngày: 04/03/2022 | Lượt xem: 345 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Phân tích câu hỏi tiếng việt trong hệ thống đón tiếp và phân loại bệnh nhân, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
phân tách thoả mãn đƣợc việc này và đƣơng
nhiên là nếu chọn đƣợc mặt mà phân tách tốt thì kết quả phân loại của ta sẽ tốt
hơn. Một lẽ rất tự nhiên là dƣờng nhƣ mặt nằm vừa khít giữa 2 cụm dữ liệu sao
cho nằm xa các tập dữ liệu nhất là mặt tốt nhất.
Hình 2. Lề siêu phẳng
25
SVM chính là một biện pháp để thực hiện đƣợc phép lấy mặt phẳng nhƣ
vậy.
Để xác định mặt phẳng kẹp giữa đó, trƣớc tiên ta cần phải xác định đƣợc
2 mặt biên gốc nhƣ 2 đƣờng nét đứt ở trên. Các điểm dữ liệu gần với mặt biên
gốc này nhất có thể xác định bằng:
Để dễ dàng cho việc tính toán thì ngƣời ta sẽ chọn w và b sao cho các
điểm gần nhất (mặt biên gốc) thoả mãn: , tức là:
Đƣơng nhiên là có thể tồn tại nhiều cặp đôi mặt biên gốc nhƣ vậy và tồn
tại nhiều mặt phân đôi kẹp giữa các mặt biên gốc đó. Nên ta phải tìm cách xác
định đƣợc mặt kẹp giữa tốt nhất bằng cách lấy cặp có khoảng cách xa nhau nhất.
Lẽ này là đƣơng nhiên bởi cặp có khoảng cách xa nhất đồng nghĩa với chuyện
tập dữ liệu đƣợc phân cách xa nhất.
Nhƣ vậy, ta có thể thiết lập thông số tính khoảng cách đó bằng phép lấy
độ rộng biên từ mặt biên gốc tới mặt phân tách cần tìm.
Bài toán của ta bây giờ sẽ là cần xác định w và b sao cho ρ đạt lớn nhất và
các điểm dữ liệu . ρ đạt lớn nhất đồng nghĩa với
việc ∥w∥ đạt nhỏ nhất. Tức là:
26
Ở đây, m là số lƣợng các điểm dữ liệu còn việc lấy bình phƣơng
và chia đôi nhằm dễ dàng tính toán và tối ƣu lồi.
Bài toán này có thể giải thông qua bài toán đối ngẫu của nó và sử dụng
phƣơng pháp nhân tử Lagrance. Lúc này, ta sẽ cần tìm các giá trị λ nhƣ sau:
Việc giải λ có thể đƣợc thực hiện bằng phƣơng pháp quy hoạch động bậc
2 (Quadratic Programing). Sau khi tìm đƣợc λ thì ta có các tham số :
Ở đây, là một điểm dữ liệu bất kì nào đó nằm trên đƣờng biên
gốc. Điểm dữ liệu này còn đƣợc gọi là Support Vector. Tên của phƣơng pháp
SVM cũng từ đây mà ra. Tuy nhiên, thƣờng ngƣời ta tính b bằng phép lấy trung
bình tổng của tất cả các bi. Giả sử, ta có tập các Support Vectors thì:
Khi đó, một điểm dữ liệu mới sẽ đƣợc phân loại dựa theo:
27
Nhƣ vậy, chỉ cần các điểm Support Vector trên đƣờng biên gốc là ta có
thể ƣớc lƣợng đƣợc các tham số tối ƣu cho bài toán. Việc này rất có lợi khi tính
toán giúp phƣơng pháp này tiết kiệm đƣợc tài nguyên thực thi
Dữ liệu chồng nhau và phƣơng pháp biên mềm
Trong thực tế tập dữ liệu thƣờng không đƣợc sạch nhƣ trên mà thƣờng có
nhiễu. Nhiễu ở đây là dạng dữ liệu chồng chéo lên nhau nhƣ hình bên dƣới
Hình 3. Dữ liệu phi tuyến
Với dạng dữ liệu nhƣ vậy thì mặt phân tách tìm đƣợc sẽ khó mà tối ƣu
đƣợc, thậm chí là không tìm đƣợc mặt phân tách luôn. Giờ vấn đề đặt ra là làm
sao triệt đƣợc các nhiễu này. Tức là tính toán bỏ qua đƣợc các nhiễu này khi
huấn luyện.
Một cách hình thức, các điểm nhiễu là những điểm mà không đảm bảo
điều kiện . Khi đó bằng phép thêm biến lùi (Slack
Variables) sao cho ra có đƣợc ràng buộc:
Giờ, hàm mục tiêu tối ƣu đƣợc viết lại nhƣ sau :
28
C ở đây là hệ số cân bằng giữa nhiễu và không nhiễu. Nếu C càng lớn thì
các nhiễu càng nhiều điểm đƣợc coi là nhiễu hơn tức là nhiễu đƣợc coi trọng
hơn.
Giải bài toán này, nghiệm tƣơng tự nhƣ cách tính ở trên chỉ khác một điều
là tập các điểm support vectors đƣợc mở rộng thêm tới các điểm ra
miễn sao nó thoả mãn điều kiện:
Tức là :
Khi đó, tham số đƣợc ƣớc lƣợng nhƣ sau:
Với tập mở rộng nhƣ vậy ngƣời ta gọi phƣơng pháp này là phƣơng
pháp biên mềm (Soft-Margin SVM). Còn phƣơng pháp truyền thống là biên
cứng (Hard-Margin SVM).
29
Dữ liệu phân tách phi tuyến và phƣơng pháp kernel
Hình 4. Không gian dữ liệu phi tuyến
Đối với các bài toán có không gian dữ liệu là phi tuyến tính (non-linear)
chúng ta không thể tìm đƣợc một siêu phẳng thỏa mãn bài toán.
Để giải quyết bài toán trong trƣờng hợp này chúng ra cần biểu diễn (ánh
xạ) dữ liệu từ không gian ban đầu X sang không gian F bằng một hàm ánh xạ
phi tuyến:
Trong không gian F tập dữ liệu có thể phân tách tuyến tính. Nhƣng nảy
sinh một vẫn đề lớn đó là trong không gian mới này số chiều của dữ liệu tăng
lên rất nhiều so với không gian ban đầu làm cho chi phí tính toán vô cùng tốn
kém. Rất may trong bài toán SVM ngƣời ta đã tìm ra một cách không cần phải
30
tính , và hàm ánh xạ mà vẫn tính đƣợc . Phƣơng pháp
này gọi là Kernel Trick.
Khi đó tối ƣu biên mềm đƣợc viết dƣới dạng:
Đặt hàm Kernel: , ta có:
Khi đó tham số tƣơng ứng sẽ là :
Điểm dữ liệu mới đƣợc phân lớp với:
Nhƣ vậy, chỉ cần hàm Kernel để tính tích vô hƣớng giữa các điểm
dữ liệu trong không gian mới là ta có thể ƣớc lƣợng đƣợc một điểm mới nằm
trong phân lớp nào.
Việc sử dụng hàm Kernel ở đây sẽ giúp giảm đƣợc công số tính từng hàm Φ và
tích vô hƣớng giữa chúng. Nó có thể tính đƣợc cho bất kì không gian nào rất
31
hiệu quả. Kể cả các không gian với số chiều vô hạn. Bởi nó chỉ cần tính tích vô
hƣơng giữa các điểm dữ liệu mà thôi. Tất nhiên để làm đƣợc điều đó thì Kernel
phải thoả mãn điều kiện Mercer [7].
Khi làm việc ngƣời ta thƣờng chọn một hàm Kernel thông dụng sau:
Phƣơng pháp SVM là một cách hiệu quả cho bài toán phân lớp mà chỉ sử
dụng một lƣợng ít dữ liệu là các điểm support vectors nằm trên đƣờng biên gốc
và phần mở rộng.
3.2.3 Mạng nơ-ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network – ANN) là một mô hình
xử lý thông tin đƣợc mô phỏng dựa trên hoạt động của hệ thống thần kinh của
sinh vật, bao gồm số lƣợng lớn các Nơ-ron đƣợc gắn kết để xử lý thông tin.
ANN hoạt động giống nhƣ bộ não của con ngƣời, đƣợc học bởi kinh nghiệm
(thông qua việc huấn luyện), có khả năng lƣu giữ các tri thức và sử dụng các tri
thức đó trong việc dự đoán các dữ liệu chƣa biết (unseen data).
Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ-
ron thần kinh của não ngƣời. Mạng nơ ron nhân tạo đƣợc thể hiện thông qua ba
thành phần cơ bản: mô hình của nơ ron, cấu trúc và sự liên kết giữa các nơ ron.
Trong nhiều trƣờng hợp, mạng nơ ron nhân tạo là một hệ thống thích ứng, tự
thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy
qua mạng trong quá trình học.
32
Hình 5. Kiến trúc mạng nơ-ron nhân tạo
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer,
Hidden Layer và Output Layer.
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ
các Nơ-ron ở lớp (Layer) trƣớc đó và chuyển đổi các input này cho các lớp xử lý
tiếp theo. Trong một mạng ANN có thể có nhiều Hidden Layer.
Lợi thế lớn nhất của các mạng ANN là khả năng đƣợc sử dụng nhƣ một
cơ chế xấp xỉ hàm tùy ý mà “học” đƣợc từ các dữ liệu quan sát. Tuy nhiên, sử
dụng chúng không đơn giản nhƣ vậy, một số các đặc tính và kinh nghiệm khi
thiết kế một mạng nơ-ron ANN.
Chọn mô hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các
ứng dụng. Mô hình quá phức tạp có xu hƣớng dẫn đền những thách
thức trong quá trình học.
Cấu trúc và sự liên kết giữa các nơ-ron
Thuật toán học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là
học tham số của mô hình (parameter learning) và học cấu trúc
(structure learning). Học tham số là thay đổi trọng số của các liên kết
giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh
33
cấu trúc mạng bằng việc thay đổi số lớp ẩn, số nơ-ron mỗi lớp và cách
liên kết giữa chúng. Hai vấn đề này có thể đƣợc thực hiện đồng thời
hoặc tách biệt.
Nếu các mô hình, hàm chi phí và thuật toán học đƣợc lựa chọn một cách
thích hợp, thì mạng ANN sẽ cho kết quả có thể vô cùng mạnh mẽ và hiệu quả.
Hoạt động của mạng nơ-ron nhân tạo:
Hình 6. Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo
Inputs: Mỗi Input tƣơng ứng với 1 đặc trƣng của dữ liệu. Ví dụ nhƣ trong
ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay
không thì mỗi input là một thuộc tính của khách hàng nhƣ thu nhập, nghề
nghiệp, tuổi, số con,
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ
nhƣ với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì
output là yes hoặc no.
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan
trọng của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu
vào đối với quá trình xử lý thông tin chuyển đổi dữ liệu từ Layer này sang layer
khác. Quá trình học của ANN thực ra là quá trình điều chỉnh các trọng số
Weight của các dữ liệu đầu vào để có đƣợc kết quả mong muốn.
34
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input
đƣợc đƣa vào mỗi Nơ-ron. Hàm tổng của một Nơ-ron đối với n input đƣợc tính
theo công thức sau:
∑
Transfer Function (Hàm chuyển đổi): Hàm tổng của một nơ-ron cho biết
khả năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong. Các nơ-ron này
có thể sinh ra một output hoặc không trong mạng ANN, nói cách khác rằng có
thể output của 1 Nơ-ron có thể đƣợc chuyển đến layer tiếp trong mạng Nơ-ron
theo hoặc không. Mối quan hệ giữa hàm tổng và kết quả output đƣợc thể hiện
bằng hàm chuyển đổi.
Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả đầu ra của
mạng ANN. Hàm chuyển đổi phi tuyến đƣợc sử dụng phổ biến trong mạng
ANN là hoặc sigmoid hoặc tanh.
Trong đó, hàm tanh là phiên bản thay đổi tỉ lệ của sigmoid , tức là khoảng
giá trị đầu ra của hàm chuyển đổi thuộc khoảng [-1, 1] thay vì [0,1] nên chúng
còn gọi là hàm chuẩn hóa (Normalized Function).
Kết quả xử lý tại các nơ-ron (Output) đôi khi rất lớn, vì vậy hàm chuyển
đổi đƣợc sử dụng để xử lý output này trƣớc khi chuyển đến layer tiếp theo. Đôi
khi thay vì sử dụng Transfer Function ngƣời ta sử dụng giá trị ngƣỡng
(Threshold value) để kiểm soát các output của các neuron tại một layer nào đó
trƣớc khi chuyển các output này đến các Layer tiếp theo. Nếu output của một
neuron nào đó nhỏ hơn Threshold thì nó sẻ không đƣợc chuyển đến Layer tiếp
theo.
Mạng nơ-ron của chúng ta dự đoán dựa trên lan truyền thẳng (forward
propagation) là các phép nhân ma trận cùng với activation function để thu đƣợc
35
kết quả đầu ra. Nếu input x là vector 2 chiều thì ta có thể tính kết quả dự đoán
̂ bằng công thức sau
̂
Trong đó, là input của layer thứ , là output của layer thứ sau khi áp
dụng activation function. là các thông số (parameters) cần tìm của
mô hình mạng nơ-ron.
Huấn luyện để tìm các thông số cho mô hình tƣơng đƣơng với việc tìm
các thông số , sao cho độ lỗi của mô hình đạt đƣợc là thấp nhất. Ta
gọi hàm độ lỗi của mô hình là loss function. Đối với softmax function, ta
dùng cross-entropy loss (còn gọi là negative log likelihood).
Nếu ta có N dòng dữ liệu huấn luyện, và C nhóm phân lớp (trƣờng hợp
này là hai lớp nam, nữ), khi đó loss function giữa giá trị dự đoán ̂ và đƣợc
tính nhƣ sau
̂
∑∑ ̂
Ý nghĩa công thức trên nghĩa là: lấy tổng trên toàn bộ tập huấn luyện và
cộng dồn vào hàm loss nếu kết quả phân lớp sai. Độ dị biệt giữa hai giá
trị ̂ và càng lớn thì độ lỗi càng cao. Mục tiêu của chúng ta là tối thiểu hóa
hàm lỗi này. Ta có thể sử dụng phƣơng pháp gradient descent để tối tiểu hóa
hàm lỗi. Có hai loại gradient descent, một loại với fixed learning rate đƣợc gọi
là batch gradient descent, loại còn lại có learning rate thay đổi theo quá trình
huấn luyện đƣợc gọi là SGD (stochastic gradient descent) hay minibatch
gradient descent.
Gradient descent cần các gradient là các vector có đƣợc bằng cách lấy đạo
hàm của loss function theo từng thông số , , , . Để tính các gradient
này, ta sử dụng thuật toán backpropagation (lan truyền ngược). Đây là cách hiệu
quả để tính gradient khởi điểm từ output layer.
36
Áp dụng backpropagation ta có các đại lƣợng:
3.3 Các phƣơng pháp đánh giá một hệ thống phân lớp
Khi xây dựng một mô hình phân lớp, chúng ta cần một phƣơng pháp đánh
giá để xem mô hình sử dụng có hiệu quả không và để so sánh khả năng của các
mô hình. Trong phần này sẽ giới thiệu các phƣơng pháp đánh giá các mô hình
phân lớp.
Hiệu năng của một mô hình thƣờng đƣợc đánh giá dựa trên tập dữ liệu
kiểm thử (test data). Cụ thể, giả sử đầu ra của mô hình khi đầu vào là tập kiểm
thử đƣợc mô tả bởi vector y_pred - là vector dự đoán đầu ra với mỗi phần tử là
class đƣợc dự đoán của một điểm dữ liệu trong tập kiểm thử. Ta cần so sánh
giữa vector dự đoán y_pred này với vector class thật của dữ liệu, đƣợc mô tả bởi
vector y_true.
Ví dụ với bài toán có 3 lớp dữ liệu đƣợc gán nhãn là 0, 1, 2. Trong bài
toán thực tế, các class có thể có nhãn bất kỳ, không nhất thiết là số, và không
nhất thiết bắt đầu từ 0. Chúng ta hãy tạm giả sử các class đƣợc đánh số
từ 0 đến C-1 trong trƣờng hợp có C lớp dữ liệu. Có 10 điểm dữ liệu trong tập
kiểm thử với các nhãn thực sự đƣợc mô tả bởi y_true = [0, 0, 0, 0, 1, 1, 1, 2, 2,
2]. Giả sử bộ phân lớp chúng ta đang cần đánh giá dự đoán nhãn cho các điểm
này là y_pred = [0, 1, 0, 2, 1, 1, 0, 2, 1, 2].
Có rất nhiều cách đánh giá một mô hình phân lớp. Tuỳ vào những bài
toán khác nhau mà chúng ta sử dụng các phƣơng pháp khác nhau. Các phƣơng
pháp thƣờng đƣợc sử dụng là:
37
Độ chính xác – Accuracy score
Ma trận nhầm lẫn – Confusion matrix
Precision & Recall
F1 score
ROC curve
Top R error
3.3.1 Đánh giá theo độ chính xác Accuracy
Cách đơn giản và hay đƣợc sử dụng nhất là Accuracy (độ chính xác).
Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm đƣợc dự đoán đúng và tổng
số điểm trong tập dữ liệu kiểm thử.
Trong ví dụ trên, ta có thể đếm đƣợc có 6 điểm dữ liệu đƣợc dự đoán
đúng trên tổng số 10 điểm. Vậy ta kết luận độ chính xác của mô hình là 0.6 (hay
60%). Để ý rằng đây là bài toán với chỉ 3 class, nên độ chính xác nhỏ nhất đã là
khoảng 1/3, khi tất cả các điểm đƣợc dự đoán là thuộc vào một class nào đó.
3.3.2 Ma trận nhầm lẫn
Ma trận nhầm lẫn là một trong những kỹ thuật đo lƣờng hiệu suất phổ
biến nhất và đƣợc sử dụng rộng rãi cho các mô hình phân loại.
Cách tính sử dụng độ chính xác Accuracy nhƣ ở trên chỉ cho chúng ta
biết đƣợc bao nhiêu phần trăm lƣợng dữ liệu đƣợc phân loại đúng mà không chỉ
ra đƣợc cụ thể mỗi loại đƣợc phân loại nhƣ thế nào, lớp nào đƣợc phân loại đúng
nhiều nhất, và dữ liệu thuộc lớp nào thƣờng bị phân loại nhầm vào lớp khác. Để
có thể đánh giá đƣợc các giá trị này, chúng ta sử dụng một ma trận đƣợc gọi là
confusion matrix.
Về cơ bản, confusion matrix thể hiện có bao nhiêu điểm dữ liệu thực
sự thuộc vào một class, và đƣợc dự đoán là rơi vào một class. Để hiểu rõ hơn,
hãy xem bảng dƣới đây:
38
Có tổng cộng 10 điểm dữ liệu. Chúng ta xét ma trận tạo bởi các giá trị tại
vùng 3x3 trung tâm của bảng.
Ma trận thu đƣợc đƣợc gọi là confusion matrix. Nó là một ma trận vuông
với kích thƣớc mỗi chiều bằng số lƣợng lớp dữ liệu. Giá trị tại hàng thứ i, cột
thứ j là số lƣợng điểm lẽ ra thuộc vào class i nhƣng lại đƣợc dự đoán là thuộc
vào class j. Nhƣ vậy, nhìn vào hàng thứ nhất (0), ta có thể thấy đƣợc rằng trong
số bốn điểm thực sự thuộc lớp 0, chỉ có hai điểm đƣợc phân loại đúng, hai điểm
còn lại bị phân loại nhầm vào lớp 1 và lớp 2.
Chúng ta có thể suy ra ngay rằng tổng các phần tử trong toàn ma trận này
chính là số điểm trong tập kiểm thử. Các phần tử trên đƣờng chéo của ma trận là
số điểm đƣợc phân loại đúng của mỗi lớp dữ liệu. Từ đây có thể suy
ra Accuracy chính bằng tổng các phần tử trên đƣờng chéo chia cho tổng các
phần tử của toàn ma trận
Cách biểu diễn trên đây của confusion matrix còn đƣợc gọi là
unnormalized confusion matrix, tức ma confusion matrix chƣa chuẩn hoá. Để có
cái nhìn rõ hơn, ta có thể dùng normalized confuion matrix, tức confusion matrix
đƣợc chuẩn hoá. Để có normalized confusion matrix, ta lấy mỗi hàng của
unnormalized confusion matrix sẽ đƣợc chia cho tổng các phần tử trên hàng đó.
Nhƣ vậy, ta có nhận xét rằng tổng các phần tử trên một hàng của normalized
confusion matrix luôn bằng 1. Điều này thƣờng không đúng trên mỗi cột.
39
Hình 7. Minh hoạ unnormalized confusion và normalized confusion matrix
Với các bài toán với nhiều lớp dữ liệu, cách biểu diễn bằng màu này rất
hữu ích. Các ô màu đậm thể hiện các giá trị cao. Một mô hình tốt sẽ cho một
confusion matrix có các phần tử trên đƣờng chéo chính có giá trị lớn, các phần
tử còn lại có giá trị nhỏ. Nói cách khác, khi biểu diễn bằng màu sắc, đƣờng chéo
có màu càng đậm so với phần còn lại sẽ càng tốt. Từ hai hình trên ta thấy rằng
confusion matrix đã chuẩn hoá mang nhiều thông tin hơn. Sự khác nhau đƣợc
thấy ở ô trên cùng bên trái. Lớp dữ liệu 0 đƣợc phân loại không thực sự tốt
nhƣng trong unnormalized confusion matrix, nó vẫn có màu đậm nhƣ hai ô còn
lại trên đƣờng chéo chính.
3.3.3 True/False Positive/Negative
Cách đánh giá này thƣờng đƣợc áp dụng cho các bài toán phân lớp có hai
lớp dữ liệu, trong hai lớp dữ liệu này có một lớp nghiêm trọng hơn lớp kia và
cần đƣợc dự đoán chính. Trong y khoa, còn đƣợc gọi là Dƣơng tính / Âm tính
Thật/Giả. Ví dụ, trong bài toán xác định có bệnh ung thƣ hay không thì việc
không bị sót (miss) quan trọng hơn là việc chẩn đoán nhầm âm tính thành dương
tính. Trong bài toán xác định có mìn dƣới lòng đất hay không thì việc bỏ sót
nghiêm trọng hơn việc báo động nhầm rất nhiều. Hay trong bài toán lọc email
rác thì việc cho nhầm email quan trọng vào thùng rác nghiêm trọng hơn việc xác
định một email rác là email thƣờng.
Trong những bài toán này, ngƣời ta thƣờng định nghĩa lớp dữ liệu quan
trọng hơn cần đƣợc xác định đúng là lớp Positive (P-dƣơng tính), lớp còn lại
đƣợc gọi là Negative (N-âm tính). Ta định nghĩa True Positive (TP), False
40
Positive (FP), True Negative (TN), False Negative (FN) dựa trên confusion
matrix chƣa chuẩn hoá nhƣ sau:
Ngƣời ta thƣờng quan tâm đến TPR, FNR, FPR, TNR (R - Rate) dựa
trên normalized confusion matrix nhƣ sau:
False Positive Rate còn đƣợc gọi là False Alarm Rate (tỉ lệ báo động
nhầm), False Negative Rate còn đƣợc gọi là Miss Detection Rate (tỉ lệ bỏ sót).
Trong bài toán dò mìn, thà báo nhầm còn hơn bỏ sót, tức là ta có thể chấp
nhận False Alarm Rate cao để đạt đƣợc Miss Detection Rate thấp.
Việc biết một cột của confusion matrix này sẽ suy ra đƣợc cột còn lại vì
tổng các hàng luôn bằng 1 và chỉ có hai lớp dữ liệu. Với các bài toán có nhiều
lớp dữ liệu, ta có thể xây dựng bảng True/False Positive/Negative cho mỗi
lớp nếu coi lớp đó là lớp Positive, các lớp còn lại gộp chung thành lớp Negative
3.3.4 Precision và Recall
Với bài toán phân loại mà tập dữ liệu của các lớp là chênh lệch nhau rất
nhiều, có một phép đo hiệu quả thƣờng đƣợc sử dụng là Precision-Recall.
Trƣớc hết xét bài toán phân loại nhị phân. Ta cũng coi một trong hai lớp
là positive, lớp còn lại là negative. Xem xét Hình dƣới đây:
41
Hình 8. Cách tính Precision và Recall
Với một cách xác định một lớp là positive, Precision đƣợc định nghĩa là tỉ
lệ số điểm true positive trong số những điểm đƣợc phân loại là positive (TP +
FP).
Recall đƣợc định nghĩa là tỉ lệ số điểm true positive trong số những
điểm thực sự là positive (TP + FN).
Một cách toán học, Precison và Recall là hai phân số có tử số bằng nhau
nhƣng mẫu số khác nhau:
Có thể nhận thấy rằng TPR và Recall là hai đại lƣợng bằng nhau. Ngoài
ra, cả Precision và Recall đều là các số không âm nhỏ hơn hoặc bằng một.
42
Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm đƣợc là
cao. Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ sót các
điểm thực sự positive là thấp.
Khi Precision = 1, mọi điểm tìm đƣợc đều thực sự là positive, tức không
có điểm negative nào lẫn vào kết quả. Tuy nhiên, Precision = 1 không đảm bảo
mô hình là tốt, vì câu hỏi đặt ra là liệu mô hình đã tìm đƣợc tất cả các
điểm positive hay chƣa. Nếu một mô hình chỉ tìm đƣợc đúng một
điểm positive mà nó chắc chắn nhất thì ta không thể gọi nó là một mô hình tốt.
Khi Recall = 1, mọi điểm positive đều đƣợc tìm thấy. Tuy nhiên, đại
lƣợng này lại không đo liệu có bao nhiêu điểm negative bị lẫn trong đó. Nếu mô
hình phân loại mọi điểm là positive thì chắc chắn Recall = 1, tuy nhiên dễ nhận
ra đây là một mô hình cực tồi.
Một mô hình phân lớp tốt là mô hình có cả Precision và Recall đều cao,
tức càng gần một càng tốt. Có một cách đo chất lƣợng của bộ phân lớp dựa vào
Precision và Reall, đó là: F-score.
3.3.5 F1-Score
F score, hay F1-score, là số trung bình điều hòa (harmonic mean) của
precision và recall (giả sử rằng hai đại lƣợng này khác không):
F1 có giá trị nằm trong nửa khoảng (0,1]. F1 càng cao, bộ phân lớp càng
tốt. Khi cả recall và precision đều bằng 1 (tốt nhất có thể), F1=1. Khi cả recall
và precision đều thấp, ví dụ bằng 0.1, F1=0.1. Dƣới đây là một vài ví dụ về F1.
43
Nhƣ vậy, một bộ phân lớp với precision = recall = 0.5 tốt hơn một bộ
phân lớp khác với precision = 0.3, recall = 0.8 theo cách đo này.
Trƣờng hợp tổng quát:
F1 chính là một trƣờng hợp đặc biệt của Fβ khi β=1. Khi β>1, recall đƣợc
coi trọng hơn precision, khi β<1, precision đƣợc coi trọng hơn. Hai đại
lƣợng β thƣờng đƣợc sử dụng là β=2 và β=0.5.
44
CHƢƠNG 2: PHÂN TÍCH CÂU HỎI TRONG HỆ THỐNG TRẢ LỜI TỰ
ĐỘNG
Chƣơng này nghiên cứu lý thuyết cụ thể cho bài toán phân loại câu hỏi
Tiếng Việt, nghiên cứu các phƣơng pháp phân loại câu hỏi, các đặc trƣng của
ngôn ngữ khi tiến hành phân loại. Tìm hiểu các nghiên cứu trong bài toán phân
loại câu hỏi, các mô hình đã đƣợc nghiên cứu và xây dựng cũng nhƣ kết quả mới
nhất đạt đƣợc. Từ đó, định hƣớng mô hình ứng dụng cho phần thực nghiệm,
cũng nhƣ đề xuất đƣợc kiến trúc phân tích câu hỏi cho hệ thống trả lời tự động.
1 Vấn đề cơ bản của một hệ thống trả lời tự động
Các hệ thống hỏi đáp tự động hiện nay có kiến trúc rất đa dạng, tuy nhiên
chúng đều bao gồm ba phần cơ bản: Phân tích câu hỏi; Trích chọn tài liệu; Trích
xuất câu trả lời [3,10,11,18].
Hình 9. Các bước cơ bản trong hệ thống trả lời tự động
Sự khác nhau chính giữa các hệ thống là ở quá trình xử lý trong từng
bƣớc, đặc biệt là ở cách tiếp cận trong việc xác định câu trả lời, trong đó:
45
Bƣớc 1 - Phân tích câu hỏi: Tạo truy vấn cho bƣớc trích chọn tài liệu
liên quan và tìm ra những thông tin hữu ích cho bƣớc trích xuất câu trả lời
Bƣớc 2 - Trích chọn tài liệu: Bƣớc này sử dụng câu truy vấn đƣợc tạo ra
ở bƣớc phân tích câu hỏi để tìm các tài liệu liên quan đến câu hỏi.
Bƣớc 3 - Trích xuất câu trả lời: Bƣớc này phân tích tập tài liệu trả về từ
bƣớc 2 và sử dụng các thông tin hữu ích do bƣớc phân tích câu hỏi cung cấp để
đƣa ra câu trả lời chính xác nhất.
Cách tiếp cận theo trích chọn thông tin thuần túy (pure IR) là: chia nhỏ
một tài liệu trong tập dữ liệu thành chuỗi các tài liệu con, trích chọn các tài liệu
con có độ tƣơng đồng lớn nhất với câu truy vấn (do bƣớc phân tích câu hỏi tạo
ra) và trả lại chúng cho ngƣời dùng.Thách thức lớn nhất ở đây là làm sao chia
nhỏ đƣợc tài liệu thành các phần với kích cỡ tƣơng ứng với kích cỡ của câu trả
lời mà vẫn đủ lớn để có thể đánh chỉ mục đƣợc (nếu chia quá nhỏ thì số lƣợng
tài liệu để đánh chỉ mục sẽ rất lớn, gây gánh nặng cho hệ thống trích chọn thông
tin).
Cách tiếp cận theo xử lý ngôn ngữ tự nhiên (pure NLP) là: so khớp giữa
biểu diễn ngữ pháp và (hoặc) biểu diễn ngữ nghĩa của câu hỏi với dạng biểu diễn
ngữ pháp, ngữ nghĩa của các câu trong các tài liệu liên quan trả về. Khó khăn
của cách tiếp cận này là hệ thống phải thực hiện việc phân tích ngữ pháp, ngữ
nghĩa và so khớp đủ nhanh để đƣa ra câu trả lời trong thời gian chấp nhận đƣợc,
bởi số lƣợng các tài liệu cần xử lý là rất lớn trong khi các bƣớc phân tích trên lại
phức tạp và tốn nhiều thời gian.
Sự khác nhau trong cách trích xuất câu trả lời dẫn đến việc phân tích câu
hỏi cũng trở nên đa dạng. Trong hƣớng tiếp cận theo trích xuất thông tin thuần
túy, phân tích câu hỏi chỉ cần làm tốt việc tạo truy vấn, trong khi với hƣớng tiếp
cận theo xử lý ngôn ngữ tự nhiên, câu hỏi cần đƣợc phân tích ngữ pháp, ngữ
nghĩa một cách chính xác. Các hệ thống hiện nay thƣờng là sự kết hợp giữa hai
hƣớng tiếp cận, sử dụng hệ thống trích chọn thông tin để thu hẹp không gian tìm
kiếm câu trả lời, đồng thời phân tích câu hỏi để tìm ra các thông tin về ngữ pháp,
ngữ nghĩa nhằm tìm ra câu trả lời chính xác nhất.
Kết quả của bƣớc phân tích câu hỏi là đầu vào cho cả hai bƣớc trích chọn
tài liệu liên quan và trích xuất câu trả lời. Bƣớc phân tích câu hỏi có ý nghĩa rất
46
quan trọng, bởi nó ảnh hƣởng đến hoạt động của các bƣớc sau và do đó quyết
định đến hiệu quả của toàn hệ thống
2 Bài toán phân loại câu hỏi
2.1 Phát biểu bài toán
Theo định nghĩa chính thức của phân loại văn bản (Sebastiani 2002 và
Yang & Xiu 1999). Håkan Sundblad [6] đã đƣa ra một định nghĩa phân loại câu
hỏi nhƣ sau:
Định nghĩa: Phân loại câu hỏi là nhiệm vụ gán một giá trị kiểu boolean
cho mỗi cặp , trong đó Q là miền chứa các câu hỏi và
| | là tập các phân loại cho trước.
Cặp (qj,ci) đƣợc gán cho giá trị là T chỉ ra rằng c
Các file đính kèm theo tài liệu này:
- luan_van_phan_tich_cau_hoi_tieng_viet_trong_he_thong_don_tie.pdf