Tải bản đầy đủ (.pdf) (69 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 69 trang )

ĐẠ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


i
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



ii
Thuật ngữ tiếng Anh
Conversational agent
Agent hội thoại
Embodied conversational
agent – ECA
Agent hội thoại hiên thân
Multimodal interface
Giao diện đa hình thái.
Natural Language
Processing - NPL
Xử lý ngôn ngữ tự nhiên
OCC (Ortony, Collins,
Clore)
Mô hình cảm xúc OCC
CHƢƠNG 1:MỞ ĐẦU
1
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
CHƢƠNG 1:MỞ ĐẦU
2
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.

CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
3
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
4
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
5
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN

6
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.
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
7

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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
8

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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
9
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à
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
10
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.
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN

11

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:
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
12
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
13
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
14
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
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
15
thái tƣơng ứng với các mục tiêu của. Phƣơng pháp FSA phù hợp cho hộp thoại đơn
giản mà trạng thái của chuỗi hộp thoại có thể đƣợc dự đoán. Tuy nhiên, nó cũng
không phù hợp cho các hộp thoại mà trận tự câu thoại không đƣợc thể đoán trƣớc,
ngƣời dùng có thể cung cấp một số thông tin qua lời nói, hoặc pha trộn thế chủ động
trong hội thoại. Sự lẫn lộn chủ động xảy ra khi một ngƣời trả lời câu hỏi bằng một câu
hỏi khác, khi thông tin bổ sung là cần thiết để trả lời một câu hỏi. Xem xét các hộp
thoại sau đây:
User: Do I qualify for a loan?
Agent: What was your income last year?
User: Does money I can get from my parents count as income?
Agent: Do you have to pay the money back?
User: Yes.
Agent: Money you have to pay back is not income.

User: Then my income was about $45000
Agent: Do you own anything that could be used as collateral?
Hộp thoại bắt đầu bằng một câu hỏi về việc đủ điều kiện cho vay vốn, nhƣng để
trả lời câu hỏi agent cần thông tin về thu nhập của ngƣời dùng. Bởi vậy agent thay đổi
sự tập trung đến vấn đề thu nhập. Tuy nhiên, ngƣời dùng cần bổ sung thông tin về điều
kiện thu nhập để trả lời câu hỏi của agent. Một lần nữa, agent chỉ có thể trả lời câu hỏi
bằng cách hỏi thêm một câu hỏi khác về việc chuyển giao số tiền đƣợc thu nhập. Sau
khi ngƣời sử dụng cung cấp những thông tin cần thiết do agent, lúc này agent mới có
thể trả lời các câu hỏi trƣớc đó liên quan đến thu nhập của ngƣời dùng, cho phép
ngƣời dùng để trả lời các câu hỏi trƣớc về thu nhập. Cuối cùng agent quay trở về mục
tiêu câu hỏi ban đầu từ những thông tin chính xác đƣợc đƣa ra.
Phƣơng pháp tiếp cận thứ hai cho quản lý hội thoại, thích hợp cho các hệ thống
suy luận thông tin, sử dụng nhiều mẫu hay cấu trúc với nhiều slots tƣơng ứng với các
thông tin đƣợc suy ra. Điều này xử lý những hội thoại với trật tự không tiên đoán
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
16
trƣớc và phức hợp hiệu quả hơn cách tiếp cận FSA, nhƣng lại ít hỗ trợ cho các hội
thoại mixed-initiative.
Phƣơng pháp thứ ba sử dụng “goal stack” hay cơ chế nghị sự để quản lý các
mục đích của hội thoại. Phƣơng pháp này thể thay đổi chủ đề bằng cách đƣa trạng thái
tƣơng ứng với chủ đề mới vào stack, sau đó lấy một chủ đề ra khi chủ đề hiện tại kết
thúc. Phƣơng pháp “goal stack” thiết kế phức tạp hơn FSA hoặc phƣơng pháp mẫu,
nhƣng có thể xử lý các hội thoại “mixed-initiative”.
Thành phần cuối cùng là trình sinh phản hồi (Response Generator). Phản hồi
đƣợc phần thành hai loại: giao tiếp với ngƣời sử dụng, chẳng hạn nhƣ văn bản, trang
Web, email, hoặc các hình thức diễn đạt giao tiếp khác; và các phản hồi không mang
tính giao tiếp, chẳng hạn nhƣ cập nhật thông tin về hồ sơ ngƣời sử dụng, chấm dứt
cuộc hội thoại khi đã hoàn thành, đó là cách hành động phụ của agent để lƣu thông tin
và các dữ liệu cần thiết phục vụ cho hội thoại. Agent đƣa ra các phản hồi phụ thuộc
vào trạng thái hội thoại và thông tin sẵn có của agent thông qua quá trình hội thoại,

suy luận hoặc các nguồn dữ liệu khác.
2.3.2. Xây dựng cơ sở dữ liệu cho chatterbot
Đối với một chatterbot, cơ sở dữ liệu càng nhiều thì hội thoại giữa ngƣời và
máy càng trở nên phong phú. Có một cách thức đơn giản nhất và thuần túy nhất để
xây dựng cơ sở dữ liệu đó là nhập vào thủ công. Cách nhập thủ công đó đòi hỏi thời
gian công sức của mọi ngƣời. Ngoài ra, chúng ta còn một cách thức khác để làm
phong phú cho cơ sở dữ liệu của chatterbot đó là sử dụng cách thức giống trong các hệ
thống thu thập thông tin.
Mặc dù mục tiêu của hai hệ thống này là khác nhau nhƣng chúng ta có thể thấy
rằng chúng có một số tƣơng đồng. Phân tích các kỹ thuật đƣợc sử dụng trong hệ thống
thu thập thông tin (Information Retrieval – IR) để chúng ta có thể thấy đƣợc cách áp
dụng vào trong Chatterbot.
Trong cách tiếp cận IR cổ điển [9], chúng ta đƣa ra một tập hợp tài liệu (văn
bản ASCII trong ngôn ngữ tự nhiên) và một câu truy vấn đƣợc con ngƣời đƣa ra cũng
trong ngôn ngữ tự nhiên. Nhiệm vụ của hệ thống này là tìm những tài liệu trong tập
hợp đó phù hợp nhất với câu truy vấn đƣa ra.
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
17
Chúng ta có thể mở rộng vấn đề này cho chatterbot hoặc các ứng dụng nhân vật
ảo (đƣợc đề cập đến phần sau) bằng cách xem xét mỗi tài liệu bao gồm một hoặc hai
câu liên quan với nhân vật trong script gốc. Trong phƣơng pháp tiếp cận này, chúng ta
có thể đánh giá câu đƣợc ngƣời dùng đƣa vào trong hội thoại nhƣ là một dạng câu truy
vấn. Câu đƣợc đƣa vào có thể đƣợc thể hiện ở một trong các dạng khẳng định, phủ
định hay dạng nghi vấn. Trong trƣờng hợp này, chúng tôi muốn tìm một tài liệu cụ thể
(một câu) có thể đƣợc xem nhƣ một câu trả lời tốt cho câu đƣợc đƣa ra.
Cũng có sự khác biệt giữa phƣơng pháp tiếp cận theo IR và chatterbot. Trƣớc
tiên, mục tiêu trong IR là đƣa ra cho ngƣời sử dụng nhiều tài liệu phù hợp với một thứ
tự tƣơng ứng câu truy vấn đƣa, trong khi với mô hình nhân vật ảo chúng ta chỉ cần đƣa
ra một tài liệu (hay một câu) tại một thời điểm nhƣ là sự thể hiện hiểu câu mà ngƣời
dùng đƣa. Thứ hai, trong IR, chúng ta hy vọng tất cả các ngôn từ trong truy vấn sẽ có

mặt trong những tài liệu kết quả trả về, trong khi câu trả mạch lạc của chatterbot là
chung chung và chủ quan nhiều hơn. Phản hồi của chatterbot có thể đƣợc chấp nhận
tùy vào quan điểm của ngƣời tham gia đối thoại, thậm chí trong câu trả lời không chứa
bất kỳ một ngôn từ nào trong truy vẫn mà ngƣời dùng đƣa ra. Tuy nhiên, chúng ta có
thể cho rằng những ngôn từ này đƣợc nhắc lại trong câu trả lời sẽ làm tăng sự am hiểu
của ngƣời dùng, và coi đó nhƣ là một câu trả lời thông minh.
Ý tƣởng chung của hai mô hình gợi ý cho chúng ta có thể sử dụng một số các
phƣơng pháp đƣợc phát triển trong IR để cải thiện hệ thống của chúng ta, nhƣ đánh
chỉ mục tự động, query matching và phân loại tƣ liệu trả về với câu truy vấn đƣa ra.
Những kỹ thuật này đặc biệt hữu ích khi chúng ta có thể truy cập vào một số lƣợng lớn
các câu đƣợc liên kết với nhân vật mà ta định mô phỏng. Ví dụ, nếu chúng ta bắt đầu
từ một nhân vật đƣợc tạo ra từ một quyển sách, bộ phim, hay kênh truyền hình, bộ dữ
liệu ban đầu sẽ là sự sao chép từ các phần trong quyển sách hoặc script tạo thành lời
thoại của nhân.
Phƣơng pháp IR đầu tiên mà chúng ta áp dụng cho chatterbot là đánh chỉ mục
tƣ liệu, hay câu bằng những từ khóa quan trọng đại diện cho các văn bản trong tài liệu.
Hiện tại việc đánh chỉ mục là thủ công, trong tƣơng lai sẽ xây dựng phƣơng pháp đánh
chỉ mục một cách tự động.
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
18
Đánh chỉ mục tự động bắt đầu bằng việc xóa bỏ tất cả các từ thông dụng trong
tài liệu nhƣ là “a”, “is”, “for”. Phần này phải đƣợc điều chỉnh phù hợp với phƣơng
pháp tiếp cận chatterbot vì có một số từ lại là vô nghĩa trong IR lại trở nên đầy ý nghĩa
trong hội thoại nhƣ “you”, “because”, v v… Hệ thống đánh chỉ mục tự động mà
chúng ta phát triển sử dụng hai danh sách “stop word”, một số sẽ xác định ngữ nghĩa
của câu và do đó phải đƣợc đƣa vào xem xét theo cách đặc biệt, số khác đơn giản có
thể bỏ qua.
Bƣớc thứ hai trong việc tạo chỉ mục tự động là xóa tất cả các hậu tố (suffix)
không cần thiết, nhƣ "s" trong số nhiều, các "ing" từ các hình thức tiếp diễn của động
từ, v v… Bƣớc này đảm bảo các từ cùng một lớp, nhƣ "drive", "driving","driver", sẽ

đƣợc lập chỉ mục nhƣ một từ khóa.
Trong bƣớc thứ ba, hệ thống tạo ra một chỉ mục của tập hợp tài liệu dựa trên
các ngôn từ trả về. Nhìn chung, mỗi ngôn từ đƣợc gán một trọng số dựa trên tần suất
xuất hiện trong tài liệu cũng nhƣ trong tập hợp các tài liệu. Điều này đƣợc biết đến
nhƣ là mô hình không gian véc tơ [9]. Làm giảm bớt độ dài của tài liệu bằng chỉ mục
Boolean [10]. Nói cách khác, chúng tôi chỉ ghi nhận sự hiện diện hoặc không có của
một ngôn từ trong một câu đã đƣợc lập chỉ mục, mà không đánh giá tầm quan trọng
của nó.
Trong mô hình của chúng tôi, các tài liệu (câu) đƣợc đánh chỉ mục không chỉ
bởi sự xuất hiện các ngôn từ, mà còn theo một số từ đồng nghĩa với nó. Một số từ xuất
hiện trong đoạn văn trƣớc câu đang đƣợc xử lý có ý nghĩa hơn, vì vậy đánh chỉ mục
của chúng tôi cũng sẽ đƣa chúng vào cùng ngữ cảnh trong tài liệu.
Kỹ thuật thứ hai từ IR mà chúng ta có thể áp dụng cho nhân vật ảo là tài liệu tự
động “document-query matching” và thu thập tài. Với việc này, chúng ta có thể xem
xét các câu do ngƣời sử dụng nhập vào nhƣ các truy vấn.
Trong phƣơng pháp IR cổ điển, câu truy vấn đƣợc xử lý theo cùng một cách đối
các tài liệu, điều đó có nghĩa là tất cả các từ chung chung cũng nhƣ các hậu tố, và các
ngôn từ còn lại đƣợc đánh chỉ mục dựa trên tần suất xuất hiện của chúng. Trong mô
hình của chúng ta, hệ thống sẽ phải cân nhắc đến hai danh sách “stop” cho gian đoạn
này.
CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN
19
Trong quá trình thu thập, hệ thống chọn tất cả các tài liệu (câu) có chứa ít nhất
một ngôn từ trong truy vấn (của ngƣời sử dụng đƣa vào) và đánh giá xếp hạng chúng
theo số lƣợng ngôn từ. Trong IR, hệ thống sẽ trả lại tất cả các tài liệu phù hợp với yêu
cầu tìm kiếm theo thứ tự tƣơng đồng với câu truy vấn. Trong trƣờng hợp của chúng ta,
chúng ta chỉ chọn một trong những câu phù hợp dựa trên hàm xác xuất.
Phƣơng pháp tiếp cận này làm tăng hiệu quả của chatterbot và tổ chức tri thức
bao gồm trong chƣơng trình, theo cách này có thể đƣợc mở rộng cho các ứng dụng
khác. Các hạn chế của hệ thống là nó không thể tạo ra những câu đó không tồn tại

trong cơ sở dữ liệu ban đầu và điều này làm giảm khả năng đa dạng cả câu trả lời.
Tập hợp các câu đƣợc đƣa ra lúc đầu và mỗi câu đó sẽ đƣợc ghi lại theo dạng
ban đầu của nó. Nếu tập hợp đủ lớn, thì có thể đủ cho cuộc hội thoại một lần, nhƣng
với một ngƣời dùng cũ thì hệ thống có thể tạo ra sự lặp đi lặp lại. Nhiều câu có thể
đƣợc đƣa vào trong bộ sƣu tập tại lần gặp sau, dƣờng nhƣ là cần thiết, nhƣng một khi
một câu đã đƣợc lập chỉ mục, nó không thể thay đổi. Vì vậy, một ngƣời am hiểu nhân
vật từ ban đầu có thể cảm giác rằng nhân vật ảo chỉ lặp đi lặp lại các từ và câu mà đã
đƣợc tạo ra từ script bàn đầu.
Một sự kết hợp kỹ thuật này và câu trả lời mẫu với “pattern matching” là một
phần giải pháp cho vấn đề, và điều này là tình trạng thực tế của các chatterbot oline
[11].
2.3.3. Một số kỹ thuật cải tiến cho chatterbot
Nhƣ một yêu cầu đối với một cuộc hội thoại cho là thông minh, một chatterbot
nên bao gồm triển khai thực hiện của một bộ nhớ ngắn hạn “short-term memory” để
tránh nói lặp đi lặp lại, hay khi ngƣời đối thoại nhắc lại thông tin trƣớc đó.
Thuật toán chatterbot đƣợc mô tả một cách tổng quát bằng đoạn mã giả dƣới
đây:
while (true) {
Read(input);
output = MakeAnswer(input);
Write(output);
}

×