viỆn hÀn lÂm khoa hỌc vÀ cÔng nghỆ viỆt nam hỌc …
TRANSCRIPT
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
HÀ NỘI – 2020
Nguyễn Nhƣ Sơn
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ừ viết tắt Từ chuẩn Diễn giải
AI Artificial Intelligence Trí tuệ nhân tạo
ML Machine Learning Máy học, máy móc có khả năng học
tập
ANN Artificial Nerual Network Mạng nơ ron nhân tạo
NLP Natural Languague
Processing
Xử lý ngôn ngữ tự nhiên
VNTK Vietnamese NLP Toolkit
for Node
Bộ công cụ xử lý ngôn ngữ tiếng Việt
NLTK Natural Language Toolkit Bộ công cụ xử lý ngôn ngữ tự nhiên
bằng Python
Python Python Ngôn ngữ lập trình python, nền tảng
lập trình phía máy chủ
SDK Support Development Kit Bộ công cụ hỗ trợ phát triển
CPU Central Processing Unit Bộ xử lý trung tâm
GPU Graphics Processing Unit 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
API Application Programming
Interface
Giao diện lập trình ứng dụng
QA Question Answering Các cặp câu hỏi đáp
Agent 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
Conversational
agents
Conversational agents 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
NBC Naive Bayes Classifier Bộ phân lớp Naïve Bayes
TREC Text REtrieval Conference Hội nghị về truy hồi thông tin
SVM Support Vector Machine 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)
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.
1 Tổng quan về hệ thống trả lời tự động
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ữ Câu ví dụ Trật tự
Tiếng Việt Tôi đọc sách SVO
Tiếng Anh I read a book SVO
Tiếng Nhật 私は本を読みます 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
nhiệm vụ này đƣợc biểu diễn theo dạng , với là một vector n chiều để
đ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 Giới tính
Phƣơng Nam
Nga Nữ
Hồng Nữ
Nam Nam
Phƣơng Nữ
Phƣơng Nữ
Tiến Nam
Giang Nữ
Tùng 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à
các điểm dữ liệu . ρ đạt lớn nhất đồng nghĩa với
việc ∥w∥ đạt nhỏ nhất. Tức là:
26
Ở đây, m là số lƣợng các điểm dữ liệu còn việc lấy bình phƣơng
và chia đôi nhằm dễ dàng tính toán và tối ƣu lồi.
Bài toán này có thể giải thông qua bài toán đối ngẫu của nó và sử dụng
phƣơng pháp nhân tử Lagrance. Lúc này, ta sẽ cần tìm các giá trị λ nhƣ sau:
Việc giải λ có thể đƣợc thực hiện bằng phƣơng pháp quy hoạch động bậc
2 (Quadratic Programing). Sau khi tìm đƣợc λ thì ta có các tham số :
Ở đây, là một điểm dữ liệu bất kì nào đó nằm trên đƣờng biên
gốc. Điểm dữ liệu này còn đƣợc gọi là Support Vector. Tên của phƣơng pháp
SVM cũng từ đây mà ra. Tuy nhiên, thƣờng ngƣời ta tính b bằng phép lấy trung
bình tổng của tất cả các bi. Giả sử, ta có tập các Support Vectors thì:
Khi đó, một điểm dữ liệu mới sẽ đƣợc phân loại dựa theo:
27
Nhƣ vậy, chỉ cần các điểm Support Vector trên đƣờng biên gốc là ta có
thể ƣớc lƣợng đƣợc các tham số tối ƣu cho bài toán. Việc này rất có lợi khi tính
toán giúp phƣơng pháp này tiết kiệm đƣợc tài nguyên thực thi
Dữ liệu chồng nhau và phƣơng pháp biên mềm
Trong thực tế tập dữ liệu thƣờng không đƣợc sạch nhƣ trên mà thƣờng có
nhiễu. Nhiễu ở đây là dạng dữ liệu chồng chéo lên nhau nhƣ hình bên dƣới
Hình 3. Dữ liệu phi tuyến
Với dạng dữ liệu nhƣ vậy thì mặt phân tách tìm đƣợc sẽ khó mà tối ƣu
đƣợc, thậm chí là không tìm đƣợc mặt phân tách luôn. Giờ vấn đề đặt ra là làm
sao triệt đƣợc các nhiễu này. Tức là tính toán bỏ qua đƣợc các nhiễu này khi
huấn luyện.
Một cách hình thức, các điểm nhiễu là những điểm mà không đảm bảo
điều kiện . Khi đó bằng phép thêm biến lùi (Slack
Variables) sao cho ra có đƣợc ràng buộc:
Giờ, hàm mục tiêu tối ƣu đƣợc viết lại nhƣ sau :
28
C ở đây là hệ số cân bằng giữa nhiễu và không nhiễu. Nếu C càng lớn thì
các nhiễu càng nhiều điểm đƣợc coi là nhiễu hơn tức là nhiễu đƣợc coi trọng
hơn.
Giải bài toán này, nghiệm tƣơng tự nhƣ cách tính ở trên chỉ khác một điều
là tập các điểm support vectors đƣợc mở rộng thêm tới các điểm ra
miễn sao nó thoả mãn điều kiện:
Tức là :
Khi đó, tham số đƣợc ƣớc lƣợng nhƣ sau:
Với tập mở rộng nhƣ vậy ngƣời ta gọi phƣơng pháp này là phƣơng
pháp biên mềm (Soft-Margin SVM). Còn phƣơng pháp truyền thống là biên
cứng (Hard-Margin SVM).
29
Dữ liệu phân tách phi tuyến và phƣơng pháp kernel
Hình 4. Không gian dữ liệu phi tuyến
Đối với các bài toán có không gian dữ liệu là phi tuyến tính (non-linear)
chúng ta không thể tìm đƣợc một siêu phẳng thỏa mãn bài toán.
Để giải quyết bài toán trong trƣờng hợp này chúng ra cần biểu diễn (ánh
xạ) dữ liệu từ không gian ban đầu X sang không gian F bằng một hàm ánh xạ
phi tuyến:
Trong không gian F tập dữ liệu có thể phân tách tuyến tính. Nhƣng nảy
sinh một vẫn đề lớn đó là trong không gian mới này số chiều của dữ liệu tăng
lên rất nhiều so với không gian ban đầu làm cho chi phí tính toán vô cùng tốn
kém. Rất may trong bài toán SVM ngƣời ta đã tìm ra một cách không cần phải
30
tính , và hàm ánh xạ mà vẫn tính đƣợc . Phƣơng pháp
này gọi là Kernel Trick.
Khi đó tối ƣu biên mềm đƣợc viết dƣới dạng:
Đặt hàm Kernel: , ta có:
Khi đó tham số tƣơng ứng sẽ là :
Điểm dữ liệu mới đƣợc phân lớp với:
Nhƣ vậy, chỉ cần hàm Kernel để tính tích vô hƣớng giữa các điểm
dữ liệu trong không gian mới là ta có thể ƣớc lƣợng đƣợc một điểm mới nằm
trong phân lớp nào.
Việc sử dụng hàm Kernel ở đây sẽ giúp giảm đƣợc công số tính từng hàm Φ và
tích vô hƣớng giữa chúng. Nó có thể tính đƣợc cho bất kì không gian nào rất
31
hiệu quả. Kể cả các không gian với số chiều vô hạn. Bởi nó chỉ cần tính tích vô
hƣơng giữa các điểm dữ liệu mà thôi. Tất nhiên để làm đƣợc điều đó thì Kernel
phải thoả mãn điều kiện Mercer [7].
Khi làm việc ngƣời ta thƣờng chọn một hàm Kernel thông dụng sau:
Phƣơng pháp SVM là một cách hiệu quả cho bài toán phân lớp mà chỉ sử
dụng một lƣợng ít dữ liệu là các điểm support vectors nằm trên đƣờng biên gốc
và phần mở rộng.
3.2.3 Mạng nơ-ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network – ANN) là một mô hình
xử lý thông tin đƣợc mô phỏng dựa trên hoạt động của hệ thống thần kinh của
sinh vật, bao gồm số lƣợng lớn các Nơ-ron đƣợc gắn kết để xử lý thông tin.
ANN hoạt động giống nhƣ bộ não của con ngƣời, đƣợc học bởi kinh nghiệm
(thông qua việc huấn luyện), có khả năng lƣu giữ các tri thức và sử dụng các tri
thức đó trong việc dự đoán các dữ liệu chƣa biết (unseen data).
Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ-
ron thần kinh của não ngƣời. Mạng nơ ron nhân tạo đƣợc thể hiện thông qua ba
thành phần cơ bản: mô hình của nơ ron, cấu trúc và sự liên kết giữa các nơ ron.
Trong nhiều trƣờng hợp, mạng nơ ron nhân tạo là một hệ thống thích ứng, tự
thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy
qua mạng trong quá trình học.
32
Hình 5. Kiến trúc mạng nơ-ron nhân tạo
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer,
Hidden Layer và Output Layer.
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ
các Nơ-ron ở lớp (Layer) trƣớc đó và chuyển đổi các input này cho các lớp xử lý
tiếp theo. Trong một mạng ANN có thể có nhiều Hidden Layer.
Lợi thế lớn nhất của các mạng ANN là khả năng đƣợc sử dụng nhƣ một
cơ chế xấp xỉ hàm tùy ý mà “học” đƣợc từ các dữ liệu quan sát. Tuy nhiên, sử
dụng chúng không đơn giản nhƣ vậy, một số các đặc tính và kinh nghiệm khi
thiết kế một mạng nơ-ron ANN.
Chọn mô hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các
ứng dụng. Mô hình quá phức tạp có xu hƣớng dẫn đền những thách
thức trong quá trình học.
Cấu trúc và sự liên kết giữa các nơ-ron
Thuật toán học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là
học tham số của mô hình (parameter learning) và học cấu trúc
(structure learning). Học tham số là thay đổi trọng số của các liên kết
giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh
33
cấu trúc mạng bằng việc thay đổi số lớp ẩn, số nơ-ron mỗi lớp và cách
liên kết giữa chúng. Hai vấn đề này có thể đƣợc thực hiện đồng thời
hoặc tách biệt.
Nếu các mô hình, hàm chi phí và thuật toán học đƣợc lựa chọn một cách
thích hợp, thì mạng ANN sẽ cho kết quả có thể vô cùng mạnh mẽ và hiệu quả.
Hoạt động của mạng nơ-ron nhân tạo:
Hình 6. Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo
Inputs: Mỗi Input tƣơng ứng với 1 đặc trƣng của dữ liệu. Ví dụ nhƣ trong
ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay
không thì mỗi input là một thuộc tính của khách hàng nhƣ thu nhập, nghề
nghiệp, tuổi, số con,…
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ
nhƣ với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì
output là yes hoặc no.
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan
trọng của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu
vào đối với quá trình xử lý thông tin chuyển đổi dữ liệu từ Layer này sang layer
khác. Quá trình học của ANN thực ra là quá trình điều chỉnh các trọng số
Weight của các dữ liệu đầu vào để có đƣợc kết quả mong muốn.
34
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input
đƣợc đƣa vào mỗi Nơ-ron. Hàm tổng của một Nơ-ron đối với n input đƣợc tính
theo công thức sau:
∑
Transfer Function (Hàm chuyển đổi): Hàm tổng của một nơ-ron cho biết
khả năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong. Các nơ-ron này
có thể sinh ra một output hoặc không trong mạng ANN, nói cách khác rằng có
thể output của 1 Nơ-ron có thể đƣợc chuyển đến layer tiếp trong mạng Nơ-ron
theo hoặc không. Mối quan hệ giữa hàm tổng và kết quả output đƣợc thể hiện
bằng hàm chuyển đổi.
Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả đầu ra của
mạng ANN. Hàm chuyển đổi phi tuyến đƣợc sử dụng phổ biến trong mạng
ANN là hoặc sigmoid hoặc tanh.
Trong đó, hàm tanh là phiên bản thay đổi tỉ lệ của sigmoid , tức là khoảng
giá trị đầu ra của hàm chuyển đổi thuộc khoảng [-1, 1] thay vì [0,1] nên chúng
còn gọi là hàm chuẩn hóa (Normalized Function).
Kết quả xử lý tại các nơ-ron (Output) đôi khi rất lớn, vì vậy hàm chuyển
đổi đƣợc sử dụng để xử lý output này trƣớc khi chuyển đến layer tiếp theo. Đôi
khi thay vì sử dụng Transfer Function ngƣời ta sử dụng giá trị ngƣỡng
(Threshold value) để kiểm soát các output của các neuron tại một layer nào đó
trƣớc khi chuyển các output này đến các Layer tiếp theo. Nếu output của một
neuron nào đó nhỏ hơn Threshold thì nó sẻ không đƣợc chuyển đến Layer tiếp
theo.
Mạng nơ-ron của chúng ta dự đoán dựa trên lan truyền thẳng (forward
propagation) là các phép nhân ma trận cùng với activation function để thu đƣợc
35
kết quả đầu ra. Nếu input x là vector 2 chiều thì ta có thể tính kết quả dự đoán
bằng công thức sau
Trong đó, là input của layer thứ , là output của layer thứ sau khi áp
dụng activation function. là các thông số (parameters) cần tìm của
mô hình mạng nơ-ron.
Huấn luyện để tìm các thông số cho mô hình tƣơng đƣơng với việc tìm
các thông số , sao cho độ lỗi của mô hình đạt đƣợc là thấp nhất. Ta
gọi hàm độ lỗi của mô hình là loss function. Đối với softmax function, ta
dùng cross-entropy loss (còn gọi là negative log likelihood).
Nếu ta có N dòng dữ liệu huấn luyện, và C nhóm phân lớp (trƣờng hợp
này là hai lớp nam, nữ), khi đó loss function giữa giá trị dự đoán và đƣợc
tính nhƣ sau
∑∑
Ý nghĩa công thức trên nghĩa là: lấy tổng trên toàn bộ tập huấn luyện và
cộng dồn vào hàm loss nếu kết quả phân lớp sai. Độ dị biệt giữa hai giá
trị và càng lớn thì độ lỗi càng cao. Mục tiêu của chúng ta là tối thiểu hóa
hàm lỗi này. Ta có thể sử dụng phƣơng pháp gradient descent để tối tiểu hóa
hàm lỗi. Có hai loại gradient descent, một loại với fixed learning rate đƣợc gọi
là batch gradient descent, loại còn lại có learning rate thay đổi theo quá trình
huấn luyện đƣợc gọi là SGD (stochastic gradient descent) hay minibatch
gradient descent.
Gradient descent cần các gradient là các vector có đƣợc bằng cách lấy đạo
hàm của loss function theo từng thông số , , , . Để tính các gradient
này, ta sử dụng thuật toán backpropagation (lan truyền ngược). Đây là cách hiệu
quả để tính gradient khởi điểm từ output layer.
36
Áp dụng backpropagation ta có các đại lƣợng:
3.3 Các phƣơng pháp đánh giá một hệ thống phân lớp
Khi xây dựng một mô hình phân lớp, chúng ta cần một phƣơng pháp đánh
giá để xem mô hình sử dụng có hiệu quả không và để so sánh khả năng của các
mô hình. Trong phần này sẽ giới thiệu các phƣơng pháp đánh giá các mô hình
phân lớp.
Hiệu năng của một mô hình thƣờng đƣợc đánh giá dựa trên tập dữ liệu
kiểm thử (test data). Cụ thể, giả sử đầu ra của mô hình khi đầu vào là tập kiểm
thử đƣợc mô tả bởi vector y_pred - là vector dự đoán đầu ra với mỗi phần tử là
class đƣợc dự đoán của một điểm dữ liệu trong tập kiểm thử. Ta cần so sánh
giữa vector dự đoán y_pred này với vector class thật của dữ liệu, đƣợc mô tả bởi
vector y_true.
Ví dụ với bài toán có 3 lớp dữ liệu đƣợc gán nhãn là 0, 1, 2. Trong bài
toán thực tế, các class có thể có nhãn bất kỳ, không nhất thiết là số, và không
nhất thiết bắt đầu từ 0. Chúng ta hãy tạm giả sử các class đƣợc đánh số
từ 0 đến C-1 trong trƣờng hợp có C lớp dữ liệu. Có 10 điểm dữ liệu trong tập
kiểm thử với các nhãn thực sự đƣợc mô tả bởi y_true = [0, 0, 0, 0, 1, 1, 1, 2, 2,
2]. Giả sử bộ phân lớp chúng ta đang cần đánh giá dự đoán nhãn cho các điểm
này là y_pred = [0, 1, 0, 2, 1, 1, 0, 2, 1, 2].
Có rất nhiều cách đánh giá một mô hình phân lớp. Tuỳ vào những bài
toán khác nhau mà chúng ta sử dụng các phƣơng pháp khác nhau. Các phƣơng
pháp thƣờng đƣợc sử dụng là:
37
Độ chính xác – Accuracy score
Ma trận nhầm lẫn – Confusion matrix
Precision & Recall
F1 score
ROC curve
Top R error
3.3.1 Đánh giá theo độ chính xác Accuracy
Cách đơn giản và hay đƣợc sử dụng nhất là Accuracy (độ chính xác).
Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm đƣợc dự đoán đúng và tổng
số điểm trong tập dữ liệu kiểm thử.
Trong ví dụ trên, ta có thể đếm đƣợc có 6 điểm dữ liệu đƣợc dự đoán
đúng trên tổng số 10 điểm. Vậy ta kết luận độ chính xác của mô hình là 0.6 (hay
60%). Để ý rằng đây là bài toán với chỉ 3 class, nên độ chính xác nhỏ nhất đã là
khoảng 1/3, khi tất cả các điểm đƣợc dự đoán là thuộc vào một class nào đó.
3.3.2 Ma trận nhầm lẫn
Ma trận nhầm lẫn là một trong những kỹ thuật đo lƣờng hiệu suất phổ
biến nhất và đƣợc sử dụng rộng rãi cho các mô hình phân loại.
Cách tính sử dụng độ chính xác Accuracy nhƣ ở trên chỉ cho chúng ta
biết đƣợc bao nhiêu phần trăm lƣợng dữ liệu đƣợc phân loại đúng mà không chỉ
ra đƣợc cụ thể mỗi loại đƣợc phân loại nhƣ thế nào, lớp nào đƣợc phân loại đúng
nhiều nhất, và dữ liệu thuộc lớp nào thƣờng bị phân loại nhầm vào lớp khác. Để
có thể đánh giá đƣợc các giá trị này, chúng ta sử dụng một ma trận đƣợc gọi là
confusion matrix.
Về cơ bản, confusion matrix thể hiện có bao nhiêu điểm dữ liệu thực
sự thuộc vào một class, và đƣợc dự đoán là rơi vào một class. Để hiểu rõ hơn,
hãy xem bảng dƣới đây:
38
Có tổng cộng 10 điểm dữ liệu. Chúng ta xét ma trận tạo bởi các giá trị tại
vùng 3x3 trung tâm của bảng.
Ma trận thu đƣợc đƣợc gọi là confusion matrix. Nó là một ma trận vuông
với kích thƣớc mỗi chiều bằng số lƣợng lớp dữ liệu. Giá trị tại hàng thứ i, cột
thứ j là số lƣợng điểm lẽ ra thuộc vào class i nhƣng lại đƣợc dự đoán là thuộc
vào class j. Nhƣ vậy, nhìn vào hàng thứ nhất (0), ta có thể thấy đƣợc rằng trong
số bốn điểm thực sự thuộc lớp 0, chỉ có hai điểm đƣợc phân loại đúng, hai điểm
còn lại bị phân loại nhầm vào lớp 1 và lớp 2.
Chúng ta có thể suy ra ngay rằng tổng các phần tử trong toàn ma trận này
chính là số điểm trong tập kiểm thử. Các phần tử trên đƣờng chéo của ma trận là
số điểm đƣợc phân loại đúng của mỗi lớp dữ liệu. Từ đây có thể suy
ra Accuracy chính bằng tổng các phần tử trên đƣờng chéo chia cho tổng các
phần tử của toàn ma trận
Cách biểu diễn trên đây của confusion matrix còn đƣợc gọi là
unnormalized confusion matrix, tức ma confusion matrix chƣa chuẩn hoá. Để có
cái nhìn rõ hơn, ta có thể dùng normalized confuion matrix, tức confusion matrix
đƣợc chuẩn hoá. Để có normalized confusion matrix, ta lấy mỗi hàng của
unnormalized confusion matrix sẽ đƣợc chia cho tổng các phần tử trên hàng đó.
Nhƣ vậy, ta có nhận xét rằng tổng các phần tử trên một hàng của normalized
confusion matrix luôn bằng 1. Điều này thƣờng không đúng trên mỗi cột.
39
Hình 7. Minh hoạ unnormalized confusion và normalized confusion matrix
Với các bài toán với nhiều lớp dữ liệu, cách biểu diễn bằng màu này rất
hữu ích. Các ô màu đậm thể hiện các giá trị cao. Một mô hình tốt sẽ cho một
confusion matrix có các phần tử trên đƣờng chéo chính có giá trị lớn, các phần
tử còn lại có giá trị nhỏ. Nói cách khác, khi biểu diễn bằng màu sắc, đƣờng chéo
có màu càng đậm so với phần còn lại sẽ càng tốt. Từ hai hình trên ta thấy rằng
confusion matrix đã chuẩn hoá mang nhiều thông tin hơn. Sự khác nhau đƣợc
thấy ở ô trên cùng bên trái. Lớp dữ liệu 0 đƣợc phân loại không thực sự tốt
nhƣng trong unnormalized confusion matrix, nó vẫn có màu đậm nhƣ hai ô còn
lại trên đƣờng chéo chính.
3.3.3 True/False Positive/Negative
Cách đánh giá này thƣờng đƣợc áp dụng cho các bài toán phân lớp có hai
lớp dữ liệu, trong hai lớp dữ liệu này có một lớp nghiêm trọng hơn lớp kia và
cần đƣợc dự đoán chính. Trong y khoa, còn đƣợc gọi là Dƣơng tính / Âm tính
Thật/Giả. Ví dụ, trong bài toán xác định có bệnh ung thƣ hay không thì việc
không bị sót (miss) quan trọng hơn là việc chẩn đoán nhầm âm tính thành dương
tính. Trong bài toán xác định có mìn dƣới lòng đất hay không thì việc bỏ sót
nghiêm trọng hơn việc báo động nhầm rất nhiều. Hay trong bài toán lọc email
rác thì việc cho nhầm email quan trọng vào thùng rác nghiêm trọng hơn việc xác
định một email rác là email thƣờng.
Trong những bài toán này, ngƣời ta thƣờng định nghĩa lớp dữ liệu quan
trọng hơn cần đƣợc xác định đúng là lớp Positive (P-dƣơng tính), lớp còn lại
đƣợc gọi là Negative (N-âm tính). Ta định nghĩa True Positive (TP), False
40
Positive (FP), True Negative (TN), False Negative (FN) dựa trên confusion
matrix chƣa chuẩn hoá nhƣ sau:
Ngƣời ta thƣờng quan tâm đến TPR, FNR, FPR, TNR (R - Rate) dựa
trên normalized confusion matrix nhƣ sau:
False Positive Rate còn đƣợc gọi là False Alarm Rate (tỉ lệ báo động
nhầm), False Negative Rate còn đƣợc gọi là Miss Detection Rate (tỉ lệ bỏ sót).
Trong bài toán dò mìn, thà báo nhầm còn hơn bỏ sót, tức là ta có thể chấp
nhận False Alarm Rate cao để đạt đƣợc Miss Detection Rate thấp.
Việc biết một cột của confusion matrix này sẽ suy ra đƣợc cột còn lại vì
tổng các hàng luôn bằng 1 và chỉ có hai lớp dữ liệu. Với các bài toán có nhiều
lớp dữ liệu, ta có thể xây dựng bảng True/False Positive/Negative cho mỗi
lớp nếu coi lớp đó là lớp Positive, các lớp còn lại gộp chung thành lớp Negative
3.3.4 Precision và Recall
Với bài toán phân loại mà tập dữ liệu của các lớp là chênh lệch nhau rất
nhiều, có một phép đo hiệu quả thƣờng đƣợc sử dụng là Precision-Recall.
Trƣớc hết xét bài toán phân loại nhị phân. Ta cũng coi một trong hai lớp
là positive, lớp còn lại là negative. Xem xét Hình dƣới đây:
41
Hình 8. Cách tính Precision và Recall
Với một cách xác định một lớp là positive, Precision đƣợc định nghĩa là tỉ
lệ số điểm true positive trong số những điểm đƣợc phân loại là positive (TP +
FP).
Recall đƣợc định nghĩa là tỉ lệ số điểm true positive trong số những
điểm thực sự là positive (TP + FN).
Một cách toán học, Precison và Recall là hai phân số có tử số bằng nhau
nhƣng mẫu số khác nhau:
Có thể nhận thấy rằng TPR và Recall là hai đại lƣợng bằng nhau. Ngoài
ra, cả Precision và Recall đều là các số không âm nhỏ hơn hoặc bằng một.
42
Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm đƣợc là
cao. Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ sót các
điểm thực sự positive là thấp.
Khi Precision = 1, mọi điểm tìm đƣợc đều thực sự là positive, tức không
có điểm negative nào lẫn vào kết quả. Tuy nhiên, Precision = 1 không đảm bảo
mô hình là tốt, vì câu hỏi đặt ra là liệu mô hình đã tìm đƣợc tất cả các
điểm positive hay chƣa. Nếu một mô hình chỉ tìm đƣợc đúng một
điểm positive mà nó chắc chắn nhất thì ta không thể gọi nó là một mô hình tốt.
Khi Recall = 1, mọi điểm positive đều đƣợc tìm thấy. Tuy nhiên, đại
lƣợng này lại không đo liệu có bao nhiêu điểm negative bị lẫn trong đó. Nếu mô
hình phân loại mọi điểm là positive thì chắc chắn Recall = 1, tuy nhiên dễ nhận
ra đây là một mô hình cực tồi.
Một mô hình phân lớp tốt là mô hình có cả Precision và Recall đều cao,
tức càng gần một càng tốt. Có một cách đo chất lƣợng của bộ phân lớp dựa vào
Precision và Reall, đó là: F-score.
3.3.5 F1-Score
F score, hay F1-score, là số trung bình điều hòa (harmonic mean) của
precision và recall (giả sử rằng hai đại lƣợng này khác không):
F1 có giá trị nằm trong nửa khoảng (0,1]. F1 càng cao, bộ phân lớp càng
tốt. Khi cả recall và precision đều bằng 1 (tốt nhất có thể), F1=1. Khi cả recall
và precision đều thấp, ví dụ bằng 0.1, F1=0.1. Dƣới đây là một vài ví dụ về F1.
43
Nhƣ vậy, một bộ phân lớp với precision = recall = 0.5 tốt hơn một bộ
phân lớp khác với precision = 0.3, recall = 0.8 theo cách đo này.
Trƣờng hợp tổng quát:
F1 chính là một trƣờng hợp đặc biệt của Fβ khi β=1. Khi β>1, recall đƣợc
coi trọng hơn precision, khi β<1, precision đƣợc coi trọng hơn. Hai đại
lƣợng β thƣờng đƣợc sử dụng là β=2 và β=0.5.
44
CHƢƠNG 2: PHÂN TÍCH CÂU HỎI TRONG HỆ THỐNG TRẢ LỜI TỰ
ĐỘNG
Chƣơng này nghiên cứu lý thuyết cụ thể cho bài toán phân loại câu hỏi
Tiếng Việt, nghiên cứu các phƣơng pháp phân loại câu hỏi, các đặc trƣng của
ngôn ngữ khi tiến hành phân loại. Tìm hiểu các nghiên cứu trong bài toán phân
loại câu hỏi, các mô hình đã đƣợc nghiên cứu và xây dựng cũng nhƣ kết quả mới
nhất đạt đƣợc. Từ đó, định hƣớng mô hình ứng dụng cho phần thực nghiệm,
cũng nhƣ đề xuất đƣợc kiến trúc phân tích câu hỏi cho hệ thống trả lời tự động.
1 Vấn đề cơ bản của một hệ thống trả lời tự động
Các hệ thống hỏi đáp tự động hiện nay có kiến trúc rất đa dạng, tuy nhiên
chúng đều bao gồm ba phần cơ bản: Phân tích câu hỏi; Trích chọn tài liệu; Trích
xuất câu trả lời [3,10,11,18].
Hình 9. Các bước cơ bản trong hệ thống trả lời tự động
Sự khác nhau chính giữa các hệ thống là ở quá trình xử lý trong từng
bƣớc, đặc biệt là ở cách tiếp cận trong việc xác định câu trả lời, trong đó:
45
Bƣớc 1 - Phân tích câu hỏi: Tạo truy vấn cho bƣớc trích chọn tài liệu
liên quan và tìm ra những thông tin hữu ích cho bƣớc trích xuất câu trả lời
Bƣớc 2 - Trích chọn tài liệu: Bƣớc này sử dụng câu truy vấn đƣợc tạo ra
ở bƣớc phân tích câu hỏi để tìm các tài liệu liên quan đến câu hỏi.
Bƣớc 3 - Trích xuất câu trả lời: Bƣớc này phân tích tập tài liệu trả về từ
bƣớc 2 và sử dụng các thông tin hữu ích do bƣớc phân tích câu hỏi cung cấp để
đƣa ra câu trả lời chính xác nhất.
Cách tiếp cận theo trích chọn thông tin thuần túy (pure IR) là: chia nhỏ
một tài liệu trong tập dữ liệu thành chuỗi các tài liệu con, trích chọn các tài liệu
con có độ tƣơng đồng lớn nhất với câu truy vấn (do bƣớc phân tích câu hỏi tạo
ra) và trả lại chúng cho ngƣời dùng.Thách thức lớn nhất ở đây là làm sao chia
nhỏ đƣợc tài liệu thành các phần với kích cỡ tƣơng ứng với kích cỡ của câu trả
lời mà vẫn đủ lớn để có thể đánh chỉ mục đƣợc (nếu chia quá nhỏ thì số lƣợng
tài liệu để đánh chỉ mục sẽ rất lớn, gây gánh nặng cho hệ thống trích chọn thông
tin).
Cách tiếp cận theo xử lý ngôn ngữ tự nhiên (pure NLP) là: so khớp giữa
biểu diễn ngữ pháp và (hoặc) biểu diễn ngữ nghĩa của câu hỏi với dạng biểu diễn
ngữ pháp, ngữ nghĩa của các câu trong các tài liệu liên quan trả về. Khó khăn
của cách tiếp cận này là hệ thống phải thực hiện việc phân tích ngữ pháp, ngữ
nghĩa và so khớp đủ nhanh để đƣa ra câu trả lời trong thời gian chấp nhận đƣợc,
bởi số lƣợng các tài liệu cần xử lý là rất lớn trong khi các bƣớc phân tích trên lại
phức tạp và tốn nhiều thời gian.
Sự khác nhau trong cách trích xuất câu trả lời dẫn đến việc phân tích câu
hỏi cũng trở nên đa dạng. Trong hƣớng tiếp cận theo trích xuất thông tin thuần
túy, phân tích câu hỏi chỉ cần làm tốt việc tạo truy vấn, trong khi với hƣớng tiếp
cận theo xử lý ngôn ngữ tự nhiên, câu hỏi cần đƣợc phân tích ngữ pháp, ngữ
nghĩa một cách chính xác. Các hệ thống hiện nay thƣờng là sự kết hợp giữa hai
hƣớng tiếp cận, sử dụng hệ thống trích chọn thông tin để thu hẹp không gian tìm
kiếm câu trả lời, đồng thời phân tích câu hỏi để tìm ra các thông tin về ngữ pháp,
ngữ nghĩa nhằm tìm ra câu trả lời chính xác nhất.
Kết quả của bƣớc phân tích câu hỏi là đầu vào cho cả hai bƣớc trích chọn
tài liệu liên quan và trích xuất câu trả lời. Bƣớc phân tích câu hỏi có ý nghĩa rất
46
quan trọng, bởi nó ảnh hƣởng đến hoạt động của các bƣớc sau và do đó quyết
định đến hiệu quả của toàn hệ thống
2 Bài toán phân loại câu hỏi
2.1 Phát biểu bài toán
Theo định nghĩa chính thức của phân loại văn bản (Sebastiani 2002 và
Yang & Xiu 1999). Håkan Sundblad [6] đã đƣa ra một định nghĩa phân loại câu
hỏi nhƣ sau:
Định nghĩa: Phân loại câu hỏi là nhiệm vụ gán một giá trị kiểu boolean
cho mỗi cặp , trong đó Q là miền chứa các câu hỏi và
| | là tập các phân loại cho trước.
Cặp (qj,ci) đƣợc gán cho giá trị là T chỉ ra rằng câ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
Không gian đặc
trƣng Đặc trƣng
Unigram {(How,1) (many,1) (Grammys,1) (did,1) (Michael,1)(
Jackson,1) (win,1) (in,1) (1983,1) (?,1) }
Bigram {(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 {(How-many-Grammys,1) (many-Grammys-
did,1)(Grammys-did-Michael,1) (did-Michael-Jackson,1)
(MichaelJackson-win,1) (Jackson-win-in,1) (win-in-
1983,1) (in-1983-?,1)}
Wh-word {(How,1)}
Word-shapes {(lowercase,4) (mixed,4) (digit,1) (other,1)}
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 Định nghĩa ABBREVIATION Dạng viết tắt
abb Dạng viết tắt
exp Ý nghĩa của từ viết tắt
ENTITY Thực thể
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
DESCRIPTION Mô tả và các khái niệm trừu tƣợng
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
HUMAN Con ngƣời
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 đó
LOCATION Địa điểm
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 2000 3000 4000 5500
NN 57.4% 62.8% 65.2% 67.2% 68.4%
NB 48.8% 52.8% 56.5% 56.2% 58.4%
DT 67.0% 70.0% 73.6% 75.4% 77.0%
SNoW 42.2% 66.2% 69.0% 66.6% 74.0%
SVM 68.0% 75.0% 77.2% 77.4% 80.2%
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:
Taxonomy câu hỏi: Sử dụng taxonomy của Li và Roth 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ố) 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.
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ử
dụng thuật toán SVM
Multi-class
https://www.csie.ntu.edu.tw
/~cjlin/libsvm/
2 Underthe Sea NLP Công cụ xử lý ngôn
ngữ tự nhiên Tiếng
Việt
https://github.com/underthes
eanlp/underthesea
3 VNTK Các tiện ích xử lý
ngôn ngữ tự nhiên
Tiếng Việt
https://www.npmjs.com/pac
kage/vntk
4 Visual Studio Code Công cụ lập trình https://code.visualstudio.co
m/
5 Python 2.7.18 Ngôn ngữ lập trình https://www.python.org/do
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 81.26%
Tách từ 80.12%
Unigram + từ hỏi 82.08%.
Tách từ + từ hỏi 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
19th International Conference on Computational Linguistics
(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
natural language communication between man and machine”.
Communications of the ACM, 9(1):36–45.
28. Roger C Parkinson, Kenneth Mark Colby, and William S Faught. 1977.
“Conversational language comprehension using integrated pattern-
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