HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trương Tài Ba
NGHIÊN CỨU VÀ XÂY DỰNG
HỆ THỐNG HỎI ĐÁP HƯỚNG MIỀN ỨNG DỤNG Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
TÓM TẮT LUẬN VĂN THẠC SĨ
1
PHẦN I. MỞ ĐẦU
Tìm kiếm luôn là một trong những bài toán quan trọng trong việc lưu trữ và tổ chức
dữ liệu. Các máy tìm kiếm như Google, Bing…ra đời đã tạo nên cuộc cách mạng lớn trong
việc tìm kiếm thông tin trên Internet. Tuy nhiên, những máy tìm kiếm này trong một số
trường hợp không phù hợp với yêu cầu thực tế do kết quả trả về cho người dùng quá lớn
(thường lên đến hàng triệu bản ghi). Do đó, người dùng sẽ rất khó tìm kiếm được thông tin
hữu ích trong lượng thông tin đồ sộ như vậy.
Thu thập, xử lý và khai thác thông tin theo một miền ứng dụng cụ thể sao cho hiệu
quả đang là một vấn đề mới mẻ và thú vị trong lĩnh vực khai phá dữ liệu. Bài toán có ý
nghĩa lớn đối với nhu cầu tiếp cận thông tin của con người. Trong luận văn này sẽ đề cập
đến việc sử dụng các kỹ thuật trích rút thông tin (Information Extraction - IE) kết hợp với
xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) để thu thập, xử lý, trích rút
các thông tin từ các trang web đặt món ăn trực tuyến, từ đó xây dựng cơ sở dữ liệu lưu trữ
các thông tin của nhà hàng và món ăn, cuối cùng xây dựng một hệ thống hỏi đáp tự động
dựa trên cơ sở dữ liệu này.
Mô hình bài toán như sau:
Hình 1.1: Mô hình bài toán
Trong phạm vi luận văn này, tác giả sẽ trình bày cơ bản về trích rút thông tin từ các
trang web đặt món trực tuyến theo một mẫu cho trước, sau đó sẽ lưu thông tin vào cơ sở dữ
liệu phục vụ cho quá trình xây dựng hệ thống hỏi đáp tự động. Thông tin được trích rút theo
các nội dung sau:
2
- Tên nhà hàng
- Mô tả về nhà hàng
- Số điện thoại
- Địa chỉ nhà hàng
Hình 2.1: Minh họa bài toán trích rút thông tin
4
Ở đây bài toán nhận đầu vào là một văn bản không có cấu trúc, nhiệm vụ của trích
rút thông tin là trích ra các dữ liệu liên quan tới Bill Gate gồm: chức vụ (CEO), công ty làm
việc (Microsoft Corporation, Microsoft), người thành lập (founder) và tên quỹ (Free
Software Foundation)… Sau đó dữ liệu sẽ được tổ chức lại có cấu trúc và lưu vào trong cơ
sở dữ liệu. Đây là một nhiệm vụ trong hội nghị KDD
1
2003, ở đó những người (đội) tham
gia phải trích chọn các thông tin từ các văn bản cho trước và điền vào các trường trong cơ
sở dữ liệu (Filling slots in a database from sub-segments of text).
2.1.2. Các kỹ thuật trích rút thông tin
Dữ liệu đầu vào cho bài toán trích rút thông tin rất đa dạng và phong phú. Dữ liệu có
thể là dạng không cấu trúc, bán cấu trúc hoặc có cấu trúc, dữ liệu có thể được trích rút trực
tuyến (on-line) hoặc ngoại tuyến (off-line). Chi tiết như sau:
Dữ liệu không cấu trúc: Dữ liệu không cấu trúc thường dùng để chỉ dữ liệu ở dạng tự
do và không cần có cấu trúc định nghĩa sẵn ví dụ như ngôn ngữ tự nhiên.
Dữ liệu có cấu trúc: Dữ liệu có cấu trúc thường dùng để chỉ dữ liệu lưu trữ trong các
hệ quản trị cơ sở dữ liệu quan hệ như MS SQL Server hay MySQL, trong đó các thực
thể và các thuộc tính được định nghĩa sẵn .
Dữ liệu bán cấu trúc: Là dữ liệu có cấu trúc nhưng không hoàn toàn tường minh, nó
không tuân theo những cấu trúc, cách thức cấu trúc của bảng và các mô hình dữ liệu
trong cơ sở dữ liệu nhưng nó chứa những thẻ, những đánh dấu tới những phần tử ngữ
nghĩa riêng biệt của các bản ghi và các trường riêng biệt bên trong dữ liệu .
Dữ liệu từ các trang web là một dạng tiêu biểu cho dữ liệu bán cấu trúc. Trong luận
văn này tập trung vào giải quyết bài toán trích rút thông tin từ dữ liệu bán cấu trúc ngoại
tuyến (thu thập dữ liệu về và trích rút thông tin).
Có nhiều cách tiếp cận để giải quyết bài toán trích rút thông tin, tuy nhiên nếu dựa
vậy việc trích chọn thông tin trên cây DOM chính là việc duyệt cây thông qua các cặp thẻ
HTML.
Như vậy, việc trích rút thông tin từ cây DOM phía trên như sau: duyệt lần lượt qua
các nút cây DOM đến khi nào gặp lá. Khi đó, giá trị tại nút chính là thông tin cần trích rút.
Ví dụ: Trích rút thông tin Aeolian thì sẽ duyệt cây DOM như sau:
TBODYTRTDAeolian.
2.2. Cơ bản về hệ thống hỏi đáp
Hệ thống hỏi đáp tự động có thể được định nghĩa như sau [23]: Là hệ thống được xây
dựng để thực hiện việc tìm kiếm tự động câu trả lời từ một tập lớn các tài liệu cho câu hỏi
đầu vào một cách chính xác và ngắn gọn.
Kiến trúc chung của hệ thống hỏi đáp như sau: thành phần phân tích câu hỏi, thành
phần trích rút thông tin và thành phần trả lời câu hỏi. Các thành phần cơ bản được biểu diễn
trong hình 7 bên dưới:
Hình 3.1: Mô hình chung cho hệ thống hỏi đáp tự động
Chi tiết các thành phần được mô tả như sau:
- Bước 1 – Phân tích câu hỏi: Phân tích để “hiểu” câu hỏi, trích chọn ra các từ khóa
và biến đổi câu hỏi về dạng câu truy vấn.
- Bước 2 – Trích rút thông tin: Quá trình này nhằm tìm ra các tài nguyên phù hợp
nhất với câu hỏi người dùng. Đầu vào của bước này là các câu hỏi của người đã
được phân tích, bước này cần phải xử lý để đưa ra kết quả là một tập các tài liệu
phù hợp với câu hỏi người dùng.
- Bước 3 – Sinh câu trả lời: Phân tích tập tài liệu đã thu thập được ở 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 cho câu hỏi của người dùng.
Có nhiều cách phân loại hệ thống hỏi đáp khác nhau. Nếu dựa vào miền ứng dụng thì
có hai loại đó là: hệ thống hỏi đáp miền đóng (chỉ hỏi đáp cho một miền ứng dụng cụ thể)
được viết dưới dạng biểu thức chính quy.
Phân tích câu hỏi sử dụng cây trie
Một cây Trie, theo Clément và cộng sự, là một cấu trúc dữ liệu được định nghĩa bởi một
luật đệ quy T(S) = <T(S/a
1
),T(S/a
2
),…,T(S/a
r
)>, với S là một tập hợp các xâu alphabet A
= {a
j
}
r
j=1
, và S/a
n
là tất cả các chuỗi của S bắt đầu với a
n
.
Với mỗi câu hỏi đầu vào của người dùng, các thành phần sẽ được biểu diễn dưới dạng
cây trie. Sau đó, quá trình phân tích câu hỏi chính là quá trình duyệt cây trie.
Với bảng câu hỏi:
Câu hỏi Khuôn dạng EAT
Where is Chile? Where is !LOC$ LOC
Who is the dean of ICS? Who is the !PO$ of !ORG$ NAME
Who is J.Smith? Who is !NAME$ DESC
Who is J.Smith of ICS? Who is !NAME$ of ORG$ DESC
8
Phân tích dạng câu trả lời (Answer Type Analysis)
Tiếp cận theo hướng học khuôn dạng câu (Pattern Learning Approach)
Answer type analysis (phân tích dạng câu trả lời):
- Xây dựng tập các dạng câu trả lời.
- Phân loại câu trả lời.
- Các khuôn dạng được gắn với dạng câu trả lời tương ứng.
- Cách này có tính chính xác cao nhưng không trả lời được các câu hỏi ngoài khuôn
dạng (không gán nhãn được).
Pattern learning approach (tiếp cận theo hướng học khuôn dạng câu):
- Dạng câu hỏi có thể được “học” nếu sử dụng cặp câu hỏi-trả lời như một kiểu dữ
liệu liên tục.
- Thuật toán
o Khuôn chứa đối tượng, văn cảnh và câu hỏi được đưa ra bộ tìm kiếm. Ví
dụ: callories, Big Mac, 560.
o Tất cả các tên thực thể được thay thế bằng dạng của chúng.
o Một vài khuôn dạng cùng loại được dùng để “học” về vài dạng sở hữu đặc
trưng.
o Thực hiện tổng quát hoá (theo dạng thực thể và các lựa chọn token khác).
- Sử dụng “độ tin tưởng” để đánh giá câu trả lời. Độ tin tưởng được tính bằng công
thức (Trường hợp đúng/ Trường hợp đúng+sai).
2.4. Hệ thống hỏi đáp tự động miền ứng dụng
2.4.1. Phát biểu bài toán
Bài toán hỏi đáp miền ứng dụng nhà hàng – món ăn được phát biểu như sau:
Đầu vào: Câu hỏi dưới dạng ngôn ngữ tự nhiên của người dùng và CSDL chứa thông
tin về nhà hàng, các món ăn và giá tương ứng.
Đầu ra: Câu trả lời của hệ thống liên quan tới mối quan hệ nhà hàng – món ăn.
10
Hệ thống có thể sử dụng để trả lời các câu hỏi đơn giản của người dùng liên quan tới món
ăn, giá và địa điểm của nhà hàng.
- Món lẩu vịt ở đâu rẻ nhất?
- Vịt quay rẻ nhất được bán ở đâu?
3. <Món ăn> <rẻ nhất> <nhà hàng> <từ để hỏi> <hỏi giá và địa điểm>
Đối tượng hỏi min/max địa điểm từ để hỏi mục đích
Ví dụ:
- Món thịt bò hầm giá rẻ nhất quận Ba Đình ở đâu?
- Ăn cơm văn phòng tại nhà hàng nào rẻ nhất?
4. <Nhà hàng> <món ăn> <rẻ nhất> <từ để hỏi>
Địa điểm đối tượng hỏi mục đích từ để hỏi
Ví dụ:
- Nhà hàng nào bán món thịt lợn hun khói rẻ nhất?
- Món thịt lợn hun khói được bán rẻ nhất ở đâu?
5. <Nhà hàng> <món ăn> <từ để hỏi> <địa điểm>
Mục đích hỏi thành phần từ để hỏi mục đích hỏi
Ví dụ:
- Nhà hàng Gió Mới bán món vịt Bắc Kinh nằm ở đâu?
- Nhà hàng ABC nằm ở đâu tại quận Hoàn Kiếm?
6. <Nhà hàng> <từ để hỏi> <món ăn> <có/không>
Địa điểm từ để hỏi thành phần mục đích
Ví dụ:
12
- Nhà hàng Ngon có bán món sinh tố tình yêu không?
- Tại quán Ngon có món sinh tố tình yêu không?
7. <Món ăn> <nhà hàng> <có/không>
Thành phần địa điểm mục đích
Ví dụ:
- Món lẩu Thái có bán tại nhà hàng ABC không?
- Có món lẩu Thái tại nhà hàng ABC không?
8. <Nhà hàng> <từ để hỏi> <món ăn>
6 Chonmon
Tổng số trang web thu được là 14.504, sau đó luận văn xây dựng chương trình phân
tích dữ liệu để thu được danh sách nhà hàng và danh sách món ăn tương ứng. Tổng số nhà
hàng sau khi tiến hành phân tích xử lý dữ liệu là 215 nhà hàng và 16.144 món ăn tương ứng.
Các thuộc tính của một nhà hàng trong luận văn gồm tên nhà hàng, địa chỉ, số điện thoại
liên hệ và danh sách các món ăn.
2.5.2. Đánh giá quá trình phân tích câu hỏi
Sau khi hệ thống chạy thử nghiệm, luận văn tiến hành đánh giá độ chính xác của các
câu hỏi trong hệ thống. Để đánh giá độ chính xác của hệ thống, luận văn sử dụng hai độ đo,
đó là độ hồi tưởng và độ chính xác. Công thức cụ thể như sau:
Độ chính xác =
ố ố â ệ ố ả ờ đượ
ố ố â ỏ ườ ù đư à
Độ hồi tưởng =
ố ố â ệ ố ả ờ đú
ố ố â ệ ố ả ờ đượ
Bảng 5.2: Minh họa độ chính xác của các loại mẫu câu hỏi
STT
Loại luật Số câu đưa vào Số câu trả lời được Phần trăm (~)
1 Loại số 1 50 48 96%
2 Loại số 2 20 16 80%
3 Loại số 3 25 22 88%
4 Loại số 4 22 18 82%
5 Loại số 5 38 36 95%
6 Loại số 6 15 14 93%
người dùng quá đơn giản hoặc phức tạp, do luận văn tập chung khảo sát một số
mẫu câu hỏi thường gặp. Số luật mà luận văn xây dựng chưa bao phủ hết được
miền câu hỏi theo ngôn ngữ tự nhiên của người dùng.
Ví dụ: Hệ thống sẽ thông báo câu hỏi “Phở” là không hợp lệ do không đủ thành
phần của câu hỏi, hoặc câu hỏi “Tôi muốn ăn món bò bít tết ngon và rẻ!” hệ thống
sẽ thông báo không đúng cấu trúc do chỉ có tên món ăn mà không có hỏi chi tiết
về giá hay địa điểm, mặc dù hàm ý bên trong câu hỏi là hỏi địa điểm và giá cả.
Bên cạnh đó, tiêu chí “ngon” cũng rất khó đánh giá.
- Các luật được xây dựng trên JAPE khá “cứng”: Do các luật được xây dựng dựa
trên công cụ JAPE nên thiếu tính mềm dẻo, rất khó xử lý với các câu hỏi phức tạp
và mang tính ngữ nghĩa từ người dùng. Trong khi đó những câu hỏi dạng này
15
chiếm khá nhiều trong thực tế. Điều này dẫn đến việc hệ thống không trả lời được
hoặc trả lời sai câu hỏi người dùng.
- Ví dụ: Luật được xây dựng trên JAPE xử lý khá tốt với các câu hỏi đơn giản như
“Ăn Buffe ở nhà hàng nào tại quận Bình Thạnh?” hoặc “Cửa hàng lẩu 39 có sinh
tố mãng cầu hay không?” nhưng lại khó xử lý với các câu hỏi phức tạp như “Nhà
hàng nào bán món cơm văn phòng trong phạm vi bán kính 1km tính từ Học viện
Bưu chính Viễn thông?” hoặc những câu hỏi mang tính ngữ nghĩa như “Nhà
hàng nào bán món ngô chiên ngon và rẻ tại Đà Nẵng?”
2.5.3. Đánh giá quá trình trả lời câu hỏi
Giao diện đặt câu hỏi khi khởi chạy của hệ thống
Hình 5.1: Giao diện đặt câu hỏi cho người dùng
16
Giao diện khi trả lời câu hỏi của hệ thống
Hình 5.2: Giao diện trả lời câu hỏi
- Chưa trả lời được các câu hỏi phức tạp, mang tính suy luận và ngữ nghĩa.
- Hệ thống được đánh giá trên bộ dữ liệu tự xây dựng, do đó chưa có một tiêu chí
so sánh với các hệ thống khác.
Hướng phát triển:
18
- Tăng lượng dữ liệu trong cơ sở dữ liệu về nhà hàng và món ăn để đáp ứng được
câu hỏi của người dùng.
- Sử dụng các phương pháp học máy cho bước phân tích câu hỏi, từ đó nâng cao độ
chính xác khả năng phân tích và trả lời câu hỏi.
- Có thể mở rộng miền ứng dụng, do hiện tại hệ thống mới chỉ dừng lại ở miền ứng
dụng đóng (chuyên về một miền).
19
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1] Hồ Tú Bảo, Lương Chi Mai. Về xử lý tiếng Việt trong Công nghệ Thông tin. Viện Công nghệ Thông tin,
Viện Khoa học và Công nghệ Tiên tiến Nhật Bản.
[2] Lê Ngọc Đức (2009). Hệ thống trích rút thông tin từ trang VietPhD. Đồ án tốt nghiệp, Đại học Bách khoa
Hà Nội.
[3] Đỗ Thái Hà (2009). Hệ thống hỏi đáp tự động QA system. Thực tập chuyên ngành, Đại học Bách khoa
Hà Nội.
[4] Phạm Thu Uyên, Nguyễn Đức Vinh, Nguyễn Đạo Thái (2009). Hệ thống hỏi đáp tự động sử dụng trích
rút quan hệ ngữ nghĩa trong kho văn bản tiếng Việt. Nghiên cứu khoa học sinh viên cấp trường Đại học
Công Nghệ.
[5] Trần Xuân Tứ, Lê Đức Trọng, Nguyễn Tiến Tùng (2011). Hệ thống hỏi đáp thực thể tên người trong tiếng
Việt. Nghiên cứu khoa học sinh viên cấp trường Đại học Công Nghệ.
Tài liệu tiếng Anh
Website
[17]
[18]
Công cụ sử dụng
[19]
[20]