今日,谷歌发布了一款名为SLING的实验性系统,该系统是一个自然语言处理框架,可以直接将自然语言文本解析成语义表示——语义框架图。这项技术旨在简化自然语言理解(NLU)流程,提高效率和准确性。
过去,多数NLU系统依赖于一系列分析步骤,包括词性标注和依存句法分析,再进行语义表示。然而,这样的流程容易因早期阶段的错误影响整体结果。SLING则直接从原始文本生成语义框架图,从而避免了传统方法的缺陷,减少了不必要的计算步骤。
SLING采用一种专门设计的循环神经网络模型,通过逐步编辑框架图来计算输出表示。这种模型不仅提高了处理速度,还能捕捉到用户感兴趣的多种语义任务。此外,SLING仅需输入文本中的词语即可进行训练,无需生成中间标注,如依存句法分析。
在推断阶段,SLING表现出色,能够快速解析文本。这得益于其高效的框架存储实现和即时编译器,后者能够生成执行循环神经网络的高效代码。目前,SLING已经在桌面级CPU上实现了超过2500个token/秒的解析速度。该项目已在GitHub上开源,更多技术细节可见于相关论文。
SLING的核心在于其对框架语义学的应用。框架语义学将文本的意义分解为一系列形式陈述,每个陈述称为一个框架,其中包含与其他概念或框架之间的互动关系。通过这种方式,SLING能够识别实体、度量和其他概念,并将其正确分类。例如,在处理句子“Many people now claim to have predicted Black Monday”时,SLING会将“predicted”标注为PREDICT-01框架,并分别关联到代表“people”的PERSON框架和代表“Black Monday”的EVENT框架。
SLING利用优化过的语义框架来训练循环神经网络。网络中的隐藏层学得的表征取代了手工制作的特征组合,简化了流程系统中的中间表征。SLING采用编码器-解码器架构,通过简单的词汇特征(如原词、后缀、标点等)将每个输入单词编码为向量,然后解码器利用这些特征和自身的循环特征计算出转换序列,以更新框架图,最终得到输入语句的预期框架语义表示。该模型使用TensorFlow和DRAGNN进行训练。
SLING的转换系统还包括一个小型注意力缓存,用于表示最近激活或修改的框架。这一机制有助于捕捉框架间的连接关系。通过这种方式,SLING能够在处理过程中更加高效地管理框架,提高解析效果。
未来,SLING将继续探索语义分析领域的应用,包括知识提取、复杂引用解析和对话理解等。目前,SLING的预训练模型已经发布在GitHub上,用户可以通过示例了解如何在合成数据或实际数据上训练自己的语义分析程序。团队期望SLING能够为自然语言处理领域带来新的突破,并鼓励社区成员进一步探索其潜力。