语言过程主要包括语言感知语言理解和什么,言语产生与感知的过程
那就是AI人工智能是一个令人着迷的领域,尤其是基于对话式AI系统的智能音箱的兴起,让AI直接走进了我们的家。
语言是人类的智慧,自然语言处理(NLP)是人工智能中最困难的问题之一,而自然语言理解(NLU)则成为一大难题,充满魅力和挑战。一个程序员是没有能力做相关研究的,但是了解一些基本概念对于开发特定的NLP/NLU相关的应用,尤其是对话式智能系统上的应用,是很有帮助的。NLP和NLU有什么区别和联系?以下理解不准确,仅认知。
NLU和NLP:先看看维基百科对NLP的解释:
自然语言处理是计算机科学的一个子领域,
信息工程和人工智能
计算机和人类(自然)语言之间的交互,
特别是如何编程计算机来处理和分析大量的自然语言数据。
自然语言处理中的挑战经常涉及语音
识别、自然语言理解和自然语言生成。
自然语言处理是研究人际交流和计算机交流中语言问题的学科。NLP的目标是通过图灵测试,包括语音学、形态学、语法、语义学和语用学,解决人类语言中的因果关系、逻辑和推理问题。
在jwdej老师的《统计自然语言处理》中,NLP分为以下十六个方向,其中机器翻译、信息检索、问答系统应用较为广泛。那么什么是NLP呢?
自然语言理解(NLU)或自然语言解释(NLI)
是人工智能中处理机器阅读理解的自然语言处理的子课题。
NLU是在使用NLP算法(识别词性等)之后对文本进行的后处理。),
其利用来自识别设备(自动语音识别[ASR],视觉识别,
上次对话、ASR的误识别单词、个性化配置文件、麦克风接近度等。),
在所有的形式中,从典型的语音命令中辨别片断和连续句子的意思以执行意图。
简单来说,NLU是NLP的子集,所以《简明AI》中的画面在老码农眼中是错误的,应该是包含关系。
NLU的主要功能之一是“执行意图”,即提取意图。用意何在?
意图:如何理解意图?当我们开发Android应用时,我们不能没有意图。虽然这与NLU的意图不同,但理解其意图是有帮助的。
在Android参考文档中,意图主要是解决Android应用的组件之间的通信,意图的定义是对执行一个操作的抽象描述。在NLU,意图代表了用户想要达到的目的,也就是在语言表达上体现出来的“用户想要做的事情”,解决了人与机器之间的沟通问题。意图由什么组成?Android意图由动作、数据和一些属性组成。在NLU中,意图可以用slot来表示,slot是意图的参数信息。槽指的是从句子中提取的特定概念。槽填充是为了将用户的意图转化为用户的明确指令而完成信息的过程。
例如,当我对一个对话式智能设备说“今天天气如何”时,我的意图是什么?本意是“打听天气”。用哪些槽来表达这种意图?有一个槽是确定的,就是槽——“今天”。
那么,机器可以用这个槽位和意图来回答吗?现实中各地天气不同,所以要描述这个意图,需要加一个槽位——。如果一个对话式智能设备问我,“那个城市的天气怎么样?”我回答“北京”,大概就是填槽的过程吧。
俗话说“一句话有十种说法”,同样的意图有不同的表达方式。如果你问天气,我也可以说“帮我查一下今天的天气”,“我想知道今天的天气”,“天气怎么样”等等。如果统计的话,这些询问天气的人经常会用到句子,也就是所谓的常用表达。
把我们所学的付诸实践。我们知道意图、槽点和常用表达。我们能做什么?从头开始建立一个对话系统,演示是可以的。如果真的成为人们使用的服务,恐怕显得有点高不可攀。感谢这个时代,对话式的AI操作系统(感知人工智能操作系统)来了,比如DuerOS,我们现在可以在上面开发和构建自己的服务,也就是所谓的“技能”。
什么是技能?技能是智能设备的一种能力,或者说是一种服务。既然有AI操作系统,为什么还要开发技能?这类似于用windows开发office。不同的软件满足不同的需求。作为技能对话AI操作系统的具体应用,也是针对不同用户的多样化个性化需求。
使用对话式AI系统,技术和技能的开发与一个web应用程序的开发没有太大区别,但可以遵循对话式AI系统提供的接口协议。以DuerOS为例,示意图如下:
语音识别、自然语言生成、TTS广播、意图识别等。涉及的都是对话式AI系统完成的,所以我们只能专注于具体的服务。
现在DuerOS已经提供了大量的服务和资源,我们还有必要在上面开发技能吗?MacOS上已经有Messager/Facetime等应用,不影响微信应用的开发和普及。道理也差不多。我们更了解用户的使用场景和需求,以及具体的业务逻辑,这让我们可以专注于自己擅长的领域。
在DuerOS上开发技能在DuerOS上开发语音技能相对容易,在开放技能平台(DBP,https://dueros.baidu.com/dbp)上可以方便地完成应用的开发、测试和发布。DBP有Java/Javascript/PHP/Python/Go的SDK,形成一个开发框架。同时,通过DBP平台上的可视化界面,可以为用户提供个性化服务。
DuerOS还提供了大量的系统意向,大大节省了开发成本。下图显示了一些系统意图:
词典在意图识别中起着非常重要的作用。一般都是某个领域的词汇集合。DuerOS根据字典解析对应的槽位信息,并发送给技能应用进行处理。我们可以在DBP中自定义字典,甚至可以直接使用系统字典。
如果没有与槽相关联的固定字典,也可以将常用表达式中需要识别的内容标记为通用槽,那么DuerOS会将这些请求的内容发送给技能应用。
甚至对于某个技能来说,常用的表达也只是“常用表达”,很难列举出用户的各种请求。那么,当我们遇到用户的特殊问题时,我们开发的技能就不能正常应对吗?不会,这是DuerOS的强项,涉及到很多NLU/NLP技术,其中一个就是泛化。针对特定领域的问答,DBP平台还提供了数据训练的能力。不需要关注机器学习的算法,只需要提供句子的一些信息。
感知自然语言理解,可以从开发小技能开始,5分钟就能创造一个小技能。信不信由你!
参考jwdej,《统计自然语言处理(第2版)》,清华大学出版社,2013。
http://www.cs.bham.ac.uk/~pjh/sem1a5/pt1/pt1_history.html
https://dueros.baidu.com/dbp
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。