自然语言处理从零到入门 自然语言理解NLU
自然语言理解– NLU | NLI
- 一、什么是自然语言理解(NLU)?
- 二、自然语言理解(NLU)的应用
- 三、自然语言理解(NLU)的难点
- 四、NLU 的实现方式
- 参考
自然语言理解(NLU)跟NLP是什么关系?为什么说它是人工智慧领域里一个难点?NLU 的发展史历史和目前最先进的方法是什么?
本文将解答上面的问题,带你全面了解自然语言理解(NLU)。
一、什么是自然语言理解(NLU)?
大家最常听到的是NLP,而自然语言理解(NLU) 则是NLP 的一部分:
什么是自然语言?
自然语言就是大家平时在生活中常用的表达方式,大家平时说的 “讲人话” 就是这个意思。
自然语言:我背有点驼(非自然语言:我的背部呈弯曲状)
自然语言:宝宝的经纪人睡了宝宝的宝宝
自然语言理解就是希望机器像人一样,具备正常人的语言理解能力,由于自然语言在理解上有很多难点(下面详细说明),所以NLU 是至今还远不如人类的表现。
下面用一个具体的案例来深度说明一下自然语言理解(NLU):
对话系统这个事情在2015年开始突然火起来了,主要是因为一个技术的普及:机器学习特别是深度学习带来的语音识别和NLU(自然语言理解)——主要解决的是识别人讲的话。
这个技术的普及让很多团队都掌握了一组关键技能:意图识别和实体提取。
这意味着什么?我们来看一个例子。
在生活中,如果想要订机票,人们会有很多种自然的表达:
A:订机票
B:有去上海的航班么?
C:看看航班,下周二出发去纽约的
D:要出差,帮我查下机票
等等等等
可以说"自然的表达"有无穷多的组合(自然语言)都是在代表"订机票" 这个意图的。而听到这些表达的人,可以准确理解这些表达指的是"订机票"这件事。
而要理解这么多种不同的表达,对机器是个挑战。在过去,机器只能处理"结构化的数据"(比如关键词),也就是说如果要听懂人在讲什么,必须要用户输入精确的指令。
所以,无论你说"我要出差"还是"帮我看看去北京的航班",只要这些字里面没有包含提前设定好的关键词"订机票",系统都无法处理。而且,只要出现了关键词,比如"我要退订机票"里也有这三个字,也会被处理成用户想要订机票。
自然语言理解这个技能出现后,可以让机器从各种自然语言的表达中,区分出来,哪些话归属于这个意图;而那些表达不是归于这一类的,而不再依赖那么死板的关键词。比如经过训练后,机器能够识别"帮我推荐一家附近的餐厅",就不属于"订机票"这个意图的表达。
并且,通过训练,机器还能够在句子当中自动提取出来"上海",这两个字指的是目的地这个概念(即实体);"下周二"指的是出发时间。
这样一来,看上去就像机器能听懂人话。
百度百科:
自然语言处理(NLP , Natural Language Processing)是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键是要让计算机「理解」自然语言,所以自然语言处理又叫做自然语言理解(NLU ,Natural Language Understanding), 也称为计算语言学(Computational Ling uistics)。一方面它是语言信息处理的一个分支, 另一方面它是人工智慧(AI , Artificial Intelligence)的核心课题之一。
维基百科:
自然语言理解(NLU)或自然语言解释(NLI)是的子主题自然语言处理在人工智慧与机器涉及阅读理解。自然语言理解被认为是人工智慧难题。
由于其应用于自动推理,机器翻译,问答,新闻采集,文本分类,语音激活,存档和大规模内容分析,因此该领域具有相当大的商业利益。。NLU是使用NLP演算法(识别词性等)后的文本的后处理,其利用来自识别设备的上下文(自动语音识别)[ ASR ],视觉识别,最后一次会话,来自ASR的误识别词,个性化配置文件,麦克风接近等),以其所有形式,辨别碎片和连续句子的含义以通常从语音命令执行意图。NLU具有围绕特定产品垂直的本体,用于计算意图的概率。NLU具有已定义的已知意图列表,其从指定的上下文信息识别源导出消息有效载荷。NLU将提供多个消息输出以将服务(软体)或资源(硬体)与单个派生的意图分开(对具有视觉句子(显示或说出)的语音命令发起者的响应和转换的语音命令消息将消耗太多不同的输出消息用于M2M通信和行动)。
二、自然语言理解(NLU)的应用
几乎所有跟文字语言和语音相关的应用都会用到NLU,下面举一些具体的例子。
- 机器翻译
基于规则的翻译效果经常不太好,所以如果想提升翻译的效果,必须建立在对内容的理解之上。
如果是不理解上下文,就会出现下面的笑话:
I like apple, it’s so fast!
我喜欢苹果,它很快!
- 机器客服
如果想实现问答,就要建立在多轮对话的理解基础之上,自然语言理解是必备的能力。
下面的例子对于机器来说就很难理解:
A:“有什么可以帮您?”
B:“你好,我想投诉”
A:“请问投诉的车牌号是多少?”
B:“xxxxxx”
A:“请问是什么问题?”
B:“我刚上车,那个态度恶劣的哥谭市民就冲我发火”
机器很容易理解为:那个态度恶劣/的/哥谭/市民/就冲我发火
- 智能音箱
智能音箱中,NLU 也是重要的一个环节。很多语音交互都是很短的短语,音箱不但需要能否识别用户在说什么话,更要理解用户的意图。
A:“我冷了”
机器:帮您把空调调高1度
用户并没有提到空调,但是机器需要知道用户的意图——空调有点冷,需要把温度调高。
三、自然语言理解(NLU)的难点
下面先列举一些机器不容易理解的案例:
- 校长说衣服上除了校徽别别别的。
- 过几天天天天气不好。
- 看见西门吹雪点上了灯,叶孤城冷笑着说:“我也想吹吹吹雪吹过的灯”,然后就吹灭了灯。
- 今天多得谢逊出手相救,在这里我想真心感谢"谢谢谢逊大侠出手"。
- 灭霸把美队按在地上一边摩擦一边给他洗脑,被打残的钢铁侠说:灭霸爸爸叭叭叭叭儿的在那叭叭啥呢。
- 姑姑你估估我鼓鼓的口袋里有多少谷和菇!!
- A:“你看到王刚了吗?”,B:“王刚刚刚刚走”。
- 张杰陪俩女儿跳格子:俏俏我们不要跳跳跳跳过的格子啦。
那么对于机器来说,NLU 难点大致可以归为5类:
- 难点1:语言的多样性
自然语言没有什么通用的规律,你总能找到很多例外的情况。
另外,自然语言的组合方式非常灵活,字、词、短语、句子、段落…不同的组合可以表达出很多的含义。例如:
我要听大王叫我来巡山
给我播大王叫我来巡山
我想听歌大王叫我来巡山
放首大王叫我来巡山
给唱一首大王叫我来巡山
放音乐大王叫我来巡山
放首歌大王叫我来巡山
给大爷来首大王叫我来巡山
- 难点2:语言的歧义性
如果不联系上下文,缺少环境的约束,语言有很大的歧义性。例如:
A:我要去拉萨
B:
需要火车票?
需要飞机票?
想听音乐?
还是想查找景点?
- 难点3:语言的鲁棒性
自然语言在输入的过程中,尤其是通过语音识别获得的文本,会存在多字、少字、错字、噪音等问题。例如:
大王叫我来新山
大王叫让我来巡山
大王叫我巡山
- 难点4:语言的知识依赖
语言是对世界的符号化描述,语言天然连接着世界知识,例如:
大鸭梨
除了表示水果,还可以表示餐厅名
7天
可以表示时间,也可以表示酒店名
晚安
有一首歌也叫《晚安》
- 难点5:语言的上下文
上下文的概念包括很多种:对话的上下文、设备的上下文、应用的上下文、用户画像…
U:买张火车票
A:请问你要去哪里?
U:宁夏
U:来首歌听
A:请问你想听什么歌?
U:宁夏
四、NLU 的实现方式
自然语言理解跟整个人工智慧的发展历史类似,一共经历了3次迭代:
- 基于规则的方法
- 基于统计的方法
- 基于深度学习的方法
最早大家通过总结规律来判断自然语言的意图,常见的方法有:CFG、JSGF等。
后来出现了基于统计学的NLU 方式,常见的方法有:SVM、ME等。
随着深度学习的爆发,CNN、RNN、LSTM都成为了最新的”统治者”。
到了2019年,BERT和GPT-2 的表现震惊了业界,他们都是用了Transformer,下面将重点介绍Transformer,因为他是目前「最先进」的方法。
Transformer 和CNN / RNN 的比较
Transformer 的原理比较复杂,这里就不详细说明了,感兴趣的朋友可以查看下面的文章,讲的很详细:
《BERT大火却不懂Transformer?读这一篇就够了》
下面将摘取一部分《why Self-Attention?A Targeted Evaluation of Neural Machine Translation Architectures》里的数据,直观的让大家看出来3者的比较。
语义特征提取能力
从语义特征提取能力来说,目前实验支持如下结论:Transformer在这方面的能力非常显著地超过RNN和CNN(在考察语义类能力的任务WSD中,Transformer超过RNN和CNN大约4-8个绝对百分点),RNN和CNN两者能力差不太多。
长距离特征捕获能力
原生CNN特征抽取器在这方面极为显著地弱于RNN和Transformer,Transformer微弱优于RNN模型(尤其在主语谓语距离小于13时),能力由强到弱排序为Transformer>RNN>>CNN; 但在比较远的距离上(主语谓语距离大于13),RNN微弱优于Transformer,所以综合看,可以认为Transformer和RNN在这方面能力差不太多,而CNN则显著弱于前两者。
任务综合特征抽取能力
Transformer综合能力要明显强于RNN和CNN(你要知道,技术发展到现在阶段,BLEU绝对值提升1个点是很难的事情),而RNN和CNN看上去表现基本相当,貌似CNN表现略好一些。
并行计算能力及运算效率
Transformer Base最快,CNN次之,再次Transformer Big,最慢的是RNN。RNN比前两者慢了3倍到几十倍之间。
关于Transformer ,推荐几篇优秀的文章给大家,让大家有一个更综合的了解:
《放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较》
《从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史》
《效果惊人的GPT 2.0模型:它告诉了我们什么》
参考
自然语言理解 (百度百科)
自然语言理解 (维基百科)
BERT大火却不懂Transformer?读这一篇就够了 (zhihu)
why Self-Attention?A Targeted Evaluation of Neural Machine Translation Architectures (arxiv)
放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 (zhihu)
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 (zhihu)
效果惊人的GPT 2.0模型:它告诉了我们什么 (zhihu)
自然语言理解– NLU | NLI (easyai)
自然语言处理从零到入门 自然语言理解NLU相关推荐
- 自然语言处理从零到入门 NLP
自然语言处理-Natural language processing | NLP 一.NLP 为什么重要? 二.什么是自然语言处理 – NLP 三.NLP 的2大核心任务 自然语言理解 – NLU|N ...
- 自然语言处理从零到入门 自然语言生成NLG
自然语言生成 – Natural-language generation - NLG 一.什么是 NLG? 二.NLG 的3个 Level 三.NLG 的6个步骤 四.NLG 的3种典型应用 总结 参 ...
- 零基础入门自然语言处理的学习建议
在入门的阶段最适合做的事情: (1)阅读和学习自然语言处理(natural language processing,nlp)综述类文章和图书,对nlp有一个基本的认识,梳理nlp研究内容的演变,包括n ...
- 自然语言处理从零到入门 BERT
BERT | Bidirectional Encoder Representation from Transformers 什么是 BERT? 参考 什么是 BERT? BERT的全称是Bidirec ...
- 自然语言处理从零到入门 文本挖掘
文本挖掘 – Text mining 一.什么是文本挖掘? 二.文本挖掘的5个步骤 三.7种文本挖掘的方法 参考 网络上存在大量的数字化文本,通过文本挖掘我们可以获得很多有价值的信息. 本文将告诉大家 ...
- Task01——零基础入门NLP - 新闻文本分类之赛题理解
本篇目标 首先本篇文章会对赛题进行介绍以及个人对赛题的理解,带大家接触NLP的预处理.模型构建和模型训练等知识点. 赛题介绍 赛题名称:零基础入门NLP - 新闻文本分类 赛题任务:赛题以自然语言处理 ...
- 零基础入门NLP之新闻文本分类挑战赛——赛题理解
假期还有两周左右就结束了,正巧,Datawhale联合天池发布了零基础入门NLP的学习,于是报名参加了零基础入门NLP-新闻文本分类. 本人之前刚接触NLP没多久,记录一下学习的历程,供和我一样的小白 ...
- 基于Transformers入门自然语言处理!
前言 读者朋友们好,我是多多,许久未见,甚是想念. 我最近忙了1件自己感觉有意义的事情,特来分享.我将之前零零散散的Transformer博客.讲解文章进行了整理,形成了一个完整的教程叫做:learn ...
- 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开
不是你无法入门自然语言处理(NLP),而是你没找到正确的打开 小狼 2017-05-24 9:16:08 数据挖掘 评论(0) 作者:Mr.Scofield 〇.序 之前一段时间,在结合深度学习 ...
- 自然语言处理NLP、自然语言理解NLU、自然语言生成NLG、任务家族
自然语言处理NLP.自然语言理解NLU.自然语言生成NLG.任务家族 自然语言生成(NLG) 看图说话(image caption) 说话生图(text to image) 文本相似性(text si ...
最新文章
- [零基础学JAVA]Java SE应用部分-27.Java IO操作(01)
- linux下如何察看哪个进程在写硬盘
- python 目录和文件操作
- WinCE启动失败的原因与解决办法分析
- svn update一直卡哪里_电脑开机一直停在LOGO那里这是为什么呢?
- cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁
- 对图片对比度和亮度的理解
- appsetting 和connectionString 的区别。
- Asp.Net Core Identity 骚断腿的究极魔改实体类
- 贴纸效果_(新)AE插件:时尚印刷贴纸效果动画帽子眼镜胡须嘴唇图标社交标题库(3001)...
- MTK 驱动开发(23)---MTK camera AF 及tuning
- hdfs shell
- windows启动管理器怎么修复计算机,如果启动管理器丢失怎么办
- CCNA零基础视频教程本人原创 下载地址
- 使用Java对接永中格式转换
- 阅读目标检测综述论文
- 桌面图标变白,任务栏图标变白
- 全屏滚动插件之 fullpage.js
- H. Zebras and Ocelots -ICPC North Central NA Contest 2017
- 中国电子学会-全国青少年机器人技术等级考试标准 (1-6级)
热门文章
- MySQLzip格式安装包
- 使用pip报错:Could not fetch URL https://pypi.org/simple/selenium/: There was a problem confirming the ss
- Unity小地图制作与美化
- cad断点快捷键_CAD打断(BREAK)命令的使用技巧
- java 替换空白字符串
- LDD3 sleepy 模块
- 人家也是干 IT 的。
- 什么是 SQL 注入速查表
- 第五章、DOS基本命令与批处理(千峰网络安全300课时笔记)
- bilibili视频下载器v1.0.5 支持4K超清