文章目录
NLP问答任务分类
NLP问答任务主要包含三个方面:
-
基于无结构化文本的问答
-
文档问答
-
社区问答(FAQ)
-
-
基于结构化文本的问答
-
知识图谱问答
-
表格问答
-
-
视频|图片-文本问答
- 此类问答信息主要蕴含在图片中
- 此类问答信息主要蕴含在图片中
结构化数据问答
定义
基于给定的结构化知识库和自然语言问题,给出问题对应的答案
任务能力(结构化数据问答优势)
- 推理能力:基于现有知识推理/计算给出答案,E.g. OPPOA93比魅族18贵多少呀
- 输出结果可解释:输出知识库查询语句
Test-to-SQL技术
Test-to-SQL技术的含义为:将表格文本转化为SQL查询语句
任务简介
表格问答核心技术,将自然语言问题转成数据库上可执行的SQL查询语句
评估方法
常用的是精确匹配正确率
两种评估方法的选取
- 要根据数据,是否提供SQL语句,是否提供答案
- 实际应用更关注哪个指标(答案准确率还是SQL语句准确率)
数据集
单轮多领域数据集
多领域(cross-domain):训练/测试集使用的数据库是否相同或交叉
单/多表(multi-table):构成数据库的表的数量,多表涉及到表的检索
简单/复杂:从SQL角度评估,是否包含高级从句、集合操作、嵌套等
主流学习方式
当前主流的学习方式有两种,早期研究中还有规则方式
主流方法:
有监督方法,适用更大规模的数据库,但是需要数据中有标注(有SQL语句)
弱监督方法,适合简单的数据集,数据只需给出问题和答案
Text-to-SQL任务本质
本质:基于encoder-decoder框架的多输入生成任务
- encoder(编码)即将输入句子映射到表示空间
- decoder(解码)即从表示空间中解码句子
- 多输入生成任务:对应下图SQL查询语句,红字为数据输入,黄字为问题输入,黑字为SQL关键词,这就对应了多输入
Text-to-SQL任务基本框架
框架基本结构
- 首先把问题和数据库进行编码,然后放入Encoder中
- 在Decoder阶段会分成两种形式,一种是生成式的(即数据库中没有的),另一种是直接能复制的(即包含在数据库中的)
Text-to-SQL任务挑战
挑战一
领域泛化:测试集中数据库未在训练集中出现过
下图例子中处理流程:
- 根据问题与表格中的信息进行匹配
- 通过Text-to-SQL解析器生成SQL查询语句
所遇到的问题即为:如果进行信息匹配,以及对应到SQL语句
挑战二
输出结构化:生成的SQL语句在数据库上可执行,即满足数据库结构、SQL语法
下图例子中,涉及到表格查询的嵌套操作,如何写出相应的能够执行的SQL语句也为一大挑战