nlu为bots培育了一个自然语言解析器

rasa-nlu的Python项目详细描述


拉萨NLU

在https://forum.rasa.com加入论坛pypi version支持的python版本构建状态coverage statusdocumentation statusfossa状态

RASANLU(自然语言理解)是一种理解短文本所说内容的工具。 例如,接收如下短消息:

< Buff行情>

"我在市中心找一家墨西哥餐馆"

返回结构化数据,如:

  intent: search_restaurant
  entities: 
    - cuisine : Mexican
    - location : center

RASA NLU主要用于构建聊天机器人和语音应用程序,这称为意图分类和实体提取。 要使用rasa,必须提供一些培训数据。 也就是说,一组已经用它们的意图和实体标记的消息。 然后,rasa使用机器学习来提取模式,并将其归纳为看不见的句子。

您可以将rasa nlu看作一组高级api,用于使用现有的nlp和ml库构建您自己的语言解析器。

如果您是RASA NLU的新手,并且想要创建一个bot,您应该从教程开始。

重要提示

当前的github主版本不再支持python 2.7(也不支持 将是下一个主要版本)。如果要将rasa nlu与python一起使用 2.7,请安装PYPI(0.14)的最新版本。

快速安装

有关完整的安装说明,请参阅文档:安装

通过Docker图像 来自Docker Hub:

docker run -p 5000:5000 rasa/rasa_nlu:latest-full

(有关更多Docker安装选项,请参见高级Docker安装

通过python库 来自PYPI:

pip install rasa_nlu
python -m rasa_nlu.server &

(有关更多python安装选项,请参见高级python安装)

基本测试

上面使用的任何一种方法都可以执行下面的命令。

curl 'http://localhost:5000/parse?q=hello'

示例使用

获取服务器状态

curl 'http://localhost:5000/status'

检查服务器版本

curl 'http://localhost:5000/version'

培训新车型

示例 以及培训数据的文档 提供格式。但是作为一个快速的开始,执行下面的命令来训练 新型号

json格式

curl 'https://raw.githubusercontent.com/RasaHQ/rasa_nlu/master/sample_configs/config_train_server_json.yml' | \
curl --request POST --header 'content-type: application/x-yml' --data-binary @- --url 'localhost:5000/train?project=test_model'

这将训练一个简单的基于关键字的模型(除了这个演示之外,其他都不可用)。为了更好 管道参考文档。

降价格式
wget 'https://raw.githubusercontent.com/RasaHQ/rasa_nlu/master/sample_configs/config_train_server_md.yml'
curl --request POST --header 'content-type: application/x-yml' --data-binary @config_train_server_md.yml --url 'localhost:5000/train?project=test_model'

上述命令执行以下操作:

  1. 它获取回购协议中的一些示例数据
  2. 它将数据发布到/train端点并命名模型project=test_model
  3. < > >

    分析新请求

    在执行下面的命令之前,请确保上面的命令已经完成。您可以使用上面的/status命令进行检查。

    curl 'http://localhost:5000/parse?q=hello&project=test_model'
    
    < H1> FAQ

是给谁的?

目标受众主要是开发机器人程序的人,他们从零开始,或者寻找替代机器人程序的替代品。或对话框流。设置过程设计得尽可能简单。rasa nlu是用python编写的,但是您可以通过http api从任何语言使用它。如果您的项目是用python编写的,您可以简单地导入相关类。如果您当前正在使用WIT/Luis/DialogFlow,您只需:

  1. 从WIT、Luis或DialogFlow下载应用程序数据并将其输入RASA NLU
  2. 在计算机上运行rasa nlu,并将wit/luis api调用的url切换到localhost:5000/parse
  3. < > >

    为什么我要使用RASA NLU?

    • 你不必把数据交给FB/MSFT/GOOG
    • 您不必进行https调用来解析每条消息。
    • 您可以调整模型,使其在特定的用例中工作良好。

    这些要点在 博客文章。 RASA是一套用于构建更高级的机器人的工具,由 公司rasa。拉萨自然语言 了解模块,以及第一个开源组件。

    它支持哪些语言?

    监督人ed_embeddings管道可以在任何语言中工作。 如果您想使用预先训练过的单词嵌入,可以使用 多种语言。请参见此处的详细信息。

    如何贡献

    我们很高兴收到并合并您的贡献。有关代码和文档样式的更多信息,请参见文档

    一般来说,这个过程相当简单:

    1. 创建一个描述要处理的功能的问题(或者查看标签的问题需要帮助
    2. 编写代码、测试和文档
    3. 创建一个pull请求,描述您的更改
    4. < > >

      拉取请求将由维护人员进行审查,维护人员可能会向您回复任何必要的更改或问题。您还将被要求签署贡献者许可协议

      高级安装

      高级Python

      来自github:

        intent: search_restaurant
        entities: 
          - cuisine : Mexican
          - location : center
      
      0

      对于本地开发,请确保安装了开发要求:

        intent: search_restaurant
        entities: 
          - cuisine : Mexican
          - location : center
      
      1

      测试安装使用(这将运行一个非常愚蠢的默认模型。你需要训练自己的模型来做一些有用的事情!

      高级docker

      开始之前,请确保您的机器上有最新版本的Docker引擎。您可以在终端中键入docker-v来检查是否安装了docker。

      要查看所有可用的版本,请转到rasa docker hub,但要开始并以最快的速度运行:

      docker run -p 5000:5000 rasa/rasa_nlu:latest-full
      

      还有三个卷,您可能需要映射它们:/app/projects/app/logs,以及/app/data。还可以通过将新的配置文件映射到卷/app/config.json来覆盖服务器使用的配置文件。有关完整的Docker使用说明,请访问官方的Docker Hub自述文件

      要在容器启动后测试运行以下命令。有关使用http api的更多信息,请参见此处的

      curl 'http://localhost:5000/parse?q=hello'
      

      Docker云

      警告!设置Docker Cloud相当复杂-除非您已经配置了Docker Cloud节点(或群集),否则不建议使用此方法。

      部署到docker云

      为Spacy&Mitie安装预先培训的型号

      为了使用Spacy或Mitie后端,请确保您已安装了其中一个经过预培训的型号。

        intent: search_restaurant
        entities: 
          - cuisine : Mexican
          - location : center
      
      4

      下载mitie模型运行并将其放置在您可以 模型培训期间配置中的参考:

        intent: search_restaurant
        entities: 
          - cuisine : Mexican
          - location : center
      
      5

      如果要运行测试,需要将模型复制到rasa文件夹:

        intent: search_restaurant
        entities: 
          - cuisine : Mexican
          - location : center
      
      6

      其中rasa nlu root指向您的rasa安装目录。

      开发内部构件

      发布新版本的步骤

      发布新版本非常简单,因为这些包是由travis构建和分发的。要发布新版本,需要执行以下操作

      1. 更新rasa-nlu/version.py以反映更正版本号
      2. 编辑changelog.rst.rst,为版本创建一个新的部分(例如从收集的主部分移动项目),并创建一个新的主日志部分
      3. 编辑迁移指南以帮助用户更新到新版本
      4. 提交所有上述更改并标记新版本,例如使用
          intent: search_restaurant
          entities: 
            - cuisine : Mexican
            - location : center
        
        7 travis将构建这个标签并将一个包推送到pypi
      5. 只有当它是一个主版本时,才应该创建一个指向与标记相同的提交的新分支,以允许将来的小补丁,例如。
          intent: search_restaurant
          entities: 
            - cuisine : Mexican
            - location : center
        
        8
      6. < > >

        运行测试

        为了运行测试,请确保安装了开发要求。

          intent: search_restaurant
          entities: 
            - cuisine : Mexican
            - location : center
        
        9

        许可证

        在2.0版apache许可下授权。版权所有2019 Rasa Technologies GmbH.许可证副本

        项目依赖项的许可证列表可以在 底部 库摘要

        欢迎加入QQ群-->: 979659372 Python中文网_新手群

        推荐PyPI第三方库


热门话题
java如何从thymeleaf表单保存地址对象和用户对象的列表?   序列化java。时间使用Jackson将localdate转换为json   java删除LinearLayout和子级之间的空间   具有内存大小限制的Java队列   java尝试在freemarker中创建min(a,b)函数失败   askQuestion()方法中的Java逻辑问题   在Java客户端中接受服务器的自签名ssl证书   java如何正确更新字符串数组?   java如何使多个方法调用充当一个事务性工作单元   swing如何创建可滚动的Java框?   java如何使用SearchView在多个单词之间搜索?   初始化启动层java时出错。lang.module。FindException:模块javafx。找不到图形   java struts对隐藏字段的转义形式验证   用于构建FEM 3D解算器的java JOGL与JAVA3D   java mvn安装忽略hibernate映射文件   在C++和java之间使用JNI通信时,我在哪里保存“这个”?   java无法使用计时器重新绘制窗口   java我遇到一个找不到符号的错误,我无法解决   IntelliJIdea生成实体时java面临的问题   java在动态文本的末尾添加三个点