这里的分类是这样分的:首先将对话分为问答与会话,在问答中按照文档是否结构化分为无结构化文档与结构化文档。无结构化文档中包含一些如IR信息检索(如QA对,查找文档的问题),IE信息抽取(如阅读理解,查找文档中的精确片段),这一块的难点在于相似性的计算。结构化文档中包含数据库,知识图谱等,他们的输入为结构化的片段,数据库具有查询的功能,知识图谱具有查询与推理的能力,这一块的难点其实也是如何获取自然语言中的约束条件(槽位)的问题。接下来重点看下会话,会话划为为闲聊型,任务型等,传统的任务型分为语言理解模块(SLU),对话管理模块(DM)以及自然语言生成模块(NLG)等。
这是今天分享的大纲。主要包括四个部分:首先介绍对话系统的背景和整体架构;然后介绍对话系统中的两个关键部分,分别是自然语言理解(NLU)和对话管理(DM);最后再讲讲助理来也在打造对话系统中的思考和尝试。
接下来我们重点介绍自然语言理解(NLU)和对话管理(DM)这两个模块:
自然语言理解(NLU)的目标是将文本信息转换为可被机器处理的语义表示。因为同样的意思有很多种不同的表达方式,对机器而言,理解一句话里每个词的确切含义并不重要,重要的是理解这句话表达的意思。上面的例子中,三句话在字面上完全不同,但表达了类似的意思,即用户想预约上门保洁服务。
NLU challenge
NLU表示可以用意图+槽位的方式来描述。意图即这句话所表达的含义,槽位即表达这个意图所需要的具体参数,用slot和value对的方式表示。比如,「预约这周日上午的保洁阿姨」这句话的意图是「发起请求」,槽位是「服务类型=保洁,服务日期=20161127」。NLU要做的事情就是将自然语言转化成这种结构化的语义表示。
下面介绍NLU的几种方法。第一种是基于规则的方法,大致的思路是定义很多语法规则,即表达某种特定意思的具体方式,然后根据规则去解析输入的文本。上图中展示了一个订机票场景下基于规