自然语言处理——结构化数据问答

文章目录

  • NLP问答任务分类
  • 结构化数据问答
    • 定义
    • 任务能力(结构化数据问答优势)
  • Test-to-SQL技术
    • 任务简介
    • 评估方法
    • 数据集
    • 主流学习方式
    • Text-to-SQL任务本质
    • Text-to-SQL任务基本框架
    • Text-to-SQL任务挑战
      • 挑战一
      • 挑战二

NLP问答任务分类

NLP问答任务主要包含三个方面:

  • 基于无结构化文本的问答

    • 文档问答
      自然语言处理——结构化数据问答_第1张图片

    • 社区问答(FAQ)
      在这里插入图片描述

  • 基于结构化文本的问答

    • 知识图谱问答
      自然语言处理——结构化数据问答_第2张图片

    • 表格问答
      自然语言处理——结构化数据问答_第3张图片

  • 视频|图片-文本问答

    • 此类问答信息主要蕴含在图片中
      自然语言处理——结构化数据问答_第4张图片

结构化数据问答

定义

基于给定的结构化知识库和自然语言问题,给出问题对应的答案
自然语言处理——结构化数据问答_第5张图片

任务能力(结构化数据问答优势)

  1. 推理能力:基于现有知识推理/计算给出答案,E.g. OPPOA93比魅族18贵多少呀
  2. 输出结果可解释:输出知识库查询语句

Test-to-SQL技术

Test-to-SQL技术的含义为:将表格文本转化为SQL查询语句

自然语言处理——结构化数据问答_第6张图片

任务简介

表格问答核心技术,将自然语言问题转成数据库上可执行的SQL查询语句

评估方法

常用的是精确匹配正确率
自然语言处理——结构化数据问答_第7张图片
两种评估方法的选取

  1. 要根据数据,是否提供SQL语句,是否提供答案
  2. 实际应用更关注哪个指标(答案准确率还是SQL语句准确率)

数据集

单轮多领域数据集
自然语言处理——结构化数据问答_第8张图片
多领域(cross-domain):训练/测试集使用的数据库是否相同或交叉
单/多表(multi-table):构成数据库的表的数量,多表涉及到表的检索
简单/复杂:从SQL角度评估,是否包含高级从句、集合操作、嵌套等

主流学习方式

当前主流的学习方式有两种,早期研究中还有规则方式
主流方法
有监督方法,适用更大规模的数据库,但是需要数据中有标注(有SQL语句)
弱监督方法,适合简单的数据集,数据只需给出问题和答案
自然语言处理——结构化数据问答_第9张图片

Text-to-SQL任务本质

本质:基于encoder-decoder框架的多输入生成任务

  • encoder(编码)即将输入句子映射到表示空间
  • decoder(解码)即从表示空间中解码句子
  • 多输入生成任务:对应下图SQL查询语句,红字为数据输入,黄字为问题输入,黑字为SQL关键词,这就对应了多输入
    自然语言处理——结构化数据问答_第10张图片

Text-to-SQL任务基本框架

框架基本结构

  1. 首先把问题和数据库进行编码,然后放入Encoder中
  2. 在Decoder阶段会分成两种形式,一种是生成式的(即数据库中没有的),另一种是直接能复制的(即包含在数据库中的)
    自然语言处理——结构化数据问答_第11张图片

Text-to-SQL任务挑战

挑战一

领域泛化:测试集中数据库未在训练集中出现过

下图例子中处理流程:

  1. 根据问题与表格中的信息进行匹配
  2. 通过Text-to-SQL解析器生成SQL查询语句

所遇到的问题即为:如果进行信息匹配,以及对应到SQL语句
自然语言处理——结构化数据问答_第12张图片

挑战二

输出结构化:生成的SQL语句在数据库上可执行,即满足数据库结构、SQL语法

下图例子中,涉及到表格查询的嵌套操作,如何写出相应的能够执行的SQL语句也为一大挑战
自然语言处理——结构化数据问答_第13张图片

你可能感兴趣的:(自然语言处理,自然语言处理,python)