感知自然语言理解(NLU)
AI即人工智能是一个令人着迷的领域,尤其是基于对话式AI系统的智能音箱的兴起,使人工智能直接走进了我们的家庭。
自然语言是人类的智慧,自然语言处理(NLP)是AI中最为困难的问题之一,而自然语言理解(NLU)也变成了一个主要的问题,充满了魅力和挑战。一介程序员,没有能力去做相关的研究,但是认知其中的一些基本概念,对于开发具体NLP/NLU相关的应用实现,尤其是对话式智能系统上的应用,还是非常有帮助的。那NLP 和 NLU 有啥区别和联系呢?以下理解并不准确,仅限于认知。
NLU与NLP
先看维基百科对NLP的解释:
Natural language processing (NLP) is a subfield of computer science,
information engineering, and artificial intelligence concerned with
the interactions between computers and human (natural) languages,
in particular how to program computers to process a
nd analyze large amounts of natural language data.
Challenges in natural language processing frequently involve speech
recognition, natural language understanding, and natural language generation.
自然语言处理是一门研究人与人交际中,以及人与计算机交际中的语言问题的学科。NLP的目标是希望通过图灵测试,包括了语音、形态、语法、语义以及语用等方面,也要解决人类语言中的因果、逻辑和推理的问题。
在宗成庆老师的《统计自然语言处理》中,把NLP分为以下十六个方向,其中机器翻译、信息检索和问答系统的应用更广泛。。那么NLP是啥呢?
Natural-language understanding (NLU) or natural-language interpretation (NLI)
is a subtopic of natural-language processing
in artificial intelligence that deals with machine reading comprehension.
NLU is the post-processing of text, after the use of NLP algorithms (identifying parts-of-speech, etc.),
that utilizes context from recognition devices (Automatic Speech Recognition [ASR], vision recognition,
last conversation, misrecognized words from ASR, personalized profiles, microphone proximity etc.),
in all of its forms, to discern meaning of fragmented and run-on sentences to execute an intent from typically voice commands.
简单的说, NLU是NLP的一个子集,因此在老码农眼中的简明AI中的那张图是错误的,应该是包含的关系。
NLU的一个主要功能是“execute an intent ”即提取意图。什么是意图呢?
意图表达
Intent意图如何理解呢?在我们开发Android 应用的时候,离不开Intent,尽管和NLU中的意图不太一样,但还是对意图的理解有帮助的。
在Android参考文档中,Intent主要是解决Android应用的各项组件之间的通讯,对Intent的定义是执行某操作的一个抽象描述。在NLU中,意图代表用户想要达到的目的,就是在语言表达中所体现出的“用户想干什么”,解决的是人与人,人与机器之间的通讯问题。意图是由什么组成的呢?在Android Intent中由Action,data 和一些属性组成,在NLU中,意图可以由槽位来表达,槽位就是意图的参数信息。槽位是指从句子中抽取出的特定概念,槽位填充为了让用户意图转化为用户明确的指令而补全信息的过程。
举个例子,比如我对一个对话式智能设备说“今天天气怎么样”,意图是什么呢?意图就是“查询天气”。那这个意图是由哪些槽位表达呢?有一个槽位是确定确定,就是时间槽位——“今天”。
那么,机器有了这个槽位和意图是否就可以应答了呢?现实中,各地的天气是不一样的,那么描述这个意图要增加一个槽位——地点。 如果对话式智能设备问我“那个城市的天气?”我回答“北京”,这大概就是槽位填充的过程。
俗话说,“一句话有十种说法”,同一个意图有着不同的表达方式。问天气的话,我还可以说“给我查查今天的天气”,“我想知道今天天气”,“天气怎么样”等等,如果统计一下,这些问天气的常常用句子,就是所谓的常用表达。
学以致用,我们了解了意图,槽位和常用表达,能做点什么呢?从零开始搭建一个对话系统,demo还可以,真的成为人们所使用的服务的话,恐怕显得有点高不可攀。感谢这个时代,对话式AI操作系统来了(感知人工智能操作系统),例如DuerOS,咱们在可以在上面研发并搭建自己的服务,这就是所谓的“技能”。
技能
什么是技能? 技能就是智能设备的一个能力,或者说一种服务。既然有AI操作系统,为啥还要开发技能呢? 这和有了windows 还要开发 office 类似, 不同的软件满足不同的需要。技能作为对话式AI操作系统的具体应用,同样是为了不同用户多种多样的个性化需求。
有了对话式AI系统,在技术,技能的开发和一个web应用的开发没有太大的区别,只不过遵循对话式AI系统提供的接口协议即可。以DuerOS为例,示意如下:
其中涉及的语音识别,自然语言生成及TTS播报,意图识别等等全部由对话式AI系统完成,我们只专注于具体的服务即可。
既然DuerOS已经提供了大量的服务和海量的资源,我们在上面开发技能还有什么必要么? 在MacOS上已经有了Messager/Facetime之类的应用,并不影响微信应用的研发和普及,这个道理是类似的。我们更了解用户的使用场景和需求,也更清楚具体是业务逻辑,可以让我们聚焦在擅长的领域。
在DuerOS上开发技能
在DuerOS开发语音技能是一个相对轻松的事,在技能开放平台(DBP,DuerOS Bot Platfrom,https://dueros.baidu.com/dbp)上可以方便地完成应用的开发,测试和发布。DBP具备Java/Javascript/PHP/Python/Go的SDK,形成了一个开发框架。同时,通过DBP平台上的可视化界面,可以为用户提供个性化的服务。
DuerOS还提供了大量的系统意图,极大了节约了开发成本,下图是部分系统意图:
词典在意图识别中具有很重要的地位,一般是某一领域词汇的集合,DuerOS根据词典去解析相应的槽位信息,发送给技能应用处理。 我们可以在DBP自定义字典,更可以直接使用系统词典。
如果没有固定的词典与槽位关联的话,还可以将常用表达中需要识别的内容标注为通配槽位,那么DuerOS会将这些请求的内容发送给技能应用。
即便是对于某个技能而言,常用表达也仅仅是“常用表达”,难以穷举用户的各种请求,那么遇到用户的特殊问题,咱们开发的技能是否就不能正常应答了呢?不会的,这正是DuerOS的强大所在,这涉及到很多NLU/NLP的技术,其中一种就是泛化。对于特定领域的问答,DBP 平台还提供了数据训练的能力,无需关注机器学习的算法,只需要提供一些语句的资料即可。
感知自然语言理解,可以从开发小技能开始,5分钟即可创建一个小技能,信不信由你!
参考资料
宗成庆,《统计自然语言处理(第2版)》,清华大学出版社,2013
http://www.cs.bham.ac.uk/~pjh/sem1a5/pt1/pt1_history.html
https://dueros.baidu.com/dbp
感知自然语言理解(NLU)相关推荐
- 自然语言处理NLP、自然语言理解NLU、自然语言生成NLG、任务家族
自然语言处理NLP.自然语言理解NLU.自然语言生成NLG.任务家族 自然语言生成(NLG) 看图说话(image caption) 说话生图(text to image) 文本相似性(text si ...
- 机器学习不会解决自然语言理解(NLU)问题
作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向. 自然语言处理技术主要是让机器理解人类的语言的一门领域.在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法 ...
- 对话系统中的中文自然语言理解 (NLU) 任务介绍
每天给你送来NLP技术干货! 来自:看个通俗理解吧 Chinese Natural Language Understanding, NLU, in Dialogue Systems 1&2 T ...
- 对话系统中自然语言理解NLU——意图识别与槽位填充
目录 1. 什么是意图识别和槽位填充 1.1 语义槽的设计 2. 意图识别的方法 2.1 规则模板 2.2 统计机器学习 2.3 深度学习 3. 意图识别的难点 4. 槽位填充的方法 5. 参考 问答 ...
- 自然语言理解(NLU)个人入门笔记记录1
概念理解: NLP是我们在让机器基于文本数据完成特定任务时使用的思想.方法和技术的总称--其中一部分支持机器理解文本数据的内容,因此统称NLU:一部分支持机器生成人类可以理解的文本数据,因此统称NLG ...
- 用于自然语言理解的多任务深度神经网络
1. 摘要 本文提出了一个多任务深度神经网络(MT-DNN),用于跨多个自然语言理解(NLU)任务学习表示.MT-DNN不仅利用了大量的跨任务数据,而且还受益于正则化效应,从而产生更通用的表示 ...
- 自然语言一般使用计算机,自然语言理解
自然语言处理(N LP , Natural Language Processing)是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键是要让计算机"理解"自然语言,所以 ...
- 景联文科技:自然语言处理(NLP)系列(一)——自然语言理解(NLU)
作为人工智能领域的基础,自然语言处理(NLP)一直是该领域最热门技术之一.近年来,一种潜在的新语言模型GPT-4出现,他能够掌握更广泛的会话主题,甚至成为对话的 "主导者",实时语 ...
- 自然语言处理(NLP) vs 自然语言理解(NLU)
自然语言处理,是Natural Language Processing, 简称NLP 自然语言理解,是Natural Language Understanding,简称NLU. (图1) (图2) 1 ...
最新文章
- 如何在mac下安装MPV播放器?
- 使用Nexus创建私服
- Blender建模与游戏换装(转载文)
- POJ3278(BFS)
- SpringMVC配置没问题却却找不到页面,页面显示404
- 在阿里云服务器centOs7系统中部署.NET Core项目
- JAVA学习day07 1
- 读懂金融危机必看的十四本书
- 【股价预测】基于matlab遗传算法优化BP神经网络预测股价【含Matlab源码 1250期】
- python svm参数_python SVM 案例,sklearn.svm.SVC 参数说明
- element-admin/若依主题风格设计
- [ActionSprit 3.0] FMS安装与测试
- QDockWidget标题栏
- html视频顺序播放,三个视频并排显示按顺序播放的效果怎么制作?怎么使同框视频依次播放|视频合成软件...
- 下面有关java final的基本规则,描述错误的是?
- [Maven进阶]多环境配置与应用
- Linux c — void类型变量和指针
- 学术论文如何撰写数据分析部分?
- 大数据开发教程——构建Hadoop开发环境
- RS导出Excel交叉表角对应的列占用多列问题
热门文章
- SAE J1587简介
- 高通平台上的AMSS(Modem端) windows环境搭建
- 音乐数字计算机,数字计算机技术在民族音乐学领域的应用
- nfs服务器之间实现目录共享
- java程序实现wifi连接打印_Android下通过wifi调用打印机打印,Java代码片段分享,
- Latex-- CTEX 中 标准字体命令与字号的对应
- 三极管和MOS管用于开关控制笔记
- 某宾馆大楼建筑供配电系统设计(任务书+说明书+答辩PPT+CAD图纸)
- 美军推出反海盗无人直升机
- 用html制作一个卡通形象,教你快速做一个自己的卡通形象