ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ QUỐC HUY
XÂY DỰNG HỆ THỐNG AGENT
HỘI THOẠI HIỆN THÂN CHO
TƢƠNG TÁC NGƢỜI-MÁY
LUẬN VĂN THẠC SĨ
Hà Nội – 2008
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
------------
VŨ QUỐC HUY
XÂY DỰNG HỆ THỐNG AGENT
HỘI THOẠI HIỆN THÂN CHO
TƢƠNG TÁC NGƢỜI-MÁY
Ngành: Công Nghệ Thông Tin
Chuyên ngành: Công Nghệ Phần Mềm
Mã số: 68 40 10
LUẬN VĂN THẠC SĨ
NGƢỜI HƢỚNG DẪN KHOA HỌC
TS. BÙI THẾ DUY
Hà Nội – 2008
Mục lục
Các hình vẽ ................................................................................................................... i
Thuật ngữ tiếng Anh ....................................................................................................ii
CHƢƠNG 1.
MỞ ĐẦU ............................................................................................ 1
CHƢƠNG 2.
AGENT HỘI THOẠI HIỆN THÂN ................................................... 3
2.1. Ứng dụng của agent hội thoại ............................................................................ 3
2.2. Các loại agent hội thoại ..................................................................................... 6
2.3. Chatterbot.......................................................................................................... 6
2.3.1. Các kỹ thuật xây dựng chatterbot ................................................................ 7
2.3.1.1. Phƣơng pháp tìm từ khóa ...................................................................... 7
2.3.1.2. Phƣơng pháp tìm mẫu ........................................................................... 7
2.3.1.3. Phân tích ngôn ngữ tự nhiên ................................................................. 9
2.3.1.3.1. Phân tích cú pháp ......................................................................... 11
2.3.1.3.2. Phân tích ngôn từ ......................................................................... 12
2.3.1.3.3. Phân tích ngữ nghĩa ..................................................................... 13
2.3.1.3.4. Phân tích thực tế .......................................................................... 14
2.3.2. Xây dựng cơ sở dữ liệu cho chatterbot ...................................................... 16
2.3.3. Một số kỹ thuật cải tiến cho chatterbot ...................................................... 19
2.4. Agent hội thoại hiện thân ................................................................................. 20
2.4.1. Sự phát triển.............................................................................................. 22
2.4.2. Động lực phát triển ................................................................................... 23
2.4.3. Hội thoại trực tiếp với con ngƣời .............................................................. 24
2.4.4. Yêu cầu kiến trúc ...................................................................................... 25
2.4.5. Kiến trúc hội thoại hiện thân ..................................................................... 26
2.4.6. Mô hình tính cách và cảm xúc ................................................................... 28
2.4.7. Một số agent hội thoại hiện thân ............................................................... 29
2.4.7.1. REA - An Embodied Conversational Agent ........................................ 29
2.4.7.2. Ola – một agent hội thoại với cử chỉ điệu bộ....................................... 32
CHƢƠNG 3.
MÔ HÌNH MẶT 3D BIỂU CẢM ..................................................... 35
3.1. Giới thiệu ........................................................................................................ 35
3.2. Mô hình hóa khuôn mặt ................................................................................... 40
3.3. Mô hình hóa khuôn mặt với các lớp đa giác..................................................... 41
3.4. Mô hình khuôn mặt với bề mặt tham số ........................................................... 42
3.5. Mô hình hóa cử động trên khuôn mặt .............................................................. 43
3.5.1. Hoạt ảnh khung chính ............................................................................... 44
3.5.2. Hoạt ảnh tham số hóa ........................................................................... 44
3.5.3. Hoạt ảnh dựa trên giả cơ ........................................................................... 44
3.5.4. Hoạt ảnh dựa trên cơ ................................................................................. 44
CHƢƠNG 4.
HỆ THỐNG AGENT HỘI THOẠI HIỆN THÂN ............................. 45
4.1. Giới thiệu ........................................................................................................ 45
4.2. Hệ thống hội thoại ........................................................................................... 45
4.2.1. AIMLBot .................................................................................................. 45
4.2.2. AIML - Artificial Intelligence Markup Language...................................... 47
4.2.2.1. Thẻ category ....................................................................................... 48
4.2.2.2. Thẻ pattern ......................................................................................... 49
4.2.2.3. Thẻ template ....................................................................................... 49
4.3. Hệ thống khuôn mặt 3D biểu cảm ................................................................... 50
4.4. Tích hợp .......................................................................................................... 51
CHƢƠNG 5.
KẾT LUẬN ...................................................................................... 60
TÀI LIỆU THAM KHẢO.......................................................................................... 62
Các hình vẽ
Hình 1: Luồng dữ liệu trong agent hội thoại ............................................................... 11
Hình 2: Thành phần chính xử lý ngôn ngữ tự nhiên trong CA .................................... 13
Hình 3: Một số agent hội thoại 3D và 2D ................................................................... 22
Hình 4: Chi tiết kiến trúc hội thoại ............................................................................. 26
Hình 5: Mô hình cảm xúc OCC ................................................................................. 29
Hình 6: Conversational agent architecture .................................................................. 32
Hình 7: Nhân vật hoạt hình 3D .................................................................................. 33
Hình 8: 3D face ......................................................................................................... 37
Hình 9: Mô hình mặt theo CANDIDE và GRETA ..................................................... 41
Hình 10: Bề mặt B-spline .......................................................................................... 43
Hình 11: Các lớp cơ bản của AIMLBot...................................................................... 46
Hình 12: Mẫu file AIML............................................................................................ 48
Hình 13: Khuôn mặt biểu lộ cảm xúc ......................................................................... 51
Hình 14: Mô hình tƣơng tác với hệ thống .................................................................. 52
Hình 15: Giao diện tƣơng tác của hệ thống ................................................................ 59
i
Thuật ngữ tiếng Anh
Conversational agent
Embodied
Agent hội thoại
conversational Agent hội thoại hiên thân
agent – ECA
Multimodal interface
Giao diện đa hình thái.
Language Xử lý ngôn ngữ tự nhiên
Natural
Processing - NPL
OCC
(Ortony,
Collins, Mô hình cảm xúc OCC
Clore)
ii
CHƢƠNG 1:MỞ ĐẦU
CHƢƠNG 1. MỞ ĐẦU
Chúng ta đang sống trong thời kỳ phát triển mạnh mẽ của công nghệ thông tin.
Ngày nay con ngƣời đã chế tạo ra rất nhiều các thiết bị -"công cụ thông minh"- phục
vụ cho cuộc sống của chính mình nhƣ máy tính, robot, hệ thống viễn thông, các máy
công cụ..., đẩy nhanh quá trình phát triển tự động hoá. Nhƣng để sử dụng linh hoạt
hơn, khai thác có hiệu quả hơn, dễ dàng điều khiển những thiết bị hơn, cùng với việc
điều khiển các công cụ "thông minh" đó chúng ta lại vấp phải một hàng rào cản rất
lớn, đó là sự trao đổi thông tin hay là sự tƣơng tác giữa ngƣời và máy. Đây là một vấn
đề nghiên cứu lớn đã và đang đƣợc nhiều nƣớc trên thế giới quan tâm, ví dụ nhƣ Mỹ
đã có những nghiên cứu đầu tiên từ những năm 70, Ba Lan từ thập kỷ 80 của thế kỷ 20
và hiện nay Trung Quốc cũng đã bắt đầu. Kết quả nghiên cứu tới nay đã có nhƣng
chƣa nhiều, nhƣng tầm quan trọng của việc hội thoại giữa ngƣời và máy thì chúng ta
có thể nhận thức đƣợc dễ dàng.
Hiện tại quá trình tƣơng tác giữa con ngƣời và máy tính chủ yếu thông qua các
thiết bị nhƣ chuột, bàn phím, màn hình, đó là những thiết bị và cách thức truyền thống
để chúng ta “nói chuyện” với máy tính. Chúng ta cố gắng học cách di chuyển chuột
thành thạo, gõ phím nhanh nhất có thể và tạo ra những màn hình có khả năng cảm ứng
để đẩy nhanh quá trình tƣơng tác với máy, song tất cả những nỗ lực và sự cải thiện đó
cũng không làm cho “cuộc trò chuyện” giữa ngƣời và máy đƣợc tự nhiên hơn. Những
quá trình tƣơng tác giữa ngƣời và máy nhƣ trên vẫn mang tính chất một chiều, máy
chờ đợi những dữ liệu từ phía ngƣời dùng rồi phản hồi lại một cách cứng nhắc, không
dáng điệu cử chỉ, không có biểu lộ cảm xúc.
Cùng với sự phát triển của công nghệ và thành công trong các lĩnh vực nghiên
cứu trong nhiều năm qua, chúng ta đang tiếp cận đƣợc những cuộc hội thoại giữa
ngƣời và máy tự nhiên hơn. Cụ thể với những thành quả trong các lĩnh vực khoa học
nhƣ ngôn ngữ học, phân tích cấu trúc câu, phân tích tiếng nói, nhận dạng tiếng nói, trí
tuệ nhân tạo mà chúng ta đã và đang xây dựng đƣợc những hệ thống hội thoại tƣơng
tác giữa ngƣời và máy giống nhƣ giữa con ngƣời và con ngƣời. Những hệ thống hội
thoại nhƣ vậy sẽ làm cho quá trình giao tiếp giữa ngƣời và máy trở nên hiệu quả hơn,
một cách tự nhiên hơn. Máy tính không chỉ đơn thuần đón nhận thông tin từ con ngƣời
qua các thiết bị nhƣ bàn phím, chuột, màn hình mà nó còn có thể chấp nhận dữ liệu từ
nhiều cách thức khác nhau nhƣ âm thanh, hình ảnh, các thiết bị khác. Nhờ đặc điểm đa
1
CHƢƠNG 1:MỞ ĐẦU
cách thức (multimodal) đầu vào nhƣ vậy càng làm cho quá trình tƣơng tác giữa ngƣời
và máy trở nên thân thiện, dễ dàng hơn.
Hội thoại giữa con ngƣời và con ngƣời không đơn thuần chỉ dùng lời nói, một
phƣơng thức rất quan trọng trong hội thoại của con ngƣời đó là cảm xúc. Từ cử chỉ,
nét mặt, chuyển động của đầu, ánh mắt đều giúp ngƣời đối thoại có thể nhận biết đƣợc
cảm xúc của ngƣời nói. Chính nhờ những phƣơng tiện giao tiếp phi ngôn ngữ nhƣ vậy
đã làm cho hội thoại của con ngƣời trở nên phong phú và giàu ý nghĩa hơn. Các nhà
khoa học cũng đang nghiên cứu để sự tƣơng tác giữa con ngƣời và máy trở nhiên tự
nhiên nhƣ vậy. Agent hội thoại hiện thân là một trong những giải pháp đang thu hút
đƣợc nhiều sự quan tâm.
Trong luận văn này tôi sẽ trình bày những nghiên cứu để xây dựng một hệ
thống agent hội thoại hiện thân, hệ thống này đƣợc kết hợp từ hai hệ thống con đó là
agent hội thoại và mô hình khuôn mặt 3D thể hiện cảm xúc. Ngoài việc có thể hội
thoại với ngƣời dùng thông qua cách gõ văn bản thì ứng dụng này đƣợc mở rộng để có
thể biểu lộ cảm xúc và những cảm xúc này sẽ đƣợc thể hiện trên mô hình khuôn mặt
3D, đồng thời có cử động của đôi môi mô phỏng câu trả lời với ngƣời sử dụng.
Luận văn đƣợc tổ chức nhƣ sau, chƣơng 1 giới giới thiệu các vấn đề, nhu cầu và
mục đích của luận văn. Trong chƣơng này, chúng ta thấy đƣợc phƣơng hƣớng các
nghiên cứu và bố cục tổ chức trong luận văn. Chƣơng 2 giới thiệu tổng quan về agent
hội thoại hiện thân, chúng ta sẽ có cái nhìn bao quát về một trong lĩnh vực tƣơng tác
ngƣời máy, những ứng dụng, kỹ thuật và một số agent hội thoại hiện thân đang đƣợc
phát triển trên thế giới. Chƣơng 3 giới thiệu mô hình khuân mặt 3D biểu cảm. Trong
chƣơng này chúng ta sẽ tìm hiểu phƣơng pháp mô hình hóa khuôn mặt, mô hình hóa
cử động cơ để có thể tạo ra các trạng thái cảm xúc khác nhau. Chƣơng 4 trình bày hệ
thống agent hội thoại hiện thân bao gồm tính năng hội thoại và bày tỏ cảm xúc qua
khuôn mặt 3D. Trong chƣơng này sẽ đƣa ra phƣơng pháp tích hợp và kỹ thuật trao đổi
thông tin giữa hệ thống hội thoại và mô hình khuôn mặt 3D. Chƣơng 5 tổng kết những
kết quả nghiên cứu và phân tích ƣu điểm nhƣợc điểm. Cuối cùng là hƣớng nghiên cứu
và cải tiến trong tƣơng lai cho sự nghiên cứu này.
2
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
CHƢƠNG 2. AGENT HỘI THOẠI HIỆN THÂN
Ngày này máy tính đƣợc mọi ngƣời sử dụng ngày càng nhiều không chỉ tại nơi
làm việc mà còn ở nhà, do vậy một môi trƣờng thân thiện hơn cho việc tƣơng tác giữa
ngƣời và máy trở là một nhu cầu cần thiết. Nếu con ngƣời có thể tƣơng tác với các
máy tính một cách tự nhiên hơn thì công việc có thể đƣợc thực hiện nhanh hơn rất
nhiều. Trong đa số trƣờng hợp, con ngƣời tƣơng tác với nhau thông qua lời nói, chữ
viết và các cách thức phi ngôn ngữ nhƣ cử chỉ, nét mặt, dáng điệu. Trong tƣơng lai,
các máy tính cần có khả năng hiểu đƣợc ngôn ngữ để tƣơng tác tự nhiên thực sự với
con ngƣời. Không những hiểu ngôn ngữ, mà nó còn có thể đƣa ra các phản hồi một
cách tự nhiên với ngƣời dùng thông qua ngôn từ. Những nhu cầu tất yếu này chính là
động lực cho sự ra đời của agent hội thoại.
Trƣớc tiên, ta hãy xem xét khái niệm “agent”. Theo định nghĩa của Wooldridge
và Jennings [1995], “agent là một hệ thống máy tính được đặt trong môi trường nào
đó, có khả năng tự quản hành động trong môi trường này để đạt được những mục đích
thiết kế của nó”. Định nghĩa này bao gồm các hệ thống điều khiển, các phần mềm
daemon, web spider, virtual assistant (ví dụ nhƣ Word paperclip). Nhƣ vậy agent khác
với một phần mềm máy tính ở đặc điểm có khả năng tự quản hành động trong môi
trƣờng hoạt động.
Agent hội thoại là một chƣơng trình hiểu đƣợc ngôn ngữ tự nhiên và có khả
năng đáp ứng một cách thông minh với những yêu cầu ngƣời dùng. Trong luận văn
này, tôi sẽ nghiên cứu một số vấn đề và thách thức liên quan đến việc tạo ra một agent
hội thoại tích hợp với khuôn mặt 3D biệu lộ cảm xúc. Phƣơng tiện truyền đạt của
agent trong luận văn này thông qua gõ văn bản, nhƣng dữ liệu đầu vào có thể đến từ
bất cứ nơi nào, cho dù đó là ngôn ngữ nói, một quyển sách, một văn bản gõ vào hay
các phƣơng tiện khác. Những vấn đề đƣợc thảo luận trong nghiên cứu này sẽ giải
quyết công việc sau khi chúng ta chuyển đổi dữ liệu đầu vào của ngƣời dùng sang một
dạng thức cơ bản mà có thể làm việc trên máy tính. Sau đó các agent sẽ sử dụng một
số thuật toán để xem xét ý nghĩa của dữ liệu.
2.1. Ứng dụng của agent hội thoại
3
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
Agent hội thoại đƣợc ứng dụng rất rộng rãi trong nhiều lĩnh vực nhƣ là chăm
sóc khách hàng, trong các game giải trí, trung tập chăm sóc sức khỏe và nhiều lĩnh vực
khác.
Agent hội thoại là công nghệ giao tiếp tận dụng ngôn ngữ tự nhiên và những kỹ
thuật ngôn ngữ sử dụng máy tính, sao cho máy tính giống nhƣ con ngƣời. Họ có thể
hỗ trợ một loạt các ứng dụng trong đời sống nhƣ kinh doanh, giáo dục, chính phủ, y tế,
và vui chơi giải trí.
o Dịch vụ khách hàng: Đáp ứng lại những câu hỏi chung chung của khách hàng về
sản phẩm và dịch vụ ví dụ nhƣ, trả lời các câu hỏi về việc áp dụng cho việc mua xe
ô tô trả góp hoặc việc thế chấp nhà cửa.
o Công việc giấy tờ (Help desk): Đáp ứng với những câu hỏi của nội bộ nhân viên,
ví dụ nhƣ, trả lời các câu hỏi nhân sự.
o Trang web navigation: chỉ dẫn khách hàng đến phần có nội dung thích hợp của
các trang web phức tạp - một Website thuê xe.
o Hướng dẫn bán hàng: Cung cấp các giải đáp và hƣớng dẫn trong quá trình bán
hàng, đặc biệt là các sản phẩm phức tạp bán cho các khách hàng mới.
o Hỗ trợ kỹ thuật: Đáp ứng với các vấn đề kỹ thuật, chẳng hạn nhƣ chẩn đoán một
vấn đề về một sản phẩm hay điện thoại.
Trong thƣơng mại, giao tiếp rõ ràng là yếu tố quyết định cho thu hút, phục vụ
và giữ các khách hàng. Các công ty của họ phải giáo dục cho các khách hàng tiềm
năng của họ về sản phẩm và dịch vụ. Vì vậy họ cũng phải nâng cao sự hài lòng của
khách hàng và giữ chân khách hàng bằng cách phát triển sự hiểu thấu đáo những nhu
cầu của khách hàng. Khách hàng cần tìm kiếm câu trả lời nhanh và chính xác cho câu
hỏi của họ. Họ nản lòng khi tìm kiếm vô vọng thông qua các trang web, mất thời gian
khi xếp hàng chờ tƣ vấn của các nhân viên chăm sóc khách hàng, chẫm trễ sự phản hồi
qua email.
Cải thiện dịch vụ và hỗ trợ khách hàng là rất cần thiết cho nhiều công ty vì nếu
không sẽ phải trả giá đắt cho sự thất bại: các tổn thất của khách hàng và các thiệt hại
của doanh thu. Chi phí cung cấp dịch vụ và hỗ trợ thì cao, chất lƣợng thì thấp, trong
khi kỳ vọng của khách hạng lại cao hơn tất cả. Đạt đƣợc sự phản hồi khách hàng chính
sác và nhất quán là một thách thức và thời gian phản hồi thƣờng quá lâu. Trong nhiều
4
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
trƣờng hợp, tính hiệu quả còn bi đát hơn khi mà các công ty chuyển tăng mức độ hoạt
động trên các ứng dụng tự phục vụ trên nền tảng Web, những cái thuộc về phần mềm
quản lý quan hệ khách hàng.
Trong thập kỷ vừa qua, quản lý quan hệ khách hàng (CRM) đã nổi lên nhƣ là
một lớp ứng dụng chính của các phần mềm doanh nghiệp. CRM bao gồm ba loại ứng
dụng chủ yếu: tự động hóa lực lƣợng bán hàng, tiếp thị và các dịch vụ hỗ trợ khách
hàng. Tự động hóa lực lƣợng bán hàng tập trung vào các giải pháp cho theo dõi, quản
lý tài khoản và liên lạc và quản lý các mối quan hệ đối tác. Tự động hóa tiếp thị nhắm
vào quản lý chiến dịch và các nhu cầu tiếp thị thƣ điện tử , cũng nhƣ phân tích và phân
loại khách hàng. Các ứng dụng dịch vụ khách hàng cung cấp các giải pháp cho hệ
thống call trung tâm, quản lý tri thức, và các ứng dụng dịch vụ điện tử cho các ứng
dụng web phối hợp, gửi thƣ điện tử tự động hóa và live chat. Đây là chính là kiểu thứ
ba của hệ thống dịch vụ khách hàng mà áp dụng công nghệ agent hội thoại.
Các công ty đối mặt với thách thức làm sao tăng tính khả dụng và chất lƣợng
của các dịch vụ khách hàng trong khi kiểm soát chi phí đƣợc của họ. Sẽ rất tốn kém
nếu thuê những nhân sự đã đƣợc đào tạo bài bản để thực hiện các nghiệp vụ ở tổng đài
tƣ vấn, trung tâm phản hồi thƣ điện tử, live chat. Tình hình càng trở nên xấu hơn bởi
thực tế là: chất lƣợng phục vụ phải đạt tới mức khách hàng cảm thấy hài lòng với tính
chính xác và sự nhanh chóng.
Các công ty thƣờng sử dụng nhiều kênh thông qua đó khách hàng có thể liên
lạc với họ. Đó là bao gồm các kênh đắt tiền nhƣ các hệ thống trả lời điện thoại và các
hệ thống tƣơng tác thoại. Càng ngày họ theo phƣơng pháp tiếp cần dựa trên nền tảng
Web bởi vì các công ty cố gắng nhắm đáp ứng nhu cầu ngày càng tăng của các dịch vụ
trong khi vẫn kiểm soát các chi phí hỗ trợ bằng nhân lực. Các kênh dịch vụ điện tử bao
gồm thƣ điện tử, live chat, cũng nhƣ tìm kiếm và email tự động trả lời.
Cân bằng giữa chi phí và tính hiệu quả trong hỗ trợ khách hàng đặt công ty vào
tình trạng tiến thoái lƣỡng nan. Mặc dù chất lƣợng của sự hỗ trợ bằng nhân lực là hiệu
quả nhất, nhƣng nó cũng là đắt đỏ nhất. Các công ty thƣờng bị ảnh hƣởng lớn từ việc
luân chuyển nhân viên, cùng với chi phí đào tạo, làm cho sự hấp dẫn của sự trợ giúp
bằng nhân lực cũng giảm. Hơn nữa, tỉ lệ luân chuyển nhân viên cao tăng khả năng
5
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
khách hàng sẽ gặp phải những nhân viên thiếu kinh nghiệm, những ngƣời cung cấp
thông tin không chính xác và thống nhất.
Trong lĩnh vực giải trí, agent hội thoại cũng đƣợc đƣa và các trò chơi nhất là
trong các game nhập vai giúp cho tƣơng tác giữa ngƣời chơi và game đƣợc thoải mái
và giống thật hơn trong các tình huống chơi. Chính nhờ những agent hội thoại mà trò
chơi sẽ cuốn hút và có nội dung hơn.
2.2. Các loại agent hội thoại
Lĩnh vực nghiên cứu agent hội thoại rất rộng và đa dạng. Chúng ta có thể phân
loại agent hội thoại theo các tiêu chí nhƣ: thể thức, thiết bị, ứng dụng,…. Cụ thể nhƣ
với kiểu phân loại theo thể thức chúng ta có hệ thống agent nhƣ dƣới đây:
o Hệ thống dựa trên văn bản
o Hệ thống hộp thoại cùng lời nói
o Hệ thống giao diện đồ họa
o Hệ thống kết hợp
2.3. Chatterbot
Thuật ngữ "ChatterBot" đã đƣợc Michael Mauldin đặt ra lần đầu tiên vào năm
1994 để mô tả những chƣơng trình hội thoại trên máy tính. Chatterbot cũng có thể gọi
là “talk bot”, “chat bot” hay “chatterboxe”. Chatterbot là một chƣơng trình máy tính
đƣợc thiết kế để mô phỏng một cuộc hội thoại thông minh với một hoặc nhiều ngƣời
thông qua lời nói hay văn bản. Các chƣơng trình nhƣ vậy cũng còn đƣợc biết đến với
cái tên là thực thể hội thoại nhân tạo (Artificial Conversational Entity - ACE) và dù đã
có thể hiểu đƣợc đa dạng đầu vào của ngƣời dùng, nhƣng hầu hết các chatterbot chỉ
đơn giản quét các từ khóa trong dữ liệu đƣợc đƣa vào và cho ra một trả lời phù hợp
nhất với từ khóa từ trong cơ sở dữ liệu.
Các chatterbot kinh điển đƣợc phát triển từ rất sớm phải kể đến đó là Eliza ra
đời năm 1966 và PARRY năm 1972. Gần đây thì có các chƣơng trình nhƣ Racter,
Verbots, ALICE và ELLA.
6
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
Sự phát triển của các chatterbot cũng nhƣ trong lĩnh vực nghiên cứu về chủ đề
này đã mở rộng mục đích ứng dụng. Trong khi Eliza và PARRY chủ yếu đƣợc sử
dụng trong các cuộc hội thoại thông qua bàn phím, thì Racter đã đƣợc sử dụng để
"viết" một câu chuyện đƣợc gọi là The Policeman's Beard is Half Constructed. ELLA
thì lại bao gồm một tập hợp các trò chơi và chức năng để có thêm các tính năng mở
rộng tiềm năng của các chatterbot.
Các chatterbot đƣợc xây dựng dựa trên các kỹ thuật nhƣ tìm mẫu (pattern
matching), tìm từ khóa (keyword matching), phân tích ngôn ngữ tự nhiên (natural
language parsing) hay các kỹ thuật khác. Bên cạnh đó sự nghiên cứu về chatterbot
cũng đề cập đến một số vấn đề liên quan tới con ngƣời nhƣ tính cách, cảm xúc, trí nhớ
để mô phỏng hội thoại với con ngƣời thực tế hơn.
2.3.1. Các kỹ thuật xây dựng chatterbot
2.3.1.1. Phương pháp tìm từ khóa
Kỹ thuật tìm từ khóa là kỹ thuật đơn giản nhất để tạo ra chatterbot. Những
chatterbot đƣợc tạo từ kỹ thuật này đơn thuần chỉ phản hồi lại ngƣời dùng dựa vào
những từ, cụm từ đƣợc định nghĩa trƣớc rồi đƣa ra các câu trả lời tƣơng ứng.
Một ví dụ đơn nhất mà chúng ta có thể thấy của việc áp dụng kỹ thuật này đó là
câu lệnh “man” trong linux hay unix, đây cũng có thể coi là một chatterbot đơn giản.
Khi ngƣời dùng gõ “man ls” thì hệ thống sẽ đƣa lại một loạt các dòng văn bản hƣớng
dẫn cho câu lệnh “ls” trong linux. Khi ngƣời dùng đƣa vào một từ không phải là từ
khóa hay câu lệnh biết trƣớc thì hệ thống sẽ không thể tìm đƣợc sự phản hồi thích hợp.
2.3.1.2. Phương pháp tìm mẫu
Kỹ thuật “pattern matching” là tìm kiếm một hoặc một số các mô hình phù hợp
với câu mà ngƣời dùng nhập vào. Nói chung một mô hình đƣợc định nghĩa nhƣ là một
câu trong ngôn ngữ tự nhiên, trong đó có một số phần đƣợc thay thế bởi các thể đại
diện có thể phù hợp với bất kỳ nhóm các từ trong câu phù hợp.
Với mỗi mô hình đƣợc định nghĩa trong cơ sở dữ liệu, thì sẽ có một mẫu tƣơng
ứng đƣợc sử dụng để tạo ra câu trả lời cho một câu. Các đại từ trong câu gốc sẽ đƣợc
7
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
chuyển đổi cho phù hợp với ngữ cảnh hội thoại. Ví dụ nhƣ các từ "I, my, mine" trở
thành "you, your, yours" và theo cách khác.
Ví dụ, một mô hình trong chƣơng trình Eliza gốc có thể đƣợc thể hiện nhƣ sau:
I want *
trong đó ký tự „*‟ có thể đƣợc thay thế bởi chuỗi các từ bất kỳ. Các mẫu tƣơng
ứng để tạo ra câu trả lời có thể đƣợc thể hiện nhƣ dƣới đây:
What would it mean to you if you got *
trong đó ký tự „*‟ đƣợc thay thế bởi dãy các từ phù hợp với các thẻ đại diện
trong mô hình.
Một ứng dụng theo mô hình này có thể có những hộp thoại sau đây:
User: I want to know how it works.
Eliza: What would it mean to you if you got to know how it works?
Trong hộp thoại tiếp theo, cũng dựa trên cùng một mô hình là một ví dụ về sự
đổi ngôi:
User: I want to talk to my adviser.
Eliza: What would it mean to you if you got to talk to your adviser?
Bên cạnh danh sách các mô hình, chƣơng trình Eliza cũng chứa một danh sách
các câu có thể đƣợc đƣa trong câu trả lời mà không phù hợp với bất kỳ một trong các
mô hình, nhƣ:
What does that suggest to you ?
Please go on.
Đối với nhât vật ảo, các mô hình đều đƣợc xây dựng từ cơ sở dữ liệu của lời
thoại nhân vật từ cuốn sách hoặc script. Chúng đều dựa trên những lời của bất kỳ nhân
vật khác có trƣớc. Và mẫu phản hồi đƣợc sinh ra từ các câu trả lời của nhân vật trong
8
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
hội thoại gốc. Hiện tại, các mô hình đƣợc chọn một cách thủ công, và trong tƣơng lai,
chúng tôi dự định thực hiện một trình sinh mẫu và mô hình tự động.
Theo ý tƣởng trong chƣơng trình Eliza, chatterbot của chúng ta cũng có chứa
một danh sách các câu ngẫu nhiên mà có thể trả lời đƣợc những câu mà ngƣời dùng
đƣa vào.
2.3.1.3. Phân tích ngôn ngữ tự nhiên
Kỹ thuật phân tích ngôn ngữ tự nhiên là cách tiếp cận cao cấp cho các
chatterbot. Những dữ liệu vào của ngƣời dùng sẽ đƣợc áp dụng các kỹ thuật phân tích
ngôn ngữ để chatterbot đƣa ra phản hồi một cách tự nhiên.
Phân tích ngôn ngữ tự nhiên (natural language parsing - NLP) là một nhánh của
trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con ngƣời. Trong trí tuệ
nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan
đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tƣ duy và giao tiếp.
Những nỗ lực nghiên cứu quan trọng về NLP đã đƣợc bắt đầu từ những năm 1960.
Tuy nhiên, quá trình nghiên cứu NLP tƣơng đối chậm trong thập kỷ đầu tiên, bởi vì
cấu trúc thủ công xây của hệ thống NLP đã tốn nhiều thời gian, khó khăn và đổ vỡ.
Tuy nhiên, trong những năm 1990, có ba yếu tố dẫn đến việc thúc đẩy tiến độ trong
nghiên cứu NLP. Đầu tiên đã đƣợc phát triển rộng lớn của “corpora of tagged text”,
chẳng hạn nhƣ Brown Corpus, Penn Treebank [LDC, 2003], và British National
Corpus [Bri, 2003]. Thứ hai là sự phát triển của thống kê, học máy (machine-learning)
và các kỹ thuật kinh nghiệm trong việc văn phạm trích dẫn, ontologies, và các thông
tin khác từ tagged corpora. Yếu tố thứ ba đó là các cuộc ganh đua, chẳng hạn nhƣ
MUC và TREC [Nat, 2003]. Sự kết hợp của những yếu tố này đã dẫn đến việc cải
thiện nhanh kỹ thuật để tự động hoá trong việc xây dựng hệ thống NLP.
Phân tích ngôn ngữ tự nhiên chính xác và hiệu quả là rất cần thiết để có đƣợc
agent hội thoại hiệu quả. Để phản hồi một cách thích hợp cho sự bày tỏ của ngƣời
dùng, agent hội thoại phải (1) hiểu đƣợc những lời phát biểu, (2) xác định những hành
động xảy ra khi phản hồi lại lời nói và (3) thực hiện các hành động, trong đó có thể
bao gồm trả lời với văn bản, trình bày trang web hoặc các thông tin khác và hệ thống
xử lý sẽ ghi các thông tin vào một cơ sở dữ liệu. Khi áp dụng xử lý ngôn ngữ tự nhiên,
agent hội thoại có thể trò chuyện phong phú và giống nhƣ hội thoại giữa con ngƣời và
9
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
con ngƣời, không giống nhƣ các kỹ thuật “pattern matching”, chỉ tìm kiếm các từ khóa
(đối với các agent đơn giản nhƣ ELIZA), mà phƣơng pháp này sẽ có thể phân tích, suy
luận từ những thông tin mà ngƣời trò chuyện đƣa ra. Ví dụ khi khách hàng nói:
Tôi muốn mua nó ngay bây giờ
Agent đầu tiên phải xác định ý nghĩa thực của lời phát biểu: ngƣời dùng muốn
mua một cái gì đó, cái đó có thể đã đƣợc đề cập trong cuộc hội thoại. Ngoài ra, agent
phải luận ra đƣợc các mục tiêu mà ngƣời sử dụng tìm kiếm để hoàn tất một lời phát
biểu mang ý nghĩa nhƣ trên. Mặc dù phát biểu của ngƣời dùng là một dạng khẳng
định, nó cũng thể hiện bày tỏ nhằm đến một yêu cầu để hoàn thành quá trình mua
hàng.
Sau khi agent đã hiểu rõ lời thoại, nó phải tạo ra hành động nhƣ thế nào. Những
hành động thích hợp phụ thuộc vào các mục tiêu hiện tại của agent (ví dụ nhƣ, bán các
sản phẩm, hoặc giải quyết khiếu nại), lịch sử hộp thoại (những lời phát biểu trƣớc giữa
agent và khách hàng), và agent có thể truy vấn các thông tin trong cơ sở dữ liệu, chẳng
hạn nhƣ dữ liệu về các khách hàng đặc biệt hoặc về các sản phẩm. Ví dụ, agent có
mục tiêu bán sản phẩm, thì thảo luận trƣớc đó xác định đƣợc mặt hàng tiêu thụ tại
trang web, và danh mục các sản phẩm cho thấy các mục để đƣợc trong kho, do đó
những hành động tiếp theo có thể là trình ra một đơn đặt hàng và yêu cầu của ngƣời sử
dụng hoàn thành nó. Nếu cuộc thảo luân trƣớc đó không xác định đƣợc rõ ràng một
mặt hàng, thì hành động tiếp là gợi ra mô tả về một mặt hàng cho khách hàng. Tƣơng
tự, nếu nhƣ mặt hàng đó không còn trong kho thì có thể đƣa cho khách hàng sự lựa
chọn khác.
Cuối cùng, agent phải phản hồi bằng những hành động thích hợp. Những hành
động đó có thể bao gồm một lời bày tỏ, cung cấp thông tin theo nhiều cách thức khác,
chẳng hạn nhƣ ảnh sản phẩm, và thực hiện các hành động khác nhƣ ghi thông tin log
vào cơ sở dữ liệu. Ví dụ, nếu hành động tiếp theo là đƣa ra đơn đặt hàng cho khách để
họ hoàn tất đăng ký, thì agent nên đƣa ra đƣợc những lời phát biểu cảm tình nhƣ “Xin
mời quý khách điền thông tin vào nội dung dƣới đây để hoàn tất việc mua bán”, và
đƣa khách hàng đến trang web sản phẩm tƣơng ứng, bên cạnh đó ghi lại các thông tin
log vào cơ sở dữ liệu. Hình 1 mô tả luồng dữ liệu trong hệ thông agent hội thoại.
10
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
Hình 1: Luồng dữ liệu trong agent hội thoại
Quá trình xử lý của mỗi lời phát biểu gồm ba thành phần chính trong đƣợc hiển
thị trong Hình 2. Thành phần đầu tiên trong kiến trúc này, trình thông dịch
(Interpreter), thực hiện bốn loại phân tích:
o Phân tích cú pháp (syntactic)
o Phân tích ngôn từ (discourse)
o Phân tích ngữ nghĩa (semantic)
o Phân tích thực tế (pragmatic)
2.3.1.3.1. Phân tích cú pháp
Phân tích cú pháp (syntactic analysis) xác định các mối quan hệ giữa các từ
trong câu. Để hiểu đƣợc câu đã gõ, điều đầu tiên chúng ta phải phân tích cú pháp câu
đó. Có rất nhiều phƣơng pháp phân tích, song ở đây chúng ta giả sử rằng bộ phân tích
sẽ có một số ngữ nghĩa trong nó. Nhƣng phân tích câu thôi chƣa đủ khi mà có rất
nhiều câu nhập nhằng, mơ hồ, nhƣ là tham khảo đến một nội dung hay đối tƣợng đã
đƣợc nói trƣớc, cũng nhƣ tình huống và ngữ cảnh để làm sáng tỏ ý nghĩa của từ hoặc
cụm từ. Ví dụ, trong câu:
11
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
I would like a fast computer
Thì phân tích cú pháp sẽ xác định đƣợc “would like” là cụm động từ chính. “I”
là chủ ngữ của câu và “a fast computer” là bổ ngữ. Với nhiều agent hội thoại trƣớc kia
chủ yếu dựa vào phƣơng pháp “so mẫu” (pattern matching), không cần một phƣơng
pháp phân tích cú pháp nào, nhƣng cách tiếp cận này không linh động. Số lƣợng câu
mà agent nhận diện ngày càng tăng, do đó số lƣợng mẫu cần thiết để nhận diện các
câu cũng bùng nổ nhanh chóng và phức tạp.
2.3.1.3.2. Phân tích ngôn từ
Phân tích ngôn từ (discourse analysis) xác định các mối quan hệ giữa các câu.
Một phần quan trọng của phân tích ngôn từ (discourse) là giải quyết sự tham chiếu,
nhiệm vụ của việc xác định này là tìm ra đƣợc chủ thể đƣợc biểu thị bằng những từ
ngữ tham chiếu, nhƣ là từ "it" trong, "I would like to buy it now." “It” đƣợc đại diện
cho một chủ thể nào đó mà đã đƣợc đề cập trong cuộc hội thoại.
Hay ví dụ nhƣ trong câu:
How much does it cost?
Trong câu này, đối tƣợng mà từ “it” tham chiếu đến là phụ thuộc vào ngữ cảnh.
Nếu bạn đang ở trong một cửa hàng, thì nó sẽ ám chỉ đến thứ gì đó và hỏi ngƣời bán
hàng về giá của vật đó, tất nhiên lúc đó ngƣời bán hàng đã biết chính xác vật mà bạn
ám chỉ. Tuy nhiên trong hầu hết các trƣờng hợp, câu nhƣ vậy sẽ khó hiểu trong một số
ngữ cảnh, khi mà từ “it” đã đƣơc đề cập trong cuộc hội thoại trƣớc đó. Trong tình cảnh
đó, chúng ta thƣờng viện lý do để hỏi lại “it” là gì. Đó gọi là đồng tham chiếu
(coreferencing).
Đồng tham chiếu (coreferencing)
Nhiều ngƣời đã đề cập đến vấn đề đồng tham chiếu nhƣ [Allen 95, Hobbs 77].
Đối với những ngƣời còn lại đều có những phƣơng pháp đề xuất khác nhau để giải
quyết. Để chọn đúng đối tƣợng nào đƣợc tham chiếu trực tiếp hoặc gián tiếp chúng ta
cần giữ lại danh sách những đối tƣợng đã đƣợc giới thiệu trƣớc đó và một số thông tin
về chúng để khám phá cái nào là phù hợp nhất trong câu hiện tại. Công việc này
thƣờng đƣợc thực hiện bằng cách sắp xếp theo thứ tự thời gian (ví dụ chúng ta tìm
12
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
kiếm đối tƣợng đƣợc nhắc đến trong câu trƣớc, rồi câu trƣớc nữa, vân..vân…). Ngoài
ra một số mục thì đƣợc suy ra từ những câu trƣớc, ví dụ nhƣ cuộc hội thoại dƣới đây:
A: When does the train to Hanoi leave?
B: At 9:20pm
A: How much does it cost?
Trong tình huống này từ “it” hiển nhiên ám chỉ đến vé chứ không phải là đoàn
tàu. Trong hoàn cảnh này thì từ “ticket” là đƣợc suy luận ra. Tuy nhiên khi chúng ta
giải quyết đƣợc “it” ám chỉ đến đối tƣợng nào thì vẫn chƣa xong. Chúng ta cần trình
bày câu này để máy tính dễ dàng xử lý. Điều này chúng ta cần một cách biểu diễn
trung gian, gọi là dạng thức logic (logic form).
2.3.1.3.3. Phân tích ngữ nghĩa
Phân tích ngữ nghĩa (semantic analysis) bao gồm xác định ý nghĩa của câu.
Thông thƣờng, điều này bao gồm biểu diễn câu ở dạng thức hữu cơ để sắp xếp các câu
với ý nghĩa tƣơng tự trở về một dạng thức duy nhất để thuận tiện cho việc suy luận.
Phƣơng pháp tiếp cận phân tích ngữ nghĩa bao gồm:
o Thay thế mỗi danh từ và động từ trong phân tích cú pháp với một từ có nghĩa
tƣơng ứng với một tập các từ đồng nghĩa, chẳng hạn nhƣ Wordnet synsets [1].
o Biểu diễn câu nhƣ một khung trƣờng hợp [2], cây phụ thuộc [Harabagiu et al.,
2000][3], hoặc biểu diễn hợp lý, chẳng hạn nhƣ xem xét vị ngữ đầu tiên.
Hình 2: Thành phần chính xử lý ngôn ngữ tự nhiên trong CA
13
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
2.3.1.3.4. Phân tích thực tế
Cuối cùng, trình thông dịch (Interpreter) phải tiến hành phân tích thực tế
(pragmatic analysis), xác định tính thực tế của cuộc trao đổi, có nghĩa là, những lời nói
(hoặc giao tiếp) [Searle, 1979] mà cuộc trao đổi đang tiến hành. Ví dụ, "Can you
show me the digital cameras on sale?" Là trong mẫu câu hỏi, nhƣng kết quả thực tế
của nó là yêu cầu cho xem máy ảnh. "I would like to buy it now" là một câu tuyên bố,
nhƣng thực tế cũng là một yêu cầu. Tƣơng tự, “I don‟t have enough money” là một lời
khƣớc từ cho câu hỏi “Would you like to proceed to checkout?” nhƣng lại là một yêu
cầu từ phản hồi “Is there anything you need from me?”
Kết quả “thông dịch” lời phát biểu của ngƣời dùng sẽ đƣợc chuyển vào “Quản
lý hội thoại” – Dialog Manager, đảm nhiệm việc xác định các hành động phản hồi.
Những hành động thích hợp phụ thuộc vào việc phiên dịch câu của khách hàng và
trạng thái hội thoại của agent, biểu thị mục đích hội thoại hiện tại của agent. Trong các
agent hội thoại đơn giản nhất, chỉ có một trạng thái hội thoại, tƣơng ứng với mục tiêu
của câu trả của câu hỏi tiếp theo. Đối với các agent phức tạp hơn, lời phát biểu của
khách hàng có thể đƣợc chuyển từ trạng thái hội thoại này sang trang thái hội thoại
khác. Nhìn chung, trạng thái hội thoại mới là một chức năng của trạng thái hiện tại, sự
trình bày và thông tin của khách hàng, sản phẩm và dịch vụ có trong quá trình thảo
luận. Có thể cần truy vấn cơ sở dữ liệu và suy luận để xác định ra trạng thái hội thoại
mới.
Quản lý hội thoại (Dialog Manager) chịu trách nhiệm xác định và phản hồi lại
những thay đổi trong chủ đề đàm thoại. Ví dụ nếu agent không thể trả lời đƣợc câu hỏi
của ngƣời dùng khi mà ngƣời dùng không cung cấp thêm thông tin, thì trạng thái hội
thoại sẽ đƣợc xét lại phản ánh mục đích thu thập thông tin. Tƣơng tự, nếu ngƣời dùng
không hiểu câu hỏi và yêu cầu rõ ràng, thì trạng thái hội thoại cũng phải đƣợc thay đổi
sang trạng thái tƣơng ứng với việc làm rõ vấn đề. Khi mục tiêu thu thập thông tin hoặc
làm rõ vấn đề đƣợc hoàn thành thì Dialog Manager phải quay về trạng thái đã bị gián
đoạn.
Ba phƣơng pháp tiếp cận có thƣờng đƣợc áp dụng để quản lý hộp thoại.
Phƣơng pháp đầu tiên sử dụng một finite-state automaton (FSA) nhƣ là một mô hình
hộp thoại. Sự chuyển đổi trong FSA tƣơng ứng với các mệnh đề cá nhân, và các trạng
14
- Xem thêm -