900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo

基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo

时间:2022-07-17 02:37:45

相关推荐

基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo

起因

本demo基于基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型而来

无意间发现一个基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型,但由于年代久远代码已经跑不通了,而且采用的是py2,于是边看变改,在自己摸索下,写了一个相对完整的demo且有相对完整的注释,特此开源供各位参考学习

源码与介绍

本项目相较于原项目

实现功能

知识库匹配(AIML)回答问题任务型对话系统(Task)利用API完成的闲聊系统回答问题待更新…

特点

AIML知识库更多(共35个)敏感词库更广(共1.5W个),同时敏感词判断更合理新增NLP功能,用于处理文本相似度。 针对文本相似度使用了:音形码算法+余弦相似度算法 更多的API接口demo可以调用(支持莉莉、青云客、ownthink、如意、mcenjoy)

使用方法

首先下载解压你会得到一个这样一个目录结构

目录结构

chatbot_aiml_task_demo

├─init.py

└─ core

├─init.py

├─ chatbot.py

├─ config.cfg

├─ crawler

│ ├─init.py

│ ├─ crawl.py

│ ├─ search.py

│ ├─ stationID.json

│ └─ weather.py

├─ deeplearning

│ ├─ NLP.py

│ ├─ …

│ ├─ SimilarCharactor

│ ├─init.py

│ └─ deep.py

├─ log

│ ├─ .gitkeep

│ └─ …

├─ resources

│ ├─ Book.aiml

│ ├─ …

│ ├─ save.aiml

│ ├─ load.aiml

│ ├─ main.aiml

│ ├─ sensitive.txt

│ ├─ …

│ └─ …

└─ tool

├─init.py

└─ filter.py

其中:

chatbot.py是主程序

config.cfg是各种路径的配置文件

tool文件夹下是存放的是用于敏感词过滤使用的filter.py文件

resources文件夹建议存放AIML知识库和敏感词库

deeplearning文件夹存放的是NLP主要代码

crawler文件夹存放的是任务型对话系统(Task)主要代码

源码介绍与处理流程

预处理

限制字数

过滤敏感词(恶心、政治、色情、违法…)

当你需要增加敏感词时候直接在sensitive.txt中添加即可

当你需要更改敏感词库位置时候请在config.cfg中修改filter_file

知识库匹配(AIML)

基本功能:打招呼、闲聊…

异常处理:问题太长、空白问题、找不到回复…

情绪回答:表情、夸奖、嘲笑…

如果匹配不到回答,进行步骤三任务型对话匹配

如果可以请不要完全依赖于本人提供的任务功能,请自行修改接口和对应的匹配关键词。因为本人提供的接口随时可能失效,无法保证效果。

你可以自行添加功能和匹配关键词。包括但不限制于天气查询、汉字查询、空气质量查询、百科等机器人功能

任务型对话系统(Task)功能函数建议放在search.py

关键词逻辑判断建议写在crawl.py文件中

同时你可要单独写一个功能文件调用,例如给出的例子weather.py用于取天气

神经网络

与原作者相同,我也暂时实现不了神经网络部分功能,同样使用了API代替,同时加入了NLP文本相似度计算。

如果你需要使用API请到deep.py对应的函数中填入自己的api_key

在deep.py的bot_reply()函数中,你可以选择使用的API接口和个数,同时也支持你自己添加API

学习功能

利用AIML模板+shelve存储,同时修复了已知BUG

学习功能模板为learn.aiml库,可以自定义修改

说错 * 答错 * …

效果展示:

源码

欢迎Star欢迎━(`∀´)ノ亻!

github

参考

基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型

中文相似度匹配算法

wenyangchou/SimilarCharactor

敏感词过滤的几种实现+某1w词敏感词库

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。