基于Text-to-SQL问答系统的设计与实现
作者单位:西北民族大学
学位级别:硕士
导师姓名:于洪志
授予年度:2022年
学科分类:081203[工学-计算机应用技术] 08[工学] 0835[工学-软件工程] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:Text-to-SQL CSpider 语义增强模型 字序列模型 BERT
摘 要:随着人工智能技术的发展,将自然语言转化为结构化查询语言的任务得到了学术界的广泛关注,因为它向非专业用户提供了数据库查询的接口,大大降低了用户查询数据的学习成本,不但可以提高查询效率,而且也能提高人们的生活效率,具有较高的研究价值。目前,中文的自然语言转化为结构化查询语言任务面临诸多挑战,第一,在中文数据集的研究方面,其SQL语句的预测准确率较低,还存在很大的优化空间;第二,中文的表达中存在众多的同义词,如何准确的做到自然语言问句同数据库列名之间的映射,是该任务面临的主要挑战。本文以CSpider中文数据集为研究对象,该数据集将SQL语句分为简单、中等、困难三种预测难度。本文根据中文字和词的不同表达形式,分为基于词的Text-to-SQL的研究和基于字的Text-to-SQL的研究。主要工作如下:(1)构建了融合词性和依存句法特征的词序列语义增强模型基于词的研究方面,本文对原始数据采用了新的分词方法,分词效果显示更贴近用户日常生活的语义理解。同时在词向量方面,为了增强模型对语义的理解,在原有词向量中加入了词性特征向量和依存句法特征向量,实验结果表明,加入词性特征后对实验的KEYWORD和AND\OR子任务提升明显,对于中等难度的SQL语句来说,提升了15%和7.8%。对困难难度的SQL语句来说,提升了12.2%和13.8%。(2)构建了基于BERT的字序列模型基于字的研究方面,本文利用BERT模型作为编码器编码,训练完成后的字的向量同时也包含词的语义特征。除此之外,为了增强自然语言问句与数据库表的列名之间的语义关系,将自然语言问句和数据库列名做拼接组成句对送到BERT多语言模型中来生成向量,实验结果表明在将数据库列名作为BERT模型的输入序列后,对于该任务的各项子任务来说,其准确率、召回率和F1值都上升了5%左右,对于WHERE子任务上升了10%左右。最终对于SQL语句的整体准确率,其简单难度、中等难度和困难难度分别提高了3.6%、4.4%、1.2%。(3)搭建了基于Text-to-SQL的问答系统原型以CSpider数据集作为系统的数据库,搭建基于Text-to-SQL技术的系统,为用户提供航空公司信息、高校信息、图书信息等多个领域的数据转换接口,同时包含辅助用户提问和相关信息反馈的功能,来提升用户使用体验。