专栏首页磐创AI技术团队的专栏Rasa 聊天机器人专栏开篇

Rasa 聊天机器人专栏开篇

专栏简介

Rasa 是最火的聊天机器人框架,是基于机器学习和自然语言处理技术开发的系统。Rasa 中文官方文档包括聊天机器人,上下文管理,多伦对话,意图识别,填槽,中文聊天机器人开发必备手册。

专栏目录

1.Rasa 聊天机器人专栏开篇:简介与安装

2.Rasa 聊天机器人专栏(一):基本原理介绍

3.Rasa 聊天机器人专栏(二):命令行界面

4.Rasa 聊天机器人专栏(三):架构介绍

5.Rasa 聊天机器人专栏(四):消息和语音通道

6.Rasa 聊天机器人专栏(五):模型评估

7.Rasa 聊天机器人专栏(六):验证数据

8.Rasa 聊天机器人专栏(七):运行服务

9.Rasa 聊天机器人专栏(八):在Docker上运行Rasa

10.Rasa 聊天机器人专栏(九):云存储

安装

Rasa 的推荐安装方式是通过pip:

pip install rasa-x --extra-index-url https://pypi.rasa.com/simple

这将同时安装Rasa和Rasa X。如果你不想使用Rasa X,只需要运行pip install Rasa

除非你已经安装了numpy和scipy,否则我们强烈建议你安装并使用Anaconda。

如果你想使用Rasa的开发版本,你可以从GitHub上获得:

git clone https://github.com/RasaHQ/rasa.git
cd rasa
pip install -r requirements.txt
pip install -e .

Windows系统下的环境要求

确保安装了Microsoft vc++编译器,这样python就可以编译任何依赖项。你可以从Visual Studio获得编译器。下载安装程序并在列表中选择vc++构建工具。

NLU 管道依赖项

Rasa NLU有用于识别意图和实体的不同组件,其中大多数都有一些额外的依赖项。

当你训练NLU模型时,Rasa将检查是否安装了所有必需的依赖项,并告诉你缺少哪一个依赖项。[选择管道]()的页面将帮助你选择要使用的管道。

注意: 如果你想确保为你可能需要的任何组件安装了依赖项,并且不介意有其他依赖项存在,那么你可以使用

pip install -r alt_requirements/requirements_full.txt

安装所有依赖项。

一个很好的开始:spaCy提供的pretrained embeddings

pretrained_embeddings_spacy管道组合了几个不同的库,是一个流行的选项。更多信息请查看spaCy文档。

你可以用以下命令安装:

pip install rasa[spacy]
python -m spacy download en_core_web_md
python -m spacy link en_core_web_md en

这将安装Rasa NLU、spacy及其英语语言模型。我们建议至少使用“中型”模型(_md),而不是spacy默认的小型en_core_web_sm模型。小模型运行需要更少的内存,但会在一定程度上降低意图分类(intent classification )性能。

第一选择:Tensorflow

要使用 supervised_embeddings管道,你需要安装Tensorflow,并安装sklearn-crfsuite库来进行实体识别。要做到这一点,只需运行以下命令:

pip install rasa

第二个选择:MITIE

MITIE后端对于小型数据集执行得很好,但是如果你有数百个示例,那么训练可能会花费很长时间。我们可能会在未来弃用MITIE后端。

首先,运行:

pip install git+https://github.com/mit-nlp/MITIE.git
pip install rasa[mitie]

然后下载MITIE模型。你所需要的文件是total_word_feature_extract .dat。可以将其保在任何地方。如果你想使用MITIE,你需要告诉它在哪里可以找到这个文件(在本例中,它保存在项目目录的data文件夹中)。

language: "en"

pipeline:
- name: "MitieNLP"
  model: "data/total_word_feature_extractor.dat"
- name: "MitieTokenizer"
- name: "MitieEntityExtractor"
- name: "EntitySynonymMapper"
- name: "RegexFeaturizer"
- name: "MitieFeaturizer"
- name: "SklearnIntentClassifier"

单独使用MITIE进行训练可能非常慢,但是你可以使用这种配置:

language: "en"

pipeline:
- name: "MitieNLP"
  model: "data/total_word_feature_extractor.dat"
- name: "MitieTokenizer"
- name: "MitieEntityExtractor"
- name: "EntitySynonymMapper"
- name: "RegexFeaturizer"
- name: "MitieIntentClassifier"

下一步

现在你已经安装好了所有需要的东西,准备s开始进入教程吧!

AI学习路线之Keras篇

本文分享自微信公众号 - 磐创AI(xunixs),作者:磐创AI

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NLP任务中有哪些巧妙的idea?

    链接:https://www.zhihu.com/question/356132676/answer/901244271

    磐创AI
  • 干货 | 近期热点机器学习git项目

    No1:PyTorchImplementation of DeepMind’s BigGAN(https://github.com/huggingface/py...

    磐创AI
  • 热点 | 六月Github热点项目库总结

    磐创AI
  • Python学习(八)---- 面向对象类之进阶

    原文地址: https://blog.csdn.net/fgf00/article/details/52479307 编辑:智能算法,欢迎关注! 上期我们一起...

    智能算法
  • Python26 面向对象进阶

    其实静态方法的作用就是让函数与类解除关系,不让其继承和访问类的内容。 实际场景中,静态方法几乎很少有用到。

    用户2398817
  • python ——面向对象进阶

    1.staticmethod和classmethod staticmethod  静态方法: 让类里的方法,直接被类调用,就像正常的函数一样 宝宝,男 博博,女...

    用户1214487
  • 【编程课堂】装饰器浅析

    Python 拥有丰富强大的功能和表达特性,其中之一便是装饰器,装饰器能够在不改变函数、方法、类本身的情况下丰富他们的功能。 比如,我们有一个函数 func ,...

    Crossin先生
  • python 子类中扩张超类属性

    class Person: def init(self, name): self.name = name

    用户5760343
  • python-字符串数据类型内置方法

    用户2398817
  • OCP-052考试题库汇总(44)-CUUG内部解答版

    Which two are true about external tables?

    用户5892232

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动