VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
Lƣu Thị 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
LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH
HÀ NỘI - 2020
VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
Lƣu Thị 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
Chuyên ngành: Hệ thống thông tin
Mã số: 8 48 01 04
LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH
CÁN BỘ HƢỚNG DẪN KHOA HỌC: TS.Nguyễn Nhƣ Sơn
Nguyễn Nhƣ Sơn
HÀ NỘI – 2020
LỜI CAM ĐOAN
Tôi là Lƣu Thị Vân, học viên khóa I, ngành Công nghệ thông tin, chuyên
ngành Hệ Thống Thông Tin. Tôi xin cam đoan 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à do tôi nghiên cứu,
tìm hiểu và phát triển dƣới sự hƣớng dẫn của TS. Nguyễn Nhƣ Sơn. Luận văn
không phải sự sao chép từ các tài liệu, công trình nghiên cứu của ngƣời khác mà
không ghi rõ trong tài liệu tham khảo. Tôi xin chịu trách nhiệm về lời cam đoan
này.
Hà Nội, tháng 10 năm 2020
Học viên
Lƣu Thị Vân
LỜI CẢM ƠN
Đầu tiên tôi xin gửi lời cảm ơn tới các thầy cô Học viện Khoa học và
Công nghệ nghệ Việt nam, Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã
tận tình giảng dạy và truyền đạt kiến thức cho tôi trong suốt khóa học cao học
vừa qua.Tôi cũng xin đƣợc gửi lời cảm ơn đến các thầy cô trong Bộ môn Hệ
thống thông tin cũng nhƣ Khoa công nghệ thông tin đã mang lại cho tôi những
kiến thức vô cùng quý giá và bổ ích trong quá trình học tập tại trƣờng.
Đặc biệt xin chân thành cảm ơn thầy giáo, TS. Nguyễn Nhƣ Sơn, ngƣời
đã định hƣớng, giúp đỡ, trực tiếp hƣớng dẫn và tận tình chỉ bảo tôi trong suốt
quá
trình nghiên cứu, xây dựng và hoàn thiện luận văn này.
Tôi cũng xin đƣợc cảm ơn tới gia đình, những ngƣời thân, các đồng
nghiệp và bạn bè đã thƣờng xuyên quan tâm, động viên, chia sẻ kinh nghiệm,
cung cấp các tài liệu hữu ích trong thời gian học tập, nghiên cứu cũng nhƣ trong
suốt quá trình thực hiện luận văn tốt nghiệp.
Hà Nội, tháng 10 năm 2020
Học viên
Lƣu Thị Vân
MỤC LỤC
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
3.3.3 True/False Positive/Negative .............................................................. 39
3.3.4 Precision và Recall .............................................................................. 40
3.3.5 F1-Score ............................................................................................... 42
CHƢƠNG 2: PHÂN TÍCH CÂU HỎI TRONG HỆ THỐNG TRẢ LỜI TỰ ĐỘNG ................................................................................................................. 44
1 Vấn đề cơ bản của một hệ thống trả lời tự động ........................................ 44
2 Bài toán phân loại câu hỏi ......................................................................... 46
2.1 Phát biểu bài toán.................................................................................... 46
2.2 Các phƣơng pháp phân loại câu hỏi ....................................................... 46
2.2.1 Phân loại câu hỏi dựa trên luật ............................................................ 47
2.2.2 Phƣơng pháp sử dụng mô hình ngôn ngữ ............................................ 48
2.2.3 Phân loại câu hỏi dựa vào học máy ..................................................... 48
2.3 Trích chọn đặc trƣng cho phân tích câu hỏi ........................................... 51
2.3.1 Đặc trƣng về từ vựng ........................................................................... 51
2.3.2 Đặc trƣng về cú pháp ........................................................................... 53
2.3.3 Đặc trƣng về ngữ nghĩa ....................................................................... 54
3 Sự phân loại câu hỏi Taxonomy ................................................................ 55
3.1 Khái niệm Taxonomy ............................................................................. 55
3.2 Taxonomy câu hỏi .................................................................................. 55
3.3 Mô hình phân lớp đa cấp ........................................................................ 59
4 Một số kết quả nghiên cứu ......................................................................... 60
CHƢƠNG 3: XÂY DỰNG MÔ HÌNH VÀ ĐÁNH GIÁ THỰC NGHIỆM...... 62
1 Kiến trúc ứng dụng .................................................................................... 62
2 Xây dựng và cài đặt mô hình ..................................................................... 63
2.1 Tập dữ liệu thực nghiệm ......................................................................... 63
2.2 Công cụ thực nghiệm .............................................................................. 65
2.3 Lựa chọn đặc trƣng ................................................................................. 66
3 Đánh giá kết quả thực nghiệm ................................................................... 67
KẾT LUẬN ......................................................................................................... 69
TÀI LIỆU THAM KHẢO ................................................................................... 70
DANH MỤC THUẬT NGỮ VÀ CÁC KÝ HIỆU VIẾT TẮT
Từ chuẩn Diễn giải
Từ viết tắt AI ML Artificial Intelligence Machine Learning
Trí tuệ nhân tạo Máy học, máy móc có khả năng học tập
Xử lý ngôn ngữ tự nhiên ANN NLP
Bộ công cụ xử lý ngôn ngữ tiếng Việt VNTK
Artificial Nerual Network Mạng nơ ron nhân tạo Natural Languague Processing Vietnamese NLP Toolkit for Node Natural Language Toolkit NLTK
Python Python
Support Development Kit Central Processing Unit Graphics Processing Unit SDK CPU GPU
Bộ công cụ xử lý ngôn ngữ tự nhiên bằng Python Ngôn ngữ lập trình python, nền tảng lập trình phía máy chủ Bộ công cụ hỗ trợ phát triển Bộ xử lý trung tâm Bộ vi xử lý chuyên dụng nhận nhiệm vụ tăng tốc, xử lý đồ họa cho bộ vi xử lý trung tâm CPU Giao diện lập trình ứng dụng API
Các cặp câu hỏi đáp
QA Agent
Conversational agents
Conversational agents
Application Programming Interface Question Answering Agent hay Software Agent Tác tử hay Tác tử phần mềm, là một chƣơng trình máy tính tồn tại trong một môi trƣờng nhất định, tự động hành động phản ứng lại sự thay đổi của môi trƣờng nhằm đáp ứng mục tiêu đã đƣợc thiết kế trƣớc Các tác tử đàm thoại là tác tử có khả năng giao tiếp thông qua văn bản hoặc lời nói Bộ phân lớp Naïve Bayes
Naive Bayes Classifier Text REtrieval Conference Hội nghị về truy hồi thông tin Support Vector Machine NBC TREC SVM
toán phân hay hồi
Một thuật toán học máy có giám sát đƣợc sử dụng rất phổ biến ngày nay lớp trong các bài (classification) qui (Regression)
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1: Mặt phân cách dữ liệu ............................................................................ 24 Hình 2. Lề siêu phẳng ......................................................................................... 24 Hình 3. Dữ liệu phi tuyến .................................................................................... 27 Hình 4. Không gian dữ liệu phi tuyến ................................................................. 29 Hình 5. Kiến trúc mạng nơ-ron nhân tạo ............................................................ 32 Hình 6. Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo ...................... 33 Hình 7. Minh hoạ unnormalized confusion và normalized confusion matrix .... 39 Hình 8. Cách tính Precision và Recall ................................................................ 41 Hình 9. Các bƣớc cơ bản trong hệ thống trả lời tự động .................................... 44 Hình 10. Mô hình giai đoạn huấn luyện .............................................................. 49 Hình 11. Các bƣớc thực hiện giai đoạn huấn luyện ............................................ 50 Hình 12. Mô hình giai đoạn phân lớp ................................................................. 51 Hình 13. Bộ phân lớp đa cấp của Li và Roth ...................................................... 60 Hình 14. Kiến trúc tổng quan của hệ thống phân loại câu hỏi ............................ 63 Hình 15. Tập dữ liệu huấn luyện ......................................................................... 64 Hình 16. Tập dữ liệu kiểm tra ............................................................................. 64
DANH MỤC CÁC BẢNG BIỂU
Bảng 1. Một vài so sánh các cách sắp xếp trật tự câu ......................................... 18 Bảng 2. Dữ liệu tập mẫu tính xác suất theo phƣơng pháp Naive Bayes ............. 21 Bảng 3. Biểu diễn các đặc trƣng của một câu hỏi ............................................... 52 Bảng 4. Taxonomy câu hỏi ................................................................................. 56 Bảng 5. Độ chính xác phân loại câu hỏi với các thuật toán học máy khác nhau 61 Bảng 6. Thông tin phần cứng thực nghiệm ......................................................... 65 Bảng 7. Các công cụ, thƣ viện sử dụng ............................................................... 65 Bảng 8. Độ chính xác kết quả thực nghiệm SVM với các đặc trƣng khác nhau 67
TÓM TẮT
Sự phát triển mạnh mẽ của Công nghệ thông tin trong những năm gần đây, đặc biệt trong bối cảnh cuộc cách mạng công nghiệp lần thứ tƣ đang tác động tới nhiều ngành nghề, nhiều lĩnh vực, trong đó có ngành y tế, đòi hỏi các bệnh viện và các cơ sở y tế phải không ngừng đổi mới để nâng cao chất lƣợng dịch vụ khám chữa bệnh, nâng cao hiệu suất làm việc của bác sĩ, giảm chi phí khám chữa bệnh, giảm thời gian chờ đợi của bệnh nhân.
Ứng dụng những công nghệ mới nhƣ : Trí tuệ nhân tạo (AI), Dữ liệu lớn (Big Data), Điện toán đám mây (Cloud Computing), Kết nối vạn vật (IOT), Di động (Mobility), … sẽ giúp các lãnh đạo của bệnh viện và các cơ sở y tế có thể quản lý toàn bộ hoạt động với các số liệu chính xác, trung thực và trực tuyến. Việc ứng dụng công nghệ thông tin (CNTT) trong công tác bảo vệ, chăm sóc, nâng cao sức khỏe ở Việt Nam đã có những bƣớc phát triển quan trọng, đặt nền móng xây dựng, triển khai và vận hành nền y tế thông minh.
Trí tuệ nhân tạo (AI – Artificial Intelligent) là một ngành của Khoa học máy tính liên quan đến việc mô phỏng các quá trình suy nghĩ và học tập của con ngƣời cho máy móc, đặc biệt là cho các hệ thống máy tính. Các quá trình này bao gồm việc học tập (thu thập thông tin và thiết lập các quy tắc sử dụng thông tin), lập luận (sử dụng các quy tắc để đạt đƣợc kết luận gần đúng hoặc xác định), và tự sửa lỗi. AI gần đây trở nên bùng nổ, nhận đƣợc nhiều sự quan tâm là nhờ Dữ liệu lớn (Big data) phát triển, cho phép xử lý công nghệ AI với tốc độ nhanh hơn bao giờ hết. Một số ứng dụng điển hình của AI trong lĩnh vực y tế có thể kể đến nhƣ : (1) Phẫu thuật với sự hỗ trợ của Robot cho phép bác sĩ thực hiện nhiều quy trình phức tạp cùng với sự kiểm soát tốt hơn ; (2) Trợ lý y tá ảo hƣớng dẫn và tƣơng tác với bệnh nhân, thực hiện các biện pháp chăm sóc tránh việc thăm khám không cần thiết ; (3) Hỗ trợ chẩn đoán lâm sàng nhƣ phát hiện ung thƣ, hay việc hỗ trợ đƣa ra phác đồ điều trị ; (4)Tự động hóa các tác vụ quản trị giúp tiết kiệm thời gian, giúp giảm bớt khối lƣợng công việc và nhiệm vụ quản trị ; (5) Phân tích hình ảnh giúp bác sĩ đƣa ra đƣợc kết luận chính xác về các tổn thƣơng trên các hình ảnh X-Quang, CT, MRI, ....
Đón tiếp và phân loại bệnh nhân là một bài toán quan trọng trong việc
đón tiếp bệnh nhân đến thăm khám và điều trị chữa bệnh tại các cơ sở y tế và các bệnh viện. Việc đón tiếp liên tục, tự động hóa và nhanh chóng giúp phân luồng và giảm tải cho cơ sở khám chữa bệnh (KCB) để có thể cứu chữa và thăm khám đƣợc nhiều bệnh nhân hơn, đồng nghĩa cứu đƣợc nhiều mạng ngƣời hơn.
Từ các yêu cầu thực tế để xây dựng và triển khai một hệ thống có thể tự động đón tiếp khám bệnh, đón tiếp làm cận lâm sàng, hƣớng dẫn tìm đƣờng, hƣớng dẫn thủ tục, phân loại khám bệnh cho bệnh nhân dựa vào tập câu hỏi cho trƣớc thay cho cán bộ đón tiếp. Để xây dựng đƣợc một hệ thống đón tiếp nhƣ vậy, tôi thực hiện nghiên cứu các phƣơng pháp phân tích câu hỏi tiếng Việt để tiền xử lý tập lệnh cho hệ thống đón tiếp và phân loại bệnh nhân một cách tự động.
Phân loại văn bản là quá trình gán nhãn hoặc phân nhóm cho văn bản theo nội dung của nó. Đây là một trong những nhiệm vụ cơ bản của Xử lý ngôn ngữ tự nhiên với các ứng dụng rộng rãi nhƣ : Phân tích cảm xúc (Sentiment analysis), gán nhãn chủ đề (Topic labeling), phát hiện thƣ rác (Spam detection), và phát hiện ý định (Intent detection).
Trong khuôn khổ của đề tài này, nghiên cứu các phƣơng pháp Phân tích
câu hỏi tiếng Việt và đƣa ra một kiến trúc để xây dựng một hệ thống đón tiếp và phân loại bệnh nhân đƣợc ứng dụng tại các bệnh viện và cơ sở khám chữa bệnh.
Kết quả chính của mà tôi đạt đƣợc là một mô hình phân loại văn để xác định ý định và nhu cầu khám chữa bệnh của ngƣời dân, đối với nhóm đối tƣợng điều trị bệnh mãn tính, nhóm đối tƣợng tƣ vấn tổng quát. Mô hình ban đầu đã cho kết quả rất tính cực, có thể giải quyết đƣợc những vấn đề cơ bản về ngữ nghĩa, ngữ cảnh và tiến tới giải quyết đƣợc những yêu cầu cao hơn về việc phân loại và hỗ trợ tự động.
MỞ ĐẦU
1. Động lực nghiên cứu và tính cấp thiết của bài toán thực tế
Trong bối cảnh mạng Internet đã trở lên rất phổ biến nhƣ hiện nay, con ngƣời kết nối với con ngƣời thông qua mạng xã hội, bất cứ thời gian nào và ở bất cứ nơi đâu. Sẽ thật tốt hơn nếu có một hệ thống tự động thông minh hỗ trợ con ngƣời bằng cách trò chuyện, có khả năng nhắc nhở, làm trợ lý công việc và có thể theo dõi tình trạng sức khỏe cá nhân mọi lúc, mọi nơi.
Hệ thống trả lời tự động hay trợ lý ảo đang là chủ đề rất nóng từ đầu năm 2016, khi chính thức các công ty lớn nhƣ Microsoft, Google, Facebook, Apple, Samsung, WeChat, Slack đã giới thiệu các trợ lý ảo của mình, là các hệ thống trả lời tự động. Chính thức đặt cƣợc lớn vào cuộc chơi tạo những những thế hệ trợ lý ảo, với mong muốn tạo ra một trợ lý ảo thực sự thông minh tồn tại trong hệ sinh thái các sản phẩm của mình.
Trong nƣớc, một số công ty nhƣ ERM và Vietcare đã phát triển tạo ra hệ thống trả lời tự động về kiến thức y khoa, hỏi đáp về sức khỏe thông tin y tế, hay Subiz, Messnow, Harafunnel, Chatbot Vietnam, … cũng đang cố gắng tạo ra cho mình một hệ thống hỗ trợ, chăm sóc khách hàng và bán hàng tự động.
Trong lĩnh vực y tế, một số công ty cũng đã ứng dụng Robot Đón tiếp nhƣ một sản phẩm của Trí tuệ nhân tạo, Robot là một sản phẩm của quá trình chuyển đổi số y tế, là nhân tố không thể thiếu trong một bệnh viện thông minh. Hỗ trợ hƣớng dẫn toàn bộ các quy trình từ khám chữa bệnh đến chỉ dẫn, có thể kết nối với hệ thống thông tin y tế khác.
Nhiều nhà nghiên cứu đang có hi vọng phát triển các trợ lý ảo có thể hiểu đƣợc ngôn ngữ tự nhiên của con ngƣời, có thể đối thoại và tƣơng tác đƣợc với con ngƣời một cách tự nhiên. Nhiều ngƣời cho rằng việc sử dụng kỹ thuật xử lý ngôn ngữ tự nhiên NLP và các kỹ thuật học sâu Deep Learning để làm tăng đƣợc chất lƣợng và hiệu quả của hệ thống. Nhƣng từ lý thuyết đến thực tế là cả một chặng đƣờng dài và nhiều thách thức, bằng cách nào đó, con ngƣời có thể tích hợp Trí tuệ nhân tạo vào các sản phẩm công nghiệp của mình.
Có thể thấy, hệ thống trả lời tự động có những nhiệm vụ và vai trò quan trọng, có thể trợ giúp đƣợc con ngƣời rất nhiều trong rất nhiều lĩnh vực: y tế, giáo dục, thƣơng mại điện tử, …, là động lực to lớn để nghiên cứu và đƣa ra các sản phẩm phù hợp ứng dụng vào thực tế.
2. Mục tiêu của luận văn
Với cơ sở thực tiễn trên, luận văn này đặt ra mục tiêu nghiên cứu một số phƣơng pháp xử lý ngôn ngữ tự nhiên để phân tích câu hỏi, câu mệnh lệnh, cho phép phân loại các văn bản đầu vào là các câu nói tiếng Việt có tính chất sai khiến, yêu cầu ra lệnh. Nhằm giải quyết một phần nhỏ trong một hệ thống Hỏi đáp và Đón tiếp bệnh nhân tại các cơ sở y tế.
Từ đó, xây dựng một mô hình phân loại văn bản để dự đoán đƣợc ý định của văn bản đầu vào. Từ kết quả thu đƣợc, sẽ đƣợc sử dụng để ứng dụng vào bài toán Đón tiếp và phân loại bệnh nhân đến phòng khám phù hợp tại các cơ sở khám chữa bệnh.
3. Cấu trúc của luận văn
Các nghiên cứu và kết quả đƣợc mô tả trong luận văn đƣợc chia thành bố
cục với các nội dung nhƣ sau:
CHƢƠNG 1: Giới thiệu tổng quan; Giới thiệu tổng quan về hệ thống trả lời tự động, tình hình nghiên cứu trong và ngoài nƣớc; Nghiên cứu về cơ sở xử lý ngôn ngữ tự nhiên và các ứng dụng;tìm hiểu bài toán phân loại văn bản và Các phƣơng pháp phân loại văn bản.
CHƢƠNG2: Phân tích câu hỏi trong hệ thống trả lời tự dộng; Nghiên cứu các vấn đề cơ bản của hệ thống trả lời tự động, tìm hiểu các phƣơng pháp xác định ý định ngƣời dùng bằng phƣơng pháp học máy; Nghiên cứu phƣơng pháp đánh giá một hệ thống thống phân lớp ý định.
CHƢƠNG3: Xây dựng mô hình và đánh giá thực nghiệm; Đề xuất mô hình học máy và kiến trúc của ứng dụng, trình bày các kỹ thuật tiền xử lý dữ liệu đầu vào là các câu nói Tiếng Việt có tính chất sai khiến, yêu cầu ra lệnh.Liệt kê các vấn đề và giải pháp khắc phục khi huấn luyện mô hìnhdữ liệu.
KẾT LUẬN VÀ KIẾN NGHỊ: Phần này đƣa ra các kết luận và đánh giá kết quả đạt đƣợc của luận văn, một số đề xuất để cải tiến mô hình, cũng nhƣ khả năng ứng dụng vào bài toán thực tế.
TÀI LIỆU THAM KHẢO: Đƣa ra danh sách các bài báo đƣợc sử dụng
làm tham khảo, tham chiếu cho luận văn.
13
CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN
Xây dựng hệ thống trả lời tự động là một bài toán khó thuộc lĩnh vực xử lý ngôn ngữ tự nhiên. Bởi vì tính nhập nhằng, đa nghĩa, đa ngữ cảnh của ngôn ngữ tự nhiên. Bài toán đặt ra nhiều thách thức để phát hiện ra đƣợc câu trả lời phù hợp nhất, thông tin hữu ích nhất.
Chƣơng này sẽ giới thiệu tổng quan về hệ thống đối thoại ngƣời máy, các nghiên cứu ở trong và ngoài nƣớc để thấy đƣợc các phƣơng pháp tiếp cận là rất phong phú, sau đó tổng quan và phân loại các mô hình trả lời tự động. Tìm hiểu và giới thiệu bài toán phân loại văn bản, các lý thuyết về học máy, các phƣơng pháp đánh giá một hệ thống phân lớp.
Tổng quan về hệ thống trả lời tự động 1
Hệ thống hộp thoại (Dialogue systems), còn đƣợc gọi là trợ lý tƣơng tác hội thoại, trợ lý ảo và đôi khi đƣợc gọi với thuật ngữ là chatbot, đƣợc sử dụng rộng rãi trong các ứng dụng khác nhau, từ các dịch vụ kỹ thuật cho đến các công cụ có thể học ngôn ngữ và giải trí [22]. Các hệ thống đối thoại có thể đƣợc chia thành các hệ thống hướng mục tiêu, ví dụ nhƣ các dịch vụ hỗ trợ kỹ thuật, và các hệ thống không có định hướng mục tiêu, ví dụ nhƣ các công cụ học ngôn ngữ hoặc các nhân vật trò chơi máy tính [23]. Trong luận văn này tập trung vào trƣờng hợp thứ nhất, thiết kế một hệ thống hƣớng tới các nhiệm vụ có mục tiêu, tức là đi xây dựng một mô hình phân tích ý định của ngƣời dùng cho tiếng Việt trên tập dữ liệu đƣợc xây dựng theo kịch bản.
Một trong những thách thức chính trong phát triển của hệ thống đối thoại ngƣời máy hƣớng nhiệm vụ, và trong việc mở rộng chúng trong nhiều miền ứng dụng, đƣợc nhắc đến trong [24], là sự sẵn có của dữ liệu trên một miền hội thoại cụ thể. Hệ thống đối thoại cần kết hợp và khai thác nhiều thành phần, ví dụ nhƣ nhận dạng giọng nói, hiểu ngôn ngữ tự nhiên, giám sát hội thoại, phát sinh ngôn ngữ tự nhiên, và mỗi thành phần này yêu cầu sẵn có nguồn dữ liệu trên miền cụ thể, tài nguyên và các mô hình. Bao gồm các mô hình ngôn ngữ, mô hình ngữ âm, mô hình hiểu ngôn ngữ, các miền bản thể Ontology, các kịch bản tƣơng tác, các mô hình sinh ngôn ngữ, …
Mặc dù, nhiều vấn đề AI đã đƣợc hƣởng lợi ích từ các nguồn dữ liệu ngày càng lớn, thu thập dữ liệu end-to-end cho các hệ thống đối thoại hƣớng nhiệm
14 vụ vẫn còn là một vấn đề khó khăn. Phƣơng pháp tiếp cận hiện tại để thu thập dữ liệu thoại dẫn đến chi phí phát triển cao và tiêu tốn thời gian cho các nhà phát triển hệ thống. Trừ khi các nguồn lực bên ngoài đã có sẵn trong miền tập dữ liệu yêu cầu phải có một hệ thống triển khai có khả năng duy trì một cuộc đối thoại với ngƣời dùng. Điều này dẫn đến một vấn đề khởi đầu: do thiếu dữ liệu để huấn luyện hệ thống ban đầu, các nhà phát triển hệ thống mang gánh nặng về việc phát triển văn phạm và các mô hình ngôn ngữ, hoặc là thủ công [24]. Thu thập dữ liệu hội thoại với phiên bản đầu tiên của một hệ thống đƣợc triển khai thƣờng có thiếu sót: chất lƣợng dữ liệu thu thập có thể phải chịu những bất cập của hệ thống chính nó, và ngƣời dùng có thể chịu ảnh hƣởng ngôn ngữ của chúng để điều chỉnh cho những khuyết điểm của hệ thống trong việc theo hết một cuộc đối thoại. Kết quả là, tốc độ của tập dữ liệu có thể chậm hơn so với mong muốn. Cuối cùng, quá trình phát triển tốn kém này phải đƣợc lặp đi lặp lại trên một lần nữa cho mỗi miền hoặc hệ thống mới, hoặc ngay cả khi chức năng mới đƣợc thêm vào.
1.1 Hệ thống hƣớng nhiệm vụ và hƣớng hội thoại
Các hệ thống trả lời tự động giao tiếp với ngƣời dùng bằng ngôn ngữ tự nhiên (văn bản, giọng nói, hoặc cả hai) thƣờng đƣợc chia vào hai nhóm chính: Hƣớng nhiệm vụ hoặc hƣớng hội thoại:
Các hệ thống hƣớng nhiệm vụ đƣợc thiết kế cho một tác vụ cụ thể và đƣợc thiết lập để có các cuộc hội thoại ngắn (từ một tƣơng tác đơn lẻ đến các hàng loạt các tƣơng tác liên tiếp) để lấy thông tin từ ngƣời dùng để giúp hoàn thành tác vụ.
Ngày nay mà chúng ta có thể thấy sự hiện diện của chúng trên các thiết bị di động hoặc trên bộ điều khiển gia đình (Siri, Cortana, Alexa, Google Home, v.v.) mà các hệ thốnghội thoại có thể đƣa ra chỉ dẫn tìm đƣờng, điều khiển thiết bị gia đình, tìm nhà hàng hoặc giúp gọi điện thoại hoặc gửi văn bản. Các công ty triển khai các tác tử đàm thoại trên trang web của họ để giúp khách hàng trả lời các câu hỏi hoặc giải quyết các vấn đề một cách tự động. Tác tử đàm thoại đóng một vai trò quan trọng nhƣ một giao diệncho robot để có thể giao tiếp.
Hệ thống hƣớng hội thoại là các hệ thống đƣợc thiết kế cho các cuộc hội thoại mở rộng, đƣợc cài đặt để mô phỏng các cuộc hội thoại không có cấu trúc
15 hoặc mô phỏng lại đặc trƣng của sự tƣơng tác giữa ngƣời và ngƣời, thay vì tập trung vào một nhiệm vụ cụ thể nhƣ đặt vé máy bay. Các hệ thống này thƣờng có giá trị giải trí, chẳng hạn nhƣ hệ thống Microsoft Xiao XiaoIce (Little Bing) (Microsoft, 2014), trò chuyện với mọi ngƣời trên nền tảng nhắn tin văn bản.
Trên phƣơng tiện truyền thông và trong công nghiệp, các tác tử đàm thoại ngƣời-máy thƣờng đƣợc gọi bằng thuật ngữ Chatbots, và các chƣơng trình này, cũng thƣờng cố gắng vƣợt qua các bài kiểm tra thử nghiệm Turing khác nhau.
Tuy nhiên, một hệ thống đầu tiên rất sớm, ELIZA (Weizenbaum, 1966), những Chatbots cũng đã đƣợc sử dụng cho các mục đích thực tế, chẳng hạn nhƣ kiểm tra các lý thuyết về tƣ vấn tâm lý.
1.2 Tình hình nghiên cứu trong và ngoài nƣớc
Việc nghiên cứu vềhệ thống trả lời tự động có ý nghĩa trong khoa học và thực tế. Đã có rất nhiều các hội nghị thƣờng niên về xử lý ngôn ngữ tự nhiên, khai phá dữ liệu, xử lý dữ liệu lớn, tƣơng tác ngƣời máy, … nhƣ TREC, CLEF, tại Việt Nam có KSE, RIVF, ATC, …
Theo ý tƣởng của Russellvà cộng sự [25], thì một hệ thống AI phải đƣợc kiểm tra (hành động dƣới sự ràng buộc hình thức và phù hợp với các điều kiện kỹ thuật); phải đƣợc xác nhận (không theo đuổi các hành vi không mong muốn dƣới sự ràng buộc trƣớc); phải an toàn (ngăn chặn các thao tác có chủ ý của các bên thứ ba, hoặc bên ngoài hoặc bên trong); và phải đƣợc kiểm soát (con ngƣời cần phải có cách để thiết lập lại kiểm soát nếu cần thiết).
Thiết kế hệ thống đối thoại là một nhiệm vụ đầy thách thức và là một trong những mục tiêu ban đầu của trí tuệ nhân tạo (Turing, 1950) [26]. Trong nhiều thập kỷ, việc thiết kế tác nhân đối thoại đã giúp các hệ thống dựa trên cơ sở tri thức và cơ chế dựa trên luật Rule-based để hiểu các thông điệp đầu vào của con ngƣời và tạo ra các phản hồi đáp ứng hợp lý [27,28,29]. Phƣơng pháp tiếp cận hƣớng dữ liệu nhấn mạnh vào việc học trực tiếp từ các tập ngữ liệu của các cuộc đối thoại tiếng nói hoặc văn bản chữ viết. Gần đây, phƣơng pháp này đã đạt đƣợc hiệu quả vì lợi thế dữ liệu phong phú [23], sức mạnh tính toán, và các thuật toán học tốt hơn [30,31].
16
Ritter và cộng sự (2010) [32] đã đề xuất phƣơng pháp tiếp cận hƣớng dữ liệu cho việc xây dựng hệ thống đối thoại, và họ đã trích xuất ra 1,3 triệu cuộc hội thoại từ Twitter với mục đích là phát hiện ra các hành động trong cuộc hội thoại. Bằng việc xây dựng dựa trên sự tƣơng đồng về phân phối trong khuôn khổ mô hình không gian vector, Banchs và Li (2012) [33] đã xây dựng một công cụ tìm kiếm để lấy câu trả lời thích hợp cho bất kỳ một thông điệp đầu vào. Phƣơng pháp tiếp cận khác tập trung vào nhiệm vụ trên một lĩnh vực cụ thể nhƣ các trò chơi [34], và các nhà hàng ăn uống (2016) [35,36].
Việc xây dựng các chƣơng trình Trả lời tự động và Tác tử đàm thoại (conversational agents) đã đƣợc theo đuổi bởi nhiều nhà nghiên cứu trong nhiều thập kỷ qua, và rất nhiều nghiên cứu khác không đƣợc đề cập trong danh mục tham khảo. Tuy nhiên, hầu hết các hệ thống hội thoại này đòi hỏi một quy trình xử lý khá phức tạp qua nhiều giai đoạn [37, 38].
17
2 Xử lý ngôn ngữ tự nhiên và ứng dụng
2.1 Sơ lƣợc về ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), là một lĩnh vực khoa học máy tính, kỹ thuật thông tin và trí tuệ nhân tạo tập trung vào nghiên cứu các tƣơng tác về mặt ngôn ngữ giữa máy tính và con ngƣời, cụ thể hơn là làm thế nào để lập trình cho máy tính xử lý và phân tích một lƣợng lớn dữ liệu ngôn ngữ tự nhiên.
Theo cách hiểu khác, NLP quan tâm đến việc làm thế nào để máy tính hiểu và tận dụng đƣợc các tập dữ liệu sẵn có dƣới dạng ngôn ngữ tự nhiên. NLP đã đƣợc ứng dụng rộng rãi trong thực tế nhằm: tiết kiệm sức lao động, thúc đẩy các ngành nghề kinh doanh mới, và giúp các nhà hoạch định chiến lƣợc trong việc đƣa ra quyết định, …
Ngôn ngữ tự nhiên không giống với ngôn ngữ nhân tạo nhƣ ngôn ngữ máy tính (C, PHP, …). Trên thế giới hiện nay có khoảng 7000 loại ngôn ngữ. Có nhiều cách để phân loại, một số cách phân loại ngôn ngữ phổ biến nhƣ dựa vào: nguồn gốc, đặc điểm, …
Phân loại ngôn ngữ theo nguồn gốc:
1. Ấn – Âu : Dòng Ấn độ, Hy lạp, German, … 2. Xê-mít (Semite): Dòng Semite, Do Thái, Ả Rập, Ai cập, Kusit, … 3. Thổ: Thổ Nhĩ Kỳ 4. Hán Tạng (Tạng-Miến): Dòng Hán, Tạng-Miến, … 5. Nam Phƣơng: Dòng Nam-Thái, Nam Á (Tiếng Việt).
Phân loại ngôn ngữ theo đặc điểm:
1. Hòa kết (Flexional): Đức, Anh, Nga… 2. Chắp dính (Agglutinate): Thổ Nhĩ Kỳ, Nhật Bản, Triều Tiên, … 3. Đơn lập (Isolate): Tiếng Việt, Hán, … 4. Tổng hợp (Polysynthetic): Chukchi, Aniu…
Do đó tiếng Việt đƣợc xếp vào loại đơn lập – tức phi hình thái, không biến hình. Cùng với đó, tiếng Việt đƣợc viết theo trật tự S – V – O. (subject (S), verb (V) and object (O)).
18 Bảng 1. Một vài so sánh các cách sắp xếp trật tự câu
Ngôn ngữ Tiếng Việt Tiếng Anh Tiếng Nhật Câu ví dụ Tôi đọc sách I read a book 私は本を読みます Trật tự SVO SVO SOV
2.2 Các ứng dụng xử lý ngôn ngữ tự nhiên
Các ứng dụng phổ biến của NLP bao gồm: ứng dụng giám sát mạng xã
hội, chatbot, và tổng đài trả lời tự động.
2.3 Tiền xử lý văn bản
Văn bản trƣớc khi đƣợc vector hoá, tức là trƣớc khi sử dụng văn bản cần phải đƣợc tiền xử lý, để loại bỏ nhiễu và làm sạch dữ liệu. Quá trình tiền xử lý sẽ giúp nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện.
Tuỳ vào mục đích bộ phân loại mà chúng ta sẽ có những phƣơng pháp
tiền xử lý văn bản khác nhau, nhƣ :
1. Chuyển vẳn bản về chữ thƣờng. 2. Loại bỏ dấu câu (nếu không thực hiện tách câu). 3. Loại bỏ các kí tự đặc biệt biệt, các chữ số, phép tính toán số học. 4. Loại bỏ các từ dừng stopword (những từ xuất hiện hầu hết trong các
văn bản) không có ý nghĩa khi tham gia vào phân loại văn bản
5. Các kỹ thuật tinh chỉnh khác dựa trên kinh nghiệm
2.3.1 Chuẩn hóa và biến đổi văn bản
Một trong những nhiệm vụ đầu tiên trong việc xử lý phân loại văn bản là chọn đƣợc một mô hình biểu diễn văn bản thích hợp. Một văn bản ở dạng thô (dạng chuỗi) cần đƣợc chuyển sang một mô hình khác để tạo thuận lợi cho việc biểu diễn và tính toán.
Tuỳ thuộc vào từng thuật toán phân loại khác nhau mà chúng ta có mô hình biểu diễn riêng. Một trong những mô hình đơn giản và thƣờng đƣợc sử dụng trong nhiệm vụ này là mô hình không gian vector. Một văn bản trong
19
, với là một vector n chiều để
nhiệm vụ này đƣợc biểu diễn theo dạng đo lƣờng giá trị của phần tử văn bản.
2.3.2 Biểu diễn văn bản dƣới dạng vector
Mô hình không gian vector là một trong những mô hình đƣợc sử dụng rộng rãi nhất cho việc tìm kiếm (truy hồi) thông tin. Nguyên nhân chính là bởi vì sự đơn giản của nó.
Trong mô hình này, các văn bản đƣợc thể hiện trong một không gian có số chiều lớn, trong đó mỗi chiều của không gian tƣơng ứng với một từ trong văn bản. Phƣơng pháp này có thể biểu diễn một cách hình tƣợng nhƣ sau : mỗi văn bản D đƣợc biểu diễn dƣới dạng ⃗ (vector đặc trƣng cho văn bản D). Trong đó, ⃗ , và n là số lƣợng đặc trƣng hay số chiều của vector văn bản, là trọng số của đặc trƣng thứ i (với 1≤ i ≤n).
Nhƣ vậy, nếu trong kho ngữ liệu của quá trình huấn luyện nhiều văn bản, ta kí hiệu Dj, là văn bản thứ j trong tập ngữ liệu, và vector là vector đặc trƣng cho văn bản Dj, và là trọng số thứ i của vector văn bản j.
3 Bài toán phân loại văn bản
3.1 Bài toán phân loại văn bản
Trong lĩnh vực xử lý ngôn ngữ tự nhiên, phân loại văn bản là một bài toán xử lý văn bản cổ điển, có nhiệm vụ là ánh xạ một văn bản vào một chủ đề đã biết trong một tập hữu hạn các chủ đề dựa trên ngữ nghĩa của văn bản. Theo Yang & Xiu (1999)[1] “Phân loại văn bản tự động là việc gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tương tự của văn bản đó so với các văn bản đã được gán nhãn trong tập huấn luyện”. Ví dụ một bài viết trong một tờ báo có thể thuộc một (hoặc một vài) chủ đề nào đó (nhƣ thể thao, sức khỏe, công nghệ thông tin,…). Việc tự động phân loại văn bản vào một chủ đề nào đó giúp cho việc sắp xếp, lƣu trữ và truy vấn tài liệu dễ dàng hơn về sau.
Bài toán phân loại văn bản, thực chất, có thể xem là bài toán phân lớp. Phân loại văn bản tự động là việc gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tƣơng tự của văn bản đó so với các văn bản đã đƣợc gán nhãn trong tập huấn luyện. Các ứng dụng của phân lớp văn bản thƣờng rất đa dạng
20 nhƣ: lọc email spam, phân tích cảm xúc (sentiment analysis), phân loại tin tức, …
Đã có nhiều công trình nghiên cứu đạt những kết quả khả quan, nhất là đối với phân loại văn bản tiếng Anh. Tuy vậy, các nghiên cứu và ứng dụng đối với văn bản tiếng Việt còn nhiều hạn chế do khó khăn về tách từ và câu. Một số công trình nghiên cứu trong nƣớc với các hƣớng tiếp cận khác nhau cho bài toán phân loại văn bản, nhƣ: phân loại với máy học vectơ hỗ trợ [39], cách tiếp cận sử dụng lý thuyết tập thô [40], cách tiếp cận thống kê hình vị [41], cách tiếp cận sử dụng phƣơng pháp học không giám sát và đánh chỉ mục [42], cách tiếp cận theo luật kết hợp [43]. Theo các kết quả trình bày trong các công trình đó thì những cách tiếp cận nêu trên đều cho kết quả khá tốt.
3.2 Một số thuật toán phân loại văn bản
3.2.1 Thuật toán Naive Bayes
Naive Bayes đã đƣợc nghiên cứu rộng rãi từ những năm 1950. Đƣợc dùng lần đầu tiên trong lĩnh vực phân loại vào đầu những năm 1960. Sau đó nó trở nên phổ biến và đƣợc sử dụng rộng rãi trong lĩnh vực này cho đến ngày nay.
Ý tƣởng cơ bản của cách tiếp cận này là sử dụng xác suất có điều kiện giữa từ hoặc cụm từ và chủ đề để dự đoán xác suất chủ đề của một tập tin 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 tập tin đều độc lập với nhau. Ví dụ một loại trái cây có thể đƣợc cho là quả táo nếu nó đỏ, tròn và đƣờng kính là 10cm. Giải thuật Naïve Bayes sẽ cho rằng mỗi tính năng này đều đóng góp một cách độc lập để xác suất trái cây này là quả táo bất kể sự hiện diện hay vắng mặt của các tính năng khác.
Thuật toán Naive Bayes dựa trên định lý Bayes đƣợc phát biểu nhƣ sau :
| |
Trong đó:
P(Y|X) là xác suất X thuộc lớp Y.
21
P(X|Y) xác suất một phần tử thuộc lớp Y, và phần từ đó có đặc điểm
X.
P(Y) xác suất xảy ra lớp Y, mức độ thƣờng xuyên lớp Y xuất hiện
trong tập dữ liệu
P(X) xác suất xảy ra X.
Ví dụ 1: Giả sử ta có hai lớp Y1 = Nam, Y2 = nữ. Và một ngƣời không biết giới tính là Phƣơng, X = Phƣơng. Việc xác định Phƣơng là Nam hay Nữ tƣơng đƣơng với việc so sánh xác suất P(Nam/Phƣơng) và P(Nữ/Phƣơng). Theo thuật toán Naïve Bayes ta có công thức nhƣ sau:
| |
Trong đó: P(Nam|Phƣơng): Xác suất Phƣơng là Nam
P (Phƣơng|Nam): xác suất những ngƣời phái nam đƣợc gọi
Phƣơng (có tên Phƣơng).
P(Nam): xác suất phái nam trong tập dữ liệu. P(Phƣơng): xác suất tên Phƣơng trong tập dữ liệu.
Tƣơng tự ta có:
| |
Giả sử ta có bảng dữ liệu tên và giới tính nhƣ sau :
Bảng 2.Dữ liệu tập mẫu tính xác suất theo phương pháp Naive Bayes
Tên Phƣơng Nga Hồng Nam Phƣơng Phƣơng Tiến Giang Tùng Giới tính Nam Nữ Nữ Nam Nữ Nữ Nam Nữ Nam
22
Đài Nữ
|
|
Nhƣ vậy Phƣơng là Nữ có xác suất cao hơn nên Phƣơng đƣợc phân vào
lớp nữ khi phân loại.
Thuật toán Naive Bayes Classification đƣợc áp dụng vào các loại ứng
dụng sau:
Real time Prediction: NBC chạy khá nhanh nên nó thích hợp áp dụng ứng dụng nhiều vào các ứng dụng chạy thời gian thực, nhƣ hệ thống cảnh báo, các hệ thống trading …
Multi class Prediction: Nhờ vào định lý Bayes mở rộng ta có thể ứng dụng vào các loại ứng dụng đa dự đoán, tức là ứng dụng có thể dự đoán nhiều giả thuyết mục tiêu.
Text classification/ Spam Filtering/ Sentiment Analysis: NBC cũng rất thích hợp cho các hệ thống phân loại văn bản hay ngôn ngữ tự nhiên vì tính chính xác của nó lớn hơn các thuật toán khác. Ngoài ra các hệ thống chống thƣ rác cũng rất ƣu chuộng thuật toán này. Và các hệ thống phân tích tâm lý thị trƣờng cũng áp dụng NBC để tiến hành phân tích tâm lý ngƣời dùng ƣu chuộng hay không ƣu chuộng các loại sản phẩm nào từ việc phân tích các thói quen và hành động của khách hàng.
Recommendation System: Naive Bayes Classifier và Collaborative Filtering đƣợc sử dụng rất nhiều để xây dựng cả hệ thống gợi ý, ví dụ nhƣ xuất hiện các quảng cáo mà ngƣời dùng đang quan tâm nhiều nhất từ việc học hỏi thói quen sử dụng internet của ngƣời dùng, hoặc nhƣ ví
23
dụ đầu bài viết đƣa ra gợi ý các bài hát tiếp theo mà có vẻ ngƣời dùng sẽ thích trong một ứng dụng nghe nhạc
3.2.2 Thuật toán SVM
SVM (Support Vector Machine) là một thuật toán học máy có giám sát đƣợc sử dụng rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui (Regression).
SVM đƣợc đề xuất bởi Vladimir N. Vapnik [5] và các đồng nhiệp của ông vào năm 1963 tại Nga dựa trên lý thuyết học thống kê và sau đó trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết các bài toán phi tuyến tính (nonlinear) bằng phƣơng pháp Kernel Trick [4]. Có nhiều tiềm năng phát triển về mặt lý thuyết cũng nhƣ ứng dụng trong thực tiễn.
Ý tƣởng của phƣơng pháp này là cho trƣớc một tập huấn luyện đƣợc biểu diễn trong không gian véc-tơ, trong đó mỗi văn bản đƣợc xem nhƣ là một điểm trong không gian này. Phƣơng pháp này tìm ra một mặt siêu phẳng h 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, tạm gọi là lớp + (dƣơng) và lớp – (âm). Nhƣ vậy, bộ phân loại SVM là một mặt siêu phẳng tách các mẫu thuộc lớp dƣơng ra khỏi cách mẫu thuộc lớp âm với độ chênh lệch lớn nhất. Độ chênh lệch này hay còn gọi là khoảng cách biên đƣợc xác định bằng khoảng cách giữa mẫu dƣơng và mẫu âm gần mặt siêu phẳng nhất (hình).
Khoảng cách này càng lớn các mẫu thuộc hai lớp càng đƣợc phân chia rõ ràng, nghĩa là sẽ đạt đƣợc kết quả phân loại tốt. Mục tiêu của thuật toán SVM là tìm đƣợc khoảng cách biên lớn nhất để tạo đƣợc kết quả phân loại tốt.
Với bài toán phân loại nhị phân tuyến tính ta cần vẽ đƣợc mặt phân tách (với không gian 2 chiều thì mặt phẳng này là đƣờng phân tách): để phân biệt đƣợc dữ liệu. Khi đó dấu của hàm ƣớc lƣợng
sẽ thể hiện đƣợc điểm dữ
liệu x nằm ở cụm dữ liệu nào.
24
Hình 1: Mặt phân cách dữ liệu
Ta có thể thấy có nhiều mặt 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à
liệu . ρ đạt lớn nhất đồng nghĩa với
các điểm dữ 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
đƣợc mở rộng thêm tới các điểm ra
là tập các điểm support vectors 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
, và hàm ánh xạ 30 mà vẫn tính đƣợc . Phƣơng pháp
tính này gọi là Kernel Trick.
Khi đó tối ƣu biên mềm đƣợc viết dƣới dạng:
, ta có:
Đặt hàm Kernel:
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âu hỏi qj thuộc phân loại
ci và đƣợc gán cho giá trị là F nếu qj không thuộc phân loại ci.
Trong bối cảnh học máy, nhiệm vụ của phân loại câu hỏi là làm cho hàm
mục tiêu từ chƣa rõ ràng trở nên gần đúng với hàm mục tiêu lý tƣởng , nhƣ vậy và Ф trùng nhau càng nhiều càng tốt.
Bài toán phân loại câu hỏi có thể đƣợc phát biểu nhƣ sau:
Input:
- Cho trƣớc một tập các câu hỏi - Tập các chủ đề (phân loại) đƣợc định nghĩa
Output:
- Nhãn của câu hỏi .
2.2 Các phƣơng pháp phân loại câu hỏi
Theo [3,6] có 2 cách tiếp cận để phân loại câu hỏi: dựa trên luật (rule- based) và dựa trên học máy (machine learning based). Ngoài ra, có một vài cách tiếp cận lai là sự kết hợp của tiếp cận dựa trên luật và học máy.
47
2.2.1 Phân loại câu hỏi dựa trên luật
Đây là cách tiếp cận đƣợc cho là đơn giản nhất để phân loại câu hỏi. Trong cách tiếp cận này thì việc phân loại câu hỏi dựa vào các luật ngữ pháp viết tay. Các luật này có đƣợc là do đề xuất từ các chuyên gia. Đối với cách tiếp cận này, một loạt các biểu thức chính quy (regular expression) đƣợc tạo ra để so khớp với câu hỏi từ đó quyết định phân loại của câu hỏi và loại câu trả lời.
Nhóm tác giả Singhal (1999) dựa trên các quy tắc hoạt động của từ đã
giới thiệu một số luật nhƣ sau [6]:
Truy vấn bắt đầu bằng “Who” hoặc “Whom” đƣợc đƣa đến loại
“person”.
Truy vấn bắt đầu bằng “Where”, “Whence”, hoặc “Whither” đƣợc
đƣa về loại “location”.
Truy vấn bắt đầu với “How few”, “How great”, “How little”, “How
many” hoặc “How much” đƣợc đƣa về loại “quantity”.
Truy vấn bắt đầu bằng “Which” hoặc “What” thì tìm kiếm danh từ
chính (head noun) trong từ điển để xác định loại câu trả lời.
Tuy nhiên, cách tiếp cận nàythể hiện một số hạn chế nhƣ:
Sự phân loại dựa trên các luật viết gặp nhiều khó khăn và tốn nhiều thời gian xử lý, do dựa trên kiến thức chủ quan của con ngƣời trên một tập dữ liệu câu hỏi .
Có sự giới hạn về mức độ bao quát và phức tạp trong việc mở rộng
phạm vi của các loại câu trả lời .
Khi một phân loại mới xuất hiện, nhiều quy tắc trƣớc đó phải đƣợc
sửa đổi hoặc viết mới hoàn toàn.
Li và Roth đã cung cấp ví dụ để chỉ ra khó khăn của cách tiếp cận dựa trên luật.Tất cả các câu hỏi dƣới đây đều có cùng một câu trả lời nhƣng chúng đƣợc viết trong những định dạng cú pháp khác nhau.
What tourist attractions are there in Reims? What are the names of the tourist attractions in Reims? What do most tourist visit in Reims? What attracts tourists to Reims?
48
What is worth seeing in Reims?
Tất cả các câu hỏi trên cùng đề cập đến một lớp trong khi chúng có định dạng cú pháp khác nhau và do đó chúng cần so khớp với các luật khác nhau. Vì vậy với sự giới hạn về số lƣợng các luật dẫn đến việckhó để phân loại.
2.2.2 Phƣơng pháp sử dụng mô hình ngôn ngữ
Phƣơng pháp này xây dựng một mô hình ngôn ngữ thốngkê [44] để ƣớc lƣợng đƣợc phân phối của ngôn ngữ tự nhiên chính xác nhất có thể. Cụ thể vớibài toán phân lớp câu hỏi là việc ƣớc lƣợng xác suất có điều kiệnP(a|b) của “loại câu hỏi”a xuất hiện trong “ngữ cảnh” câu hỏi tự nhiên b. Bài toán đặt ra là chúng ta phải tìm mộtphƣơng pháp ƣớc lƣợng (có thể tin tƣởng đƣợc) mô hình xác suất có điều kiện p(a|b).
2.2.3 Phân loại câu hỏi dựa vào học máy
Đây là cách tiếp cận đƣợc sử dụng phổ biến để giải quyết bài toán phân loại câu hỏi. Cách tiếp cận này sẽ thay thế các kiến thức chuyên môn bằng một tập lớn các câu hỏi đƣợc gán nhãn (tập dữ liệu mẫu). Sử dụng tập này, một bộ phân lớp sẽ đƣợc huấn luyện có giám sát. Một số thuật toán thƣờng đƣợc sử dụng nhƣ: Mạng nơ-ron (Neural NetWork), tính xác suất Naïve Bayes, Maximum Entropy, cây quyết định (Decision Tree), Máy Vector hỗ trợ (Support Vector machine-SVM) ... Cách tiếp cận bằng học máy đã giải quyết đƣợc các hạn chế trong cách tiếp cận dựa trên luật.
Một số thuận lợi trong cách tiếp cận này bao gồm:
Thời gian tạo dựng ngắn vì không phải tốn thời gian đề ra các luật. Bộ phân loại đƣợc tạo ra tự động thông qua việc học từ một tập dữ liệu huấn luyện, việc cung cấp các luật giờ không cần thiết nữa. Độ bao phủ rộng hơn, và có thể mở rộng độ bao phủ bằng cách thu
đƣợc từ các ví dụ huấn luyện.
Nếu có yêu cầu , bộ phân loại có thể tái cấu trúc lại (học lại) một
cách linh hoạt để phù hợp với quy luật mới.
Trong hội nghị TREC các nhà nghiên cứu đã phát triển một phƣơng pháp học máy tiếp cận để phân loại câu hỏi. Mục đích của phƣơng pháp này là phân
49 loại các câu hỏi vào trong các lớp ngữ nghĩa khác nhau mà đã đƣợc gợi ý về khả năng trả lời, để chúng có thể đƣợc sử dụng trong các giai đoạn sau của hệ thống hỏi đáp. Một trong những giai đoạn quan trọng trong tiến trình này là việc phân tích câu hỏi đến một cấp độ cho phép xác định “loại” câu trả lời sau khi đƣợc tìm kiếm .
Cách tiếp cận bài toán phân loại câu hỏi theo phƣơng pháp học máy đƣợc sử dụng phổ biến hơn cả. Vấn đề phân loại câu hỏi theo phƣơng pháp thống kê dựa trên kiểu học có giám sát đƣợc đặc tả bao gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân lớp.
Giai đoạn huấn luyện:
Đầu vào: tập dữ liệu huấn luyện và thuật toán huấn luyện. Đầu ra: mô hình phân loại (bộ phân loại – classifier)
Hình 10. Mô hình giai đoạn huấn luyện
Giai đoạn huấn luyện bộ phân loại về cơ bản có thể có nhiều kỹ thuật,
tổng quát đều thực hiện các bƣớc sau:
Thu thập dữ liệu huấn luyện: một tập dữ liệu huấn luyện đƣợc thu
thập từ nhiều nguồn khác nhau.
Tiền xử lý: chuyển đổi các dữ liệu trong tập huấn luyện thành một
hình thức phù hợp để phân loại.
Vector hóa: các câu hỏi trong tập dữ liệu cần đƣợc mã hóa bởi mô
hình không gian vector.
Trích chọn đặc trƣng: loại bỏ những từ (đặc trƣng) không mang ý nghĩa thông tin nhằm nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện.
50
Thuật toán huấn luyện: Sử dụng thuật toán huấn luyện bộ phân loại để tìm ra họ các tham số tối ƣu. ƣớc này có thể đƣợc thực thi lặp lại nhiều lần để tìm họ các tham số tối ƣu sau mỗi lần lặp.
Đánh giá: bƣớc này đánh giá hiệu suất (chất lƣợng) của bộ phân
loại.
Hình 11. Các bước thực hiện giai đoạn huấn luyện
Giai đoạn phân lớp:
Sau khi đã hoàn thành giai đoạn huấn luyện, mô hình phân lớp sẽ đƣợc áp
dụng cho các văn bản mới cần phân loại.
Đầu vào: các vector đặc trƣng của câu hỏi và mô hình phân loại
đƣợc sử dụng.
Đầu ra: nhãn/phân loại của câu hỏi
51
Hình 12. Mô hình giai đoạn phân lớp
2.3 Trích chọn đặc trƣng cho phân tích câu hỏi
Trích chọn đặc trƣng có ý nghĩa quan trọng, ảnh hƣởng trực tiếp đến kết quả phânlớp. Các loại đặc trƣng chính thƣờng đƣợc sử dụng là tập từ (bag-of- word) và tập các cặptừ/nhãn từ loại (bag-of-word/POS tag). Việc phân loại câu hỏi có điểm khác với phân loạivăn bản đó là câu hỏi chỉ chứa một số ít từ trong khi văn bản có số lƣợng từ rất lớn. Trọngsố từ (TF – term frequency) góp phần quan trọng trong nâng cao độ chính xác của phânlớp văn bản, trong khi với câu hỏi các từ hầu nhƣ chỉ xuất hiện một lần duy nhất, do đóviệc biểu diễn câu hỏi theo trọng số từ không có ý nghĩa nhiều trong phân lớp câu hỏi.
Trong Tiếng Anh việc biểu diễn câu hỏi dƣới dạng bag-of-word là khá đơn giản bởiđặc trƣng của tiếng Anh là các từ phân cách nhau bởi khoảng trắng. Do đó việc sử dụngunigram cũng chính là bag-of-word. Trong khi với tiếng Việt, một từ có thể đƣợc ghép lạitừ nhiều âm tiết, do đó không thể dùng khoảng trắng làm ranh giới phân cách các từ. Cầnthiết phải có một công cụ tách từ hiệu quả cho tiếng Việt.
Các đặc trƣng trong phân loại câu hỏi có thể đƣợc chia thành 3 loại khácnhau: các đặc trƣng về từ vựng, các đặc trƣng về cú pháp và các đặc trƣng về ngữnghĩa.
2.3.1 Đặc trƣng về từ vựng
Các đặc trƣng từ vựng của một câu hỏi thƣờng đƣợc rút trích dựa trên ngữ cảnhcủa các từ của câu hỏi, nghĩa là, các từ đó xuất hiện trong một câu hỏi. Tần
52 số xuất hiện của các từ trong câu hỏi (các giá trị của đặc trƣng) có thể đƣợcxem nhƣ là giá trị trọng số, nó biểu thị cho tầm quan trọng của một từ trong câu hỏi.
Không gian đặc trƣng bag-of-word còn đƣợc gọi là unigram.Unigram là mộttrƣờng hợp đặc biệt của các đặc trƣng n-gram.Để trích xuất các đặc trƣng n- gram, bấtkỳ n từ liên tiếp nhau trong một câu hỏi sẽ đƣợc xem nhƣ là một đặc trƣng.Ngoàiunigram, còn có thêm 2 loại n-gram thƣờng đƣợc sử dụng là bigram, trigram. Cụ thể:
Bigram: lấy lần lƣợt 2 từ liên tiếp nhau trong câu. Trigram : lấy lần lƣợt 3 từ liên tiếp nhau trong câu.
Ngoài các đặc trƣng trên, nhóm tác giả Huang đã giới thiệu đặc trƣng từ hỏi wh- word.Đặc trƣng wh-word đƣợc hiểu các câu hỏi bắt đầu bằng “wh”.Chẳng hạn wh-word của câu hỏi “What is the longest river in the world?” là what.Đã có 8 loại wh-word đƣợc đƣa ra [39]: what, which, when, where, who, how, why, và rest, với restđƣợc hiểu là các loại câu hỏi còn lại không thuộc 8 loại trên. Ví dụ câu hỏi “Name a food high in zinc” là một câu hỏi thuộc loại rest.
Nhóm tác giả Huang [39] còn giới thiệu một đặc trƣng từ vựng khác là word-shapes (khuôn dạng từ). Loại đặc trƣng này dùng để chỉ tính chi tiết của các đơn từ. Đãcó 5 loại đặc trƣng word shapes đƣợc giới thiệu: all digits, all lower case, all upper case, mixed case and other.
Blunsom cùng các đồng nghiệp (2006) đã giới thiệu chiều dài của câu hỏi
nhƣ làđặc trƣng về từ vựng. Nó đơn giản là số từ trong một câu hỏi.
Các đặc trƣng của câu hỏi: How many Grammys did Michael Jackson win
in 1983 ? đƣợc biểu diễn nhƣ bảng dƣới đây.
Bảng 3. Biểu diễn các đặc trưng của một câu hỏi
Đặc trƣng Không gian đặc trƣng
Unigram
Bigram
{(How,1) (many,1) (Grammys,1) (did,1) (Michael,1)( Jackson,1) (win,1) (in,1) (1983,1) (?,1) } {(How-many, 1) (many-Grammys,1) (Grammys-did,1) (didMichael,1) (Michael-Jackson,1) (Jackson-win,1) (win- in,1)(in-1983,1) (1983-?,1)}
53
Trigram
(Jackson-win-in,1) (many-Grammys- (did-Michael-Jackson,1) (win-in-
{(How-many-Grammys,1) did,1)(Grammys-did-Michael,1) (MichaelJackson-win,1) 1983,1) (in-1983-?,1)} {(How,1)} {(lowercase,4) (mixed,4) (digit,1) (other,1)}
Wh-word Word-shapes Question-length {(question-len, 10)}
2.3.2 Đặc trƣng về cú pháp
Một vài loại đặc trƣng khác có thể đƣợc trích rút từ cấu trúc cú pháp của
câuhỏi. Có 2 loại đặc trƣng thƣờng đƣợc sử dụng nhất:
POS tags cho biết nhãn từ loại của mỗi từ trong câu hỏi nhƣ NN (Noun- danh từ), JJ (adjective- tính từ), RB (Adverb – trạng từ). Việc gán nhãn từ loại cũng đóng một vai trò quan trọng trong việc phân loại câu hỏi. Các danh từ trong câu hỏi đại diện cho các đối tƣợng hay các thực thể cần hỏi tới. Vì thế, ta cần xác định từ loại của các từ trong câu hỏi
Từ đầu (head word): Huang [39] đã đề xuất đặc trƣng head word dựa trên ý tƣởng một từ trong câu hỏi đại diện cho một đối tƣợng cần hỏi đến. Xác định chính xác từ đầu có thể cải thiện đáng kể độ chính xác của việc phân loại do nó là từ chứa thông tin nhất trong câu hỏi. Ví dụ cho câu hỏi “What is the oldest city in Canada ?” từ đầu là “city”. Từ “city” trong câu hỏi này có thể có đóng góp cao cho bộ phân loại để phân loại câu hỏi này là LOC: city.
Trong thực tế, một số câu hỏi vốn không có từ đầu. Chẳng hạn nhƣ với câu hỏi“What is biosphere ?”, không có từ đầu nào phù hợp để góp phần phân loại nhƣ là“definition”. Vấn đề tƣơng tự cũng xuất hiện trong câu hỏi “Why does the moon turn orange ?”, không có các từ nào trong câu hỏi này ngoại trừ từ để hỏi giúp bộ phân loạiphân loại câu hỏi này là “reason”.
Để định nghĩa một đặc trƣng thay thế cho từ đầu của câu hỏi, nhóm tác giảHuang đã giới thiệu một vài mẫu biểu thức chính quy để ánh xạ các kiểu của câu hỏitới một mẫu và sau đó sử dụng mẫu tƣơng ứng nhƣ là đặc trƣng. Danh sách các mẫucủa Huang [15] nhƣ sau:
54
DESC:def pattern 1 Các câu hỏi bắt đầu bằng what is/are, không bắt buộc theo sau nó là a, an, hoặc the và tiếp theo là 1 hoặc nhiều từ.
DESC:def pattern 2 Các câu hỏi bắt đầu bằng what do/does và kết
thúc là mean.
ENTY:substance pattern Các câu hỏi bắt đầu là what is/are và kết
thúc là composed of/made of/made out of.
DESC:desc pattern Các câu hỏi bắt đầu với what does và kết thúc
là do.
ENTY:term Các câu hỏi bắt đầu là what do you call. DESC:reason pattern 1 Các câu hỏi bắt đầu là what causes/cause. DESC:reason pattern 2 Các câu hỏi bắt đầu bằng What is/are và
kết thúc là used for.
ABBR:exp pattern Các câu hỏi bắt đầu bằng What does/do và kết
thúc với stand for.
HUM:desc pattern Các câu hỏi bắt đầu với Who is/was và theo
sau nó là một từ bắt đầu là một kí tự viết hoa
Nếu một câu hỏi so khớp với một vài các luật trên thì đặc trƣng tƣơng ứng sẽđƣợc sử dụng.Ví dụ cho câu hỏi “What is biosphere ?”, các đặc trƣng có thể đƣợc biểudiễn nhƣ sau:
{(DESC:def-pattern1, 1)}
2.3.3 Đặc trƣng về ngữ nghĩa
Các đặc trƣng ngữ nghĩa đƣợc trích rút dựa trên ngữ nghĩa của các từ trong câu hỏi. Hầu hết các đặc trƣng ngữ nghĩa đòi hỏi nguồn dữ liệu thứ 3 nhƣ là mạng từ WordNet (Fellbaum, 1998), hoặc là một từ điển để trích rút thông tin ngữ nghĩa cho các câu hỏi.
Sử dụng WordNet để phân loại câu hỏi thông qua hypernyms: Y là một hypernyms của X nếu ý nghĩa của Y bao hàm ý nghĩa của một hoặc nhiều từ khác cùng loại của X. Ví dụ, hypernyms của từ “city” là “municipality”, hypernyms của “municipality” là “urban area” và cứ nhƣ vậy, cấu trúc đi từ nghĩa cụ thể đến nghĩa khái quát hơn.
55
3 Sự phân loại câu hỏi Taxonomy
3.1 Khái niệm Taxonomy
Khái niệm Taxonomy đƣợc sử dụng trong nhiều lĩnh vực khác nhau, vì vậy mà có rất nhiều định nghĩa khác nhau. Các chuyên gia đầu tiên phát triển cấu trúc hệ thống Web đã dùng thuật ngữ taxonomy để nói về tổ chức nội dung các trang web.Trong lĩnh vực công nghệ thông tin, Taxonomy đƣợc định nghĩa nhƣ sau[2]:
Định nghĩa: Taxonomy là sự phân loại của toàn bộ thông tin trong một hệ phân cấp theo một mối quan hệ có trước của các thực thể trong thế giới thực mà nó biểu diễn.
Một taxonomy thƣờng đƣợc mô tả với gốc ở trên cùng, mỗi nút của taxonomy (bao gồm cả gốc) là một thực thể thông tin đại diện cho một thực thể trong thế giới thực. Giữa các nút trong taxonomy có một mối quan hệ đặc biệt gọi là is subclassification of nếu hƣớng liên kết từ nút con lên nút cha hoặc là is superclassification of nếu hƣớng liên kết từ nút cha xuống nút con. Đôi khi những quan hệ này đƣợc xác định một cách chặt chẽ hơn là is subclass of hoặc is superclass of, nếu thực thể thông tin là một lớp đối tƣợng.
3.2 Taxonomy câu hỏi
Taxonomy theo kiểu câu trả lời có thể đƣợc chia thành 2 loại [6]: taxonomy phẳng (flat) và taxonomy phân cấp (hierarchical). Taxonomy phẳng chỉ có duy nhất một mức phân loại, do đó không phân loại theo đúng nghĩa của từ. Taxonomy phân cấp bao gồm các phân loại lớn và tập các phân loại nhỏ bên trong.
Một số hệ thống (Srihari & Li 1999) sử dụng các taxonomy bắt nguồn từ
các loại đƣợc sử dụng trong các đánh giá tại Message Understanding Conference (MUC).MUC đã phân biệt giữa các thực thể đặt tên (organization, person, và location), biểu thức thời gian (date và time), và các biểu thức số (money và percentage).
Một giải pháp khác đƣợc sử dụng để xây dựng các taxonomy đó là sử
dụng WordNet (Fellbaum 1998).Nhóm tác giả Kim (2000) đã sử dụng cách tiếp cận này để xây dựng một taxonomy cho 46 phân loại khác nhau về ngữ nghĩa
56
khác nhau. Ngoài ra còn có các taxonomy câu hỏi nổi tiếng khác sử dụng để phân loại câu hỏi.Taxonomy đƣợc đề xuất bởi Hermjakob (2002) bao gồm 180 lớp, đó cũng là nguyên tắc phân loại câu hỏi rộng nhất đƣợc đề xuất đến bây giờ.
Hầu hết các tiếp cận dựa trên học máy gần đây đều sử dụng taxonomy
đƣợc đề xuất bởi Li và Roth[2] từ khi các tác giả công bố một tập các giá trị là 6000 câu hỏi đã gán nhãn. Tập dữ liệu này bao gồm hai tập riêng rẽ là 5500 và 500 câu hỏi trong đó tập đầu tiên sử dụng nhƣ một tập dữ liệu huấn luyện và tập thứ hai sử dụng nhƣ một tập kiểm tra độc lập. Tập dữ liệu này đƣợc xuất bản lần đầu tiên ở University of Illinois Urbana-Champaign (UIUC), thƣờng đƣợc gọi là tập dữ liệu UIUC và thỉnh thoảng đƣợc coi nhƣ là tập dữ liệu TREC kể từ khi nó đƣợc mở rộng sử dụng trong hội nghị về truy hồi thông tin (Text REtrieval Conference-TREC).
Taxonomy câu hỏi do Li và Roth đƣa ra gồm 2 cấp theo sự phân loại ngữ nghĩa tự nhiên của câu trả lời trong hội nghị TREC. Cấu trúc phân cấp bao gồm 6 lớp thô: ABBREVIATION (viết tắt), ENTITY (thực thể),DESCRIPTION (mô tả), HUMAN (con ngƣời), LOCATION (địa điểm) và NUMERIC VALUE (giá trị số) cùng với 50 lớp con (fine class).Mỗi lớp thô lại chứa một tập khác nhau các lớp nhau.Taxonomy câu hỏi của Li và Roth đƣợc trình bày trong bảng dƣới đây.
Bảng 4. Taxonomy câu hỏi
Nhãn ABBREVIATION Định nghĩa Dạng viết tắt abb Dạng viết tắt
exp Ý nghĩa của từ viết tắt
Thực thể ENTITY
animal Động vật body Các bộ phận cơ thể
color Màu sắc
creative Phát minh, sách và các sáng tạo khác
currency Tiền tệ
57
dis.med. Bệnh tật và y học
event Sự kiện food Đồ ăn instrument Dụng cụ âm nhạc
lang Ngôn ngữ
letter Chữ cái (các kí tự từ a-z)
other Các thực thể khác
plant Thực vật product Sản phẩn religion Tôn giáo, tín ngƣỡng
sport Thể thao
substance Nguyên tố, vật chất
symbol Biểu tƣợng và ký hiệu technique Kỹ thuật và phƣơng pháp
term Thuật ngữ tƣơng đƣơng
vehicle Phƣơng tiện giao thông
word Từ với tính chất đặc biệt
Mô tả và các khái niệm trừu tƣợng DESCRIPTION
definition Định nghĩa về cái gì đó
description Mô tả về cái gì đó
manner Cách thức của hành động
reason Lý do
Con ngƣời HUMAN
58
group Một nhóm ngƣời hoặc một tổ chức
ind Một cá nhân riêng lẻ
title Tƣ cách, danh nghĩa, chức vụ của một ngƣời
description Mô tả về ngƣời nào đó
Địa điểm LOCATION
city Thành phố
country Đất nƣớc
mountain Núi
other Các địa điểm khác
state Bang, tỉnh thành
NUMERIC Giá trị số
code Mã thƣ tín và các mã khác
count Số lƣợng của cái gì đó
date Ngày tháng
distance Khoảng cách, đo lƣờng tuyến tính
money Giá cả order Thứ hạng
other Các số khác period Khoảng thời gian
percent Phần trăm speed Tốc độ temp Nhiệt độ size Kích thƣớc, diện tích, thể tích
59 weight Cân nặng
3.3 Mô hình phân lớp đa cấp
Theo Li và Roth [2], một khó khăn trong nhiệm vụ phân loại câu hỏi đó là không có một ranh giới rõ ràng nào giữa các lớp. Do đó, việc phân loại một câu hỏi cụ thể có thể khá mơ hồ. Hãy cùng xem xét ví dụ sau:
(1) What is bipolar disorder? (2) What do bats eat? (3) What is the PH scale?
Câu hỏi thứ nhất có thể thuộc lớp definition hoặc disease medicine; câu hỏi thứ 2 có thể thuộc lớp food, plant hoặc animal; còn câu hỏi thứ 3 có thể là numeric hoặc definition. Với những câu hỏi nhƣ trên sẽ gặp khó khăn trong việc phân loại câu hỏi vào một lớp duy nhất.Để giải quyết vấn đề này, với câu hỏi đơn sẽ cho phép các lớp đƣợc gán nhiều nhãn lớp.Điều này sẽ tốt hơn so với việc chỉ cho phép gán 1 nhãn lớp duy nhất vì ta có thể áp dụng tất cả các lớp đó trong tiến trình xử lý sau này.
Li và Roth đã xây dựng bộ phân lớp đa cấp (hình 13), trong suốt giai đoạn huấn luyện, một câu hỏi sẽ đƣợc xử lý theo chiều từ trên xuống để có đƣợc phân loại.Theo mô hình, ta có một bộ phân loại thô .Câu hỏi ban đầu đƣợc phân loại bởi bộ phân loại thô Coarse_Classifiercho ra một tập các lớp thô.
| | | |
Sau đó, các nhãn của loại thô đƣợc mở rộng bởi các nhãn con tƣơng ứng.Cụ thể, mỗi nhãn thô ci đƣợc ánh xạ vào một tập nhãn lớp con và sau đó đƣợc tổng hợp lại thành .
Bộ phân lớp mịn sẽ xác định tập các nhãn lớp con
C3 = Fine_Classifier(C2) với |C3| <=5. C1 và C3 là kết quả đầu ra đƣợc sử dụng cho quá trình tìm câu trả
lời.
60
Hình 13. Bộ phân lớp đa cấp của Li và Roth
Kết quả mà Li và Roth đạt đƣợc khá tốt, độ chính xác là 84.2% cho 50 lớp
mịn và 91% cho 6 lớp thô với thuật toán SnoW.
4 Một số kết quả nghiên cứu
Bộ dữ liệu do Li và Roth sử dụng đã đƣợc công bố và đƣợc nhiều nhóm nghiên cứu sử dụng để so sánh kết quả khi thực nghiệm với các thuật toán hoặc các đặc trƣng mới để nâng cao kết quả đạt đƣợc của phân lớp câu hỏi. Hacioglu và Ward [10] sử dụng SVM với đặc trƣng là bigram và mã sửa lỗi đầu ra (error- correcting output code-ECOC ) đã đạt kết quả 80.2% và 82.0%.
Dell Zhang và Wee Sun Lee [16] đã tiến hành thử nghiệm năm thuật toán
khác nhau theo hƣớng học máy khi xây dựng bộ phân lớp câu hỏi. Năm thuật toán đƣợc nhóm tác giả sử dụng thực nghiệm là: Nearest Neighbors (NN), Naïve Bayes (NB), Decision Tree (DT), Sparse Network of Winnows (SNoW) và Support Vector Machine (SVM).
Thực nghiệm của nhóm tác giả cụ thể nhƣ sau:
Nguyên tắc phân loại đƣợc sử dụng trong thực nghiệm là nguyên tắc phân loại hai lớp bao gồm 6 lớp thô và 50 lớp mịn của Li và Roth đã đƣợc trình bày trong Bảng 3.
61
Tập dữ liệu huấn luyện và kiểm thử đƣợc cung cấp bởi USC, UIUC và TREC. Có khoảng 5.500 câu hỏi đƣợc dán nhãn phân chia ngẫu nhiên thành 5 tập dữ liệu huấn luyện có kích thƣớc 1.000, 2.000, 3.000, 4.000 và 5.500 tƣơng ứng. Tập dữ liệu này đƣợc gán nhãn thủ công. Mỗi một câu hỏi chỉ thuộc một lớp nhất định. Tập dữ liệu kiểm thử bao gồm 500 câu hỏi đã đƣợc gán nhãn.
Lựa chọn đặc trƣng: các tác giả đã sử dụng hai đặc trƣng là bag-of-
words và bag-of-ngrams trong thực nghiệm của mình.
Sau 5 lần thử nghiệm với 5 tập dữ liệu có số lƣợng câu hỏi khác nhau, kết quả thực nghiệm (độ chính xác) lớn nhất đạt đƣợc là 80.2% trên phân lớp mịn với đặc trƣng đƣợc là bag-of-word.
Bảng 5. Độ chính xác phân loại câu hỏi với các thuật toán học máy khác nhau
Thuật toán
1000 57.4% 2000 62.8% 3000 65.2% 4000 67.2% 5500 68.4% NN
48.8% 67.0% 42.2% 68.0% 52.8% 70.0% 66.2% 75.0% 56.5% 73.6% 69.0% 77.2% 56.2% 75.4% 66.6% 77.4% 58.4% 77.0% 74.0% 80.2% NB DT SNoW SVM
Từ kết quả thực nghiệm ở trên, ta nhận thấy rằng:
Tập dữ liệu huấn luyện lớn sẽ cho ra kết quả phân loại tốt hơn. Thuật toán SVM mang lại độ chính xác cao hơn so với các phƣơng
pháp còn lại.
62
CHƢƠNG 3: XÂY DỰNG MÔ HÌNH VÀ ĐÁNH GIÁ THỰC NGHIỆM
Chƣơng này tiến hành thực nghiệm mô hình phân loại câu hỏi cho Tiếng Viết bằng phƣơng pháp học máy SVM đa lớp. Mô tả về kiến trúc ứng dụng, mô hình cài đặt, công cụ sử dụng và dữ liệu thực nghiệm. Từ đó đánh giá kết quả đạt đƣợc và đề xuất hƣớng áp dụng cho thực tiễn đạt đƣợc mục tiêu của luận văn, xây dựng hệ thống đón tiếp và phân loại bệnh nhân.
1 Kiến trúc ứng dụng
Bài toán phân lớp câu hỏi cũng có thể coi là bài toán phân lớp văn bản, trong đó mỗi câu hỏi đƣợc xem là một văn bản. Tuy nhiên phân lớp câu hỏi có một số đặc trƣng riêng so với phân lớp văn bản:
Số lƣợng từ trong một câu hỏi ít hơn nhiều trong một văn bản, do
đó dữ liệu câu hỏi là rất rời rạc. Việc biểu diễn câu hỏi theo tần suất từ (TF, IDF) hầu nhƣ không tăng hiệu quả phân lớp vì các từ thƣờng chỉ xuất hiện một lần trong câu hỏi.
Các từ dừng trong phân lớp văn bản là quan trọng với phân lớp câu
hỏi.
Số lƣợng nhãn lớp thƣờng rất lớn. Đối với các thuật toán phân lớp,
khi số lƣợng lớp tăng thì hiệu quả sẽ giảm [36].
Nhiều hệ thống Q&A đã áp dụng phân lớp đa cấp nhằm giảm số
lƣợng lớp tại mỗi bộ phân lớp ở từng cấp.
Cho đầu vào một câu hỏi, bộ phân loại sẽ trích rút ra các đặc trƣng từ câu hỏi, kết hợp các đặc trƣng và phân loại câu hỏi vào một trong các lớp đã đƣợc định nghĩa trƣớc. Giả sử rằng không gian đặc trƣng kết hợp là d chiều. Một câu hỏi có thể đƣợc biểu diễn nhƣ là , trong đó là đặc trƣng thứ i trong không gian kết hợp. Bộ phân loại là một hàm trong đó ánh xạ một câu hỏi tới một lớp ci từ một tập các lớp . Hàm này đƣợc học trên một tập dữ liệu huấn luyện là các câu hỏi đã gán nhãn.
63
Hình 14. Kiến trúc tổng quan của hệ thống phân loại câu hỏi
Hình 14 minh họa kiến trúc tổng thể của hệ thống phân loại câu hỏi mà tôi sử dụng để thực nghiệm ứng dụng. Đầu tiên hệ thống trích rút các tập đặc trƣng khác nhau từ câu hỏi và sau đó kết hợp chúng lại. Kết hợp của các đặc trƣng sẽ đƣa vào bộ phân loại huấn luyện và dự báo nhãn lớp có khả năng nhất.
2 Xây dựng và cài đặt mô hình
2.1 Tập dữ liệu thực nghiệm
Dựa theo các kết quả nghiên cứu về phân lớp câu hỏi đƣợc trình bày trong CHƢƠNG 2,bộ phân loại SVM-đa lớp đƣợc chứng minh là vƣợt trội hơn so với các bộ phân loại khác.Do đó, tôi sử dụng kỹ thuật này,tập trung xây dựng SVM để làm bộ phân lớp cho hệ thống Đón tiếp và Phân loại bệnh nhân:
thô: ABBREVIATION (viết tắt), ENTITY (thực
Taxonomy câu hỏi: Sử dụng taxonomy của Li và Roth bao gồm 6 lớp thể), DESCRIPTION (mô tả), HUMAN (con ngƣời), LOCATION (địa điểm) và NUMERIC VALUE (giá trị số) và 50 lớp mịn. Tập taxonomy câu hỏi theo loại ngữ nghĩa của câu trả lời này đƣợc xem là có khả năng bao phủ hầu hết các trƣờng hợp về ngữ nghĩa của câu trả lời.
Dữ liệu: Sử dụng tập 5500 câu hỏi tiếng Anh đã đƣợc công bố bởi UIUC (bộ dữ liệu đã đƣợc gán nhãn chuẩn), tiến hành chuẩn hóa và dịch sang Tiếng Việt. Quá trình dịch đƣợc tiến hành theo tiêu chí: hiểu nghĩa và phân lớp của câu tiếng Anh, từ đó đặt câu hỏi với nội dung tƣơng tự trong tiếng Việt theo văn phong tự nhiên của ngƣời Việt, đảm bảo rằng không có sự gƣợng ép.
64
Hình 15. Tập dữ liệu huấn luyện
Hình 16. Tập dữ liệu kiểm tra
65
2.2 Công cụ thực nghiệm
Để xây dựng bộ phân loại SVM, thƣ viện LIBSVM đƣợc áp dụng trong
quá trình huấn luyện và kiểm thử.
Bảng 6. Thông tin phần cứng thực nghiệm
STT Thành phần Chỉ số
1 CPU Intel Core i7 2.4 GHZ
2 RAM 8GB
3 Hệ điều hành Windows 10
Bảng 7. Các công cụ, thư viện sử dụng
STT Công cụ Chức năng Nguồn
1 LIBSVM 3.24 Phân loại câu hỏi sử https://www.csie.ntu.edu.tw
dụng thuật toán SVM /~cjlin/libsvm/
Multi-class
2 Underthe Sea NLP Công cụ xử lý ngôn https://github.com/underthes
ngữ tự nhiên Tiếng eanlp/underthesea
Việt
VNTK Các tiện ích xử lý https://www.npmjs.com/pac 3
ngôn ngữ tự nhiên kage/vntk
Tiếng Việt
Visual Studio Code Công cụ lập trình https://code.visualstudio.co 4
m/
Python 2.7.18 Ngôn ngữ lập trình https://www.python.org/do 5
wnloads/release/python-
2718/
66
2.3 Lựa chọn đặc trƣng
Trong phần thực nghiệm nàysử dụng đặc trƣng unigram và bigram để tiến hành phân loại.Tiến hành thử nghiệm và đánh giá ảnh hƣởng của các đặc trƣng khác nhau của câu hỏi tới việc phân lớp câu hỏi.
Đặc trƣng đầu tiên đƣợc sử dụng là bag-of-unigram và bag-of- word. Để sử dụng bag-of-word, sử dụng công cụ mã nguồn mở tách từ Tiếng Việt Underthesea, tiện ích xử lý dữ liệu VNTK.
Trong tiếng Việt, nhiều khi chỉ cần dựa trên các từ để hỏi nhƣ ở đâu, khi nào, ai,.. là có thể xác định đƣợc câu hỏi thuộc loại nào. Vì vậy, trong tập dữ liệu đã điều chỉnh bổ sung thêm các từ để hỏi trong tiếng Việt làm đặc trƣng cho phân lớp câu hỏi.
Nhƣ đƣợc trình bày trong Chƣơng 2, câu hỏi đƣợc biểu diễn dƣới dạng vector. Các đặc trƣng trích rút từ các câu hỏi sẽ đƣợc bổ sung vào vectơ đặc trƣng với một cặp (đặc trƣng, giá trị). Nếu chỉ trích rút các đặc trƣng unigram, với câu hỏi “Bệnh_viện tốt nhất cho chỉnh_hình ở đâu ?”,sẽ đƣợc chuyển thành vector đặc trƣng:
{(Bệnh_viện, 1)(tốt, 1)(nhất, 1)(cho, 1)(chỉnh_hình, 1)(ở, 1)(đâu, 1)(?, 1)}
Tuy nhiên thay vì sử dụng chuỗi, mỗi phần tử (đặc trƣng) sẽ đƣợc ánh xạ tới một số duy nhất, chỉ số đặc trƣng. Hơn nữa tên của lớp cũng đƣợc ánh xạ tới một số duy nhất. Mẫu định dạng dƣới đây là tƣơng tự bộ dữ liệu TREC, nó đƣợc chuyển qua hình thức mà có thể đƣợc chấp nhận bởi thƣ viện LIBSVM.
Để sử dụng đƣợc thƣ viện LIBSVM, chúng ta phải đƣa dữ liệu huấn luyện
và kiểm tra theo cấu trúc tiêu chuẩn mà bộ thƣ viện quy định nhƣ sau:
[label] [index1]:[value1] [index2]:[value2] ... [label] [index1]:[value1] [index2]:[value2] ...
Trong đó:
Mỗi dòng là một dữ liệu quan sát
67
label: nhãn lớp câu hỏi, là giá trị đích của tập huấn luyện, vì SVM chỉ hiểu đƣợc số liệu số nên mỗi nhãn phải "số hóa" nó bằng cách đặt cho các giá trị số khác nhau.
index1, index2,... là các chỉ số đại diện của các đặc trƣng có trong
từ điển. Là một số nguyên bắt đầu từ 1.
value1,value2,... là giá trị kiểu số thực ứng với các vị trí của các đặc trƣng.Giá trị này thể hiện mức độ liên quan của đặc trƣng đối với một phân loại nằm trong khoảng [-1,1]. Do các đặc trƣng trong phân loại câu hỏi đều là đặc trƣng nhị phân nên lúc huấn luyện giá trị này sẽ là 1.
3 Đánh giá kết quả thực nghiệm
Sau khi thử nghiệm với nhiều giá trị khác nhau, tham số trade off giữa tỉ lệ sai của dữ liệu học và kích thƣớc biên của bộ phân lớp SVM đƣợc đặt giá trị c = 10000. Kết quả tốt nhất với SVM khi sử dụng đặc trƣng unigram kết hợp từ để hỏi với độ chính xác là 82.08%.
Bảng 8. Độ chính xác kết quả thực nghiệm SVM với các đặc trưng khác nhau
Đặc trƣng Độ chính xác
Unigram Tách từ Unigram + từ hỏi Tách từ + từ hỏi
81.26% 80.12% 82.08%. 81.10%
Đặc trƣng từ để hỏi có tác dụng nâng cao độ chính xác của phân lớp câu hỏi. Khi áp dụng với SVM, đặc trƣng từ để hỏi giúp tăng độ chính xác 0.82 % và 0.98% tƣơng ứng khi kết hợp với đặc trƣng unigram và tách từ. Độ tăng này không lớn có thể đƣợc giải thích nhƣ sau: Trong các đặc trƣng bag-of-unigram và bag-of-word cũng đã xét đến các từ hỏi này với vai trò giống với các từ khác trong câu hỏi. Việc xuất hiện các từ hỏi này với tần suất lớn theo từng loại câu hỏi khác nhau cũng đã giúp SVM nhận diện đƣợc các từ này là từ quan trọng trong phân lớp.
Ảnh hƣởng của tách từ trong phân lớp câu hỏi khi áp dụng triển khai với SVM dƣờng nhƣ không hiệu quả. Kết quả này có thể diễn giải nhƣ sau: Với SVM, dữ liệu đƣợc biểu diễn dƣới dạng các điểm trong không gian vec-tơ đặc
68 trƣng, SVM cố gắng tìm ra các siêu phẳng ngăn cách dữ liệu của từng lớp câu hỏi, việc tách từ đã ảnh hƣởng đến sự phân bố của dữ liệu trong không gian, dẫn đến siêu phẳng phân cách các lớp không tốt nhƣ siêu phẳng tìm đƣợc khi dùng unigram.
69
KẾT LUẬN
Nhu cầu có đƣợc một hệ thống hỏi đáp Tiếng Việt là rất lớn và đang nhận đƣợc sự quan tâm đặc biệt của các nhà nghiên cứu và doanh nghiệp trong các ngành nghề có ứng dụng công nghệ thông tin.
Phân tích câu hỏi có vai trò đặc biệt quan trọng trong hệ thống hỏi đáp tự động. Khóa luận khảo sát các phƣơng pháp phân tích câu hỏi và lựa chọn một phƣơng pháp tối ƣu phù hợp cho việc giải quyết bài toán xây dựng hệ thống Đón tiếp và Phân loại bệnh nhân tại một số cơ sở khám chữa bệnh, đặc biệt trong các Bệnh Viện tuyến đầu, nơi thƣờng xuyên xảy ra ùn tắc trong việc đón tiếp ngƣời bệnh.
Phân loại câu hỏi là một vấn đề khó. Thực tế là máy cần phải hiểu đƣợc câu hỏi và phân loại nó vào loại chính xác. Điều này đƣợc thực hiện bởi một loạt các bƣớc phức tạp. Luận văn này đã đƣa ra các lý thuyết và vấn đề trong quá trình thiết lập, huấn luyện và xây dựng một hệ thống hỏi đáp tự động cho Tiếng Việt.
Qua những kết quả đạt đƣợc ban đầu, chúng nhận thấy còn rất nhiều việc phải làm, cần phải tối ƣu. Với cách tiếp cận này ban đầu đã cho những kết quả rất tích cực và đúng đắn, có thể giải quyết đƣợc những vấn đề ngữ nghĩa, ngữ cảnh trong hệ thống trả lời tự động. Ứng dụng hiệu quả vào các bài toán thực tế nhƣ Hỗ trợ đón tiếp và phân loại bệnh nhân, tra cứu kết quả xét nghiệm, tra cứu kết quả chẩn đoán hình ảnh, hỏi đáp quy trình khám chữa bệnh và thăm khám BHYT, tìm đƣờng trong bệnh viện, … một cách tự động trong hệ thống mô hình khám chữa bệnh, chăm sóc sức khỏe thông minh, đáp ứng phù hợp với nhu cầu đổi mới công nghệ thông tin ngành y tế.
70 TÀI LIỆU THAM KHẢO
Tiếng Anh:
1. Yang & Xiu (1999), “A re-examination of text categorization methods”, Proceedings ofACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR’ 99)
2. Xin Li, Dan Roth, “Learning Question Classifier”, In Proceedings of the on Computational Linguistics International Conference
19th (COLING’02), 2002.
3. Sanda M. Harabagiu, Marius A. Paşca, Steven J. Maiorano. Experiments with open-domain textual Question Answering. International Conference On Computational Linguistics Proceedings of the 18th conference on Computational linguistics – Volume 1, 2000, tr. 292 - 298.
4. Boser, B.E., Guyon, I.M., Vapnik, V.N., (1992), A training algorithm for optimal margin classifiers, in Proceedings of the fifth annual workshop on Computational learning theory - COLT, 92, 144-152.
5. Vapnik V. N., (1995), The nature of statistical learning theory. Springer. 6. Håkan Sundblad,2007. Question Classification in Question Answering
Systems. Thesis No. 1320.
7. R. Courant, D. Hilbert, Methods of Mathematical Physics. Wiley, New
York (1953).
8. Saxena A., Sambhu G., Kaushik S., Subramaniam L. IITD-IBMIRL System for Question Answering Using Pattern Matching, Semantic Type and Semantic Category Recognition. TREC 2007.
9. Clark S., Steedman M., Curran R. Object-Extraction and Question- Parsing using CCG. Proceedings of the SIGDAT Conference on Empirical Methods in Natural Language Processing, pp.111-118, 2004. 10. Kadri Hacioglu, Wayne Ward. 2003. Question Classification with Support Vector Machines and Error Correcting Codes. The Association for Computational Linguistics on Human Language Technology, vol. 2, tr.28–30.
11. Harabagiu H., Maiorano J., Pasca A. Open-Domain Textual Question Answering Techniques. Natural Language Engineering, 1(1):1-38, 2003.
71
12. Kocik K. Question classification using maximum entropy models.
Honours thesis, University of Sydney, 2004.
13. Li W. Question Classification Using Language Modeling. In CIIR
Technical Report: University of Massachusetts, Amherst, 2002
14. Nguyen M.L., Shimazu A., Nguyen T.T. Subtree mining for question classification problem. Twentieth International Joint Conference on Artificial Intelligence (IJCAI 2007) Hyderabad, India, January 6-12, 2007.
15. Nguyen T.T., Nguyen L.M., Shimazu A. Using Semi-supervised Learning for Question Classification. Information and Media Technologies, Vol. 3, No. 1, pp.112-130, 2008.
16. Zhang D., Lee W. S. Question classification using support vector
machines. Proceedings of SIGIR2003, 2003.
17. Chen, Z., Lin, F., Liu, H., Liu, Y., Ma, W. Y., & Wenyin, L. (2002). User intention modeling in web applications using data mining. World Wide Web, 5(3), 181-191.
18. Bernardo Magnini. Open Domain Question Answering: Techniques,
Resources and Systems. RANLP 2005.
19. Zamora, Juan, Marcelo Mendoza, and Héctor Allende. "Query Intent Detection Based on Query Log Mining." J. Web Eng. 13.1&2 (2014): 24- 52
20. Frumkina R. M., Mikhejev A. V. Meaning and Categorization. New York:
Nova Science Publishers, Inc, 1996.
21. Yang and Xin Liu. “A re-examination of text categorization methods”, Proceedings of ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR’99), 1999
22. Young, M. Gasic, B. Thomson, and J. D. Williams, 2013. “POMDP-based statistical spoken dialog systems: A review. Proceedings of the IEEE”, 101(5):1160–1179.
23. Iulian V. Serban, Alessandro Sordoni, Yoshua Bengio, Aaron Courville, Joelle Pineau, 6 Apr 2016. “Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models”.
72
24. Walter S. Lasecki, Ece Kamar, Dan Bohus, January 2013. “Conversations in the Crowd: Collecting Data for Task-Oriented Dialog Learning”, pp1- 10.
25. Russell, S., Dewey, D., Tegmark, M. (2015). “Research Priorities for Robust and Beneficial Artificial Intelligence”. AI Magazine, 36 (4):105– 114.
26. Alan M Turing. 1950. “Computing machinery and intelligence”. Mind,
59(236):433–460.
27. Joseph Weizenbaum. 1966. “Elizaa computer program for the study of language communication between man and machine”.
natural Communications of the ACM, 9(1):36–45.
28. Roger C Parkinson, Kenneth Mark Colby, and William S Faught. 1977. integrated pattern- language comprehension using
“Conversational matching and parsing”. Artificial Intelligence, 9(2):111–134. 29. Richard S Wallace. 2009. “The anatomy of ALICE”. Springer. 30. Jurgen Schmidhuber. 2015. “Deep learning in neural networks: An
overview. Neural Networks”, 61:85–117.
31. Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. 2015. Deep learning.
Nature, 521(7553):436–444.
32. Alan Ritter, Colin Cherry, and Bill Dolan. 2010. “Unsupervised modeling of twitter conversations”. In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics, HLT ’10, pages 172–180, Stroudsburg, PA, USA. Association for Computational Linguistics.
33. Rafael E. Banchs and Haizhou Li. 2012. “Iris: a chat-oriented dialogue system based on the vector space model”. In Proceedings of the ACL 2012 System Demonstrations, pages 37–42, Jeju Island, Korea, July. Association for Computational Linguistics.
34. Karthik Narasimhan, Tejas Kulkarni, and Regina Barzilay. 2015. “Language understanding for text-based games using deep reinforcement learning”. In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, pages 1–11, Lisbon, Portugal, September. Association for Computational Linguistics.
73
35. T.-H. Wen, D. Vandyke, N. Mrksic, M. Gasic, L. M. Rojas-Barahona, P.- H. Su, S. Ultes, and S. Young. 2016. A Network-based End-to-End Trainable Task-oriented Dialogue System. ArXiv eprints, April.
36. Heriberto Cuayahuitl. 2016. Simpleds: “A simple deep reinforcement
learning dialogue system”. CoRR, abs/1601.04574.
37. Lester, J., Branting, K., and Mott, B, 2004. “Conversational agents. In
Handbook of Internet Computing. Chapman & Hall”.
38. Will, T, 2007. “Creating a Dynamic Speech Dialogue”. VDM Verlag Dr. 39. Zhiheng Huang, Marcus Thint, Zengchang Qin (2008), Question Classification Using Head Words and Their Hypernyms, In Proceedings of the Conference on Empirical Methods in Natural Language Processing, Honolulu, Hawaii, Association for Computational Linguistics, pp. 927– 936
Tiếng Việt:
40. Nguyễn Linh Giang, Nguyễn Mạnh Hiển, Phân loại văn bản tiếng Việt với bộ phân loại vectơ hỗ trợ SVM. Tạp chí CNTT&TT, Tháng 6 năm 2006.
41. Nguyễn Ngọc Bình, “Dùng lý thuyết tập thô và các kỹ thuật khác để phân loại, phân cụm văn bản tiếng Việt”, Kỷ yếu hội thảo ICT.rda’04. Hà nội 2004.
42. Nguyễn Linh Giang, Nguyễn Duy Hải, “Mô hình thống kê hình vị tiếng Việt và ứng dụng”, Chuyên san “Các công trình nghiên cứu, triển khai Công nghệ Thông tin và Viễn thông, Tạp chí Bƣu chính Viễn thông, số 1, tháng 7-1999, trang 61-67. 1999
43. Huỳnh Quyết Thắng, Đinh Thị Thu Phƣơng, “Tiếp cận phƣơng pháp học không giám sát trong học có giám sát với bài toán phân lớp văn bản tiếng Việt và đề xuất cải tiến công thức tính độ liên quan giữa hai văn bản trong mô hình vectơ”, Kỷ yếu Hội thảo ICT.rda’04, trang 251-261, Hà Nội 2005.
44. Đỗ Phúc, Nghiên cứu ứng dụng tập phổ biến và luật kết hợp vào bài toán phân loại văn bản tiếng Việt có xem xét ngữ nghĩa, Tạp chí phát triển KH&CN, tập 9, số 2, pp. 23-32, năm 2006
74
45. Nguyễn Minh Tuấn. Phân lớp câu hỏi hƣớng tới tìm kiếm ngữ nghĩa tiếng việt trong lĩnh vực y tế. Khóa luận tốt nghiệp đại học, Đại học Công nghệ, 2008.