自然语言转结构化查询语句(NL2SQL)
定义:
NL2SQL(Natural Language to SQL)旨在将用户的自然语句转为可执行 SQL 语句,从数据库中得到查询结果。
任务类型:
按照表格划分:
1. 单表格NL2SQL:WikiSQL
2. 多表格NL2SQL:Spider
按照Query轮数划分:
1. 单轮NL2SQL:WikiSQL、Spider
2. 多轮NL2SQL:SparC
经典模型:
1. SQLnet: Xu X, Liu C, Song D. Sqlnet: Generating structured queries from natural language without reinforcement learning[J]. arXiv preprint arXiv:1711.04436, 2017.
技术点:
a. 使用分类器选择Column、Aggregator;
b. 使用Pointer Network从Query中选择Value。
2. SQLova: Hwang W, Yim J, Park S, et al. A Comprehensive Exploration on WikiSQL with Table-Aware Word Contextualization[J]. arXiv preprint arXiv:1902.01069, 2019.
技术点:
a. 编码器:问题和表头都作为BERT的输入,两者的信息在BERT层就有交互
b. 解码器:构建三种不同的解码器,实验效果的差距在1%左右(86.8%,85.5%,86.2%)
3. X-net: He P, Mao Y, Chakrabarti K, et al. X-SQL: reinforce schema representation with context[J]. arXiv preprint arXiv:1908.08113, 2019.
技术点:
a. 为问题与表头添加了属性信息;
b. 使用分类器选择Column、Aggregator;
c. 使用Pointer Network从Query中选择Value。
4. IRnet: Guo J, Zhan Z, Gao Y, et al. Towards Complex Text-to-SQL in Cross-Domain Database with Intermediate Representation[J]. arXiv preprint arXiv:1905.08205, 2019.
技术点:
a. 非端到端模型
b. 构建了适合Spider的语法SemQL
c. 使用预训练语言模型Bert作为编码器
d. 使用Coarse-to-fine机制构建解码器
- 点赞
- 收藏
- 关注作者
评论(0)