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

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

pdf75 trang | Chia sẻ: honganh20 | Ngày: 04/03/2022 | Lượt xem: 264 | Lượt tải: 2download
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:

  • pdfluan_van_phan_tich_cau_hoi_tieng_viet_trong_he_thong_don_tie.pdf
Tài liệu liên quan