Rasa 中文聊天机器人项目


RASA 开发中文指南系列博文:

  • Rasa中文聊天机器人开发指南(1):入门篇
  • Rasa中文聊天机器人开发指南(2):NLU篇
  • Rasa中文聊天机器人开发指南(3):Core篇
  • Rasa中文聊天机器人开发指南(4):RasaX篇
  • Rasa中文聊天机器人开发指南(5):Action篇

注:本系列博客翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展,目的是为了更好的理解Rasa工作机制。与本系列博文配套的项目GitHub地址:ChitChatAssistant,欢迎starissues,我们共同讨论、学习!


1. 安装rasa

1.1 环境要求

  • python 3.6 +
  • mitie
  • jieba

1.2 安装步骤

1. 安装rasa

# 当前版本为1.9.5
# 该命令运行时间较长,会安装完所有的依赖
pip --default-timeout=500 install -U rasa

2. 安装mitie

# 在线安装Mitie
pip install git+https://github.com/mit-nlp/MITIE.git
pip install rasa[mitie]  # 注:由于第一步始终没成功过,没尝试过这个命令的意义

 由于自己在线安装尝试了很多次都拉不下来,因此只能走离线安装的方式,有三个步骤:

  • 首先,下载MITIE源码和中文词向量模型total_word_feature_extractor_zh.dat(密码:p4vx),这里需要将该模型拷贝到创建的python项目data目录下(可任意位置),后面训练NLU模型时用到;

  • 其次,安装Visual Studio 2017 ,需要勾选“用于 CMake 的 Visual C++ 工具”,因为编译MITIE源码需要Cmake和Visual C++环境。安装完毕后,将C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin添加到环境变量中,再重启电脑使之生效;

  • 从Pycharm的命令终端进行Mitie源码根目录,执行下面的命令:

    python setup.py build
    python setup.py install

3. 安装jieba

# 安装Jieba中文分词
pip install jieba

2. 训练模型

 当所有样本和配置文件准备好后,接下来就是训练模型了,打开命令终端执行下面的命令,该命令会同时训练NLU和Core模型。

  • 使用MITIE
python -m rasa train --config configs/config.yml --domain configs/domain.yml --data data/
  • 使用Supervised_Embedding
python -m rasa train --config configs/zh_jieba_supervised_embeddings_config.yml --domain configs/domain.yml --data data/
  • 使用MITIE+Supervised_Embedding
python -m rasa train --config configs/zh_jieba_mitie_embeddings_config.yml --domain configs/domain.yml --data data/

3. 运行服务

(1)启动Rasa服务

 在命令终端,输入下面命令:

# 启动rasa服务
# 该服务实现自然语言理解(NLU)和对话管理(Core)功能
# 注:该服务的--port默认为5005,如果使用默认则可以省略
python -m rasa run --port 5005 --endpoints configs/endpoints.yml --credentials configs/credentials.yml --debug

(2)启动Action服务

在命令终端,输入下面命令:

# 启动action服务
# 注:该服务的--port默认为5055,如果使用默认则可以省略
Python -m rasa run actions --port 5055 --actions actions --debug

(3)启动server.py服务

python server.py

Rasa ServerAction ServerServer.py运行后,在浏览器输入测试:

http://127.0.0.1:8088/ai?content=查询广州明天的天气

终端调用效果为:

4. 更新日志

(1)V1.0.2020.02.15

  • 创建项目,模型训练成功;
  • 前端访问Rasa服务器正常响应;
  • 对接图灵闲聊机器人、心知天气API,便于测试;

(2)V1.1.2020.02.27

  • 优化NLU样本,尝试使用同义词、正则、查找表;
  • 改进supervised_embeddings,实体提取和意图识别明显提高,训练速度加快很多;
  • 完成Rasa中文聊天机器人开发指南(2):NLU篇文章撰写;

(3)V1.2.2020.04.10

  • 使用Interactive Learning构建样本;
  • 新增MITIE+supervised_embeddings管道,并训练相应的模型;
  • 新增身份查询案例;
  • 将Rasa版本升级到1.9.5,解决win10使用tensorflow出现的异常(详见入门篇);
  • 完成Rasa中文聊天机器人开发指南(3):Core篇文章撰写;

5. License

Copyright 2020 JiangdongguoLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Rasa 中文聊天机器人项目相关推荐

  1. Rasa中文聊天机器人开发指南(3):Core篇

    文章目录 1. 对话管理 1.1 多轮对话 1.2 对话管理 2. Rasa Core 2.1 Stories 2.2 Domain 2.3 Responses 2.4 Actions 2.5 Pol ...

  2. Rasa中文聊天机器人开发指南(1):入门篇

    文章目录 1. Rasa简介与安装 1.1 Rasa简介 1.2 Rasa安装(v1.9.4) 1.1 Ubuntu 16.04环境 1.2 Windows10环境 2. Rasa使用--构建简单聊天 ...

  3. 400 多行代码!超详细 Rasa 中文聊天机器人开发指南 | 原力计划

    作者 | 无名之辈FTER 责编 | 夕颜 出品 | 程序人生(ID:coder_life) 本文翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展, ...

  4. 如何用tf2.0训练中文聊天机器人chatbot

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 一个可以自己进行训练的中文聊天机器人, 根据自己的语料训练出自己想要的聊天机器人,可以用于智能 ...

  5. 基于seq2seq的中文聊天机器人(一)

    系列文章 1.基于seq2seq的中文聊天机器人(一) 2.基于seq2seq的中文聊天机器人(二) 3.基于seq2seq的中文聊天机器人(三) 1 背景介绍 聊天机器人的研究可以追溯到上个世纪五十 ...

  6. 聊天机器人-项目准备

    聊天机器人-项目准备 文章目录 聊天机器人-项目准备 走进聊天机器人 学习目标 1. 目前企业中的常见的聊天机器人 2. 常见的聊天机器人怎么实现的 2.1 问答机器人的常见实现手段 2.2 任务机器 ...

  7. 基于Seq2Seq模型的简易中文聊天机器人

    临近毕业季,又想起了做过的简易聊天机器人chartbot毕业设计,因为算是自己第一次接触这个智能问答领域吧,所以到现在还觉得特别有意思且难忘.我是个行动派,觉得有意思的东西,肯定就要记录下来了.下面我 ...

  8. 基于Seq2Seq的中文聊天机器人编程实践(Encoder编码器-Decoder解码器框架 + Attention注意力机制)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  9. python+Word2Vec实现中文聊天机器人

    作为语言模型和文本挖掘中的常用工具,Word2Vec也可以用来构建聊天机器人.在本文中,我们将使用Python和Gensim库从头开始构建一个基于Word2Vec的中文聊天机器人. 1. 准备工作 在 ...

最新文章

  1. 《C#精彩实例教程》小组阅读05 -- C#变量与常量
  2. Torch not compiled with CUDA enabled
  3. 判断控件是否出现了滚动条
  4. Python 33(1) UDP协议 数据报协议 socketsever模块
  5. nginx和pcre错误问题
  6. 安全随笔2:对称加密应用场景
  7. 菜刀php提权,靶机SickOs1.2练习:上传马文件菜刀连接/反弹shell,进行本地提权
  8. Exchange 2010 OWA 无法使用关键字搜索
  9. Jmeter并发压测
  10. caffemodel的大小计算
  11. 琴生Jensen不等式,条件期望
  12. lattice diamond/radiant license申请
  13. 嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面)
  14. jdk版本问题:hour_day_of 0 -1
  15. 网易严选App感受Weex开发
  16. DataLossError : corrupted record at XXXXXXX,BERT预训练报错
  17. MySql表的基本增删改查详解
  18. 4G工业路由器大气环境监测方案
  19. 初识CornerNet
  20. 四个漂亮CSS样式表

热门文章

  1. 鹰潭:移动物联网产业领跑全国
  2. java 骰子游戏_java 骰子游戏
  3. opencv与C++实现最大类间方差法(OTSU)进行图像二值化
  4. Leetcode:面试题 01.06. 字符串压缩
  5. “网购懊悔权”为何与“机动车撞人负全责”一样扯淡?
  6. Linux命令之echo命令
  7. 微软计算机键盘上Tab,电脑键盘上的tab键有什么功能
  8. 【BOOST C++字串专题11】Boost.Spirit(一)
  9. Mysql隔离级别、锁及死锁
  10. 李大学:CTO,应该像CEO一样思考