Python实现聊天机器人的示例代码

作者:海天一树X 时间:2022-11-16 18:10:56 

一、AIML是什么

AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和Alicebot开源软件组织于1995-2000年间发明创造的。AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式。

二、实现第一个聊天机器人

(一)安装Python aiml库


pip install aiml

(二)获取alice资源

Python aiml安装完成后在Python安装目录下的 site-packages的aiml下会有alice子目录(比如D:\Program Files\Python36\Lib\site-packages\aiml\botdata\alice),这个是系统自带的一个简单的英文语料库。

(三)编程实现机器人聊天

1 程序


# -*- coding: utf-8 -*-
import aiml
import sys
import os

def get_module_dir(name):
print("module", sys.modules[name])
path = getattr(sys.modules[name], '__file__', None)
print(path)
if not path:
 raise AttributeError('module %s has not attribute __file__' % name)
return os.path.dirname(os.path.abspath(path))

alice_path = get_module_dir('aiml') + '\\botdata\\alice'

os.chdir(alice_path)  # 切换到语料库所在工作目录

alice = aiml.Kernel()  # 创建机器人alice对象
alice.learn("startup.xml") # 加载...\\botdata\\alice\\startup.xml
alice.respond('LOAD ALICE') # 加载...\\botdata\\alice目录下的语料库

while True:
message = input("Enter your message >> ")
if("exit" == message):
 exit()
response = alice.respond(message) # 机器人应答
print(response)

2 运行结果

Python实现聊天机器人的示例代码

三、参考资料

https://www.jb51.net/article/143395.htm

来源:https://www.jianshu.com/p/44139a6d8070

标签:Python,聊天,机器人
0
投稿

猜你喜欢

  • python对html过滤处理的方法

    2023-04-25 15:28:57
  • PHP结构型模式之外观模式

    2023-05-25 11:43:14
  • django自带的权限管理Permission用法说明

    2023-07-25 04:18:06
  • pytorch加载自己的图像数据集实例

    2021-09-25 12:00:49
  • tensorflow实现简单的卷积神经网络

    2021-07-15 21:13:02
  • 【JavaScript实用系列】-- 胖页面载入效果

    2009-10-19 22:48:00
  • javascript打印html内容功能的方法示例

    2024-04-25 13:13:23
  • SQLite数据库管理相关命令的使用介绍

    2024-01-27 12:41:00
  • PHP设计模式(八)装饰器模式Decorator实例详解【结构型】

    2023-11-24 05:59:31
  • SQL Server数据库连接中常见的错误分析

    2009-01-15 12:51:00
  • 详细介绍基于MySQL的搜索引擎MySQL-Fullltext

    2024-01-27 16:30:30
  • javascript十个最常用的自定义函数(中文版)

    2024-04-16 09:26:38
  • Python蛇形方阵的实现

    2023-06-27 16:33:21
  • FileSystem对象常用的文件操作函数有哪些?

    2009-11-01 15:11:00
  • python中的pygame实现接球小游戏

    2021-10-21 13:33:50
  • 如何基于Django实现上下文章跳转

    2022-02-11 02:38:05
  • canvas实现手机端用来上传用户头像的代码

    2023-09-16 02:30:54
  • C#连接Oracle数据库的方法

    2024-01-16 20:17:12
  • vue之计算属性的缓存computed的用法解读

    2024-05-11 09:14:05
  • 用python标准库difflib比较两份文件的异同详解

    2023-01-29 07:34:29
  • asp之家 网络编程 m.aspxhome.com