北邮张庆恒:如何基于 rasa 搭建一个中文对话系统 (有源码视频)| 分享总结

对话系统是自然语言处理的一个热门话题,而自然语言理解则是对话系统的关键组成部分,现有的很多自然语言理解工具往往以服务的方式获取(Google 的 API.ai, Facebook 的 Wit.ai 等),使用这些服务往往需要向服务提供商提供自己的数据,并且根据自己业务调试模型很不方便。本文为大家介绍了一种新方法,即如何基于 rasa 搭建一个中文对话系统。

在近期 AI 研习社举办的线上免费公开课上,来自北京邮电大学网络技术研究院的张庆恒分享了基于 rasa nlu 构建自己的自然语言理解工具,并结合 rasa core 搭建对话系统框架的一些经验,方便初学者入门,加深对对话系统的理解。本文根据分享者的直播视频内容整理而成。(推荐观看直播回放 http://www.mooc.ai/open/course/416 )

张庆恒,北京邮电大学网络技术研究院,网络与交换技术国家重点实验室硕士,主要研究方向为机器学习与自然语言处理。曾在百度实习且多次参加机器学习、深度学习比赛,获阿里云安全算法挑战赛获冠军,中文标注开源项目 Chinese-Annotator 主要开发成员。

分享主题

基于 rasa 搭建中文对话系统

分享提纲

  • 1. 对话系统的分类和关键技术介绍
  • 2. 结合电信业务查询办理场景,借助开源框架 rasa 实现任务导向型聊天机器人 demo。

2.1 rasa nlu 中文自然语言理解实现,及其背后的原理 2.2 rasa core 对话管理实现,结合源码介绍其实现方法

主要内容

大家好,今天的分享内容首先是为大家介绍基于任务型对话系统的主要概念和它的几个模块。第二部分是基于 Rasa 搭建电信领域任务型对话系统的实操训练。分别是基于 Rasa nlu 实现自然语言理解和基于 rasa core 实现对话管理。

自然语言理解(NLU)和对话管理是任务型对话的主要模块。自然语言理解是问答系统、聊天机器人等更高级应用的基石。下面列举三个典型的问答系统:

  • 第一个是检索型问答系统,主要针对问答系统,提一个问题,给一个答案,不需要参考上下文内容的形式。
  • 第二个是任务型对话系统,针对买票,订票之类的任务型对话。
  • 第三个是闲聊系统,像微软小冰,主要陪聊天等。

任务型对话系统示意图

任务型对话主要包括四部分 ,语音识别,自然语言理解,对话管理,最后是自然语言生成。

下面是一个订餐应用的例子。

接下来分别来看每个模块具体实现的方式

首先是自然语言理解。做自然语言理解首先要有一种表示自然语言含义的形式,一般用传统的三元组方式即:action, slot , value。action 就是意图,slot 是需要填充的槽值,value 是对应的值。

具体可以用哪些技术做这些事情呢?下面列出了三个方法。

第一个是语法分析,可以通过语法规则去分析一句话,得到这句活是疑问句还是肯定句,继而分析出用户意图。相应的也可以通过语法结构中找到对应的槽值。

第二种方法是生成模式,主要两个代表性的 HMM,CRF, 这样就需要标注数据。

第三种方法是分类思想,先对一句话提取特征,再根据有多少个槽值或意图训练多少个分类器,输入一句话分别给不同的分类器,最终得到包含槽值的概率有多大,最终得到这个槽值。

还有一种采用深度学习方式,使用 LSTM+CRF 两种组合的方式进行实体识别,现在也是首选的方法 ,但有一个问题是深度学习的速度比较慢 ,一般轻量型的对话系统还是通过语法分析或分类方式或序列标注来做。

对话状态应该包含持续对话所需要的各种信息。DST 的主要作用是记录当前对话状态,作为决策模块的训练数据。

系统如何做出反馈动作?

下面是自然语言生成部分。自然语言生成也有多种方法。这里举三个方法:基于模板,基于语法规则和基于生成模型方法; 具体可观看视频回放(http://www.mooc.ai/open/course/416 )。

任务型对话其他模块

第二部分是用 Rasa 实现任务型对话系统。Rasa nlu 是自然语言理解框架,主要实现实体识别,意图识别等。Rasa core 是对话管理框架,主要实现状态跟踪、policy 训练,在线学习等。

实操部分使用 rasa nlu 和 rasa core 实现一个电信领域对话系统 demo,实现简单的业务查询办理功能‘’具体代码实现过程推荐观看 AI 慕课学院提供的视频回放。

本文分享自微信公众号 - AI研习社(okweiwu)

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

原始发表时间:2018-02-01

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

自然语言的理解和连续表达 | 微软演讲PPT终章

微软研究院在IJCAI2016的Tutorial上讲述了自己将深度学习、深度神经网络应用于不同场景的情况,之前第二部分提到了深度学习在统计机器翻译和会话中的应用...

36660
来自专栏AI科技评论

选中自然语言处理任务的连续表达 | 微软IJCAI2016演讲PPT

微软研究院在IJCAI2016的Tutorial上讲述了自己将深度学习、深度神经网络应用于不同场景的情况,之前第二部分提到了深度学习在统计机器翻译和会话中的应用...

34150
来自专栏AI科技评论

ACL2016最佳论文:通过交互学习语言游戏

摘要 我们介绍了一种与构建适应性的自然语言接口有关的新型语言学习设置。它受到维特根斯坦语言游戏(Wittgenstein’s language games)的启...

29440
来自专栏AI科技评论

论文|ACL2016最佳论文:用于口语对话系统策略优化的在线自动奖励学习

摘要 计算正确奖励函数的能力对于通过加强学习优化对话系统十分的关键。在现实世界的应用中,使用明确的用户反馈作为奖励信号往往是不可靠的,并且收集反馈花费也十分地高...

38150
来自专栏AI科技评论

ACL2016最佳论文:通过整合基于路径的方法和分布式的方法,改善词对检测

摘要 在自然语言处理(NLP)中,理清词对关系是一项的关键任务 ,在一份使用两种互补方法的文献中也强调这一点。分布式方法:其监督式的变体是目前最好的任务执行器...

38750
来自专栏AI科技评论

人工智能公司Next IT公司总裁Rick Collins:理解人工智能在企业中的角色

过去几个月,机器人程序一直是在互联网上热议的话题。 微软、Facebook等科技业大公司都在向开发者开放了自己的人工智能平台。这些开放的工具和平台意味着,业界向...

391150
来自专栏AI科技评论

ACL论文 | 深度学习大神新作,神经网络的自然语言翻译应用

在 8月7日在德国柏林召开的2016 计算语言学(ACL)大会上,学者Thang Luong、Kyunghyun Cho 和 Christopher D. Ma...

38450
来自专栏人工智能快报

美国MIT研究人员揭示神经网络运行机制

美国麻省理工学院(MIT)官网报道该校在通用神经网络方面的研究进展可用于揭示神经网络的运行机制。理解神经网络的运行机制可以帮助研究人员增强其性能,并将从中获得的...

36550
来自专栏AI科技评论

CCAI | 清华大学副教授张敏:现在是“人工智能青年”们最好的时代

编者按:在刚刚结束的中国人工智能大会CCAI2016上,来自清华大学计算机科学与技术系的副教授张敏为我们展示了人工智能领域当前面对的机遇。张敏既是一名人工智能的...

34940
来自专栏人工智能快报

谷歌开放人工智能语言处理技术

据投资资讯网VentureBeat (http://venturebeat.com/)报道,谷歌从2016年5月12日起开放SyntaxNet的源代码,作为谷歌...

43090

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励