看文本知语义:谷歌推一步到位自然语言理解框架SLING | 论文+代码

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介:
本文来自AI新媒体量子位(QbitAI)

大多数自然语言理解(NLU)系统分析语言的过程是一条由分析步骤组成的流水线:先标注词性,再进行句法依存分析,然后为输入文本计算出语义表示。

谷歌打破了这条流水线上的所有步骤,把它们捏到了一起,推出了一步到位的自然语言理解系统:SLING

456863c0b9c36d518d6d47327a04edea4c1ce3c8

SLING能够直接分析自然语言文本,根据它的语义表示生成语义框架图示。与原有的大多数系统相比,它避免了自然语言理解流水线的一个严重缺陷:前面步骤中的错误会影响后续步骤的分析。

实际上,流水线式的自然语言理解系统有利于对语言理解的不同阶段进行模块化,但是,早期步骤中的错误会在后边的步骤里发生连锁反应,对最终的表示产生影响。

比如说,一个典型的流程可能会在早期步骤中进行句法依存分析,后来又需要共指消解。这种情况下,如果依存分析出现错误,共指消解的结果也会受到影响。

而SLING这种直接从文本到语框架图示的方法中,输出的框架图示能直接捕捉到用户感兴趣的语义标注,同时避开了流水线式系统所带来的陷阱,还能防止出现不必要的计算。SLING使用一个专用的循环神经网络(RNN),通过框架图示上的增量编辑运算,来为输入文本计算输出表示。

而框架图示则足够灵活,能够捕捉到很多易引发兴趣的语义任务。

SLING分析器的训练只用到了输入词语,不需要依存分析等任何中间注释。

在推理阶段,SLING能够快速进行分析,它提供了一个高效、可扩展的图示存储实现,以及一个生成高效代码来执行RNN的JIT编译器。虽然SLING现在还在试验阶段,但它在普通台式机CPU上的分析速度已经超过了2500 token/秒。

框架语义分析

框架语义学将文本(例如一个句子)的意思表示为一组形式语句,每个形式语句成为一个“框架”,可以看作意义或者知识的一个单元,也包含和概念的交互,或者与之相关的其他框架。

SLING将所有语义框架组织成一些列插槽,每个插槽都有自己的名字(角色)和值,这个值可以是文字的,也可以是和另一个插槽之间的连接。

比如说这句话:

Many people now claim to have predicted Black Monday.

SLING会从中认出提及的实体(例如人物、地点、事件)、测量值(例如时间、距离)以及其他概念(例如动词),然后将它们放置在与输入中动词相关的正确语义角色上。

比如说句中的“predict”,就表示为PREDICT-01框架。PREDICT-01和施行predict这个动作的主体有交互(插槽),通过ARG0插槽表示,ARG0与表示“people”的PERSON框架相连接;PREDICT-01还和被预测的客体有交互,表示为ARG1插槽,和表示“Black Monday”的EVENT框架连接。

如下图所示:

00b74ac54ced2f3c913f30bfc3f8a8ab051bd3a0

框架语义分析的任务就是直接生成一幅图示,包含像上图这样通过插槽互相连接的框架。

上面只是一个简单的例子,框架图示很强大,适用于各种复杂的语义标注任务。对于初学者来说,框架是一种将语言内部和外部信息结合起来的方式。然后,这就可以用来处理复杂的语言理解问题,比如指代、隐喻、借代等。这些任务的语义框架图示只在用到的框架类型、角色、连接限制上有所不同。

SLING

SLING通过为易引发兴趣的语义框架进行优化,训练了一个RNN。网络隐藏层中已经学习到的表示取代了流水线系统中手工调整的特征组合和中间表示。

在内部,SLING使用编码器-解码器架构,其中使用诸如原始单词,其后缀,标点符号等简单词汇特征将每个输入词编码成向量。而解码器用这种表示和自己历史中的循环特征,来计算更新框架图示以获得输入句子的预期框架语义表示所需的转换序列。

在训练模型时,SLING使用了TensorFlow和DRAGNN。

下面的动画展示了如何用一次转换将框架和角色增量添加到框架图中。

正如前面用简单例句所说明的那样,SLING使用ARG1这一角色来连接VERB和EVENT框架,EVOKE转换从文本中接下来的几个token中唤起指定类型的框架。同样,CONNECT转换将两个现有框架和一个特定角色连接起来。当输入耗尽,最后一个转换(STOP)执行完成,框架图示被视为已完成,并返回给用户,用户可以查看图示,得到句子背后的语义。

这个转换系统中有一个关键方面,就是会出现一个固定大小的框架注意力缓冲区,代表最近被唤醒或修改过的框架,如上图的橙色框所示。这个缓冲区捕捉了我们倾向于想起最近唤醒、提及、增强过的知识。如果框架不再使用,随着新框架的进入,它最终会被刷新出缓冲区。这个简单的机制在捕捉大部分框架间连接上都非常有效。

相关资源

SLING是用C++写成的,开源代码地址:
https://github.com/google/sling

相关论文SLING: A framework for frame semantic parsing
地址:https://arxiv.org/abs/1710.07032

699de19a89bf3aa4a4d39befd861a2cd7b3429ef

本文作者:夏乙 
原文发布时间:2017-11-16
相关文章
|
5天前
|
人工智能 自然语言处理 PyTorch
BrushEdit:腾讯和北京大学联合推出的图像编辑框架,通过自然语言指令实现对图像的编辑和修复
BrushEdit是由腾讯、北京大学等机构联合推出的先进图像编辑框架,结合多模态大型语言模型和双分支图像修复模型,支持基于指令引导的图像编辑和修复。
35 12
BrushEdit:腾讯和北京大学联合推出的图像编辑框架,通过自然语言指令实现对图像的编辑和修复
|
11天前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
74 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
24天前
|
人工智能 自然语言处理 PyTorch
AutoVFX:自然语言驱动的视频特效编辑框架
AutoVFX是一个先进的自然语言驱动的视频特效编辑框架,由伊利诺伊大学香槟分校的研究团队开发。该框架能够根据自然语言指令自动创建真实感和动态的视觉特效(VFX)视频,集成了神经场景建模、基于大型语言模型(LLM)的代码生成和物理模拟技术。本文详细介绍了AutoVFX的主要功能、技术原理以及如何运行该框架。
41 1
AutoVFX:自然语言驱动的视频特效编辑框架
|
1月前
|
机器学习/深度学习 自然语言处理 知识图谱
GraphRAG在自然语言处理中的应用:从问答系统到文本生成
【10月更文挑战第28天】作为一名自然语言处理(NLP)和图神经网络(GNN)的研究者,我一直在探索如何将GraphRAG(Graph Retrieval-Augmented Generation)模型应用于各种NLP任务。GraphRAG结合了图检索和序列生成技术,能够有效地处理复杂的语言理解和生成任务。本文将从个人角度出发,探讨GraphRAG在构建问答系统、文本摘要、情感分析和自动文本生成等任务中的具体方法和案例研究。
76 5
|
1月前
|
自然语言处理 Python
如何使用自然语言处理库`nltk`进行文本的基本处理
这段Python代码展示了如何使用`nltk`库进行文本的基本处理,包括分词和词频统计。首先需要安装`nltk`库,然后通过`word_tokenize`方法将文本拆分为单词,并使用`FreqDist`类统计每个单词的出现频率。运行代码后,会输出每个词的出现次数,帮助理解文本的结构和常用词。
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
88 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理中的语义理解技术
自然语言处理中的语义理解技术
78 0
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
55 2
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】TF-IDF算法在人工智能方面的应用,附带代码
TF-IDF算法在人工智能领域,特别是自然语言处理(NLP)和信息检索中,被广泛用于特征提取和文本表示。以下是一个使用Python的scikit-learn库实现TF-IDF算法的简单示例,并展示如何将其应用于文本数据。
286 65
|
2月前
|
自然语言处理
【NLP自然语言处理】文本特征处理与数据增强
【NLP自然语言处理】文本特征处理与数据增强
下一篇
DataWorks