重磅|深度解读谷歌最精准的开源自然语言解析器SyntaxNet:一个关键的进步与突破
谷歌、脸书和微软以及其他公司,已经使用深度神经网络来识别图片中的物体,也用于识别人们对虚拟助手说的单个单词。是一个混合的语言处理框架,它集成了所有的自然语言处理工具,包括词性的终端(POS)标注器,命名实体识别(NER),分析器,对指代消解系统,以及情感分析工具,并提供英语分析的模型文件。并不是最终解决方案,谷歌也只是将之视为迈向更好的人工智能语义分析工具的第一步。...
在自然语言理解研究中,如何处理语言歧义是一个难题。 SyntaxNet 结合了神经网络和搜索技术,在解决歧义方面取得了显着进步:SyntaxNet 可以像训练有素的语言学家一样分析简单的句法。 今天,Google 开源了 SyntaxNet 并发布了一个预训练的英语解析程序 Parsey McParseface 。 除了让更多人使用最先进的分析技术外,这一开源倡议还将帮助公司利用社区的力量加快解决自然语言理解问题的步伐,并有利于谷歌的业务。
如果你对 Siri 说,设置闹钟:早上 5:00,她可以做到。 但如果你问她哪种处方止痛药对她的胃刺激最小,她会不知道该怎么办,因为你说的是复杂的句子。 Siri 远未达到计算机科学家所说的“自然语言理解”。
这并不是说虚拟助手将永远如此。
科技巨头、初创公司和大学的研究人员正在研究如何让计算机理解自然语言。 多亏了深度神经网络,这项技术在这方面变得越来越好。 谷歌、Facebook 和微软等公司已经在使用深度神经网络来识别图片中的物体在线智能英语句子分析器,以及识别人们对虚拟助手说的单个单词。
希望这类人工智能能够显着提高机器理解词义的能力,让机器理解词与词如何相互作用形成有意义的句子。
“我们的大多数用户通过语言与我们交流,”谷歌自然语言理解和机器学习负责人费尔南多佩雷拉说。 “他们提出查询——打字或口语。因此,为了更好地为用户服务,我们必须让我们的系统了解用户的需求。”
今天,谷歌开源了软件SyntaxNet(句法分析程序)和英语解析程序Parsey McParseface,从中我们看到了自然语言理解快速发展的希望。
SyntaxNet 和 Parsey McParseface
SyntaxNet(语法分析程序)是谷歌自然语言研究的基础。 它使用深度神经网络对句子进行语义分析,试图弄清楚每个词在句子中扮演什么角色,以及这些词如何组合产生意义。 系统可以识别潜在的语法结构——哪个词是名词,哪个是动词,哪个是主语,主语和宾语之间的关系是什么——然后尝试理解句子的一般含义,但在机器可读的方式。
由于使用了深度神经网络,SyntaxNet 将句法分析推向了一个新的高度。 系统分析了数以百万计的句子,但这些不是普通的句子,而是经过人类仔细标记的句子(他们将所有句子作为示例在线智能英语句子分析器,然后仔细标记每个单词在句子中的作用。)。 在学习完所有这些标记的句子后,系统可以分析和判断其他句子中的相似词角色。
这与 Facebook 的做法不同。 后者试图通过向它们提供大量基本未标记的数据来训练这些计算机解析语言(请参阅 Teaching Machines to Understand Us),而不是像谷歌那样围绕人类专家构建它们。
SyntaxNet使用了谷歌此前发布的深度学习框架TensorFlow,也是迄今为止使用TensorFlow开发的最复杂、最先进的组件。
尽管如此,SyntaxNet 仍然是工程师和 AI 研究人员的工具。
谷歌还发布了一个预训练的英语解析器 Parsey McParseface(当一位发言人说公司正在为名字苦苦挣扎时,有人建议使用这个吸引人的绰号)。 输入该解析器的文本会自动分解为语法组件(例如名词、动词、主语和宾语)。 因此,计算机更容易对不明确的请求或命令进行正确的语义分析。
94% 准确率
简单地说,基本上是一个五岁的孩子学习语言的细微差别
谷歌研究人员随机选取英文新闻专线句子(来源 Penn Treebank)作为标准基准在线智能英语句子分析器,Parsey McParseface 检索句子单词之间的依赖关系,正确率为 94%。 这一结果不仅优于该公司此前的最佳结果,而且优于以往的任何研究方法。 虽然没有关于人类在这方面表现如何的文献,但公司内部注释项目的研究人员知道,在这方面受过训练的语言学家的准确率为 96-97%。 这意味着我们正在接近人类的表现——尽管只是在编辑写得很好的文本方面。
那么,SyntaxNet 是否可以与 SpaCy 和 CoreNLP 相媲美?
对此,Google NLP Research 产品经理 Dave Orr 回复道:
这取决于你所说的比率。 但是,从数字上看,SyntaxNet(据我所知,尤其是英语模型 Parsey McParseface)是有史以来最好的解析器。 假设所有这些分析程序都接近以前的最佳(我认为它们是),SyntaxNet 至少比竞争对手好一点点。
相比其他系统英语,SyntaxNet只做一件事(依赖分析,包括词性标注,所以可以说是两件事)。 SpaCy也叫命名实体识别; 斯坦福的系统可以做从 NER 到情感分析的所有事情。
如果你想要的是一个解析器,SyntaxNet 是最好的。 如果您需要更多,您可能需要使用其他系统,或者直接使用其他系统。
另一个区别是 SyntaxNet 基于 Google 的开源软件 TesnorFlow。 如果您有兴趣在神经网络结构之上构建 NLP 系统,那么它非常有用。
SpaCy 和 CoreNLP 都是英语NLP 开发者经常使用的软件。
SpaCy 是一个用于 Python 和 CPython 的 NLP 自然语言文本处理库。 这是一款基于 MIT 许可的开源商业软件。
根据其在 Github 上的介绍,SpaCy 具有以下特点:
此外,SpaCy 有两个顶级特性:最快:
SpaCy官网介绍:2015年两篇同行评议论文证实,spaCy提供了世界上最快的句法分析,世界上最准确的系统之间的误差在1%以内。 但少数几个比 SpaCy 更准确的系统却慢了 20 倍或更多。
Stanford CoreNLP 是一个混合语言处理框架,它集成了所有自然语言处理工具,包括词尾标注器、命名实体识别(NER)、分析器、共指解析系统和情感分析工具,并提供模型文件用于英语分析。
它提供的内容包括:
系统原理
SyntaxNet 是一个语法分析框架英语培训,是自然语言理解系统的第一个关键组件。 给定一个句子,系统可以给句子中的每个词打上词性标签,即描述对应词的句法功能(例如,主谓宾),也可以判断句法给定句子中单词之间的关系。 关系由依赖分析树表示。 这些句法关系与句子的潜在含义有直接联系。
关系树的一个简单例子如下:Alice see Bob
对这句话的分析:“Alice”和“Bob”是名词,“see”是动词。 主要动词是“see”,也是句子的谓语,“Alice”是seeing的主语,“Bob”是seeing的宾语。 正如研究人员所预料的那样,Parsey McParseface 正确地分析了句子的句法结构。 但是,它可以分析更复杂的句子。
分析:“爱丽丝”和“鲍勃”分别是“看见”的主体和客体。 另外,还有一个关系从句用动词“reading”修饰“Alice”,“seeing”表示为时间修饰语“yesterday”修饰语等。通过理解依存结构中的语法关系,可以简单回答各种问题:例如,爱丽丝看到了谁? 谁看见鲍勃了? 爱丽丝在读什么书? 或者,爱丽丝什么时候见到鲍勃的?
神经网络+搜索解决语言歧义问题
人类可以使用常识来消除句子歧义,而谷歌的系统使用神经网络。
人类的语言是相当模棱两可的。
像“Find me cats in hats”这样简单的搜索查询可以解释为“find cats in hats”或“find cats sitting in hats”。 s cat”。一个中等长度的句子——大概 20 到 30 个词——有成百上千种可能的语义结构。
自然语言的语义分析必须以某种方式搜索给定文本的所有可能的语义结构,以找到最合乎逻辑的结构。
举一个简单的例子,Alice开着她的车在街上行驶,至少有两种可能的依赖分析:
第一个分析是正确的:爱丽丝在开她的车; 第二个显然很荒谬:街道在她的车里。 这里有一个歧义问题,因为介词“in”可以修饰“drive”或“street”。 这方面的一个例子是所谓的介词短语的歧义。
人类更擅长处理高度模糊的语言在线智能英语句子分析器,他们甚至不会觉得有什么困难,因为常识可以解决这个问题。 计算机面临的一大挑战是像人类一样处理歧义句。 例如,较长的句子中存在多个歧义,组合爆炸产生多个句子结构。 这些结构中的绝大多数是极不合逻辑的,必须通过语义分析在某种程度上被丢弃。
SyntaxNet 使用神经网络来解决这个问题。
系统会从左到右处理输入的句子英语,每处理一个词,就会逐渐添加和分析词与词之间的依存关系。 每个处理都意味着许多可能的选择(因为歧义)。 这时,神经网络会根据每个竞争性答案的逻辑合理性进行评分。 正因为如此,在模型中使用 beam search 很重要。 系统不是简单地对每个位置取一级最优选择,而是在每一步保存多个局部假设。 只有当考虑到其他几个排名更高的假设时,才会舍弃之前的假设。
简单解析是按照从左到右的决策顺序进行的,例如:我订了一张去谷歌的机票。
如前文所述,将学习和搜索紧密联系起来以实现高预测准确性非常重要。
不足的
Parsey McParseface 和 SyntaxNet 并不是最终的解决方案,Google 只是将其视为迈向更好的 AI 语义分析的第一步。
尽管 SyntanxNet 被许多同行认为是同类产品中的佼佼者,但该技术远未达到对英语的完美掌握。 “我们的系统最适合结构良好、编辑良好的文本,但社交媒体和搜索查询的不规则性更具挑战性,”佩雷拉说。 “我们确实取得了进步,但还有很多工作要做。” 改进的空间。”
从网页中提取的句子更难分析(2011),Parsey McParseface 在这个数据集上表现不佳,准确率刚刚超过 90%。
此外,自然语言处理中仍然存在很多歧义,需要人类水平的常识来解决——“我们从经验中学到的东西,以及来自同龄人和父母的指示。” 佩雷拉说,“那种非常丰富的解决问题的能力是我们系统中完全缺失的东西。”
研究语言理解的斯坦福大学教授诺亚古德曼说,提高句法理解只是计算机掌握语言的开始。 “句法当然是语言的重要组成部分,”他说,“但在句法和语义之间,以及从浅层语义到意义推理之间,存在着很大的差距。”
此外,专门研究自然语言理解的华盛顿大学计算机科学教授诺亚史密斯表示,语言分析的最后希望在于使用互联网上更广泛的数据来训练此类系统,但这样做也非常困难,因为人们使用的语言形式多种多样。
史密斯还指出,对语言使用(非英语)的研究还不够。
未来
虽然不是 100% 准确,但该系统对于许多应用来说已经足够好了。
管理公司自然语言理解研究工作的谷歌研究主管 Fernando Pereira 估计,与以前的方法相比,该工具已使公司产品的错误减少了 20-40%,并且还在帮助谷歌的实时服务包括企业 拳头产品、搜索引擎。
通过共享 SyntaxNet,谷歌希望加快解决难题的步伐重磅|深度解读谷歌最精准的开源自然语言解析器SyntaxNet:一个关键的进步与突破,就像它对开源软件引擎 TensorFlow 所做的那样。 通过让 SyntaxNet 可供所有人使用和修改,谷歌可以获得更多人的帮助,以解决自然语言理解中的棘手问题。
当然,它最终也会有利于谷歌的业务。
谷歌在数字助理领域远非孤军奋战。 微软发布了 Cortana,而亚马逊正在研究如何通过其语音助手 Echo 获得成功。 许多初创公司也加入了这场竞赛,包括最近发布了最新演示的 Viv。 Facebook 对 Facebook M 有着更大的野心,这是一种通过文本(而不是语音)聊天的工具,旨在帮助用户处理从安排约会到计划下一个假期的所有事情。
尽管有如此多的知名人士在这个主题上工作,但数字助理和聊天机器人远非完美。 因为,解决自然语言理解的底层技术远非完美。 Facebook M 只是部分依赖人工智能,更多的是依靠人类来帮助完成复杂的任务,帮助训练人工智能。
Parsey McParseface 和 SyntaxNet 并不是最终的解决方案,Google 只是将它们视为迈向更好的 AI 语义分析工具的第一步。
类似于真人的数字助理与现实相去甚远。 然而,我们越来越近了。 佩雷拉表示,路漫漫其修远兮。 但我们确实在构建能够更准确地理解人类的技术。
参考:
#/设置/id/601443/
© 本文由机器之心原创。 转载请联系本公众号授权。
✄------------------------------------------------
加入机器之心(全职记者/实习生):
贡献或寻求报道:
广告及商务合作:
猜你喜欢
发表评论
评论列表