论文部分内容阅读
服务机器人需要直接与人类沟通并为人类提供服务,因此人机交互模块在服务机器人中具有重要的地位。为了提升用户满意度,自然语言交互的方式是目前人机交互的主流研究方向。语义解析作为自然语言交互模块中的一个任务,旨在将自然语言语句直接转化成语义完整的、计算机可执行的意义表示。语义解析的研究已经有较长的历史,从早期基于手工规则和模板匹配的方法,到基于训练数据的统计学习方法,再到深度学习模型方法,以及为了不标注数据而结合强化学习的弱监督方法,这些方法都体现出了各自的优势和缺点。本文针对语义解析数据标注困难、数据集规模小、深度学习模型难以发挥潜力的问题,从不同的角度提出了两个模型。第一个模型是结合句法知识的Tree2Tree模型,通过对句法分析得到的句法成分树进行编码,将句法视为先验知识引入到模型中,从而提升模型对自然语言的编码能力。另外,Tree2Tree模型采用树解码器进行层次解码得到逻辑形式,可以保证逻辑形式的语法正确性。第二个模型是基于预训练语言模型和知识蒸馏的语义解析模型,利用大规模预训练模型中含有的通用语义知识来完成语义解析任务。虽然预训练模型在语义解析任务上微调后可以得到较高的准确率,但其规模过大导致难以嵌入到服务机器人中。因此本文采用知识蒸馏的训练方法,将预训练模型中学到的通用知识和领域知识迁移到小规模模型中,从而可以得到一个准确率有明显提升的轻量级语义解析模型。本文介绍和实现了上述的两种语义解析模型,并在机器人指令语义解析数据集GPSR和另外两个公开数据集ATIS和GEO上进行了实验。实验结果表明本文提出的两个模型分别从不同的角度缓解了语义解析数据量不足的问题。在不增加训练数据的前提下,两种方法都能有效提升语义解析的准确率。