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
Trang 1HỌ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Ĩ
HÀ NỘI - 2013
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS Lê Thanh Hương Viện công nghệ thông tin và truyền thông - Trường Đại học Bách Khoa Hà Nội
Phản biện 1: ………
Phản biện 2: ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3PHẦ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:
Trang 4- Danh sách giá tương ứng với các món ăn
Bên cạnh đó, trong luận văn này sẽ trình bày cơ bản về hệ thống hỏi đáp tự động, các bài toán cũng như kỹ thuật trong việc xây dựng một hệ thống hỏi đáp tự động miền ứng dụng nhà hàng – món ăn
Trang 5PHẦN II NỘI DUNG
2.1 Bài toán trích rút thông tin
2.1.1 Phát biểu bài toán trích rút thông tin
Trích rút thông tin (Information Extraction – IE) là một lĩnh vực của khai phá dữ liệu
(Data Mining) có nhiệm vụ lấy ra các mẫu thông tin “có ích” đối với người dùng
Theo Jaeyoung Yang và cộng sự, trích rút/trích xuất thông tin (IE) là bài toán nhận dạng những thành phần thông tin cụ thể của một văn bản, những thành phần này chính là hạt nhân tạo nên nội dung ngữ nghĩa của văn bản đó [12]
Nói một cách đơn giản, trích rút/trích xuất thông tin là quá trình xử lý thông tin, đầu
vào là một văn bản và đầu ra là các thông tin “có giá trị” với người dùng Thông tin “có giá trị” ở đây có thể hiểu là các thực thể, các thuộc tính mô tả thực thể và mối quan hệ giữa các
thực thể Dữ liệu được trích rút ra có nội dung và cấu trúc thỏa mãn yêu cầu người dùng
Có thể phát biểu bài toán trích rút thông tin như sau:
Đầu vào: Văn bản có cấu trúc bất kỳ
Đầu ra: Thông tin “có ích” được tổ chức dưới dạng cấu trúc
Ví dụ sau đây sẽ minh họa quá trình trích rút thông tin từ văn bản và tổ chức lại thành
dữ liệu có cấu trúc
Hình 2.1: Minh họa bài toán trích rút thông tin
Trang 6Ở đâ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ị KDD1 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 trên đặc trưng dữ liệu thì bài toán trích rút thông tin có thể giải quyết bằng một số kỹ thuật sau:
Dữ liệu có cấu trúc: Được lưu trữ trong CSDL, việc lấy thông tin thông qua các truy
vấn người dùng (mệnh đề SELECT)
1 KDD: http://www.kdd.org/
Trang 7 Dữ liệu bán cấu trúc: Các trang web đại diện cho dữ liệu loại này Có hai kỹ thuật
thường xuyên được dùng để trích rút thông tin trên web đó là sử dụng cấu trúc cây DOM và sử dụng biểu thức chính quy
Dữ liệu không có cấu trúc: Với dữ liệu không có cấu trúc, bài toán trích rút thông
tin có thể coi là bài toán nhận dạng và trích rút thực thể như: tên người, tên tổ chức,
vị trí, ngày tháng, số…
2.1.3 Trích rút thông tin dựa trên cây DOM
Theo W3C2 thì DOM (Document Object Model) là một giao diện lập trình ứng dụng (API) cho các văn bản HTML hợp lệ và các văn bản XML có cấu trúc chặt chẽ Nó định nghĩa cấu trúc logic của các văn bản và cách thức một văn bản được truy cập và thao tác Ví
dụ về một bảng được lấy văn bản HTML:
Hình 2.3: Minh họa biểu diễn cây DOM
Cây DOM được xây dựng dựa trên các thẻ HTML, trong đó nút gốc chính là thẻ ngoài cùng (TABLE), sau đó đến các thẻ lồng bên trong và lá chính là các nội dung Như
2 http://www.w3.org/DOM/
Trang 8vậ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ể)
và hệ thống hỏi đáp miền mở (hỏi đáp cho nhiều miền ứng dụng khác nhau) Mặt khác, nếu phân loại theo khả năng trả lời, hệ thống gồm các loại sau: các hệ thống có cơ chế lập luận đơn giản, các hệ thống có khả năng tổng hợp, các hệ thống có khả năng giao tiếp với người
Phân tích câu hỏi
Trích rút thông tin
Sinh câu trả lời
Trang 9dùng, và các hệ thống có khả năng lập luận tương tự Cuối cùng, nếu phân loại theo hướng tiếp cận thì có hai loại: hệ thống hỏi đáp tự động theo hướng tiếp cận nông và hệ thống hỏi đáp tự động theo hướng tiếp cận sâu
2.3 Các bài toán trong xây dựng hệ thống hỏi đáp
2.3.1 Bài toán phân tích câu hỏi
Bài toán phân tích câu hỏi là bài toán đầu tiên và quan trọng trong quá trình xây dựng một hệ thống hỏi đáp tự động Bài toán có thể được phát biểu như sau:
Đầu vào:câu hỏi tự nhiên của người dùng
Đầu ra:câu hỏi được nhận diện (phân lớp được câu hỏi, phân tích được từ khóa và
các mối quan hệ…)
Trong luận văn đề cập tới hai phương pháp để giải quyết bài toán phân tích câu hỏi, đó là: phân tích câu hỏi sử dụng luật và phân tích câu hỏi sử dụng cây trie
Phân tích câu hỏi dựa trên luật:
Thường sử dụng các luật do người dùng tự định nghĩa để tìm kiếm dạng câu hỏi phù hợp Các câu hỏi phù hợp với tập luật sẽ được phân tích, ngược lại sẽ bị bỏ qua Các biểu thức
đượ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/a1),T(S/a2),…,T(S/ar)>, với S là một tập hợp các xâu alphabet A
= {aj}rj=1 , và S/an là tất cả các chuỗi của S bắt đầu với an
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:
Who is the dean of ICS? Who is the !PO$ of !ORG$ NAME
Who is J.Smith of ICS? Who is !NAME$ of ORG$ DESC
Trang 10Câu hỏi Khuôn dạng EAT
Hình dưới chỉ ra cách dữ liệu được tổ chức và lưu trữ tương ứng với tập chuỗi định dạng câu hỏi ở bảng trên Có thể nhận thấy rằng, mỗi nút của trie lưu trữ một hay nhiều thành phần
Hình 3.3: Cấu trúc trie xác định thực thể
2.3.2 Bài toán trích rút dữ liệu (retrieve document)
Bài toán trích rút dữ liệu liên quan là bài toán thứ hai trong quá trình xây dựng hệ thống hỏi đáp tự động Mục tiêu của bài toán này nhằm thu thập các tài liệu liên quan tới câu hỏi của người dùng (có thể là trên Internet hoặc dữ liệu được lưu trữ trên máy tính) Bài toán có thể phát biểu như sau:
Đầu vào: Câu hỏi của người dùng đã được phân tích
Đầu ra: Tập các tài liệu liên quan tới câu hỏi người dùng
Quá trình trích rút dữ liệu bao gồm các bước sau:
Lựa chọn đầu tiên dựa vào các từ có ý nghĩa (từ khóa) của câu hỏi tìm kiếm tệp dữ liệu
Tiến hành tiếp sự lựa chọn thứ 2 thông qua việc nhận dạng các cụm ngữ nghĩa đồng nghĩa hay đa nghĩa…
Các câu được lựa chọn nhờ ước lượng độ chênh lệch “khoảng cách” ngữ nghĩa giữa chúng với cụm từ của câu hỏi và tên thực thể trong dạng trả lời mong đợi
Trang 112.3.3 Bài toán sinh câu trả lời (answer extractioin)
Answer extraction, hay còn gọi là bước xử lý cú pháp, là bước tiếp theo sau việc trích rút dữ liệu để đưa ra được câu trả lời mong muốn Tại bước này, các câu trả lời tiềm năng được tách ra và đánh giá
Có hai cách phổ biến để trích ra câu trả lời, đó là:
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
Trang 12Hệ 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
2.4.2 Kiến trúc hệ thống hỏi đáp tiếng Việt hướng miền ứng dụng
Hệ thống hỏi đáp tự động miền ứng dụng nhà hàng – món ăn gồm hai pha chính, đó là: pha thu thập và phân tích dữ liệu, và pha hỏi đáp Trong pha thu thập và phân tích dữ liệu, dữ liệu từ các trang web đặt món ăn trực tuyến sẽ được thu thập và phân tích Dữ liệu được trích rút theo mẫu, các thông tin bao gồm: tên nhà hàng, mô tả về nhà hàng, số điện thoại, địa chỉ, danh sách các món ăn và giá tương ứng Sau khi trích rút, dữ liệu được lưu trong CSDL
Hình 4.1: Kiến trúc hệ thống hỏi đáp miền ứng dụng nhà hàng – món ăn
Trong pha hỏi đáp, câu hỏi từ người dùng sẽ được hệ thống phân tích thông qua các luật được xây dựng trước Sau khi phân tích, câu hỏi sẽ được nhận dạng, phân tích ngữ pháp
và trích rút các từ khóa Sau bước này, câu hỏi được chuyển sang câu truy vấn để sinh câu trả lời
2.4.3 Tập luật trong hệ thống hỏi đáp tự động miền ứng dụng nhà hàng – món ăn
Qua quá trình khảo sát dữ liệu, tác giả nhận thấy số lượng câu hỏi trong miền ứng dụng nhà hàng – món ăn không nhiều, các câu hỏi thường tập trung vào một số loại như: hỏi
về địa điểm nhà hàng, hỏi về giá món ăn, hỏi về nhà hàng có món ăn hay không Do đó,
Trang 13cách tiếp cận phân tích câu hỏi dựa vào luật được sử dụng trong luận văn phù hợp với hệ thống hiện tại
Các luật được xây dựng dưới dạng các biểu thức chính quy, sử dụng thành phần JAPE trong bộ công cụ GATE Dưới đây là các luật được sử dụng trong hệ thống
1 <Món ăn> <nhà hàng> <giá> <từ để hỏi> <hỏi giá>
Đối tượng hỏi địa điểm mục đích từ để hỏi
Ví dụ:
- Món lẩu vịt tại nhà hàng Hương Sen giá bao nhiêu?
- Ăn món gà sốt nấm tại nhà hàng Hương Sen giá bao nhiêu?
2 <Món ăn> <nhà hàng> <rẻ nhất> <từ để hỏi> <giá> <hỏi giá>
Đối tượng hỏi địa điểm min/max từ để hỏi mục đích
Ví dụ:
- 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>
Ví dụ: