Một số kỹ thuật cải tiến cho chatterbot

Một phần của tài liệu 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 (Trang 25 - 26)

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); }

Hàm MakeAnswer xử lý câu mà ngƣời đùng đƣa vào cho sinh ra câu trả lời dựa trên những quy tắc sau:

o Nó bắt đầu bằng cách tìm một mẫu với một xác suất cho trƣớc (ví dụ, 90%).

o Nếu nhiều mẫu phù hợp với các yếu tố đầu vào, nó chọn ngẫu nhiên một trong số đó và tạo ra câu trả lời dựa trên các mẫu liên quan.

o Nếu bƣớc trƣớc đó không thành công, nó tìm kiếm một câu đƣợc lập chỉ mục bởi bất kỳ ngôn từ nào xuất hiện trong dữ liệu vào. Một xác xuất khác đƣợc đƣa ra ở bƣớc này (ví dụ tiếp tục là 90%).

o Nếu câu trả lời vẫn không sinh ra đƣợc từ các bƣớc trƣớc đó, nó chọn một từ danh sách câu trả lời ngẫu nhiên.

Trong mô hình hiện tại, chatterbot theo dõi câu mới nhất, những câu mà đã đƣợc tạo ra từ hàm MakeAnswer cho đến khi câu mới là khác biệt với câu sau cùng. Có thể mở rộng bộ nhớ này để bao gồm các mẫu đƣờng sử dụng gần nhất thay vì câu kết quả, và cũng có thể lần ngƣợc trở lại một số bƣớc.

Trong bộ nhớ tạm (short-term memory) của một chatterbot cũng có thể phục vụ tạo ra tính mạch lạc trong cuộc đàm thoại. Trong tƣơng lai, chúng tôi dự định sẽ theo dõi bối cảnh chung của hội thoại có chứa một số ngôn từ cho trƣớc trong cuộc hội thoại và bao gồm chúng trong tìm kiếm cho một câu trả lời mới. Bằng cách này, các chatterbot sẽ không chỉ thảo luận chủ đề hiện tại, mà còn có thể bàn luận các chủ đề đã đƣợc đề cập ở một vài câu trƣớc đó.

Một phần của tài liệu 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 (Trang 25 - 26)

Tải bản đầy đủ (PDF)

(69 trang)