浙江大学学报(工学版), 2026, 60(8): 1792-1800 doi: 10.3785/j.issn.1008-973X.2026.08.018

计算机技术

大模型驱动的空间数据自然语言查询语料库构建方法

易炜佳,, 刘孟怡, 许建秋,

南京航空航天大学 计算机科学与技术学院,江苏 南京 211106

LLM-driven construction of spatial natural language query corpora

YI Weijia,, LIU Mengyi, XU Jianqiu,

College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China

通讯作者: 许建秋,男,教授. orcid.org/0000-0002-0929-5234. E-mail:jianqiu@nuaa.edu.cn

收稿日期: 2025-07-31  

基金资助: 国家自然科学基金资助项目(62472217, U23A20296).

Received: 2025-07-31  

Fund supported: 国家自然科学基金资助项目(62472217,U23A20296).

作者简介 About authors

易炜佳(2001—),女,硕士生,从事语料库构建研究.orcid.org/0009-0002-0494-8678.E-mail:wjyi_x@nuaa.edu.cn , E-mail:wjyi_x@nuaa.edu.cn

摘要

传统自然语言转结构化查询语言(NL2SQL)模型在空间数据库中面临实体匹配和查询类型识别困难的挑战. 现有语料库覆盖面窄、查询类型单一,难以有效建模空间关系和地理特征,导致训练效果和泛化能力不足. 为此,提出大语言模型驱动的语料库构建方法. 在语料验证方面,设计实现包含错误检测与修复的验证工具,结合LSTM网络与自然语言处理工具定制实体关系抽取算法,对预处理后的查询语句进行建模与校正,提高语义识别与语法纠错的能力. 在语料生成方面,基于查询类型规则驱动机制,结合大语言模型生成、人工采集和模板合成方法,设计支持多数据库、多类型查询的语料生成工具. 实验基于真实空间数据库构建的数据集进行. 结果表明,所提方法提升了空间数据库NL2SQL模型的查询转换率和准确率,在生成效率与语料多样性方面优于GPT-4o、DeepSeek和Gemini 2.0等方法.

关键词: 空间数据库 ; 自然语言查询语料库 ; 自然语言转结构化查询语言(NL2SQL) ; 大语言模型(LLM) ; 语料生成 ; 实体关系抽取

Abstract

Traditional natural language to structured query language (NL2SQL) models face significant challenges in spatial databases, especially in entity matching and query type recognition. The narrow coverage of existing corpora and the limited diversity of query types restrict the ability to effectively model spatial relations and geographic features, leading to insufficient training performance and weak generalization. To address these limitations, a large language model (LLM)-driven corpus construction strategy was proposed, focusing on corpus verification and corpus generation. In the verification stage, an error detection and repair tool was developed, in which LSTM networks were combined with customized entity and relation extraction algorithms built on natural language processing techniques. Preprocessed queries were modeled and corrected by the tool, thereby enhancing semantic recognition and grammatical correction. In the generation stage, a query-type-oriented, rule-driven mechanism was introduced, integrating LLM-based generation, manual collection, and template synthesis to develop a corpus generation tool supporting multiple databases and diverse query categories. Experiments were conducted on datasets derived from real spatial databases, and the results demonstrated that the query conversion rates and accuracy of NL2SQL models in spatial contexts were improved by the proposed strategy. Furthermore, higher generation efficiency and greater corpus diversity were achieved by this approach compared with GPT 4o, DeepSeek, and Gemini 2.0.

Keywords: spatial database ; natural language query corpus ; natural language to structured query language (NL2SQL) ; large language model (LLM) ; corpus generation ; entity-relationship extraction

PDF (1290KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

易炜佳, 刘孟怡, 许建秋. 大模型驱动的空间数据自然语言查询语料库构建方法. 浙江大学学报(工学版)[J], 2026, 60(8): 1792-1800 doi:10.3785/j.issn.1008-973X.2026.08.018

YI Weijia, LIU Mengyi, XU Jianqiu. LLM-driven construction of spatial natural language query corpora. Journal of Zhejiang University(Engineering Science)[J], 2026, 60(8): 1792-1800 doi:10.3785/j.issn.1008-973X.2026.08.018

自然语言转结构化查询语言(natural language to structured query language, NL2SQL)技术使普通用户能够通过简单的自然语言直接进行数据库查询,无需掌握复杂的SQL语法. 在空间数据库领域,NL2SQL的应用在快速推进,为非技术用户提供了便捷的操作方式,显著降低了操作空间数据库的门槛,简化了地理信息的查询、分析与管理的流程.

与传统数据库相比,空间数据库包含更复杂的数据类型,空间对象包括点、线、面等几何形态,在语义和结构上有显著差异[1]. 空间数据库支持多种查询类型,如范围查询、最近邻查询、空间连接查询等,进一步增加了自然语言查询转换的复杂性. NL2SQL在转换过程中易出现实体识别错误和查询类型判定错误,导致生成的SQL语句无法正确执行,影响查询结果的准确性与系统的适用性. 使用仅包含少量查询语句类型且存在逻辑错误的低质量语料库进行NL2SQL模型训练,可能导致以下几类错误[2]:1)无法识别空间对象,无法生成可执行语句;2)空间对象匹配错误,返回错误可执行语句;3)查询类型转换错误,返回错误执行语句. 高质量的空间自然语言查询(natural language query, NLQ)语料库能够为NL2SQL模型提供准确且多样的训练数据,有助于模型更好地理解和处理复杂的查询语句. 现有的语料库往往覆盖单一的查询类型,且查询语句在空间场景下的适应性较差,难以满足复杂的空间数据库环境的需求. 尽管大语言模型(large language model, LLM)在生成自然语言语料方面表现出一定潜力,然而生成的语料往往存在与数据集不匹配、查询类型单一和逻辑错误等问题. 特别在面对不同数据库更新或拓展时,依赖LLM生成的语料大部分需要重新生成和验证. 这些问题导致NL2SQL训练结果的准确性和泛化性能下降.

本研究提出LLM驱动的高质量空间自然语言查询语料库构建方法. 在语料验证方面,构建空间NLQ语料验证工具,通过训练LSTM网络对预处理后的查询语料进行建模,结合自然语言处理工具spaCy构建定制化的实体与关系抽取算法,支持生成语句的高效错误检测与修复. 在语料生成方面,设计语料生成工具,结合LLM自动生成与人工采集方式获取语料,提取并加工语料中的查询模板,基于不同查询类型的特征构建规则驱动的语料生成机制. 为了评估所提工具的实际效能,本研究设计对比实验,通过空间数据库自然语言查询转换模型NALSpatial[3]和SpatialNLI[4]评测所提语料检测与修复方法对转换率和准确率的实际影响.

1. 相关工作

自然语言查询语料库的构建在关系数据库和特定领域中逐渐成为研究热点,空间数据库的自然语言查询具有独特的复杂性,相关研究较为有限.

1.1. 语料检测和修复

查询语句检测技术主要用于识别语法错误、语义错误和潜在的查询逻辑问题. 传统的查询语句检测方法基于语法分析器和规则集. Troy等[5]提出基于上下文无关文法的语法检测方法,通过分析语法结构辅助用户调整查询. 这类方法对复杂查询语句的处理能力有限,难以应对复杂的逻辑和语义要求. 随着机器学习的发展,统计学习方法逐渐应用于查询检测领域. Ding等[6]通过构建统计模型自动检测查询错误,虽提升了自动化水平,但依赖大量标注数据,对歧义处理能力不足. 针对NLQ与数据库内关系实体进行匹配的问题,NL2SQL工具(RESDSQL[7]、RAT-SQL[8]和IRNet[9]等),采用Schema Linking技术,通过识别NLQ与数据库表名、列名的对齐关系提升转换准确率. 现有研究多针对传统关系型数据库,未充分考虑空间数据库中的如空间索引、空间对象类型的特性,因此在空间数据库环境下的自然语言查询处理效果仍有限.

1.2. 自然语言查询数据集

现有的NLQ语料库往往覆盖部分查询类型,难以全面反应复杂的空间数据库环境. 多数数据集聚焦于通用关系数据库或特定领域,缺乏对空间关系建模和复杂空间运算支持,限制了其在空间场景中的应用效果. GeoQuery[10]是经典的地理问答数据集,涵盖范围查询、名称查询、聚合计数等基础类型,但未涉及距离连接、空间连接和基本方位等关键空间查询,难以支持高级空间推理任务. MapQA[11]聚焦地理图片查询,主要识别图形特征,如“Which regions have the lowest value on the map”,查询内容多围绕视觉属性展开,缺乏对空间数据库典型操作的支持. Spider[12]和WikiData[13]广泛使用的数据集虽然包含多种复杂查询模式,但构建基础为结构化关系数据库,查询任务主要面向现实世界的通用事务场景,难以满足空间场景对语义理解的需求.

1.3. 语料库构建

语料库是NL2SQL、自然语言处理及机器学习任务的重要基础资源,高质标准的语料库对于语言模型训练和性能提升至关重要. 语料库构建主要包括数据采集、数据清洗、数据标注和质量检验4个步骤[14]. 数据采集方式多样,主要包括数据爬取、人工录入、模板生成与LLM生成查询语句. 数据爬取可快速获取大规模原始语料,通常包含大量噪声和无关内容;人工录入虽然准确性高,但成本高;LLM生成查询能扩展数据规模与多样性,须筛选与校验确保语义准确. 数据清洗通过去重、噪声过滤、语法修正和停用词去除,提升数据质量. 自动抓取与LLM生成的语料通常存在重复、语义歧义或不规范等问题,须借助自然语言处理工具(如spaCy、NLTK)清理,特别是在空间数据库查询中,统一格式能有效提升解析效率[14]. 数据标注通过专家人工标注或半自动标注实现结构化分类,适用于复杂查询或空间关系任务. 随着技术进步,基于众包(如Snow[15])及语言模型的自动标注方法进一步提高了标注效率和分类精度[16]. 质量检验采用定量与定性方法结合,评估语料库在准确性、覆盖度和标注质量等方面的表现,确保查询语句符合空间数据库的应用需求.

2. 问题定义

2.1. 空间数据库

空间数据库是专用于分析、存储和管理地理空间数据的数据库系统,支持处理点、线、区域等空间对象,执行空间查询操作(如范围查询、最近邻查询). 空间查询不仅可基于对象属性进行,也可基于空间关系执行,实现对地理空间数据的高效管理与分析.

2.2. 复杂空间数据查询语句定义

构建完整的空间数据库查询语料库,须对现有的空间查询类型进行全面调研和分析,确保所构建的语料库能够覆盖空间数据库中最常见和最重要的查询操作. 如表1所示,本研究将空间数据库自然语言查询分为11类,这些查询允许用户根据空间对象的位置和形状来检索和分析数据,现重点介绍其中语义复杂、逻辑结构较为抽象的查询类型.

表 1   空间数据库自然语言查询类型

Tab.1  Natural language query types for spatial databases

查询类型查询示例
范围查询RQTell me which railway are on Software Avenue.
最近邻查询NNList the 1 closest kindergarten near Jiqing Road.
空间连接查询SJFind the bank that are located in Gulou District.
距离连接查询DJIdentify the hospital within 5 kilometers of each amusement.
距离查询DisHow many feet from Yadong City to Waterside Sunny Garden.
方位查询DirHow do I plan the route from McDonald's to 1-10 Contact Line.
长度查询LQPlease advise me on the length of Xinhu Avenue in highway.
面积查询AQWhat is the area of the Palace of Xindi Hotel situated in hotel.
计数查询ACHow many railway goes through the Gulou park.
和查询ASCan you provide the aggregate land area of all pool in Daijiatang.
最大值查询AMWhich highway has the most intersection points compared to others.

新窗口打开| 下载CSV


空间连接查询SJ:将2个空间数据集中的对象根据空间关系进行连接操作. 给定2个空间数据集$ Q $$ S $,空间连接查询$ \text{SJ}\;(Q,S,p) $返回空间对象$ (q,s) $,其中$ q\in Q,s\in S $,且$ q $$ s $的几何性质满足空间关系$ p $$ p $包括相交、包含或重叠等.

$ P(q,s,p)=\begin{cases} 真, & q 和 s 满足 p ;\\假, & q 和 s 不满足p .\end{cases} $

$ \text{SJ}\;(Q,S,p)=\{(q,s)|q\in Q,s\in S,P(q,s,p)\}. $

距离连接查询DJ:查询2个集合中距离在某一阈值$ d $以内的对象. 给定2个空间数据集$ Q $$ S $,距离连接查询$ \text{DJ}\;(Q,S,d) $返回空间对象$ (q,s) $,其中$ q $$ s $的距离${\mathrm{dist}}\;(q,s) $不超过指定范围$ d $.

$ \text{DJ}\;(Q,S,d)=\{(q,s)|q\in Q,s\in S,{\mathrm{dist}}\;(q,s)\leqslant d\}. $

最近邻查询NN:查找空间数据集中距离给定空间对象最接近的一个或多个对象. 给定空间对象$ s $和空间数据集$ Q $,最近邻查询$ \text{ΝΝ}\;(s,Q,k) $返回$ Q $中距离$ s $最近的$ k $个空间对象.

$ \begin{split}\text{NN}\;(s,Q,k)&=\{{Q}_{k}\subseteq Q| {q}_{i}\in {Q}_{k},q'\in Q,\\& ({q}_{i}\neq q'),{\mathrm{dist}}\;(s,{q}_{i}) \lt {\mathrm{dist}}\;(s,q')\}.\end{split} $

2.3. 空间自然语言查询语料库

语料库是系统化的、存储大量真实文本数据的集合,旨在为语言研究、自然语言处理和计算语言学等领域提供数据支持[17]. 空间自然语言查询语料库指专门用于存储与空间数据库相关的NLQ数据集合. 空间语料库$ {C}_{{\mathrm{s}}} $由4个部分组成:

$ {Q}_{{\mathrm{type}}} = \{{{\mathrm{RQ,NN,SJ,DJ,Dis,Dir,LQ,AQ,AC,AS,AM}}}\}, $

$ {C}_{{\mathrm{s}}}=({Q}_{{\mathrm{type}}},\text{NLQ},{R}_{{\mathrm{s}}},{E}_{{\mathrm{s}}}). $

式中:$ {Q}_{{\mathrm{type}}} $为查询类型;$ \text{NLQ} $涵盖表达相同查询意图的多样化语言形式;$ {R}_{{\mathrm{s}}} $为查询中涉及的空间关系表对象,例如“Park”;$ {E}_{{\mathrm{s}}} $为查询中涉及的具体空间实体对象,例如“Gulou Park”作为“Park”的实例. 空间语料库的构建旨在通过系统整合多样化的自然语言表达与空间查询类型,为自然语言处理模型提供丰富、真实的训练数据,增强其对用户空间查询的理解能力和语义转换能力. 空间自然语言查询语料库还具备衍生应用价值:1)可作为标准化的测试集,用于系统评估与基准测试,衡量NL2SQL模型在空间场景下的表现. 2)可作为预训练或微调阶段的辅助数据源,提升LLM在地理空间理解、推理与生成等方面的能力. 3)可为空间数据库系统中的自然语言接口、地理问答系统以及智慧城市地理信息服务平台等应用提供关键支撑,推动空间人机交互的智能化发展.

3. 空间数据自然语言查询语料库构建方法

空间自然语言查询语料库的构建旨在面向空间数据库快速生成具有语义丰富性与结构适配性的空间查询语料,为NL2SQL模型训练与评估提供高质量语料支持. 如图1所示,语料构建框架主要包括2个阶段:语料验证与语料生成,分别对应初始语料的质量提升和后续大规模语料扩充.

图 1

图 1   语料库构建框架图

Fig.1   Framework for corpus construction


3.1. 语料验证

为了确保LLM生成及人工收集的NLQ语句能够准确映射空间数据库中的实体与空间关系,规避常见生成错误,设计并实现集成LSTM网络与实体关系知识库的语料检测与修复工具(corpus detection and repair, CDR). 该模块是语料验证阶段的核心,主要面向实体识别、关系解析和查询类型判定等任务,系统性提升语料的结构一致性与语义准确性. 基于空间数据库构建实体知识库和空间关系知识库,实体知识库存储空间数据库中的位置名称,空间关系知识库存储数据库中各种关系表的信息. 通过这2个知识库中的唯一标识符,工具能够明确实体与关系之间的映射关系,检测和修复生成的查询语句中的问题.

3.1.1. 基于大语言模型的初始语料生成

在构建的初始阶段,借助LLM生成大规模空间NLQ[18]. 为了确保生成语料的准确性与多样性,设计结构清晰、约束明确的提示词(prompt),用于引导LLM按照数据库定义生成查询语句.

LLM提供的提示内容包括数据库信息、指定的查询类型、所需生成数量等. 虽然LLM具备高效的文本生成能力,但通过大量生成、收集与整理的实践过程发现,生成结果在规范性与可用性方面存在若干问题. 1)模板重复:生成的查询语句格式单一,存在大量结构雷同、表达重复的语句,缺乏必要的语言多样性,难以全面支撑模型在多语言表达下的泛化能力. 2)错误归类:部分语句在自动标注过程中被错误地归类为非目标查询类型,干扰模型对不同类型查询意图的准确识别与学习. 3)同义词替换:LLM在生成过程中对数据库中的实体名称进行扩写或替换,例如将“poi”替换为“point of interest”,或形式复数化“points of interest”,尽管语义一致,但实际内容与数据库结构不符. 4)虚构实体:模型可能生成数据库中不存在的实体名称,或对已有实体名称进行拼写、大小写、单复数等方面的改动. 例如数据库中实际包含“Freach”和“Frach”,但模型错误生成“Frech”,造成语义脱节. 5)逻辑错误:部分语句在空间语义逻辑上存在明显错误,例如尝试在“点对象”中查找“面对象”,不符合空间数据库的基本操作逻辑. 上述问题主要源于LLM在生成过程中对数据库实体名称的扩展或修改. 本研究旨在构建与数据库结构和内容高度一致的空间自然语言查询语料库,强调语料与目标数据库之间的一致性、可匹配性,因此任何对数据库内容的扩展、改写或替换均视为错误. 后续的语料验证模块对初始生成语料进行语义一致性与结构合理性校验.

基于LLM生成NLQ的提示内容

###请根据提供的“place”和“spatial_relations”两个空间数据库信息表生成空间自然语言查询语句.

###要求:

1. 查询语句类型为Range Query.

2. 每类查询各500条.

3. 严禁虚构或使用表格中关系及实体的同义词.

4. 不能够大量重复使用某些关系及实体.

5. 每类查询语句模板不少于20个.

###针对此问题有以下示例:

#Range Query, Identify all Hospital located within 1 kilometer range of Gulou Park.

#Range Query, I'm looking for the University that contain the A Little Tea.

#Range Query, Browse for all points in poi that are within 2 kilometers from Zifeng Building.

#Range Query, Can you tell me what Cinema are there on Nanjing Station?

###以csv文件返回最终结果.

3.1.2. 语料检测模块

语料检测模块是语料验证的核心组成部分,旨在对NLQ中的潜在错误进行精确识别与标注. 该模块先对输入的NLQ进行类型识别,再基于预先构建的数据库知识库,对查询语句中的实体与关系进行语义解析. 结合不同查询类型的语义特征,该模块进一步从实体合法性、关系匹配性与逻辑一致性等多个维度,对语句进行系统化检测,并将检测结果结构化存储,为后续的语料修复模块提供依据与支持. 语料检测模块针对4类与查询语句内容和语法相关的问题进行检测,具体检测内容包括:1)错误归类,检查查询类型是否正确标注;2)同义词替换,判断生成的查询语句是否包含数据库表中不存在的同义词变体;3)虚构实体,检测查询语句中的关系及对象是否真实存在于数据库的知识库中;4)逻辑错误,分析查询语句的逻辑合理性,避免对象类型不匹配问题.

为了实现查询类型识别,训练轻量级的LSTM分类模型. 训练数据来源于人工构建和LLM生成的标注语料,覆盖11类典型的空间数据库查询类型(如范围查询、最近邻查询、空间连接查询等),每类约2 000条样本,共计约2.2万条训练语料. 模型结构包括2层LSTM隐含层,通过softmax层完成分类,训练过程中采用Adam优化器,训练30个迭代轮次后模型收敛. 模型训练数据按照8∶1∶1的比例划分为训练集、验证集和测试集. LSTM的每个隐含层包含128个神经元,激活函数采用ReLU,设置丢弃率为0.3以防止过拟合. 实验结果表明,该模型在验证集上的分类准确率达到94.2%,能够满足后续检测模块对类型识别的精度要求.

算法1用于检测NLQ中的常见错误. 先对查询语句Q进行语言分析并初始化检测信息(第1行),通过LSTM模型判断其查询类型是否与原始类型PT一致(第2行),若不一致则记录为错误归类(第3~4行). 再提取关键词与实体和关系(第5~7行). 接着依据查询类型判断查询是否正确,并将检测结果记录在检测结果信息DI中(第8~16行). 最终输出所有检测结果,用于后续修复模块处理(第17行).

算法1 语料检测算法

输入:自然语言查询Q,原始类型PT,知识库PT.

输出:检测结果信息DI.

1. doc ← nlp(Q), DI ←

2. type ← LSTM_type(Q)

3. if type ≠ PT then

4.  DI.append(‘Type Error’, type)

5. (K, S) ← word_map[type]     // 提取关键词

6. pos ← catchpos(doc, K, S)    // 获取位置

7. words ← extract(doc, pos)    // 提取对象

8. if logic_nlq(type, words) then

9.  for each w ∈ words do

10.   if w ∉ KB then

11.    if synonym(w) ∈ KB then

12.     DI.append(‘Synonyms’, w)

13.    else

14.     DI.append(‘Fictional’, w)

15. else

16.  DI.append(‘Logical Error’, ‘NULL’)

17. return DI

3.1.3. 语料修复模块

语料修复模块是检测模块的延续,核心任务是在识别NLQ中的错误后,依据预设规则和深度学习模型对查询语句进行修复,生成结构合理、语义准确的查询语句,修复过程主要包括以下步骤. 1)查询语句解析:基于LSTM模型对查询语句进行类型识别与结构分析,提取关键实体与关系词. 2)知识库匹配:利用知识库对语句中的元素进行验证与映射,确保所有对象在数据库中有对应映射. 3)错误修正:根据错误类型采用相应的修复策略,包括替换错误标注的查询类型,恢复被LLM扩展或修改的实体名称,替换不存在于知识库中的虚构对象,修复逻辑结构不合理的语句.

算法2用于修复NLQ中的常见错误. 初始化并判断是否存在检测错误(第1~2行);若存在,则依次处理每条错误信息(第3~11行);将修正后的类型和查询拼接,返回修复后的查询RQ(第12~13行). 通过语料验证,由LLM生成的NLQ的准确性与规范性得到显著提升,使得生成的语料在实体、关系与逻辑层面严格对应数据库内容,为空间数据库自然语言查询的研究提供高质量、结构可靠的数据支持.

算法2 语料修复算法

输入:自然语言查询Q,原始类型PT,知识库KB,检测结果信息DI.

输出:修复后的查询RQ.

1. RQ ←

2. if DI ≠ then

3.  for info ∈ DI do

4.   if info[0] = ‘Type Error’ then

5.    PT ← info[1]

6.   else if info[0] = ‘Synonyms’ then

7.    QQ.replace(info[1],synonym(info[1]))

8.   else if info[3] = ‘Fictional’ then

9.    QQ.replace(info[1],similar(info[1], KB))

10.   else

11.    logic_repair(PT, Q)

12. RQ ← concatenate(PT, ‘,’, Q)

13. return RQ

修复过程中当检测到“虚构实体”时,使用函数similar(info[1], KB)对实体进行替换. 该函数通过词向量相似度方法实现. 在词向量建模方面,采用基于GloVe的预训练词向量模型,维度300,并在空间数据库实体名称及其上下文上进行微调训练,以增强词向量在空间语义环境下的判别能力. 先将NLQ中的实体info[1]与知识库中所有实体映射到相同的向量空间;再计算NLQ实体与知识库KB中每个实体的余弦相似度,选取相似度最高且存在于知识库中的实体作为替换值,保证修复后的查询语句在语义上尽量接近原始意图,同时严格对应数据库中的真实实体.

3.2. 语料生成

为了迅速高效地生成查询语料,构造语料生成工具(corpus generation, CG),生成过程分为模板提取和查询生成2个阶段. 在模板提取阶段,利用LLM生成或查阅相关文献和公开资源提取已有语料的方式收集NLQ. 所收集的语句涵盖多种语境和表达方式,确保数据的多样性与覆盖面. 采用自然语言处理工具spaCy对语句进行实体识别与标注. 为了提高模板的通用性,所有的实体均被统一替换为通用占位符. 这一方式有效简化了模板结构,也为后续生成多样化查询语句创造了条件. 在查询生成阶段,对于每一类模板,采用基于规则的实体填充策略. 为了避免生成结果的同质化和模板僵化,采用动态对象替换策略,即每次生成语句时,随机从知识库中选取具体的实体和关系进行填充,保证语句的多样性和丰富性. 例如,模板“How many LINE pass through the LINE”可具体生成为“How many highways pass through the city center”或“How many rivers pass through the national park”. 通过这种方式,生成的查询语句在表达上更加自然且语义多样,同时与数据库中的实际实体及其关系保持一致性.

算法3用于快速高效地生成语料. 从模板集中选择适当模板(第1行),通过实体与参数填充生成具体的NLQ并返回(第2~8行).

算法3 语料生成算法

输入:查询类型T,查询模板集QTS,距离d.

输出:自然语言查询Q.

1. q_t ← catch_template(T, QTS)

2. doc ← nlq(q_t), Q

3. if ‘DIS’ ∈ doc then

4.  dis_value ← random(d)

5.  q_t ← q_t.replace(‘DIS’, dis_value)

6. if T ∈ rule_map then

7.  Q ← apply_rule(rule_map[T], q_t)

8. return Q

4. 实验评估

4.1. 实验设置

实验在运行Ubuntu20.04(内核版本5.15.0-75)的笔记本电脑上进行,配置为Intel(R) Core(TM) i7-11700H CPU (2.5 GHz)、16 GB RAM和512 GB SSD. 实验开发和评估主要使用Python和C++语言实现.

4.2. 评估指标

实验使用SECONDO[19]空间数据库管理系统中的Berlin、Nanjing和Changchun数据库,包含柏林、南京和长春的地理数据,涵盖83种空间关系和34 039个地理信息. 针对语料验证模块,构造220条查询测试用例,涵盖11类空间查询,错误与正确查询的比例为4∶1,并确保查询覆盖4种常见错误. 定义5项指标用于评估模块性能:转换率TP、准确率Acc、生成效率GE、多样性TD和查询准确性QV. 给定基准工具输出的可执行语句集合$ E $,输入的自然语言查询集合$ N $,转换率的计算式为

给定基准工具输出中语义正确的查询集合ER,输入的自然语言查询集合$ N $,准确率的计算式为

给定时间$ T $内生成自然语言查询集合$ G $,生成效率的计算式为

给定$ G $中包含不同模板集合$ M $,多样性的计算式为

给定生成语料中能与数据库实体和关系匹配并且语义准确的查询集合$ Q $,查询准确性的计算式为

给定$ G=\{{G}_{1,}{G}_{2},\cdots,{G}_{N}\} $与参考语料集合$ R=\{{R}_{1,} {R}_{2}, \cdots, {R}_{N}\} $,语义相似度定义为两者在语义空间中的平均相似度,计算式为

其中$ \cos \;({v}_{{{G}_{i}}},{v}_{{{R}_{i}}}) $为第$ i $条生成语句与参考语句的词向量余弦相似度. 给定$ {G}_{{\rm{s}}} $$ G $中转换的可执行语句能够被数据库成功解析并执行的集合,查询执行成功率计算式为

4.3. 实验结果与分析

选用NALSpatial和SpatialNLI模型作为基准NL2SQL模型,比较两者的转换率和准确率,评估CDR的有效性. 使用GPT-4o、DeepSeek、Gemini2.0生成语料,与CG以生成效率、多样性、查询准确性为评估指标,对比模型的语料生成性能.

4.3.1. 语料修复模块

使用NALSpatial和SpatialNLI对测试用例进行转换测试;利用CDR对语料进行修复,使用2个基准模型进行转换测试;对比修复前后的性能差异,实验结果如表2所示. 在使用CDR进行错误检测与修复后,NALSpatial的整体转换率和准确率分别提升了18.5和14.2个百分点,SpatialNLI的整体转换率和准确率分别提升了16.6和13.2个百分点. 结果表明,CDR在处理带有错误的NLQ时,能够有效地识别和修复其中的语义和逻辑错误,大幅提升转换工具的性能.

表 2   语料修复模块的性能对比

Tab.2  Performance comparison of corpus repair modules

模型TP/%Acc/%
NALSpatial72.064.7
CDR+NALSpatial90.578.9
SpatialNLI64.154.3
CDR+SpatialNLI80.767.5

新窗口打开| 下载CSV


进一步分析CDR对不同语料错误类型的修复效果,结果如图2所示. 可以看出,CDR对同义词替换和虚构实体的修复效果最为显著,Acc分别提升了50.0和31.4个百分点. 这表明CDR在增强查询的语义一致性和数据库实体对齐方面具有较强的能力,能够有效减少NLQ中的模糊性和错误,确保查询能够更加精确地映射到数据库实体和关系上. 相比之下,错误归类的修正对准确率的提升影响相对较小,原因是NALSpatial本身已经具备一定的类型判断机制,能够在一定程度上纠正错误类型. 即便如此,CDR依然能够通过更精确的错误修复和推理支持,进一步改善NLQ的质量. 这不仅增强了用户对查询的理解,也提高了构造正确查询的能力,减少了查询错误带来的转换误差. CDR的引入显著提升了空间数据库查询任务中NL2SQL的转换效率与准确性,尤其在错误检测与修复方面表现出强大的技术优势.

图 2

图 2   不同模型在语料错误修复中的准确率对比

Fig.2   Accuracy comparison of different models for corpus error repair


4.3.2. 语料生成测试

经过使用LLM生成自然语言查询语句和进行人工收集已发表的论文和数据集,共整理获得基础模板1 239个. 在语料生成实验中,对比GPT-4o、DeepSeek、Gemini 2.0和CG的性能. 如表3所示,CG的生成速度为1 424条/s,远超对比的3种LLM,显示出所提模型在生成查询方面的巨大优势. 在模板多样性和查询准确性方面,CG不仅在查询模板的多样性上表现出较强的能力,也能确保查询的语法和语义符合数据库的结构和约束,生成的查询更加精准. CG方法在3项指标上的表现优于3类主流LLM方法,展示了所提模型作为高效、精准语料库构建工具的巨大潜力.

表 3   不同语言模型的生成语料情况对比

Tab.3  Comparison of corpus generation by different language models

模型生成效率(条·s−1)TD↑QV/%
GPT-4o293.20.6993.4
DeepSeek9.80.8190.7
Gemini 2.018.30.7591.0
CG1424.50.8795.2

新窗口打开| 下载CSV


4.3.3. 消融实验

对比4种语料生成与修复策略:1)仅使用LLM直接生成,2)LLM生成后进行人工清洗,3)LLM生成后通过CDR修复,4)使用CG生成,消融实验结果如表4所示. 在查询准确性和多样性方面,人工清洗能够一定程度上提升LLM生成的预料质量,但需要大量人力投入,效率较低. 一方面,人工清洗依赖主观判断,容易忽视数据库结构层面的潜在不一致,CDR通过实体关系知识库的全局匹配与逻辑一致性约束,能够在修复过程中保证语料与数据库的双向对齐. 另一方面,CDR的修复规则经过形式化建模和深度网络学习,可在多轮推理中保持高一致性,避免人工操作中常见的非标准化问题. 进一步地,CG在生成查询准确性上表现最优,显示了其在高效语料构建中的潜力. 在语义相似度和查询执行成功率方面,CDR修复分别比人工清洗提高了2.6个百分点和5.2个百分点. 这表明自动修复在保持语义完整性的同时,能够生成更易被数据库系统正确解析与执行的查询语句.

表 4   模块消融实验结果

Tab.4  Module ablation study results

方法QV/%TD↑SS/%QESR/%人工成本
仅LLM生成91.70.7582.778.8
LLM生成+人工清洗93.10.7388.583.1
LLM生成+CDR修复94.00.7191.188.3
CG生成95.20.8790.086.4

新窗口打开| 下载CSV


为了精细地评估CDR模块内部各子组件的作用,进行子模块消融实验. CDR包含查询类型识别、同义词替换识别、虚构实体检测与逻辑错误判断共4个核心子模块. 通过逐一移除各组件并重新执行修复任务,测量修复后语料的查询准确性变化. 实验结果显示,移除虚构实体检测模块后查询准确率下降最为明显,下降8.6个百分点;其次是逻辑错误判断模块,下降6.9个百分点,表明这2个组件对整体修复性能贡献最大;去除同义词替换检测模块的影响相对较小,仅下降2.3个百分点. 该结果表明,不同子模块在语料修复中的作用具有层次性与互补性,实体与逻辑层面的约束对语料质量提升尤为关键.

综上所述,CDR修复在保证语料高质量的同时显著降低了人工代价,验证了其在语料清洗与修复环节的价值;CG方法结合了大规模模板构建与语义验证机制,展现出构建高质量空间自然语言查询语料库的强大能力.

5. 结 语

本研究提出大语言模型驱动的语料构建策略,以提高空间数据库中NL2SQL模型的准确性,构造用于训练的高质量的语料库. 设计并实现了语料检测和修复工具CDR以及语料生成工具CG. CDR能够自动识别由LLM生成或外部数据源收集的自然语言查询中的语义错误、逻辑缺陷与实体不匹配的问题,通过LSTM与规则融合机制进行自动修复. CG基于查询类型构建模板,结合规则扩展、领域知识引入与大语言模型辅助生成,实现面向多数据库结构的高效语料生成. 实验在多个真实空间数据集上进行,结果表明所提方法显著提升了NL2SQL模型的查询转换率和查询准确率,在生成效率与语料多样性等方面均优于主流大语言模型. 实验结果不仅验证了自动检测与修复机制在空间查询语义对齐中的有效性,也展现了模块化语料构建在可控性、扩展性和适应不同数据库方面的优势. 本研究为空间NL2SQL提供了稳定、高效的语料支持路径,具备良好的工程实用性和未来推广价值. 未来计划构建可视化平台,支持用户自主上传数据库并进行查询检测与语料生成操作,提升系统的交互性与适用范围;建立更系统的语料评估体系,引入多维度指标以优化语料质量控制机制,增强平台的实用性.

参考文献

GÜTING R H, BÖHLEN M H, ERWIG M, et al

A foundation for representing and querying moving objects

[J]. ACM Transactions on Database Systems, 2000, 25 (1): 1- 42

DOI:10.1145/352958.352963      [本文引用: 1]

KATSOGIANNIS-MEIMARAKIS G, KOUTRIKA G. A deep dive into deep learning approaches for text-to-SQL systems [C]// Proceedings of the 2021 International Conference on Management of Data. [S.l.]: ACM, 2021: 2846–2851.

[本文引用: 1]

LIU M, WANG X, XU J, et al

NALSpatial: a natural language interface for spatial databases

[J]. IEEE Transactions on Knowledge and Data Engineering, 2025, 37 (4): 2056- 2070

DOI:10.1109/TKDE.2025.3525587      [本文引用: 1]

LI J, WANG W, KU W S, et al. SpatialNLI: a spatial domain natural language interface to databases using spatial comprehension [C]// Proceedings of the 27th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems. Chicago: ACM, 2019: 339–348.

[本文引用: 1]

TROY C, STURLEY S, ALCARAZ-CALERO J M, et al

Enabling generative AI to produce SQL statements: a framework for the auto-generation of knowledge based on EBNF context-free grammars

[J]. IEEE Access, 2023, 11: 123543- 123564

DOI:10.1109/ACCESS.2023.3329071      [本文引用: 1]

DING N, MELLONI L, TIAN X, et al

Rule-based and word-level statistics-based processing of language: insights from neuroscience

[J]. Language, Cognition and Neuroscience, 2017, 32 (5): 570- 575

DOI:10.1080/23273798.2016.1215477      [本文引用: 1]

LI H, ZHANG J, LI C, et al

RESDSQL: decoupling schema linking and skeleton parsing for text-to-SQL

[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2023, 37 (11): 13067- 13075

[本文引用: 1]

WANG B, SHIN R, LIU X, et al. RAT-SQL: relation-aware schema encoding and linking for text-to-SQL parsers [EB/OL]. (2021–08–24)[2025–05–29]. https://arxiv.org/pdf/1911.04942.

[本文引用: 1]

GUO J, ZHAN Z, GAO Y, et al. Towards complex text-to-SQL in cross-domain database with intermediate representation [EB/OL]. (2019–05–29)[2025–05–29]. https://arxiv.org/pdf/1905.08205.

[本文引用: 1]

ZELLE J M, MOONEY R J. Learning to parse database queries using inductive logic programming [C]// Proceedings of the AAAI. [S.l.]: AAAI, 1996: 1050–1055.

[本文引用: 1]

CHANG S, PALZER D, LI J, et al. MapQA: a dataset for question answering on choropleth maps [EB/OL]. (2022–11–15)[2025–05–29]. https://arxiv.org/pdf/2211.08545.

[本文引用: 1]

YU T, ZHANG R, YANG K, et al. Spider: a large-scale human-labeled dataset for complex and cross-domain semantic parsing and text-to-SQL task [C]// Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: Association for Computational Linguistics, 2018: 3911–3921.

[本文引用: 1]

ZHONG V, XIONG C, SOCHER R. Seq2SQL: generating structured queries from natural language using reinforcement learning [EB/OL]. (2017–08–31)[2025–05–29]. https://arxiv.org/pdf/1709.00103.

[本文引用: 1]

杨锦锋, 关毅, 何彬, 等

中文电子病历命名实体和实体关系语料库构建

[J]. 软件学报, 2016, 27 (11): 2725- 2746

DOI:10.13328/j.cnki.jos.004880      [本文引用: 2]

YANG Jinfeng, GUAN Yi, HE Bin, et al

Corpus construction for named entities and entity relations on Chinese electronic medical records

[J]. Journal of Software, 2016, 27 (11): 2725- 2746

DOI:10.13328/j.cnki.jos.004880      [本文引用: 2]

SNOW R, O’CONNOR B, JURAFSKY D, et al. Cheap and fast – but is it good? Evaluating non-expert annotations for natural language tasks [C]// Proceedings of the 2008 Conference on Empirical Methods in Natural Language Processing. Honolulu: Associaton for Computational Linguistics, 2008: 254–263.

[本文引用: 1]

费浩, 纪荣嵘, 任亚锋

基于动态句法剪枝机制的中文语义角色标注

[J]. 计算机学报, 2022, 45 (8): 1746- 1764

DOI:10.11897/SP.J.1016.2022.01746      [本文引用: 1]

FEI Hao, JI Rongrong, REN Yafeng

Chinese semantic role labeling based on dynamic syntactic pruning

[J]. Chinese Journal of Computers, 2022, 45 (8): 1746- 1764

DOI:10.11897/SP.J.1016.2022.01746      [本文引用: 1]

KENNEDY G. An introduction to corpus linguistics [M]. London: Routledge, 1998.

[本文引用: 1]

LONG L, WANG R, XIAO R, et al. On LLMs-driven synthetic data generation, curation, and evaluation: a survey [C]// Proceedings of the Findings of the Association for Computational Linguistics. Bangkok: Association for Computational Linguistics, 2024: 11065–11082.

[本文引用: 1]

GÜTING R H, BEHR T, DÜNTGEN C

SECONDO: a platform for moving objects database research and for publishing and integrating research implementations

[J]. IEEE Data Engineering Bulletin, 2010, 33 (2): 56- 63

[本文引用: 1]

/