构建自己的NLU平台(一)

作者: 段子周 | 来源:发表于2018-03-12 15:11 被阅读110次
nlu.png

NLU(自然语言理解)系统是任何现代语音系统的最关键模块。如上图nlu.png所示,第二部分NLP Tool就是我们这篇文章要讨论的,我们这里不讨论NLU和NLP的区别,都以NLU指代。

NLU的输入输出

  1. 输入是一段人类语言文本,如上图1模块所示
  2. 输出是一段结构化数据(json/xml etc.),如上图模块3所示。主要包含意图(Intent)和实体(Entities)的抽取结果

NLU服务提供商

正如上图模块2所指示,现在很多服务以Restful API和SDK形式向外提供服务。

  • 国外:

    1. Dialogflow 也就是改名前的API.ai (被Google收购的公司)
    2. Wit.ai (被Facebook收购的公司)
    3. LUIS (微软的服务)
  • 国内:

    1. UNIT (Baidu服务)
    2. DUI (思必驰服务)

笔者用过Dialogflow做英文,也是支持中文,但是服务国内可能被墙;使用过UNIT做中文;同时了解过其他几个,给出建议是:

  • 英文用Dialogflow,免费好用
  • 中文可以直接试试DUI,思必驰的这个开放比较晚,更接近Dialogflow的感觉,UNIT对于需要大规模自己训练内容的领域来说,泛化效果一般
  • 当然,大家自己都可以试试,有好的结果还望相互交流

自己搭建NLU平台的原因

  1. 数据敏感
    因为前面提到过的平台都是需要将数据上传训练才能获得服务,对于数据敏感的需求,显然不能满足。
  2. 领域效果差
    开放平台都是通用NLU平台,各个公司的不收费还愿意提供服务的原因就是想要更多的数据上传来训练自己的模型,那么你们业务所在领域的模块如果是重要的模型,这些平台不一定开放已经训练好的模型。那么结果就是你自己需要大量的训练。
  3. 本地支持
    如果你还需要本地NLU,而不仅仅是联网NLU,显然也不符合要求。

开源NLU引擎选择

NLU是一个巨大的轮子,没有足够的资源自己是搞不起的,寻找开源方案是最快速实现商业模式的方法,目前找到两家:

  1. Rasa nlu
    • 开源时间长,社区稍微活跃
    • 官方还不支持中文,但是有童鞋已经搭建了中文版,引用并感谢
    • 支持本地部署,但是是python程序,各种平台得自己解决,比如android, ios等等
  2. Snips nlu
    • 刚刚开源
    • 官方不支持中文,也没有童鞋搞过中文版
    • 支持本地部署,而且跨平台支持,是Rust实现

所以结论

本人NLU小白,想要快速达到效果并可实现,得站在巨人肩膀。所以计划如下:

  • 基于Rasa nlu来实现
  • 密切关注Snips nlu

相关文章

  • 构建自己的NLU平台(一)

    NLU(自然语言理解)系统是任何现代语音系统的最关键模块。如上图nlu.png所示,第二部分NLP Tool就是我...

  • 会话平台AI中间件

    会话平台AI中间件是在提供商品化的自然语言处理(NLP)、理解(NLU)和对话管理的对话平台之上构建中间件层...

  • 常见 NLU 平台汇总

    SEO:对话开发、语音技能、 Skill、语义理解、chatbot、智能对话 因为工作需要,收集了一些 NLU 平...

  • 使用 Rasa 构建天气查询机器人

    本文将介绍如何使用 Rasa NLU 和 Rasa Core 来构建一个简单的带 Web UI 界面的中文天气情况...

  • 01. NLP定义及歧义性

    1. NLP是什么? NLP = NLU+NLG NLU:语音/文本->意思 NLG:意思->语音/文本 NLU:...

  • rasa对话系统踩坑记(二)

    rasa_nlu模型训练 当我们准备好了rasa_nlu需要的训练数据后,就可以开始训练rasa_nlu模型。gi...

  • Rasa NLU(高级版)第二部分:实体识别

    Rasa NLU 高级版第一部分:意图分类,介绍了 Rasa NLU 的不同意图分类组件和哪些组件最适合自己的个人...

  • Rasa 入门教程 NLU 系列(二)

    Rasa 入门教程 NLU 系列包括六个部分,前面介绍了Rasa 入门教程 NLU 系列(一),本文主要介绍 Ra...

  • 持续集成--学习地址

    持续集成是什么? 构建iOS持续集成平台(一)——自动化构建和依赖管理 构建iOS持续集成平台(二)——测试框架 ...

  • 文本分类——GLUE数据集介绍

    通常来说,NLP可以分为自然语言理解(NLU)和自然语言生成(NLG)。在NLU方面,我们拿时下最流行的GLUE[...

网友评论

  • 探未实验室:我最近也在学习nlu技术,准备做一个垂直领域的智能助手,谢谢你的分享。

本文标题:构建自己的NLU平台(一)

本文链接:https://www.haomeiwen.com/subject/xtynfftx.html