请选择 进入手机版 | 继续访问电脑版

81路工程师大巴 - 81Lu.Net

 找回密码
 立即注册
搜索
查看: 51|回复: 0
收起左侧

自然语言处理遇到的那些“坑”

[复制链接]
发表于 2017-11-22 11:59 | 显示全部楼层 |阅读模式

来不及解释了,快上车,享受更多福利,轻轻松松做大牛!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在营销机器人之后,新闻机器人也横空出世。近日新闻机器人发表的一篇题为《副市长晨练捡垃圾》的新闻。同样的表述,因为语气不同、断句不同等,会产生不同的理解。而新闻中的歧义问题反映出的只是自然语言处理面临诸多挑战的冰山一角,本文深度解析自然语言面临的三大问题,细数自然语言处理遇到的那些“坑”。

要探究自然语言处理面临的挑战?你得先弄明白什么是自然语言处理。
自然语言处理,简称NLP,是计算机科学领域与人工智能领域中的一个重要方向,是一门融语言学、计算机科学、数学于一体的科学。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统。如果没有语言,人类的思维也就无从谈起。只有当计算机具备了处理自然语言的能力时,机器才算实现了真正的智能。

不难看出,机器需要具备处理自然语言的能力,但研究自然语言、有效实现自然语言通信并非易事,自然语言处理大致面临三大挑战:普遍存在的不确定性、语言知识处理的复杂性、输入的不规范性。为什么会有这些挑战?这些挑战又有什么表现呢?

一.普遍存在的不确定性
自然语言处理面临的最大困难就是其普遍存在的不确定性,即消除歧义,涵盖词法、句法、语用分析中存在的歧义问题。在每一个层次中或是在下一层次向上一层次转变中都存在着歧义和多义现象,即形式上一样的一段字符串,在不同的场景或不同的语境下,可以理解成不同的词串、词组串等,并有不同的意义。造成歧义出现的原因是,对于机器来说,人类活动非常复杂,而语言的词汇和句法规则又是有限的,它们中的大多数表述需要根据特定的相应的语境和场景的规定而得到解决,这就造成同一种语言形式可能具有多种含义。

a.词法
在词法中,存在单词边界界定的歧义问题,即分词。在口语中,词与词是连贯表述的,在书写上中文也没有词与词之间的边界,词和词之间没有将不同单词切分开来的分隔符,这时候,对于中文的自然语言处理就面临不同于英文等西方语言的另一步工序,分词,即由机器在词与词之间自动加上分隔符,从而将中文文本切分为独立的单词。通俗的说,就是查字典,把句子从左到右扫描一次,遇到字典里有的词标识出来。这种问题能解决多数问题,比如将句子“今天天气炎热”切分,变成“今天/天气/炎热”。但当遇到二义性的分割就无能为力了。中文分词是中文自然语言处理的基础,在自然语言处理中扮演着重要角色。

中文分词细分来讲主要存在歧义切分和新词发现的问题。
分词的第一大难点是歧义切分问题。一般当一个字可以同时作为两个词的组成部分,当这两个词按序同时出现时,就可能会出现歧义现象。目前的歧义一般分为三种:交叉歧义,组合歧义,真歧义。


  • 交叉歧义(字符串ACB,AC和CB都是一个汉语词汇,会存在多种切分交叉在一起):“我们研究所有东西”,“研究所”和“有”或者“研究”和“所有”都是合理的切分方式。

  • 组合歧义(字符串AB是一个词汇,A和B同时也是词汇,会存在不同语义下切分不同):“这个人手上有颗痣”,“目前人手紧缺”。前者是“人”/“手”两个实体词,后者是“人手”一个实体词。

  • 真歧义(怎么切分都合理):“乒乓球拍卖完了”,切分为以下两种情况都是合理的,“乒乓球拍/卖/完了”,“乒乓球/拍卖/完了”。

新词发现是分词中的第二大难点。新词是指在从前的分词词典中没有收录,后来出现并被大家公认的词语。新词发现难的原因在于新词覆盖面广,词语构成没有普遍规律;低频新词数据稀疏,识别难度大。

最典型的新词就是人名词,如“李达康心系GDP”,句中的“李达康”是人名,如果把“李达康”这个基本词收录到词典中就能解决这个问题。但是“李达康”是近期电视剧中出现的人物,词典并未讲该词收录,及时、完整地收录全部人名是一个不现实的工程。另外,人们还会不断创造新的词语字,这一类词被称为“未登录词”,比如“屌丝”、“不明觉厉”、“累觉不爱”等。除了人名、未登录词以外,地名、机构组织名、事件名、缩略语、派生词、各种专业术语也属于新词。

v2-ab658d20efcd0419a93b867aad3c499e_hd.jpg

新词是中文分词算法在召回层面上最主要的难题,也是评价一个分词系统好坏的重要标志。如果一个新词无法被分词系统识别,会导致很多噪音数据被召回,进而会影响后面的句法分析和语义分析等相关处理。比如句子“速度与激情8挺不错的”,若词典里未收录“速度与激情8”这个电影名,可能会这样分词:“速度/与/激情/8”,情况好一点,词典里有“速度与激情”这个词,机器会认为“8”是一个数字,仍然不知道这里指的是《速度与激情8》这部电影。
b.句法
除了词法以外,句法也存在着各种歧义问题。例如在短语级别上,结构关系不同和结构层次不同都会造成歧义的出现。比如“修改方案”可以理解为动宾关系(修改了一个方案),也可以理解为偏正关系(一个修改方案),这是结构关系不同所造成的歧义;比如“许多朋友送来的礼物”,既可以理解为礼物多,也可以理解为朋友多,这是结构层次不同造成的歧义。
又如在句子级别上,可能出现语义组合歧义。比如“他在汽车上画画”,介词短语“在汽车上”的语义既可以指“他”(他在汽车上上,他画画),也可以指向“画画”(他画画,画在了汽车上)。由此可见,同样一个单词、短语或者句子有多种可能的理解,表示多种可能的语义。如果不能解决好各级语言单位的歧义问题,我们就无法正确理解语言要表达的意思。

c.语用
语用也可能存在歧义。当语气不同的时候,表达的意思可能大相径庭。例如问题“你今天钓到鱼了吗?”,回答“运气好极了,一条都没有钓到。”机器需要判定,这里的“运气好极了”可不是有好运气的感慨。

二.语言知识处理的复杂性
为了消除歧义,机器需要获取更多的知识,而消除歧义所需要的知识在获取、表达以及运用上存在困难,主要包含上下文知识和背景知识的问题。

a.上下文知识的获取问题
所谓的“上下文”指的是当前所说这句话所处的语言环境,例如说话人所处的环境,人说话时指代的对象,人说话时省略的部分是什么,或者是这句话的前几句话或者后几句话等等。在试图理解一句话的时候,上下文的影响十分重要。由于上下文对于当前句子的暗示形式是多种多样的,因此如何考虑上下文知识获取是语言知识处理复杂性的一大体现。

在自然语言处理的应用中,上下文知识获取的问题有不同的表现。第一,在日常对话中,人们时常会在表述中做省略,让表达更简洁。因此,上下文知识获取中存在对省略部分进行补充的一步,称为“省略恢复”。 比如用户向客服系统发问:“发票快递费怎么收,在线支付。”未等客服系统做出回答,他继续说道:“到付呢?”这是自然语言中典型的省略问题,要求机器能够根据上下文的相关信息,对可能的语法空位和语义空位进行填充,实现对省略部分的恢复。在这个例子中,机器应在“到付呢”前恢复问题的陈述部分“发票快递费怎么收”,并给出合适的答案。

v2-6df8f14ca3d3481f3d6b6cee36ee9c40_hd.jpg

第二,在人的交流过程中,时常会有指代,在表达中适当地使用指代会让表达更加简练却不影响本意的阐述。文本中是否存在指代现象,准确识别指代的是什么内容,机器遇到的这一不容小觑的难点称为“指代消解”。比如在客服系统中,用户这样说:“取消订单为什么还扣费?”客服回答:“您好,为了避免中途取消订单造成司机的损失,接单后超时取消将会产生一定的费用。”用户接着追问:“上次也是这样都没扣,怎么回事?”这时客服应理解用户问句里的“上次”,指的是“上次中途取消订单”,才能给出正确的回复:“之前取消订单却未产生扣费是因为您取消的时间在司机接单后五分钟内。若取消时间在接单后五分钟内,将不会产生费用。感谢理解。”

v2-0c04b0925c5dd0a3515c7734eb9760dc_hd.jpg

第三,在某些以任务驱动的对话中,用户通过使用某类产品会在某一领域获得相对完整的服务,解决一个复杂问题,或者获得某种方向性的引导。在这种情况下,整个对话的场景被限定,需要确定一些关键的信息才能完成任务,但用户一般不会再一次表述中就表达完所有需要提供的信息。这时候,机器需要能够主动向用户询问,并且会根据上下文来判断继续提出什么样的问题,这就是“槽位填充”。比如餐厅定位,涉及到时间、地点、餐厅名、用餐人数等属性:

v2-92129bb525b0b9737aa1f315e3104c1b_hd.jpg


槽位填充就是在对话中识别出用户提供的餐厅名、用餐人数这些属性,这些属性的状态就是这个对话的状态,对话状态跟踪就是记录当前用户所有动作以及对应的槽位的状态并维护整个对话的状态。
b.背景知识获取问题

正确理解人类语言还要有足够的背景知识,机器也需要了解约定俗成的东西。比如某打车软件司机向客服系统询问:“都十点了,怎么还没奖励?”这就需要系统知道该打车软件在晚间9点以后就有夜间奖励。如果机器不知道这个政策,往往会给出令人啼笑皆非的答案。

对俗语、谚语等的深入理解、运用也同样重要。在英语中“The spirit is willing but the flesh is weak.”,意思是“心有余而力不足”。但是当时的某个机器翻译系统将这句英文翻译到俄语,然后再翻译回英语的时候,却变成了“The Voltka is strong but the meat is rotten.”,意思是“伏特加酒是浓的,但肉却腐烂了”。从字面意义上看,“spirit”与“Voltka”对译似无问题,而“flesh”和“meat”也都有肉的意思,但两句翻译的意思却南辕北辙。关键的问题就在于在翻译的过程中,机器翻译系统是从字面上进行翻译,却没有理解句子真正的寓意。
三.输入的不规范性
在输入时,可能会出现错误。常见的不规范输入主要是错别字、口语化、语法不对。

a.错别字
就客服系统来说,用户时常会有一些有瑕疵的输入,例如:“打车卷怎么用啊,不会用”、“伺机居然绕路,气死我了”,用户错把“打车券”打成了“打车卷”、把“司机”打成了“伺机”,这需要机器具备“纠错”功能。

b.口语化
有时候客服系统还会遇到这样的情况:“跟他说了我赶时间他还不麻溜儿地过来,这不能够啊。”如果不能具备理解口语化的能力,机器恐怕不知道用户这是在投诉司机接人速度太慢吧。

c.语法不对
正确的句式应该是主、谓、宾的格式,但人的的表达往往没那么多条条框框:“顺风车没有到目的地就强制让我下车,他自己找找错误我然后还要就不按我给她说的路线走他自己绕路,还要让我强制交高速费”。可以看到,用户可能因为情绪激动语序颠倒。机器需要修正这些错误的语法,理解用户投诉的三个要点:未达到强制用户下车、绕路、强制交高速费,投诉对象是顺风车车主。


从上面三个方面的主要困难,我们看到自然语言处理这个难题的根源就是人类语言的复杂性和语言描述的外部世界的复杂性。人类语言承担着人类表达情感、交流思想、传播知识等重要功能,因而自然语言处理也要求机器需要具备强大的灵活性和表达能力,理解语言所需要的知识又是无止境的,并不断“学习”无止境的、变化的知识,自然语言处理道阻且长。


发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请及时给回复的帖子【加分】

当帖子分数用完后,则主题自动结贴,楼主可以返回50%的帖子分数。如果选择【无满意答案结贴】,则结帖后不返分!

添加对方为好友并关注TA,或许会有意想不到的收获!

手机版|小黑屋|81路工程师大巴 - 81Lu.Net ( 豫ICP备15009715号 )

GMT+8, 2017-12-16 13:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表