/HumManBot

Deep intelligent dialogue robot based on artificial intelligence markup language (AIML) and task-based dialogue system (task)基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo

Primary LanguagePythonMIT LicenseMIT

HumManBot

Deep intelligent dialogue robot based on artificial intelligence markup language (AIML) and task-based dialogue system (task)

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

声明

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


特此开源供各位参考学习

源码与介绍

实现功能

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

特点

  • AIML知识库更多(共35个)
  • AIML功能采用py3Aiml_Chinese,可正确解析带中文pattern和模板的aiml文件
  • 敏感词库更广(共1.5W个),同时敏感词判断更合理
  • 新增NLP功能,用于处理文本相似度。
  • 更多的API接口demo可以调用(支持莉莉、青云客、ownthink、如意、mcenjoy)

使用方法

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

目录结构

HumManBot
├─ init.py
├─ bot.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
│ └─ ......
├─ py3Aiml_Chinese
│ ├─ AimlParser.py
│ ├─ DefaultSubs.py
│ ├─ Example
│ ├─ Kernel.py
│ └─ ......
├─ resources
│ ├─ Book.aiml
│ ├─ ......
│ └─ sensitive.txt
└─ tool
├─ init.py
└─ filter.py

其中:

chatbot.py :HumManBot的主要函数与类

py3Aiml_Chinese 文件夹py3Aiml_Chinese相关文件

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

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

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

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

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

程序处理流程

  1. 预处理
    限制字数
    过滤敏感词(恶心、政治、色情、违法......)

    当你需要增加敏感词时候直接在sensitive.txt中添加即可
    当你需要更改敏感词库位置时候请在config.cfg中修改filter_file

  2. 知识库匹配(AIML)
    基本功能:打招呼、闲聊......
    异常处理:问题太长、空白问题、找不到回复......
    情绪回答:表情、夸奖、嘲笑......
    如果匹配不到回答,进行步骤三

  3. 任务型对话匹配
    如果可以请不要完全依赖于本人提供的任务功能,请自行修改接口和对应的匹配关键词。因为本人提供的接口随时可能失效,无法保证效果。
    你可以自行添加功能和匹配关键词。包括但不限制于天气查询、汉字查询、空气质量查询、百科等机器人功能

    任务型对话系统(Task)功能函数建议放在search.py
    关键词逻辑判断建议写在crawl.py文件中
    同时你可要单独写一个功能文件调用,例如给出的例子weather.py用于取天气

  4. 神经网络
    本人暂时实现不了神经网络部分功能,因此使用了API代替,同时加入了NLP文本相似度计算功能。

    如果你需要使用API请到deep.py对应的函数中填入自己的api_key
    在deep.py的bot_reply()函数中,你可以选择使用的API接口和个数,同时也支持你自己添加API

学习功能

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

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

    • 说错 *
    • 答错 *
  1. ......

效果展示:

效果1 效果2

使用教程

WIKI

参考

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

py3Aiml_Chinese

中文相似度匹配算法

wenyangchou/SimilarCharactor

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