基于AIML的对话机器人

一、编写启动文件

启动文件std-startup.xml如下:

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

    <!-- Category是一个自动的AIML单元 -->
    <category>
        <!-- Pattern用来匹配用户输入 -->
        <!-- 如果用户输入 "LOAD AIML A" -->
        <pattern>LOAD AIML A</pattern>
        <!-- Template是模式的响应 -->
        <!-- 这里学习一个aiml文件 -->
        <template>
            <learn>basic_chat.aiml</learn>
            <!-- 你可以在这里添加更多的aiml文件 -->
            <!--<learn>more_aiml.aiml</learn>-->
            <learn>tuling.aiml</learn>
        </template>
    </category>
</aiml>

二、编写对话文件

对话文件basic_chat.aiml编写格式如下:

<aiml version="1.0.1" encoding="UTF-8">
    <category>
        <pattern>你好</pattern>
        <template>
            Hi,你好!
        </template>
    </category>
    <category>
        <pattern>你叫什么名字呢</pattern>
        <template>
            我是机器人小杰!
        </template>
    </category>
    <category>
        <pattern>你有几岁了啊?</pattern>
        <template>
            我今年3岁了
        </template>
    </category>
</aiml>

备注:tuling.aiml的编写同上,只是拥有更多的问答对。

三、启动对话机器人

#!/usr/bin/python3
# -*- coding:utf-8 -*-

"""
@Author  : heyw
@Contact : [email protected]
@Time    : 2020/3/1 11:21
@Software: PyCharm
@FileName: chatbot.py
"""
import aiml
import os
# 自定义语料库目录
# 
mybot_path = './mybot'
# 切换到自定义语料库工作目录
os.chdir(mybot_path)
# 建立Kernel实例
mybot = aiml.Kernel()
# 启动模板(相对于建立实例)
mybot.learn("std-startup.xml")
# 加载对话模板(相当于调用方法)
mybot.respond('LOAD AIML A')
# 进入对话
while True:
    text = input("用户 >> ")
    if text == 'exit':
        break
    else:
        print("小杰 >> ", mybot.respond(text))
Loading std-startup.xml...done (0.00 seconds)
Loading basic_chat.aiml...done (0.00 seconds)
Loading tuling.aiml...done (0.35 seconds)
用户 >> 你叫什么名字呢
小杰 >>  我是机器人小杰!
用户 >> 你有几岁了啊?
小杰 >>  我今年3岁了
用户 >> 

参考链接:
https://blog.csdn.net/qq_16633405/article/details/80228697
https://www.biaodianfu.com/python-aiml.html

你可能感兴趣的:(基于AIML的对话机器人)