Tạo ChatBot AI bằng Python với AIML

ChatBot AI(ChatBot thông minh hay ChatBot trí tuệ nhân tạo) được viết dễ dàng bằng Python với gói AIML. AIML là viết tắt của Ngông ngữ đánh dấu Trí Tuệ nhân tạo, nhưng nó đơn giản chỉ là ngôn ngữ XML. Các đoạn code Python dưới đây sẽ giúp bạn tạo một ChatBotAI của mình.

AIML là gì?

AIML được phát triển bởi Richard Wallace. Anh ấy tạo một con bot gọi là A.L.I.C.E (Artificial Linguistics Internet Computer Entity) đã giành được một số giải thưởng về trí tuệ nhân tạo. Rất thú vị, một trong những bài kiểm tra của Turing để xem có trí thông minh nhân tạo hay không bằng cách để con người chat với một con bot trong vài phút và để người đó nghĩ xem có đúng là đang chat với người hay không thông giao diện văn bản. AIML là một dạng của XML định nghĩa các quy tắc để kết hợp các mẫu câu hỏi và xác định câu trả lời cho nó.

Đối với bản thử nghiệm đầu tiên đầy đủ của AIML, bạn hãy kiểm tra chatbotAI đầu tiên với Alice Bot’s tại link: http://www.alicebot.org/documentation/aiml-primer.html. Bạn cũng có thể tìm hiểu sâu thêm về AIML và những gì AIML có thể làm được tại: https://en.wikipedia.org/wiki/AIML. Chúng ta sẽ tạo các tập tin AIML đầu tiên và sau đó sử dụng Python để tạo một chatbotAI.

Bắt đầu tạo các file AIML cơ bản

Tạo file XML đầu tiên là std-startup.xml làm file chính để cấu hình chỉ định các file AIML. Trong trường hợp này, chúng ta sẽ tạo một file cơ bản với một pattern và có 1 hành động. Chúng ta cần tạo pattern là load aiml b, và nó sẽ load các câu trả lời. Chúng ta tạo file basic_chat.aiml trong một phút:

<aiml version="1.0.1" encoding="UTF-8">
<!-- std-startup.xml -->

<!-- Category is an atomic AIML unit -->
<category>

<!-- Pattern to match in user input -->
<!-- If user enters "LOAD AIML B" -->
<pattern>LOAD AIML B</pattern>

<!-- Template is the response to the pattern -->
<!-- This learn an aiml file -->
<template>
<learn>basic_chat.aiml</learn>
<!-- You can add more aiml files here -->
<!--<learn>more_aiml.aiml</learn>-->
</template>

</category>

</aiml>

Tạo file AIML

Ở trên chúng ta đã tạo ra file AIML chỉ xử lý một pattern là load aiml b. Khi chúng ta hỏi bot là load aiml b thì nó sẽ cố gắng tải file basic_chat.aiml. Nó sẽ không hoạt động nếu chúng ta chưa tạo ra file basic_chat.aiml. Đây là chỗ mà chúng ta có thể đặt các thông tin vào bên trong basic_chat.aiml. Chúng ta sẽ kết hợp hai pattern cơ bản và câu trả lời cho chúng.
<aiml version="1.0.1" encoding="UTF-8">
<!-- basic_chat.aiml -->

<category>
<pattern>HELLO</pattern>
<template>
Well, hello!
</template>
</category>

<category>
<pattern>WHAT ARE YOU</pattern>
<template>
I'm a bot, silly!
</template>
</category>

</aiml>

Câu trả lời ngẫu nhiên

Để bot không trả lời các câu hỏi một cách cứng nhắc, chúng ta cần thêm vào các câu trả lời mà nó có thể chọn ngẫu nhiên. Một câu trả lời ngẫu nhiên khi nó nhận được một tin nhắn bắt đầu bằng: One time I. Dấu * là sự đánh dấu phù hợp với bất kỳ thứ gì.
<category>
<pattern>ONE TIME I *</pattern>
<template>
<random>
<li>Go on.</li>
<li>How old are you?</li>
<li>Be more specific.</li>
<li>I did not know that.</li>
<li>Are you telling the truth?</li>
<li>I don't know what that means.</li>
<li>Try to tell me that another way.</li>
<li>Are you talking about an animal, vegetable or mineral?</li>
<li>What is it?</li>
</random>
</template>
</category>

Sử dụng các file AIML

Bạn có thể nhàm chán với việc tạo các file AIML, nhưng để có thể hoạt động được bạn phải tạo ra rất nhiều file AIML. Tôi nghĩ cần phải tạo khoảng 10.000 patterns để có thể bắt đầu. Thật may mắn, ALICE cung cấp miễn phí nhiều file AIML, ta có thể lấy chúng tại website Alice Bot. Nổi bật là file có tên std-65-percent.xml chưa được 65% các cụm từ phổ biến. Ngoài ra nó còn cho phép bạn chơi trò BlackJack với bot.
Cài đặt module AIML cho Python
Cho tới bây giờ, chúng ta đã tạo mọi thứ với file AIML với định dạng XML. Điều đó là quan trọng tạo nên bộ não của bot, nhưng đó chỉ là thông tin. Để ta có thể tương tác với các thông tin này, ta có thể sử dụng bất kỳ ngôn ngữ lập trình nào thực hiện được với các cấu trúc xml của các file AIML. Đơn giản nhiều người sử dụng Python để con bot có thể hoạt động.

Python 2
Đối với Python 2 ta có thể cài gói AIML với pip:
pip install aiml
hoặc tải tại: https://pypi.python.org/pypi/aiml/
Python 3
Đối với Python 3 cũng tương tự như vậy, bạn vẫn phải cài đặt gói AIML với pip:
pip install python-aiml
hoặc tải tại: https://github.com/paulovn/python-aiml

Đây là hướng dẫn tạo ChatBot AI bằng Python, từ đây ta có thể yạo một chương trình Python đơn giản cho bản thân.

Bạn có thể tham khảo thêm tại đây.