Qua giai đoạn thực tập, tôi đã được củng cố rất nhiều các nội dung kiến thức được
học tập tại trường, cũng như tiếp cận những kiến thức hoàn toàn mới liên quan đến vấn
đề rút trích thông tin trong văn bản như lý thuyết về xử lý ngôn ngữ tự nhiên NLP, mã
nguồn mở OpenNLP và ngôn ngữ lập trình Python. Ngoài ra tôi cũng học hỏi được các
kỹ năng và phong cách lập trình chuyên nghiệp hơn, thông qua cách thức đặt tên, truyền
biến, xây dựng cấu trúc chương trình mạch lạc Học hỏi và nâng cao kỹ năng giải quyết
vấn đề thông qua việc đặt câu hỏi, cách thức tìm kiếm các vấn đề liên quan, cách suy
nghĩ sáng tạo. Thông qua những kinh nghiệm có được khi thực tập và nghiên cứu, tôi tin
tưởng mình đã học tập được nhiều kinh nghiệm bổ ích c ho công việc mai sau.
26 trang |
Chia sẻ: lylyngoc | Lượt xem: 3273 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Phân tích câu hỏi trong hệ thống hỏi đáp trong tiếng việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Duy Long
BÁO CÁO THỰC TẬP TỐT NGHIỆP
PHÂN TÍCH CÂU HỎI TRONG HỆ THỐNG HỎI ĐÁP
TIẾNG VIỆT
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Trương Anh Hoàng
Nơi thực tập: Công ty Nhất Thái Dương iSolar
Hà Nội, tháng 9/2012
Lời cảm ơn
Lời đầu tiên em xin chân thành cảm ơn đến quý Thầy, Cô trường ĐH Công Nghệ -
ĐH Quốc Gia Hà Nội, những người đã trực tiếp giảng dạy, truyền đạt những kiễn thức bổ
ích cho em, đó chính là những nền tảng cơ bản, là những hành trang vô cùng quý giá, là
buốc đầu tiên cho em bước vào sự nghiệp sau này trong tương lai. Đặc biệt là Tiến sĩ
Trương Anh Hoàng người đã tận tình, quan tâm giúp đỡ em trong suốt quá trình em tham
gia thực tập. Thầy đã giải đáp những thắc mắc khó khăn mà em đã gặp phải. Nhờ đó, em
mới có thể hoàn thành được báo cáo thực tập chuyên ngành này.
Bên cạnh đó, em cũng xin được gởi lời cảm ơn chân thành tới Giám đốc, các anh
chị trong Công ty Nhất Thái Dương iSolar đã tạo cơ hội giúp em có thể tìm hiểu rõ về
môi trường làm việc thực thế của một doanh nghiệp mà ngồi trên ghế nhà trường em
chưa được biết. Em xin chân thành cảm ơn anh Vũ Tất Thắng giám đốc của công ty, mặc
dù rất bận rộn với công việc nhưng vẫn dành thời gian chỉ bảo, hướng dẫn, tạo mọi điều
kiện thuận lợi nhất để em có thể tìm hiểu và thu thập thông tin phục vụ cho báo cáo này.
Trong quá trình thực tập và làm báo cáo, vì kinh nghiệm thực tế chưa có, chỉ dựa
vào lý thuyết cùng với thời gian hạn hẹp nên báo cáo này không thể tránh những sai sót.
Kính mong nhận được sự góp ý, nhận xét từ phía quý Thầy, Cô cũng như các anh chị
trong Công ty để kiến thức của em càng hoàn thiện hơn và rút ra được những kinh
nghiệm bổ ích để có thể áp dụng vào thực tiễn một cách hiệu quả nhất trong tương lai.
Em xin chân thành cảm ơn!
Sinh viên
Nguyễn Duy Long
Lời mở đầu
Nghiên cứu về hệ thống hỏi đáp tự động (Q&A) đã được quan tâm từ rất lâu trên
thế giới. Ngay từ những năm 1960, các hệ thống hỏi đáp đầu tiên sử dụng cơ sở dữ
liệu đã được ra đời. Đến những năm 1970-1980, rất nhiều dự án lớn hướng đến việc
“understanding text” và xây dựng hệ thống hỏi đáp dựa trên các mô hình ngôn ngữ
thống kê. Cuối những năm 1990, World Wide Web ra đời và phát triển nhanh chóng trở
thành một kho ngữ liệu khổng lồ. Các nhà nghiên cứu về hệ thống hỏi đáp cũng bắt đầu
khai thác web như là một nguồn dữ liệu cho việc tìm kiếm câu trả lời. Các kĩ thuật mới
đòi hỏi tốc độ cao, khả năng xử lý lượng dữ liệu web lớn đang rất được quan tâm. Tuy
nhiên các nghiên cứu về xây dựng hệ thống hỏi đáp cho tiếng Việt vẫn còn rất nhiều
hạn chế. Một trong những lý do chính là chúng ta còn thiếu các công cụ xử lý tiếng
Việt, các tài nguyên ngôn ngữ học (Wordnet [28], ontology [30]…).
Phân tích câu hỏi là pha đầu tiên trong kiến trúc chung của một hệ thống hỏi đáp,
có nhiệm vụ tìm ra các thông tin cần thiết làm đầu vào cho quá trình xử lý của các
pha sau (trích chọn tài liệu, trích xuất câu trả lời, …). Vì vậy phân tích câu hỏi có vai
trò hết sức quan trọng, ảnh hưởng trực tiếp đến hoạt động của toàn bộ hệ thống. Nếu
phân tích câu hỏi không tốt thì sẽ không thể tìm ra được câu trả lời.
Trong bài viết báo cáo thực tập em đã thực hiện nghiên cứu các phương pháp xây
dựng hệ thống hỏi đáp và phân tích câu hỏi đang được quan tâm hiện nay, từ đó đưa ra
phương pháp phân tích câu hỏi phù hợp nhất (trên cơ sở các nguồn tài nguyên ngôn
ngữ sẵn có) cho hệ thống hỏi đáp tiếng Việt. Những nghiên cứu này có thể coi là tiền
đề cho các nghiên cứu tiếp theo để xây dựng một hệ thống hỏi đáp hoàn thiện cho tiếng
Việt.
CHƯƠNG 1: TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP
1 Giới thiệu.
Thực tập tốt nghiệp là một giai đoạn quan trọng đối viên sinh viên năm cuối, đặc
biệt là sinh viên công nghệ thông tin. Thực tế công việc, cùng với những kinh nghiệm và
kỹ năng học tập được trong giai đoạn này, sẽ giúp cho sinh viên vững vàng hơn khi đi
vào công việc thực tế đầy áp lực. Với ý nghĩa thực tiễn đó, được sự cho phép của nhà
trường, tôi đã may mắn được là sinh viên thực tập tại Công ty Nhất Thái Dương iSolar,
một công ty chuyên gia công phần mềm cho ngành giáo dục. Với thời gian thực tập
khoảng 2 tháng, nhưng nó đã đem lại cho tôi nhiều kinh nghiệm và kỹ năng trong công
việc, cũng như nghiên cứu. Tôi được tham gia làm nghiên cứu về vấn đề xử lý ngôn ngữ
tự nhiên Natural Language Processing. Cùng với những sinh viên thực tập khác và với sự
hướng dẫn tận tình của TS. Vũ Tất Thắng, phần nghiên cứu NLP hiện nay đã khá hoàn
chỉnh như những mục tiêu đề ra.
Tên công ty thực tập Nhất Thái Dương iSolar
Địa chỉ Phòng 1504, 671 đường Hoàng Hoa Thám
Thời gian 01/07/2012 – 01/09/2012
Cán bộ trực tiếp quản lý TS. Vũ Tất Thắng
Đề tài nghiên cứu Natural Language Processing
Vị trí thực tập Research
2 Công ty Nhất Thái Dương iSolar.
Được sự thông qua của Hội đồng Khoa học Ban Quản lý Khu Công nghệ cao
Hoà Lạc, ngày 31/05/2011, nhóm Giải pháp sáng tạo và Nghiên cứu tiên tiến Nhất
Thái Dương (iSolar) đã chính thức tham gia vào hoạt động ươm tạo tại Trung tâm
Ươm tạo doanh nghiệp công nghệ cao. Nhóm ISOLAR do TS Vũ Tất Thắng,Viện
CNTT-Viện KHCN Việt Nam làm trưởng nhóm, hoạt động trong lĩnh vực công
nghệ thông tin với sản phẩm đang nghiên cứu triển khai là hệ thống Speech
translation.
Hiện nay nhóm ISOLAR đã phát triển thành Công ty Nhất Thái Dương
iSolar với mục tiêu tạo ra các sản phẩm chuyên nghiệp cho ngành giáo dục Việt
Nam. Đây là một trong những môi trường rất tốt dành cho sinh viên công nghệ
thông tin để học hỏi và làm việc trong tương lại. Mục tiêu của công ty là cung cấp
cho nhân viên một môi trường làm việc năng động, thử thách, vui nhộn, để mỗi
nhân viên thật sự là một “tài sản” quý nhất của công ty, của khách hàng.
3 Đặt vấn đề
Xử lý ngôn ngữ tự nhiên hiện đang là một lĩnh vực rất được quan tâm trong các
hướng nghiên cứu và phát triển, không chỉ ở khía cạnh giao tiếp của con người mà ở một
vài khía cạnh khác, nó còn là một phần trong các thể hiện hiểu biết và tri thức của con
người. Xử lý ngôn ngữ tự nhiên là hướng tiếp cận máy tính hóa nhằm phân tích văn bản
dựa trên cả lý thuyết và công nghệ. Có thể định nghĩa: “xử lý ngôn ngữ tự nhiên là học
thuyết thúc đẩy sự phát triển các công nghệ tính toán khác nhau phục vụ cho việc phân
tích và biểu diễn các văn bản. Việc phân tích và biểu diễn văn bản có thể được thực hiện
ở một hoặc một vài mức độ khác nhau nhằm xử lý ngôn ngữ của con người từ dạng tự
nhiên thành các định dạng nhất định cho từng công việc hoặc ứng dụng cụ thể”.
4 Mục tiêu.
Mục tiêu của đề tài nghiên cứu là hiểu được các cách thức xử lý ngôn ngữ tự nhiên
nói chung trong các ngôn ngữ. Đặc biệt xử lý đối với tiếng Việt và nghiên cứu sâu về
phần phân tích câu hỏi trong hệ thống hỏi đáp đối với một miền đóng.
4.1 Phạm vi nghiên cứu.
Đối tượng rút trích metadata của đề tài là những bài báo khoa học và có định dạng là
tập tin PDF. Đề tài thực tập tập trung nghiên cứu cách rút trích thông tin metadata, còn
việc tổ chức dữ liệu thư viện số và làm giàu ontology là hướng đi kế tiếp cho đề tài, trong
lần nghiên cứu này chúng tôi chưa đi sâu vào vấn đề đó.
4.2 Kết quả dự kiến.
Xây dựng thành công một hệ thống quy mô nhỏ có khả năng hỏi và trả lời tự động
theo phương thức Client-Server.
Kết quả chính xác phải từ 80% trở lên.
4.1 Mục tiêu, thời gian và kế hoạch thực tập.
Các mục tiêu phải đạt được trong quá trình thực tập:
Tìm hiểu thực tế môi trường công việc trong một công ty phần mềm.
Quan sát học tập các kỹ năng mềm còn yếu và thiếu như: kỹ năng xử lý vấn đề,
kỹ năng giao tiếp, kỹ năng đặt câu hỏi v.v…
Nâng cao kỹ năng lập trình.
Nâng cao khả năng học hỏi, sáng tạo trong xử lý vấn đề chuyên môn cũng như
trong giao tiếp.
4.4 Thời gian và kế hoạch thực tập
Những công việc cụ thể trong giai đoạn này là:
o Tìm hiểu xử lý ngôn ngữ tự nhiên NLP và phân tích câu hỏi trong hệ thống hỏi
đáp cho tiếng Việt
o Tìm hiểu về mã nguồn mở OpenNLP và ngôn ngữ lập trình Python
o Phân tích, thiết kế hệ thống và code demo
o Kiểm tra độ chính xác của hệ thống và viết báo cáo thu hoạch.
Thời gian Nội dung
2 tuần Tìm hiểu về lý thuyết xử lý ngôn ngữ tự nhiên.
1 tuần
Tìm hiểu về phân tích những câu hỏi trong hệ thống trả lời tự động của
Tiếng Việt
3 tuần
Tìm hiểu về mã nguồn mở OpenNLP và ngôn ngữ lập trình Python.và
ngôn ngữ lập trình Python.
Tiến hành phân tích hệ thống hỏi đáp trên thực tế.
2 tuần
Thu thập dữ liệu về các địa điểm, tên người để phục vụ cho việc code
demon hệ thống
5 Bố cục báo cáo.
Phần 1: Tổng quan của quá trình thực tập tốt nghiệp: thực tập ở công ty nào, thời
gian thực tập ra sao, tham gia những dự án gì… Ngoài ra trong Chương 1 cũng giới thiệu
khái quát về công ty thực tập, đề tài thực tập, mục tiêu và kế hoạch của đợt thực tập này.
Phần 2: Giới thiệu về hệ thống hỏi đáp tự động.
Phần 3: Phân tích câu hỏi trong hệ thống hỏi đáp.
Phần 4: Xây dựng hệ thống trả lời tiếng Việt tự động và sử dụng mã nguồn mở
OpenNLP và Java.
Phần kết luận sẽ tổng hợp những nội dung kiến thức đã được tiếp cận, những kỹ
năng lập trình đã được học hỏi, kinh nghiệm thực tiễn đã tích lũy, những điều làm được
và chưa được trong nghiên cứu xử lý ngôn ngữ tự nhiên NLP và phương hướng sắp tới.
Chương 2: Giới thiệu về hệ thống hỏi đáp tự động
1 Hệ thống hỏi đáp tự động
Hệ thống hỏi đáp tự động có thể coi như một lựa chọn thứ hai bên cạnh hệ
thống trích chọn thông tin khi người dùng muốn tìm kiếm thông tin họ cần. Hệ thống
trích chọn thông tin nhận đầu vào là các từ khóa và trả về tập các tài liệu liên quan (có
chứa các từ khóa đó). Kết quả mà hệ thống trích chọn thông tin (máy tìm kiếm) trả lại
cho người dùng là rất lớn, có thể lên đến hàng nghìn trang web mà phần nhiều không
chứa thông tin người dùng mong muốn. Trong khi đó, hệ thống hỏi đáp nhận đầu vào
là câu hỏi dưới dạng ngôn ngữ tự nhiên của người dùng, trả lại các đoạn văn bản ngắn
chứa câu trả lời trực tiếp cho câu hỏi.
Nghiên cứu về hệ thống hỏi đáp tự động hiện đang thu hút sự quan tâm của rất
nhiều các nhà nghiên cứu từ các trường đại học, các viện nghiên cứu và cả các doanh
nghiệp lớn trong ngành công nghệ thông tin, có ý nghĩa khoa học lẫn ý nghĩa thực tế.
Rất nhiều các hội nghị thường niên về khai phá dữ liệu, trích chọn thông tin dành một
chủ đề riêng cho các nghiên cứu về hệ thống hỏi đáp như TREC1, CLEF2, vv.
Bài toán xây dựng hệ thống hỏi đáp là một bài toán khó thuộc lĩnh vực xử lý
ngôn ngữ tự nhiên (Natural Language Processing). Chúng ta biết rằng ngôn ngữ tự
nhiên vốn nhập nhằng, đa nghĩa, việc xác định được ngữ nghĩa của câu hỏi cũng như
phát hiện ra câu trả lời là một thách thức không nhỏ. Không những vậy, giữa câu hỏi
và câu trả lời còn tồn tại các quan hệ “ngầm” hay phụ thuộc vào ngữ cảnh.
Ví dụ câu hỏi: Một người đang đi trên đường với một chiếc điện thoại di động có
kết nối internet. Người này muốn tìm đường từ Kim Mã tới Xuân Thủy. Người này đặt
ra câu hỏi.
“Tôi muốn tìm đường từ Kim Mã tới Cầu Giấy”
Câu trả lời trên một ứng dụng điện thoại, chỉ đường trên GoogleMap.
Một câu hỏi khác: “ Bill Gates sinh năm nào ?” và câu trả lời “….Bill Gates sinh
ngày 28, tháng 10, năm…”.
Để tìm được câu trả lời trên cho câu hỏi, hệ thống cần có cơ chế để biết được
rằng Kim Mã và Xuân Thủy là tên của 2 địa điểm hoặc cần học được các mẫu thường
gặp của câu trả lời (các mẫu về ngày tháng năm sinh, về thời gian, địa chỉ….) tương
ứng với từng loại câu hỏi. Các hệ thống Q&A trên thế giới hiện nay sử dụng rất
nhiều các công cụ xử lý ngôn ngữ như: Bộ gán nhãn từ loại (POS Tagger), bộ nhận
dạng tên thực thể (Named Entity Recognizer), bộ phân tích ngữ pháp (Parser)… và các
tài nguyên ngôn ngữ để phân tích câu hỏi và trích xuất câu trả lời.
Một hệ thống hỏi đáp được người dùng đánh giá là hữu ích nếu đáp ứng được các
tiêu chuẩn:
Tính hợp lý về thời gian (Timeliness): Câu trả lời phải được đưa ra trong thời
gian ngắn, ngay cả khi có hàng ngàn người dùng cùng truy nhập hệ thống một lúc. Các
nguồn dữ liệu mới cần phải được tích hợp vào hệ thống ngay khi chúng sẵn sàng để
có thế cung cấp cho người dùng câu trả lời cho những câu hỏi về các sự kiện có tính
thời sự.
Tính chính xác: Tính chính xác của hệ thống hỏi đáp tự động là cực kì quan
trọng bởi việc đưa ra câu trả lời sai còn tai hại hơn nhiều là không đưa ra câu trả
lời. Nghiên cứu về Q&A cần tập trung vào việc đánh giá tính đúng đắn của câu trả lời
đưa ra, bao gồm cả phương thức để phát hiện các trường hợp mà dữ liệu hiện thời
không chứa câu trả lời cho câu hỏi. Các thông tin mâu thuẫn trong dữ liệu cũng cần
được tìm ra và các thông tin này cần được xử lý theo một cách phù hợp, nhất quán. Để
đạt được sự chính xác, hệ thống Q&A cần được tích hợp các nguồn tri thức (world
knowledge ) và cơ chế “bắt chước” việc suy luận thông thường (việc bắt chước có
thể hiểu như là một quá trình học).
Tính khả dụng: Hệ thống Q&A cần đáp ứng được các yêu cầu cụ thể của một
người dùng. Các ontology trên từng miền cụ thể và ontology trên miền mở cần được
tích hợp trong hệ thống. Hệ thống Q&A cần có khả năng khai phá câu trả lờitừ bất kì
dạng dữ liệu gì (văn bản, web, cơ sở dữ liệu, …) và đưa ra câu trả lời dưới định dạng mà
người dùng mong muốn, cho phép người dùng miêu tả ngữ cảnh của câu hỏi và cung
cấp các thông tin giải thích, trích dẫn nguồn cho câu trả lời.
Tính hoàn chỉnh: Câu trả lời hoàn chỉnh cho câu hỏi của người dùng là điều mà
các hệ thống Q&A hướng tới. Trong nhiều trường hợp (câu hỏi về danh sách, nguyên
nhân, cách thức…), các phần của câu trả lời nằm rải rác trong một văn bản, thậm chí
trong nhiều văn bản. Vì vậy cần phải hợp nhất các phần này dựa trên các thông tin liên
kết để tạo ra câu trả lời hoàn chỉnh.
Tính thích hợp của câu trả lời: Trong ngôn ngữ tự nhiên, câu hỏi đưa ra luôn
gắn với ngữ cảnh nào đó và câu trả lời cũng nằm trong một ngữ cảnh nhất định. Câu trả
lời mà hệ thống Q&A đưa ra phải phù hợp ngữ cảnh với câu hỏi. Một hệ thống
Q&A có khả năng giao tiếp (interactive Q&A) là cần thiết trong nhiều trường hợp bởi
chuỗi các câu hỏi liên quan đến một vấn đề sẽ giúp làm sáng tỏ thông tin mà người
dùng đang hỏi. Việc đánh giá một hệ thống Q&A cần hướng người dùng bởi ý kiến
người dùng là đánh giá tốt nhất cho tính thích hợp của câu trả lời.
Các tiêu chuẩn trên được đặt ra với mong muốn xây dựng được một hệ thống
Q&A hoàn chỉnh. Tuy nhiên, không phải hệ thống nào cũng có khả năng thông minh
và hoàn thiện như thế. Các nghiên cứu về Q&A hiện nay đang tập trung vào xây
dựng hệ thống hỏi đáp có tính chính xác cao và có khả năng sử dụng nguồn dữ liệu
web khổng lồ trên Internet.
2 Phân loại hệ thống hỏi đáp tự động
Có nhiều cách phân loại hệ thống hỏi đáp dựa trên các tiêu chí khác nhau như:
phân loại theo miền ứng dụng, theo khả năng trả lời câu hỏi, theo cách tiếp cận giải
quyết bài toán…
2.1 Phân loại theo miền ứng dụng (domain)
Hệ thống hỏi đáp miền mở (open domain Question answering): Hệ thống trả lời
bất kỳ câu hỏi nào được đưa vào. Khó khăn cho hệ thống miền mở đó chính là việc
xây dựng các tri thức nên cho việc trả lời cũng như phân tích câu hỏi, các phương
pháp hiện nay thường sử dụng một số các ontology khái quát hay các mạng tri thức
như: wikipedia, bách khoa từ điển... Tuy nhiên, dữ liệu cho việc trích rút câu trả lời là
phong phú, dễ thu thập.
Hệ thống hỏi đáp miền đóng (close domain Question answering): Hệ thống tập
trung vào trả lời các câu hỏi liên quan đến một miền cụ thể (giáo dục, y tế, thể
thao, du lịch, tìm đường...). Xây dựng hệ thống hỏi đáp miền đóng được coi là bài
toán dễ hơn so với xây dựng hệ thống hỏi đáp miền mở vì có thể sử dụng các tri
thức miền (thường là ontology của miền cụ thể).
Các nghiên cứu hiện nay về Q&A đang tập trung vào xây dựng hệ thống hỏi
đáp trên miền mở, sử dụng nguồn dữ liệu phi cấu trúc (kho văn bản lớn hay dữ liệu
Miền đóng Miền mở
Hệ thống hỏi đáp
Dữ liệu có cấu
trúc
Dữ liệu phi cấu trúc (text)
web) để tìm câu trả lời. Các nghiên cứu mới và cải tiến những phương pháp cũ để có
thể áp dụng cho nguồn dữ liệu web vốn đa dạng, nhiều “nhiễu” và trùng lặp đang rất
được quan tâm.
2.2 Phân loại theo khả năng trả lời câu hỏi
Hệ thống có khả năng trả lời các câu hỏi liên quan đến sự vật, hiện tượng,... dựa
trên việc trích ra câu trả lời có sẵn trong tập tài liệu. Câu trả lời là các chuỗi ký tự trong
một tài liệu. Kỹ thuật chính được sử dụng là xử lý chuỗi và từ khóa.
Hệ thống có cơ chế lập luận đơn giản: Trích xuất các câu trả lời có sẵn trong tập
tài liệu sau đó sử dụng các suy luận để tìm mối liên kết giữa câu trả lời và câu hỏi. Hệ
thống sử dụng các nguồn tri thức như ontology về từng miền cụ thể và ontology chung.
Hệ thống trả lời các câu hỏi yêu cầu khả năng tổng hợp: Các phần của câu trả
lời được trích rút từ nhiều tài liệu sau đó được tổng hợp lại thành câu trả lời hoàn
chỉnh. Câu hỏi thường là về danh sách, về cách thức, nguyên nhân...
Hệ thống có khả năng giao tiếp với người dùng: Trả lời chuỗi các câu hỏi của
người dùng về cùng một vấn đề. Ví dụ các câu hỏi của người dùng như: “Tôi đang
đứng ở đâu? Tôi muốn đến Hàng Bông? Nói với vợ tôi rằng tối nay anh không về”.
Hoặc câu hỏi như: “Giáo sư Nguyễn Văn Hiệu sinh ra ở đâu?”
Hệ thống có khả năng lập luận tương tự: Có thể trả lời các câu hỏi có tính chất
suy đoán, câu trả lời ẩn trong tập tài liệu. Hệ thống cần trích ra các luận chứng và sử
dụng lập luận tương tự để tìm ra câu trả lời.
2.3 Các bước chung của hệ thống hỏi đáp tự động
Một hệ thống hỏi đáp tự động thường gồm 3 bước chung sau:
Bước1-Phân tích câu hỏi: Bước 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ước2-Trích chọn tài liệu liên quan: 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ước3-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á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 như trên. 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.
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 đủ
Câu hỏi
Phân tích câu hỏi và trích
xuất câu trả lời
Câu trả lời
DATA SET
Trích xuất mẫu tổng quát
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 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.
Chương 3: Phân tích câu hỏi của hệ thống hỏi đáp
1 Nội dung của phân tích câu hỏi
Bài toán phân tích câu hỏi: Phân tích câu hỏi nhận đầu vào là câu hỏi dưới
dạng ngôn ngữ tự nhiên của người dùng, đưa ra câu truy vấn cho bước trích chọn tài
liệu liên quan và các thông tin cần thiết cho bước trích rút câu trả lời.
Câu truy vấn là dạng tổ hợp của các từ khóa quan trọng trong câu hỏi (và các
từ khóa mở rộng) với các phép toán tập hợp AND, OR.
Các thông tin cần thiết để trích xuất câu trả lời là rất đa dạng, tùy phuộc vào
phương pháp trích xuất câu trả lời. Thông thường các thông tin đó là mục đích của câu
hỏi (ví dụ mục đích hỏi để khẳng định một điều, để so sánh hay để tìm kiếm thông
tin, để hỏi về định nghĩa, cách thức…), loại câu trả lời mong đợi (question target hay
answer type). Ví dụ câu hỏi “Dân số trên thế giới hiện tại là bao nhiêu”, câu trả lời
được mong đợi là một “con số” hay câu hỏi “Chủ tịch nước Việt Nam là ai” thì loại
câu trả lời là một “tên người”.
2 Khó khăn của phân tích câu hỏi
Câu hỏi đầu vào của hệ thống hỏi đáp tự động là câu hỏi dưới dạng ngôn ngữ
tự nhiên của người dùng. Vì vậy việc phân tích câu hỏi cũng gặp những khó khăn của
xử lý ngôn ngữ tự nhiên. Khó khăn ở đây là làm thế nào để máy tính hiểu được ngôn ngữ
của con người. Bản chất phức tạp của ngôn ngữ của con người, đặc biệt là sự đa nghĩa
và nhập nhằng ngữ nghĩa của ngôn ngữ. Thêm nữa, có một khác biệt sâu sắc là con
người ngầm hiểu và dùng quá nhiều lẽ thường (common sense) trong ngôn ngữ, như
khi hỏi về “thời gian” thì tức là hỏi về “giờ, phút, tháng, năm, thứ …”
Cùng hỏi về một thông tin nhưng câu hỏi có thể được diễn đạt theo nhiều cách
khác nhau, sử dụng từ ngữ, cấu trúc câu khác nhau, lúc ở dạng nghi vấn, lúc lại ở dạng
khẳng định. Mô hình cần có khả năng chuyển đổi các câu hỏi phức tạp thành chuỗi các
câu hỏi đơn giản hơn, có thể xác định được các nhập nhằng và xử lý chúng theo ngữ
cảnh hoặc sử dụng cách thức giao tiếp với người dùng để làm rõ ngữ nghĩa.
3 Một số nội dung của xử lý ngôn ngữ tự nhiên trong phân tích
câu hỏi
Việc xử lý ngôn ngữ tự nhiên thường bao gồm các bước (tầng, layer) cơ bản sau:
o Tầng ngữ âm (phonetic and phonological layer): Nghiên cứu về ngữâm
(linguistic sounds), như mô hình hoá việc các từ trong cách nói thông
thường được phát âm thế nào, về bản chất thanh điệu, ngôn điệu, ngữ điệu
(prosody, intonation), trường độ âm tiết, độ nhấn, biến thanh, …
o Tầng hình thái (morphological layer): Nghiên cứu về các thành phần có
nghĩa của từ (word), như từ được tạo ra bởi các hình vị (morphemes) và từ
được tách ra trong một câu thế nào. Thí dụ, từ “tiếng Việt” tạo thành từ “t-iế-
ng V-iệ-t”, còn ngữ (phrase) “xử lý tiếng Việt” tạo thành gồm hai từ “xử lý”
và “tiếng Việt”. Trong tiếng Việt, một bài toán quan trọng là phân tách từ
(word segmentation). Một thí dụ quen thuộc là câu “Ông già đi nhanh quá”
có thể phân tách thành (Ông già) (đi) (nhanh quá) hoặc (Ông) (già đi) (nhanh
quá) hoặc những cách khác nữa.
o Tầng ngữ pháp (morphological layer): Nghiên cứu các quan hệ cấu trúc giữa
các từ, xem các từ đi với nhau thế nào để tạo ra câu đúng. Quá trình này
thường được cụ thể trong các bước cơ bản sau:
Xác định từ loại (POS tagging): Xem mỗi từ trong câu là loại gì (danh
từ, động từ, giới từ, …). Trong thí dụ trên, có thể “Ông già” là danh
từ, “đi” là động từ, “nhanh” là trạng từ, và “quá” là thán từ.
Xác định cụm từ (chunking): Thí dụ “Ông già” là cụm danh từ, “đi”
là cụm động từ, “nhanh quá” là cụm trạng từ. Như vậy câu trên có hai
phân tích (Ông già) (đi) (nhanh quá) hoặc (Ông) (già đi) (nhanh quá).
Xác định quan hệ ngữ pháp (parsing): (Ông già) (đi) (nhanh quá) là
quan hệ chủ ngữ-vị ngữ-trạng ngữ.
o Tầng ngữ nghĩa (semantic layer): Nghiên cứu xác định nghĩa của từng từ và
tổ hợp của chúng để tạo nghĩa của câu. Thí dụ trong phân tích (Ông già) (đi)
(nhanh quá), động từ “đi” có thể có nghĩa “bước đi”, hay “chết” hay “điều
khiển” (khi đánh cờ), … và tương ứng ta có các nghĩa khác nhau của câu.
o Tầng ngữ dụng (pragmatic layer): Nghiên cứu mối quan hệ giữa ngôn ngữ và
ngữ cảnh sử dụng ngôn ngữ (context-of-use). Ngữ dụng như vậy nghiên cứu
việc ngôn ngữ được dùng để nói về người và vật như thế nào.
Việc phân tích một câu nói hay một câu trong văn bản ở các tầng từ ngữ âm (1)
đến tầng ngữ pháp (3) gọi là phân tích sơ bộ(shallow parsing). Nếu phân tích thêm cả
tầng ngữ nghĩa (từ (1) đến (4)) ta sẽ có phân tích đầy đủ (fully parsing). Trong các vấn đề
của xử lí ngôn ngữ, có vấn đề cần đến phân tích đầy đủ (như dịch tự động), nhưng cũng
có những vấn đề chỉ với phân tích sơ bộ cũng có thể đã xử lí được (như tìm kiếm thông
tin, phân tích văn bản cho tổng hợp tiếng nói, mô hình ngôn ngữ trong nhận dạng tiếng
nói…).
Chương 4: Xây dựng hệ thống trả lời tiếng Việt tự động
và sử dụng mã nguồn mở OpenNLP
1 Mô tả hệ thống thực tế.
Hệ thống này được xây dựng cho một thiết bị di động có kết nối internet để đáp
ứng các câu hỏi của người dùng về các lĩnh vực sau:
Tìm đường: Người dùng có thể tìm đường đi từ vị trí này tới vị trí khác trong khu
vực Hà Nội hoặc có thể xác định vị trí mà mình đang đứng hiện tại.
Nhắn tin: Người dùng có thể dễ dàng nhắn tin cho người có trong danh sách điện
thoại bằng giọng nói.
Hẹn giờ: Người dùng cũng có thể hẹn giờ bằng giọng nói.
TEXT Xác định miền cụ
thể cho câu hỏi
Chuyển âm thanh
thành text
Xử lý câu hỏi
Định dạng câu trả
lời Gửi câu trả lời về cho
ứng dụng của thiết bị
Mô hình của hệ thống trả lời tự động bằng giọng nói
Trong việc xây dựng hệ thống này không quan tâm tới việc làm thế nào để chuyển
dữ liệu âm thanh thành TEXT, mà chúng ta chỉ quan tâm làm thế nào để phân tích câu
hỏi dưới dạng TEXT và câu trả lời.
2 Phân tích câu hỏi tiếng Việt cho hệ thống trả lời tự động
Trong hệ thống trả lời tự động các câu hỏi tiếng Việt này, chúng ta chỉ làm việc
với 3 lĩnh vực đã nêu lên ở trên. Trong thực tế người dùng sẽ hỏi những câu hỏi như:
Đường đi từ Hàng Bài tới Trần Thái Tông như thế nào?
Nói với Nguyễn Duy Long, bạn có muốn đi ăn tối với tớ không?
Hãy báo thức cho tôi lúc 3 giờ 30 phút chiều.
Tôi muốn dậy lúc 9 rưỡi tối.
Vì chúng ta chỉ làm việc với hệ thống hỏi đáp miền đóng nên một số câu hỏi mà
người ta muốn đưa ra là không nhiều chỉ với số hữu hạn câu. Nhưng hệ thống phải phân
tích được câu hỏi và xử lý được yêu cầu mà người hỏi muốn có.
Trong lĩnh vực tìm đường, người hỏi chỉ quan tâm về địa điểm muốn tìm như: ...
địa điểm A tới địa điểm B. Trong lĩnh vực nhẵn tin, người nhẵn chỉ quan tâm làm thế
nào để tin nhắn của mình đến được đúng được người mà mình đang nhắn như: Nguyễn
Văn A, Người yêu... Hay trong khi hẹn giờ cái quan trọng nhất là giờ mà người ta muốn
báo thức: X giờ Y phút.
Có 2 điều quan trọng nhất trong phân tích ngữ nghĩa của câu:
Làm thế nào để xác định được câu hỏi thuộc loại lĩnh vực nào: tìm đường,
nhắn tin hay hẹn giờ. Vấn đề này hay còn được gọi là phân lớp cho câu
(Classifying).
Sau đã phân lớp xong cho câu, chúng ta phải phát hiện được các thực thể và
số cần thiết trong câu.
3 Phân lớp cho câu (Classifying) và OpenNLP
Để xây dựng được hệ thống phân lớp được cho các câu. Mã nguồn mở OpenNLP
cho phép chúng ta có thể tạo ra một Model để làm nhiệm vụ này. Để xây dựng một
Model thì ta phải viết được tài liệu định đạng phân lớp chuẩn theo OpenNLP. Mỗi dòng
chứa một thể loại (category) và văn bản được ngăn cách bởi dấu cách trắng. Ở dưới đây
timduong, nhantin, hengio, lần lượt là các thể loại của tìm đường, nhắn tin và hẹn giờ.
timduong Đường đi từ Hàng Bài tới Trần Thái Tông như thế nào?\
Làm thế nào để đi đến Hàng Bông.
nhantin Nói với Nguyễn Duy Long, bạn có muốn đi ăn tối với tớ không?
hengio Tôi muốn dậy lúc 3 rưỡi\
Hãy báo thức tôi lúc 9 giờ tối.
Khi đã thực sự có một Model rồi. OpenNLP có hỗ trợ Document Categorizer API
để hiện phân lớp:
InputStream is = ...
DoccatModel m = new DoccatModel(is);
Với lớp DoccatModel được gọi chúng ta tiếp tục
String inputText = “Đường đi từ Hàng Bài tới Trần Thái Tông như thế nào?”
DocumentCategorizerME myCategorizer = new DocumentCategorierME(m);
double[] outcomes = myCategorizer.categorize(inputText);
String category = myCategorizer.getBestOutcome();// ket qua: timduong
4 Phát hiện thực thể trong câu (Name Finder) và OpenNLP
Để xác định được thực thể Name Finder trong một câu sau chúng ta cũng cần có
một Model. Model ở đây là bị phụ thuộc vào từng ngôn ngữ khác nhau và kiểu thực thể
chúng ta huấn luyện. Để có thể tìm tên trong văn bản hay là câu ở dạng dữ liệu thôi thì
phải được phân tách thành các thẻ (token) và các câu. Trong hệ thống này thì chúng ta
phải phân tách thực thể trong mỗi câu. Ví dụ huyến luyện Model như sau:
Hãy chỉ đường từ Kim Mã tới Xuân Thủy
Nói với Nguyễn Duy Long bạn đi ăn tối với tôi nhé.
Hãy báo thức tôi lúc bốn giờ chiều
Để có một model tốt thì chúng ta nên huấn luyện với ít nhất 15000 câu.
Câu lệnh sau sẽ chuyển dữ liệu trên thành model với định dang .bin
$bin/opennlp TokenNameFinderTrainer -encoding UTF-8 -lang en -data en-ner-
person.train -model en-ner-person.bin
Để có thể tiến hành tìm được tên trong câu chúng ta sẽ sử dụng code OpenNLP.
TokenNameFinderModel model = null;
try {
model = new TokenNameFinderModel(modelIn);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (modelIn != null) {
try {
modelIn.close();
} catch (IOException e) {
}
}
}
NameFinderME nameFinder = new NameFinderME(model);
String text = "Đánh thức tôi lúc bốn giờ chiều";
String[] sentence = text.split(" ");
Span nameSpans[] = nameFinder.find(sentence);
4.1 Phân tích và trả lời các câu trong lĩnh vực tìm đường
Đối với trong hệ thống câu hỏi tìm đường, chúng ta có thể phân tích rằng người ta
thường tìm đường với một số câu hỏi thông dụng như sau:
Tôi muốn đi từ ... tới ...
Làm thế nào để đi từ ... tới...
Hãy chỉ đường cho tôi từ ... tới ...
Đường đi từ ... tới ... như thế nào?
Hãy dẫn đường tới ...
Tôi đang đứng ở đâu?
Chỗ này là chỗ nào?
Trong dấu “...” là tên địa điểm mà người ta muốn đề cập tới. Làm thế nào để hệ
thống có thể phát hiện bất cứ một địa điểm nào trong một câu là điều rất khó. Đòi hỏi
chúng ta phải có một cơ sở dữ liệu lớn về tên các địa điểm và được cập nhật đúng theo
thời gian. Vậy nên với hệ thống trong quá trình mới phát triển chúng ta chỉ có thể làm
việc với một số địa danh nổi tiếng và chính trong khu vực TP.Hà Nội.
Sau khi chúng ta đã có một Model tốt để phục vụ. Chúng ta sẽ tiến hành tìm danh
từ của địa điểm trong câu và trả lời cho ứng dụng di động. Khi đã xác định được địa điểm
trong câu.
Đối với câu có 2 địa điểm thì địa điểm đứng trước sẽ là nơi xuất phát, địa điểm
sau sẽ là đích đến. Vậy câu trả lời cho client sẽ có dạng:
timduong|địa điểm 1 – địa điểm 2
Đối với câu chỉ xác định được 1 địa điểm thì đây chính là địa điểm đích còn địa
điểm xuất phát chính là nơi đang đứng hiện tại. Câu trả lời cho client sẽ có dạng:
timduong|địa điểm hiện tại – địa điểm
Khi client nhận được kết quả có định dạng như trên nó sẽ hiểu rằng đây là câu hỏi
tìm đường. Và sử dụng Googlemap để hiển thị đường đi cho người dùng theo thứ tự như
câu trả lời.
4.2 Phân tích và trả lời các câu trong lĩnh vực nhắn tin
Những câu hỏi thông dụng mà sẽ có thể được hỏi khi nhắn tin bằng giọng nói như
sau:
Nói với ... (nội dung)
Nhắn tin tới ... (nội dung)
Bảo với ... (nội dung)
Trong dấu “...” là tên của một người. Cũng như vấn đề trong phần tìm đường làm
thế nào để hệ thống có thể nhận dạng ra được đúng tên người trong câu là không
dễ dàng gì. Đòi hỏi chúng ta phải có một cơ sở dữ liệu tên người rất lớn để đào
tạo. Tên người trong tiếng Việt là rất lớn và phong phú vậy nên để có thể nhận
dạng tốt chúng ta phải cần có thời gian để thu thập được lượng dữ liệu này.
Sau khi sử dụng OpenNLP để nhận dạng được tên người trong câu. Chúng
ta cần tách được nội dung tin nhắn trong câu để gửi trả kết quả cho client. Điều
này cũng dễ nhận ra bời vì nội dung tin nhắn nằm ngay sau tên người trong câu
hỏi. Vậy chúng ta sẽ tạo câu trả lời cho client như sau:
nhantin|tên người| nội dung tin nhắn
4.3 Phân tích và trả lời các câu trong lĩnh vực hẹn giờ
Những câu hỏi giờ thông thường hàng ngày trong tiếng Việt là rất đa dạng và phức
tạp, bao gồm cả những từ như: kém, rưỡi, sáng, chiều, trưa, tối. Và nhiệm vụ của hệ
thống là phải phân tích và đưa ra câu trả lời chính xác như người dùng mong muốn.
Những câu hỏi mà người dùng hay hỏi như:
Đánh thức tôi lúc ...
Tôi muốn dậy lúc...
Tôi muốn đánh thức vào lúc...
Hãy gọi tôi lúc...
Trong dấu “...” trong trường hợp này là thời gian mà người hẹn giờ muốn đặt báo
thức. Ở đây có thể là những câu thông thường như:
3 rưỡi chiều => 15h30min
12 giờ 35 phút => 12h35min
5 giờ kém 15 chiều => 16h45min
12 giờ chiều => không hợp lệ
Dưới đây, em xin đưa ra thuật toán để đưa thời gian trong tiếng Việt về thời gian
chuẩn.
INPUT: time
OUPUT: hour:minute
Var: minute=0, hour=0;
minute = getMinute();
hour = getHour();
if (exist “kém”) {
hour = hour – 1;
minute = 60 – minute;
}
if (exist “sáng”) {
}
if (exist “trưa”) {
if(hour >= 10 && hour <= 12) giữ nguyên thời gian
if(hour >= 1 && hour <= 3) hour = hour + 12;
}
if (exist “chiều”) {
if(hour >= 12 && hour <= 15) giữ nguyên thời gian
if(hour >= 1 && hour <= 5) hour = hour + 12;
}
if (exist “tối”) {
if(hour >= 18 && hour <= 24) giữ nguyên thời gian
if(hour >= 6 && hour <= 12) hour = hour + 12;
}
if(exist “rưỡi”) minute = 30;
Sau khi xử lý xong giờ thì ta sẽ tiến hành định dạng câu trả lời để gửi về cho
client. Câu trả lời cho client nên có dạng như sau:
hengio|hour:minute
KẾT LUẬN
Qua giai đoạn thực tập, tôi đã được củng cố rất nhiều các nội dung kiến thức được
học tập tại trường, cũng như tiếp cận những kiến thức hoàn toàn mới liên quan đến vấn
đề rút trích thông tin trong văn bản như lý thuyết về xử lý ngôn ngữ tự nhiên NLP, mã
nguồn mở OpenNLP và ngôn ngữ lập trình Python. Ngoài ra tôi cũng học hỏi được các
kỹ năng và phong cách lập trình chuyên nghiệp hơn, thông qua cách thức đặt tên, truyền
biến, xây dựng cấu trúc chương trình mạch lạc… Học hỏi và nâng cao kỹ năng giải quyết
vấn đề thông qua việc đặt câu hỏi, cách thức tìm kiếm các vấn đề liên quan, cách suy
nghĩ sáng tạo. Thông qua những kinh nghiệm có được khi thực tập và nghiên cứu, tôi tin
tưởng mình đã học tập được nhiều kinh nghiệm bổ ích cho công việc mai sau.
Đối với đề tài thực tập, nhóm chúng tôi đã hoàn thành khá tốt những mục tiêu ban
đầu đề ra, đó là xây dựng được hệ thống hỏi đáp tự động các câu hỏi trong tiếng Việt
trong một miền đóng với kết quả chính xác khá tốt. Hướng phát triển trong tương lai của
đề tài là nghiên cứu các vấn đề về xử lý ngôn ngữ tự nhiên và đặc biệt cho tiếng Việt khi
chưa được phát triển so với các ngôn ngữ khác.
MỤC LỤC
Lời cám ơn
Lời nói đầu
CHƯƠNG 1: TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP .......................... 4
1 Giới thiệu. ................................................................................................................................. 4
2 Công ty Nhất Thái Dương iSolar. .................................................................................... 5
3 Đặt vấn đề ................................................................................................................................. 5
4 Mục tiêu. .................................................................................................................................... 6
4.1 Mục tiêu, thời gian và kế hoạch thực tập. ............................................................ 6
Các mục tiêu phải đạt được trong quá trình thực tập: .............................................. 6
5 Bố cục báo cáo. ....................................................................................................................... 8
Phần 1: Tổng quan của quá trình thực tập tốt nghiệp:.............................................. 8
Phần 2: Giới thiệu về hệ thống hỏi đáp tự động. .......................................................... 8
Phần 3: Phân tích câu hỏi trong hệ thống hỏi đáp. ...................................................... 8
Phần 4: Xây dựng hệ thống trả lời tiếng Việt tự động và sử dụng mã nguồn
mở OpenNLP và Java. .............................................................................................................. 8
Chương 2: Giới thiệu về hệ thống hỏi đáp tự động ......................................................... 9
1 Hệ thống hỏi đáp tự động .................................................................................................. 9
2 Phân loại hệ thống hỏi đáp tự động ............................................................................ 11
2.2 Phân loại theo khả năng trả lời câu hỏi ............................................................. 12
2.3 Các bước chung của hệ thống hỏi đáp tự động .............................................. 12
Chương 3: Phân tích câu hỏi của hệ thống hỏi đáp ...................................................... 14
1 Nội dung của phân tích câu hỏi ..................................................................................... 14
2 Khó khăn của phân tích câu hỏi .................................................................................... 14
Chương 4: Xây dựng hệ thống trả lời tiếng Việt tự động và sử dụng mã nguồn
mở OpenNLP ................................................................................................................................ 16
1 Mô tả hệ thống thực tế. .................................................................................................... 16
2 Phân tích câu hỏi tiếng Việt cho hệ thống trả lời tự động ................................. 17
3 Phân lớp cho câu (Classifying) và OpenNLP ........................................................... 17
4 Phát hiện thực thể trong câu (Name Finder) và OpenNLP ............................... 18
4.1 Phân tích và trả lời các câu trong lĩnh vực tìm đường ................................ 19
4.2 Phân tích và trả lời các câu trong lĩnh vực nhắn tin ..................................... 20
4.3 Phân tích và trả lời các câu trong lĩnh vực hẹn giờ ...................................... 21
KẾT LUẬN ...................................................................................................................................... 24
Các file đính kèm theo tài liệu này:
- nguyenduylong_baocaothuctap_4614.pdf