语录网随笔 重磅|谷歌开源最精确自然语言解析器SyntaxNet的深度解读:一次关键进步以及一个重要工具

重磅|谷歌开源最精确自然语言解析器SyntaxNet的深度解读:一次关键进步以及一个重要工具

视频推荐

步骤/方法

机器之心原创

作者:吴攀、微胖、李亚洲

在自然语言理解的研究中,如何处理语言歧义是一个难题。语法网结合了神经网络和搜索技术,在解决歧义问题方面取得了显著进展:语法网可以像训练有素的语言学家一样分析简单的语法。今天,谷歌开放了语法网,并发布了预先训练好的英语解析器Parsey McParseface。除了让更多人使用最先进的分析技术,这一开源举措还将帮助公司利用社区力量加快解决自然语言理解问题的步伐,使谷歌的业务受益。

如果你告诉Siri设置闹钟:凌晨5点,她可以做到。但如果你问她哪种处方止痛药对她的胃刺激最小,她会不知所措,因为你的句子很复杂。Siri远未达到计算机科学家所说的“自然语言理解”

这并不是说虚拟助手会一直这样。

科技巨头、创业公司、大学的研究人员正试图弄清楚如何让计算机理解自然语言。得益于深度神经网络,这方面的技术越来越好。谷歌、脸书和微软等公司已经使用深度神经网络来识别图片中的物体,并识别人们对虚拟助手说的话。

人们希望这种人工智能能够显著提高机器理解单词含义的能力,让机器能够理解单词和单词是如何相互作用并形成有意义的句子的。

谷歌自然语言理解和机器学习主管费尔南多·佩雷拉说:“我们的大多数用户通过语言与我们交流。他们要求查询——打字或口头输入。因此,为了更好地服务用户,我们必须让我们的系统理解用户想要什么。”

今天,谷歌已经为英语开放了软件Syn出租车网(语法分析程序)和Parsey McParseface,从中我们看到了自然语言理解快速发展的希望。

句法分析程序是谷歌自然语言研究的基础。它使用深度神经网络对句子进行语义分析,试图弄清楚每个单词在句子中扮演什么角色,以及这些单词是如何组合起来产生意义的。该系统可以识别潜在的语法结构——哪个单词是名词,哪个是动词,哪个是主语,以及主宾关系如何——然后试图以机器可读的方式理解句子的一般含义。

语法网将句法分析提升到了一个新的水平,这要归功于深度神经网络的使用。系统分析了数百万个句子,但这些不是普通的句子,而是精心标记的句子(他们浏览所有的句子作为例子,然后仔细标记每个单词在句子中的作用)。在学习了所有这些标记的句子后,系统可以分析和判断相似单词在其他句子中的作用。

这与脸谱网的方法不同,脸谱网试图通过向计算机提供大量未标记的数据来训练计算机解析语言,而不是围绕谷歌这样的人类专家来构建。

宪法网使用谷歌之前发布的深度学习框架TensorFlow,这是迄今为止使用TensorFlow开发的最复杂和最先进的组件。

然而,SyntakNet是工程师和人工智能研究人员的工具。

谷歌还发布了预先训练好的英语解析器Parsey McParseface(一个朗朗上口的昵称,是在一位发言人表示该公司在名称上苦苦挣扎时由某人提出的)。发送到这个解析器中的文本被自动分解成句法成分(如名词、动词、主语和宾语)。因此,计算机更容易对模糊的请求或命令进行正确的语义分析。

94% 的准确性

简而言之,这基本上是一个五岁的孩子在学习语言的细微差别

Google研究人员随机选择了English Newswire句子(来自Penn Treebank)作为标准基准,Parsey McParseface以94%的准确率重新获得了句子词之间的依赖关系。这一结果不仅优于该公司之前的最佳结果,而且击败了之前的任何研究方法。尽管没有关于这一领域人类表现的研究文献,但研究人员从该公司的内部注释项目中了解到,在这一领域接受培训的语言学家的准确率为96-97%。这意味着我们正在接近人类表现——但仅限于编辑良好的文本。

那么,宪法网可以和SpaCy和CoreNLP相提并论吗?

谷歌NLP研究公司的产品经理戴夫·奥尔回应道:

这取决于你所说的"than"是什么意思。然而,就数字而言,Syn的Net(据我所知,尤其是英模Parsey McParseface)是已经出版的最好的分析器。假设所有这些分析程序都接近以前的最佳水平(我认为它们处于这个水平),Syn的Net至少比其他竞争对手好一点。

与其他系统相比,Syn出租车网只做一件事(依赖分析,包括词性标注,所以你可以说两件事)。SpaCy也被称为命名实体识别(命名实体识别);斯坦福的系统将做包括NER和情感分析在内的所有事情。

如果你想要一台分析仪,Syn的Net是最好的。如果你要求更多,你可能需要使用其他系统,或者直接使用其他系统。

另一个不同之处是,宪法网是基于谷歌的开源软件TesnorFlow,如果你有兴趣在神经网络结构上构建NLP系统,使用它是很棒的。

SpaCy和CoreNLP是英语NLP开发人员经常使用的软件。

SpaCy是一个Python和CPython NLP自然语言文本处理库,是MIT许可协议下的开源商业软件。

根据其在Github上的介绍,SpaCy具有以下特点:

标签相关语法分析(OntoNotes 5的准确率为91.8%)

命名实体识别(OntoNotes 5的准确率为82.6%)

词性标注(OntoNotes 5的准确率为97.1%)

易于使用的词向量

所有字符串都映射到整数ID

包括易于使用的拼写功能

不需要预处理Spacy用的是原始材料

此外,SpaCy有两个顶级性能:最快速度:<每个文档50ms;SpaCy对所有任务性能(语法分析、命名实体识别、词性标注)的准确率与顶级相比,误差不到1%,但Spacy的速度要快得多。

能够解析句子的软件-查句子的app(图37)

根据SpaCy的官方网站:2015年的两篇同行评议论文证实,spaCy提供了世界上最快的句法分析,来自世界上最精确的系统的误差不到1%。但少数系统比SpaCy的准确速度慢20倍甚至更多。

Stanford CoreNLP是一个混合语言处理框架,集成了所有自然语言处理工具,包括词性终端(POS)注释器、命名实体识别(NER)、分析器、回指消解系统和情感分析工具,并为英语分析提供模型文件。

它提供的内容包括:

具有多种解析工具的综合工具包

快速可靠地分析任意文本

综合高级文本分析

支持许多主要的人类语言

适用于多种主要编程语言

可以作为一个简单的Web服务运行

系统原理

语法网是一个句法分析框架,是自然语言理解系统的第一个关键组件。给定一个句子,系统可以用词性给句子中的每个单词贴上标签,词性描述了相应单词(例如,主谓宾语)的句法功能,也可以确定给定句子中单词之间的句法关系,并使用依赖解析树来表示。这些句法关系与句子的潜在意义直接相关。

关系树的一个简单例子如下:爱丽丝看见鲍勃

能够解析句子的软件-查句子的app(图50)

本句解析:"Alice"和"Bob"是名词,"see"是动词,主动词是"see",也是句子的谓语,"Alice"是看见的主语,"Bob"是看见的宾语,正如研究人员所料,Parsey McParseface正确地分析了句子的句法结构。然而,它可以分析更复杂的句子。

解析:"Alice"和"Bob"分别是"see"的主语和宾语。此外,还有一个带有动词"read"的关系从句来修饰"Alice","see"被修饰语"昨天"修饰,表示时间等。理解依赖结构中的语法关系,可以简单地回答各种问题:例如,Alice看见了谁?谁看见了Bob?Alice一直在读什么书?或者,Alice什么时候看见Bob的?

神经网络+搜索解决语言歧义问题

人类可以使用常识来消除句子中的歧义,而谷歌系统使用的是神经网络。

人类语言具有相当的歧义性。

一个简单的搜索查询,如“查找戴帽子的猫”,可能被解释为“寻找戴帽子的猫”或“寻找戴帽子的猫”。一个中等长度的句子——大约20到30个单词——有数百甚至数千种可能的语义结构。

自然语言的语义分析必须在一定程度上搜索所有可能的语义结构,并根据给定的文本找到最有逻辑的结构。

举个简单的例子,爱丽丝开车在街上行驶,至少有两种可能的依赖分析:

能够解析句子的软件-查句子的app(图59)

第一个分析是正确的:爱丽丝正在开她的车;第二个分析显然是荒谬的:the street is in her car这里有一个歧义问题,因为介词"in"可能会修饰"Drive"或"street",这个例子就是所谓的介词短语的歧义。

人类在处理语言高度歧义的问题上要好得多,甚至不觉得有什么困难,因为常识可以解决这个问题,计算机的一大挑战就是像人类一样处理模糊的句子,比如更长的句子会出现多个歧义,组合爆炸会产生多个句子结构,这些结构大多极不符合逻辑,必须通过语义分析在一定程度上抛弃。

语法网使用神经网络来解决这个问题。

系统会对输入的句子进行从左到右的处理,每个单词都会被处理,分析词之间的依赖关系也会逐渐添加,每个处理的地方都意味着很多可能的选择(因为有歧义),此时神经网络会根据每个竞争答案的逻辑合理性进行评分,这就是为什么在模型中使用波束搜索非常重要的原因。该系统不是简单地对每个处理地点采用一级最优选择,而是在每一步保存多个局部假设,只有在考虑到其他几个排名更高的假设后才丢弃先前的假设。

以从左到右的决策顺序进行简单的语法分析,例如:我预订了一张去谷歌的机票。

能够解析句子的软件-查句子的app(图65)

正如之前的论文所描述的,将学习和搜索紧密联系起来,从而实现高度的预测精度是非常重要的。

不足

Parsey McParseface和SyntakNet并不是最终的解决方案,谷歌只是将它们视为朝着更好的人工智能语义分析迈出的第一步。

尽管它的许多同行认为SyntanxNet是许多系统中最好的,但该技术远未达到对英语的完美掌握。"我们的系统在结构良好、经过精心编辑的文本上运行得最好,但社交媒体和搜索查询的违规行为更具挑战性。我们确实取得了进展,但仍有很大的改进空间。"

从网页中提取的句子更难分析(2011年),Parsey McParseface在这组数据上表现不佳,准确率略高于90%。

除此之外,自然语言处理中还有许多模糊之处需要人类水平的常识来解决那些我们从经验中学到的东西,以及来自同伴和父母的指令佩雷拉说,那种非常丰富的解决问题的能力在我们的系统中完全缺失。

斯坦福大学研究语言理解的教授诺亚·古德曼说,提高句法理解只是计算机掌握语言的开始。他说:“句法肯定是语言的重要组成部分,但句法和语义学之间还有一大步,从浅层语义学到意义推断。”

此外,华盛顿大学专门研究自然语言理解的计算机科学教授诺亚·史密斯表示,语言分析的最终希望在于利用互联网上更广泛的数据来训练这样一个系统,然而,要做到这一点也很困难,因为人们在网上使用语言的方式有很多。

史密斯还指出,对语言使用(非英语)的研究还远远不够。

未来

虽然不是100%准确,但该系统足以用于许多应用。

谷歌研究主管费尔南多·佩雷拉(Fernando Pereira)(他负责监督该公司的自然语言理解研究)估计,与以前的方法相比,该工具已经将该公司产品的错误率降低了20-40%,并且还在协助谷歌的实时服务,包括该公司的旗舰产品——搜索引擎。

通过共享SyntaNet,谷歌想加快解决难题的步伐,就像最初的开源软件引擎TensorFlow一样。通过让每个人都可以使用和修改SyntaNet,谷歌可以得到更多人的帮助,解决自然语言理解中的难题。

当然,最终也将惠及谷歌业务。

在数字助理的竞争领域,谷歌远非孤例。微软发布了Cortana,亚马逊正在摸索语音助手Echo的成功。无数创业公司也加入了竞争,包括Viv,它最近发布了最新演示。Facebook有更多的野心,他们推出了Facebook M,这是一个可以通过文本(而不是语音)聊天的工具,旨在帮助用户完成从约会到计划下一次假期的一切。

尽管有这么多知名人物从事这项研究,但数字助理和聊天机器人还远未完善。因为解决自然语言理解的潜在技术还远未完善。Facebook M仅部分依赖人工智能,更多依赖人类帮助完成复杂任务,帮助训练人工智能。

Parsey McParseface和SyntakNet不是最终的解决方案,谷歌只是将它们视为朝着更好的人工智能语义分析工具迈出的第一步。

像真人一样的数字助理,离现实还很远;但我们越来越近了,佩雷拉说道,路漫漫其修远兮,然而,我们确实在构建能够更准确理解人类的技术。

参考资料:

©本文由机器之心原创,授权请联系本公众号。

本文来自网络,不代表语录网立场,转载请注明出处:https://www.chinansn.com/article-1-9336-0.html