赵睿卓,高金华,孙晓茜, 徐 力,沈华伟,2,程学旗,2
(1. 中国科学院 计算技术研究所 网络数据科学与技术重点实验室,北京 100190;2. 中国科学院大学 计算机与控制学院,北京 100049)
语义解析的目标是将自然语言表达映射为机器可理解的逻辑表达,使得人类和机器能够更加方便地进行交互。语义解析在问答、指令解释和代码生成等自然语言理解任务中均有重要的应用。为了适配不同的应用需求,目标逻辑表达的形式也不尽相同。常见的逻辑表达包括FunQL、λ演算和以SQL查询和python代码为代表的编程语言等。考虑到λ演算的表达能力和灵活性,本文采用λ演算作为目标逻辑表达的表示形式。
早期的语义解析方法[1]通常采用词典和包含一系列组合规则的语法共同作用的方式生成逻辑表达。对于一个给定的自然语言表达,该类方法先根据词典和语法规则产生目标逻辑表达的备选集,再学习一个打分函数来对备选集中的逻辑表达进行打分,并将得分最高的逻辑表达作为最终的解析结果。然而,词典和语法通常被限制在一个特定领域并且训练过程需要大量的特征工程。随着深度学习的发展,越来越多的结合深度神经网络的神经语义解析方法[2]被提出。该类方法通常采用编码器—解码器框架,将自然语言表达作为输入,逻辑表达作为输出,以端到端的方式进行训练,在语义解析任务上取得了目前最好的效果。
神经语义解析方法面临的关键挑战在于如何捕获蕴含在自然语言中的组合语义。……