人机对话系统与天然语言处理

前言

一两年前因为工做须要重点研究过天然语言处理与人机对话系统,本文将会列出的它们的知识点以及本身的思考。正则表达式

nlp与人机对话

对于普通企业,人机对话目前主要的应用是任务型人机对话系统。无论是nlp亦或是chatbot,学术上和工程上都有不一样的实现手段。学术界上人机对话系统的研究成果以及最新的研究趋势在工程上应用的较少,而工程上又有本身的方式来实现人机对话。人机对话在实现过程当中会使用不少nlp技术,因此能够说nlp是chatbot的基础。算法

涉及nlp

  • 词:语法、语义、语用。bash

  • 短语(句子):语法、语义、语用。网络

  • 篇章:语法、语义、语用。数据结构

词和短语的研究已经比较成熟了,主要的研究集中在2000年后。篇章的研究不成熟,主要研究是在2010年之后。框架

语法树:机器学习

  • DG分布式

  • CFG学习

  • PCFG测试

  • LPCFG

经常使用算法:

  • 搜索S

  • 动态规划D

  • 分类算法C

  • 序列标注S

  • 优化算法O

人机对话主流框架

  • NLU:理解用户输入,将天然语言转换成结构化表示。

  • DM:系统决策。

  • NLG:天然语言生成,将结构化表示转换成天然语言。

因此根据主流框架分红了三个主要模块,分别为NLU、DM和NLG。

天然语言理解

天然语言理解包括三块:

  • 领域识别,主要就是判断任务种类,好比会议室预约、火车票购买、订餐等等类别。

  • 意图识别,识别用于意图,好比用户肯定、拒绝。

  • 槽填充,抽取任务相关的重要信息,好比会议预约,槽就能够定义为开会地点、开会时间。

用户输入“我明天在公司开会”,通过天然语言理解处理(句子分类、序列标注)后结果为,

Domain:会议室预约Intent:提供信息Slots:{Time:明天;Location:公司}复制代码

天然语言理解研究现状:

  • 基于规则的方法,正则表达,比较耗人力、灵活性差、可移植性差。

  • 基于统计的方法,单独建模和联合建模。单独建模将领域识别、意图识别、槽填充分开研究,分别使用支持向量机、卷积神经网络、决策树、条件随机场、循环神经网络实现,存在偏差累积。

研发步骤:

  1. 根据任务需求定义标签。

  2. 准备数据,若是用基于规则的方法则要观察数据规律,提取模板。若是使用基于统计方法则要标注数据,分为训练集、验证集、测试集。通常数据量要几十万。

  3. 写正则表达式或创建模型训练模型。

  4. 完成NLU研发。

  5. 迭代优化。

对话管理

对话管理模块主要框架以下图,

  • 用户输入“五道口附近餐馆”,通过 NLU 处理后获得intent = ask,slots={位置:五道口}。

  • 对话状态跟踪模块输出 slots={位置:五道口}。

  • Action候选为餐馆检索和需求澄清。

  • Policy将候选Action排序。

  • Action执行根据Action排序执行action更新交互状态

  • 由NLG生产回复,“还有其余需求吗?”

  • 用户继续输入。

天然语言生成

关于天然语言生成模块NLG,典型的概念到文本生成包含三部分,

  1. 内容选择,从输入中选择合适的内容并决定输出文本的结构。

  2. 句子规划,决定个别句子的词汇内容。

  3. 内容表达,渲染选定句子到输出。

传统作法涉及到:

  • 几率上下文无关文法

  • n元语法

  • 属性检测

  • 阈值过滤

  • 文本筛选

基于深度学习的方式:

  • RNN

  • LSTM

  • seq2seq

  • encoder-decoder

训练样本须要几十万条。

问题及思考

  • 人机对话目前只有在很小的某个领域能作出效果,不大可能实现一个大范围的通用的聊天机器人。

  • 目前主流对话系统的主体框架都大同小异,主要仍是要能出效果。要作出效果就只有将领域限定得很小才可行,能够把业务领域限定的很小,只是某块小业务。

  • 涉及到用机器学习或深度学习的对话系统都须要大量的训练样本,没有办法跳过人力标注这步。

  • NLU、DM、NLG三个模块在工程上的调用形式主要以库的形式调用,若是以服务的形式调用会比较重,并且涉及到升级的话会比较麻烦,涉及到多项目组。

  • 数据才是最重要的,没有数据步履维艰,并且数据要能不断更新,与在线系统实现闭环。

  • 目前工程上效果较好的的主要都仍是用传统的基于规则,会在某些环节引入机器学习或深度学习,不会直接end-to-end作法。

  • 人工智能也好深度学习也罢,其实回归到问题本质才能真正地利用人工智能,而不是一味吹捧什么高大上的人工智能。

  • 样本标注方面,须要搞用户便捷的标注系统,方便业务人员或标注人员使用。


本公众号专一于人工智能、读书与感想、聊聊数学、计算机科学、分布式、机器学习、深度学习、天然语言处理、算法与数据结构、Java深度、Tomcat内核等。

相关文章
相关标签/搜索