自然语言处理 第11章 问答系统 复习

news2024/11/15 17:08:17

问答系统

  • 问答系统概述
    • 问答系统定义
    • 问答(QA)系统发展历程
    • 问答系统分类:
    • 问答系统框架:
    • 内容提要
  • 专家系统
  • 检索式问答系统
    • 1.问题分析
      • 主要功能:问题分类 和 关键词提取
      • 问题分类实现方法
    • 2.关键词提取
    • 检索模块
      • 相关文档检索
      • 句段检索
    • 3. 答案抽取模块
    • 检索式问答实现方式
      • 流水线方式
        • Document Retriever
        • Document Reader
      • 流水线方式小结
      • 端到端方式
      • Retriever-Reader的联合学习
      • 基于预训练的Retriever-Free方法
    • 社区问答系统
      • 问题分析
      • 信息检索部分
      • 答案抽取部分
      • 社区问答的特点:
      • 社区问答的优势:
    • 知识库问答系统
      • 知识库问答任务:
      • 技术挑战:
      • 解决方法
      • 最新研究方向:融合文本和知识图谱的问答
        • 知识图谱问答的优势
        • 知识图谱问答的局限性

问答系统概述

问答系统定义

问答系统(QA)是一个人与计算机交互的过程。其中包括了解用户的需求,(通常以自然语言查询语句表示);从选定的资源中检索相关的文档、数据或知识,产生相应答案并以有效的方式回答问题
在这里插入图片描述

问答(QA)系统发展历程

在这里插入图片描述

  • 从完成简单任务向复杂任务发展
  • 从有限领域向开放领域发展
  • 研究范围越来越广泛

问答系统分类:

在这里插入图片描述

问答系统框架:

特点:提问为事实性问题,单轮问答 (查找答案)
在这里插入图片描述

  • 问题理解:
    对给定的问题进行分析,得到问题句子成分信息、所属类别和潜在答案类型等信息
  • 资源分析:
    根据问题分析得到的结果信息 在已有的数据集中获得可能含有答案的数据。
  • 答案形成:
    在得到候选答案集中采用各种技术抽取或生成答案并返回给用户

在问答系统的不同发展阶段,对于这三个基本问题的解决方法随着数据资源的变化在不断变化,从而形成了不同类型的问答系统

内容提要

  1. 专家系统
  2. 检索式问答系统
  3. 社区问答系统
  4. 知识库问答系统 (重点复习内容)

专家系统

  • 特点
    问题限定领域;数据基于结构化领域知识数据。它们的后台有一个数据库,保存系统可提供的各种数据。而在用户提问时,系统把用户的问题转换成SQL查询语句,从数据库中查询到数据提供给用户。

  • 构建系统关键:

    1. 需要构建一个特定领域的比完备的结构数据库
    2. 能准确、高效地把问题转化为查询语言形式的查询
  • 局限性:
    一般只能用在限定领域

  • 核心思想:构建一个特定领域的比完备的结构数据库通过分析问题,把问题转化为一个查询(query),然后在结构化数据中进行查询,返回的查询结果即为问题的答案。

早期的两个比较著名的QA系统:
BASEBALL(1961年)和LUNAR(1973年)两个系统在各自特定的领域取得了巨大的成功。

  • BASEBALL:可用来回答美国一个季度棒球比赛的时间地点成绩等 自然语言问题
  • LUNAR:可帮助地质学家方便的了解、比较和苹果股阿波罗登月计划积累的月球岩石的各种化学分析数

检索式问答系统

特点
问题领域开放,基于非结构化Web数据;检索内容为简短的词或词组。

  1. 问题分析:
    • 检测问题类型、答案类型、关注点、关系等
    • 问题改写为查询,输入搜索引擎
  2. 文档与段落检索
    • 检索相关文档
    • 相关文档划分为片段,对片段进行排序
  3. 答案抽取
    • 在相关片段中抽取备选答案
    • 对备选答案进行排序 在这里插入图片描述基于大规模文档集的问答系统:信息检索技术和信息抽取技术的结合

1.问题分析

主要功能:问题分类 和 关键词提取

  • 事实型问题:“谁”、“何时”、“多少”、 “哪里”……
  • 定义型问题:“是什么”、“什么是”……
  • 复杂型问题:“为什么”、“如何”……

问题分类实现方法

基于规则的方法

  • 定义规则模板 : Who {is|was|are|were} Person
  • 问题类型词检测 :Which city in China has the largest population?

基于学习的方法(统计法 /深度学习法)

  • 定义问题分类
  • 标注训练数据的问题类型
  • 训练问题类型分类器:问题词/短语、词性、句法树、命名实体等特征

2.关键词提取

根据问题分类,用序列标注法抽取相应类别的实体做为检索关键词

检索模块

主要功能:检索问题答案所在文档与段落

相关文档检索

方法:(文档切分)

  • 以连续的n个句子作为一个文档句段
  • 以篇章的一个段落(paragraph)为一个文档句段
  • 文档进行子话题(subtopic)分割,把一个子话题作为一个句段

句段检索

方法:(特征匹配)

  • 句段和问题之间匹配的词的个数
  • VSM的余弦相似度
  • 深度学习方法(匹配问题)

3. 答案抽取模块

实现方法:( 匹配问题)
• 简单匹配的方法
• 基于表层模式匹配的方法
• 基于多特征的统计机器学习
• 基于深度学习方法

检索式问答实现方式

流水线方式

  • 分两步:Document Retriever 和 Document Reader

Document Retriever

  • 计算文档的TF-IDF加权的unigram/bigram 向量表示
  • 基于问题和文档的向量表示的相似度,对文档排序,选择Top K 文档

Document Reader

特点:将答案抽取转化为抽取式阅读理解问题

  • 输入:一个文档段落,一个自然语言描述的问题
  • 输出:段落中抽取的答案片段

里面用到的技术:

  • Stength-based Re-ranking
  • Coverage-based Re-ranking
  • Re-ranking combination

流水线方式小结

  • Document Retriever + Reading Comprehension Reader框架简化了开放域QA的过程
  • 需要进一步探索的方向:
    • 多片段全局分析方法
    • 片段重排序方法
    • 答案重排序方法
    • 改进训练过程

端到端方式

• Retriever-Reader的联合学习
• 基于预训练的Retriever-Free方法

Retriever-Reader的联合学习

就是之前说的先Document Retriever再Document Reader

基于预训练的Retriever-Free方法

★ Language Models as Knowledge Bases
• GPT-2是一个在大规模语料训练的基于transformer结构的大型语言模型
在这里插入图片描述
★ How Much Knowledge Can You Pack Into the Parameters of a Language Mode
在这里插入图片描述

  • 在非结构化数据上的大规模预训练模型在不需要检索外部知识的情况下,在开放域QA上获得了和有监督方法匹敌的效果
  • 模型效果很大程度上受模型规模的影响
  • 如何引入更精准的外部知识和人类经验以进一步提升AI问答能力?(例如:ChatGPT)

社区问答系统

  • 社区问答系统
    社区问答任务:根据用户所提问题,找到社区中与之相应的答案
  • 社区问答包含三个部分:
    • 问题分析
    • 信息检索部分
    • 答案抽取部分

问题分析

在问题分析部分,与问答式检索系统的问题分析部分基本一样,区别在专家系统和问答式检索系统一般都只能处理客观、事实类型的问题。而在社区问答数据中有大量的主观类型的问题,主观问题没有标准答案,而且答案可以多个

信息检索部分

在信息检索部分,与问答式检索系统不同,基于问题答案对的问答系统已经有了问题和对应的答案,不必在文本中搜寻答案,因此在检索部分只需找到和问题类似的问题,然后返回答案或者相似问题列表即可。

  • 关键问题:
    (1)问题对的检索模型
    (2)问题答案对的相似性判断

(1)问题对的检索模型

  • 在经过问题分析之后,需要通过信息检索部分把相关的问题检索出来,然后才能在答案抽取部分抽取合适的答案。
    (2) 问题答案对的相似性
  • 把与给定问题相似的问题找到,然后再在相似的问题中寻找最好的答案。

答案抽取部分

在答案抽取部分,由于问题答案对已经有了答案,答案抽取最重要的工作就是判断答案的质量。

答案选择的主要研究问题:

  • 问题:答案间的文本匹配问题
  • 挑战:问题句子通常较短,答案通常较长,包含大量的噪声和冗余信息,与问题相关的信息十分稀疏
    在这里插入图片描述

社区问答的特点:

  • 包含丰富的元数据,包括用户类型、问题类型、问题发布时间等
  • 问题和答案的文本一般较长,包含大量噪声
  • 答案质量差距很大

社区问答的优势:

  • 解决个性化、开放域、异构、精确的问题
  • 社区用户相比机器能够更精准理解问题、更高质量回答问题
  • 不断积累丰富的知识

知识库问答系统

基于知识库(知识图谱)的问答系统

知识库问答任务:

给定自然语言问题,通过对问题进行语义理解和解析,利用知识库进行查询、推理得出答案。

  • 问题描述:根据给定问题,在知识图谱中检索/推理相关实体作为答案。
  • 特点:回答的答案是知识库中的实体
    在这里插入图片描述

技术挑战:

  • 语言多样性
    • 相同问题有多种语言表达方式
    • 需要把问题映射到知识图谱的实体上
      知识图谱搜索规模大
  • 一些freebase中实体包含>160,000邻居
    • 大量复合性问题

解决方法

  1. 语义解析(Semantic Parsing)
    偏语言学的方法,主体思想是将自然语言转化为一系列形式化的逻辑形式(logic form),通过对逻辑形式进行自底向上的解析,得到一种可以表达整个问题语义的逻辑形式,通过相应的查询语句在知识库中进行查询,从而得出答案。
  2. 信息抽取(Information Extraction)
    通过提取问题中的实体,通过在知识库中查询该实体可以得到以该实体节点为中心的知识库子图,子图中的每一个节点或边都可以作为候选答案,通过观察问题依据某些规则或模板进行信息抽取,得到问题特征向量,建立分类器通过输入问题特征向量对候选答案进行筛选,从而得出最终答案。
  3. 向量建模(Vector Modeling)
    根据问题得出候选答案,把问题和候选答案都映射为分布式表达(Distributed Embedding),通过训练数据对该分布式表达进行训练,使得问题和正确答案的向量表达的得分(通常以点乘为形式)尽量高,模型训练完成后则可根据候选答案的向量表达和问题表达的得分进行筛选,得出最终答案。
  4. 表示学习法
    问题主题抽取→ 知识子图抽取 → 知识子图表示 → 问题-知识相关性计算
    • 优点:不需要定义大量模板,端到端学习
    • 不足:回答复杂问题差,缺乏可解释性

最新研究方向:融合文本和知识图谱的问答

  • 主要思路
    • 通过实体链接关联问题和知识库(文本、知识图谱)中的实体
    • 图表示学习进行答案预测
  • 代表性工作
    • GRAFT-Net [Sun & Dhingra et al., EMNLP 2018]
    • Knowledge-aware Reader [Xiong et al., 2019]

★ GRAFT-Net (融合文本和知识图谱的问答)
主要思想:

  • 采用文本和知识图谱构建一个异构图
  • 采用图神经网络选择异构图上的一个节点作为答案

知识图谱问答的优势

  • 人工构建的知识库确保了答案的准确性
  • 常识或“简单”问题容易在知识图谱中找到答案
    • 如果语义解析(questionàQuey)正确
    • 知识图谱的图结构支持多步推理问答

知识图谱问答的局限性

  • 依据知识图谱能够回答的问题十分有限
    • 只涉及常见的实体与关系
    • 知识图谱无法实时更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回顾2022年,展望2023年

这里写目录标题回顾2022年博客之星你参加了吗?学习方面写博客方面在涨粉丝方面展望2023回顾2022年 时间如梭,转眼间已经2023年了。 你开始做总结了吗? 博客之星你参加了吗? 这是 2022 博客之星 的竞选帖子, 请你在这…

【从零开始学习深度学习】36. 门控循环神经网络之长短期记忆网络(LSTM)介绍、Pytorch实现LSTM并进行训练预测

上一篇文章介绍了一种门控循环神经网络门控循环单元GRU,本文将介绍另一种常用的门控循环神经网络:长短期记忆(long short-term memory,LSTM),它比GRU稍复杂一点。 本文将介绍其实现方法,并使用其…

leetcode 221. 最大正方形-java题解

题目所属分类 动态规划 前面写过一个面积最大的长方形 传送门 f[i, j]表示:所有以(i,j)为右下角的且只包含 1 的正方形的边长最大值 原题链接 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 代…

最邻近方法和最邻近插入法求TSP问题近似解(可视化+代码)

摘要:本文总体内容为介绍用最邻近方法(Nearest Neighbor Algorithm) 和最邻近插入法求解旅行商问题(Traveling Saleman Problem,TSP)。同时使用python实现算法,并调用networkx库实现可视化。此文为本人图论课下作业的成品,含金量:…

【若依】前后端分离版本

一、何为框架?若依框架又是什么?具备什么功能? 框架的英文为Framework,带有骨骼,支架的含义。在软件工程中,框架往往被定义为整个或部分系统的可重用设计,是一个可重复使用的设计构件。类似于一…

leetcode1801:积压订单中的订单总数(1.2日每日一题)

迟来的元旦快乐!!! 题目表述: 给你一个二维整数数组 orders ,其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种…

电子档案利用安全控制的办法与实现

这篇文章是笔者2015年发表在《保密科学技术》第2期的一篇文章,时隔7年半温习了一遍之后感觉还有一定的可取之处,所以在结合当前档案法律法规相关要求并修改完善其中部分内容之后分享给大家。 引言 INTRODUCTION 21世纪是一个信息化高度发展的时代&#…

网站漏洞与漏洞靶场(DVWA)

数据来源 本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 为什么要攻击网站?常见的网站漏洞有哪些? 在互联网中,…

Java安装详细步骤(win10)

一、下载JDK JDK下载地址:Java Archive | Oracle,下图为win10版本 二、安装过程 2.1 以管理员方式运行exe 2.2 更改JDK安装目录和目标文件夹的位置 2.3 安装完成 三、配置环境变量 3.1 快速打开环境变量设置 WinR打开运行对话框,输入…

【计组】CPU并行方案--《深入浅出计算机组成原理》(四)

课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间 一、Superscalar和VLIW 程序的 CPU 执行时间 指令数 CPI Clock Cycle Time CPI 的倒数,又叫作 IPC(Instruction Per Clock),也就是一个时钟周期…

软件测试新手入门必看

随着软件开发行业的日益成熟,软件测试岗位的需求也越来越大。众所周知,IT技术行业一直以来都是高薪岗位的代名词,零基础想要转业的朋友想要进入这个行业,入门软件测试是最佳的途径之一。考虑到大多数软件测试小白对这个行业的一片…

动态规划——树形dp

树形dp 文章目录树形dp概述树形dp 路径问题树的最长路径思路代码树的中心换根DP思路代码数字转换思路代码树形dp 有依赖的背包二叉苹果树思路代码树形dp 状态机没有上司的舞会思路代码战略游戏思路代码皇宫看守思路代码总结概述 树形 DP,即在树上进行的 DP。由于…

springboot常用启动初始化方法

在日常开发时,我们常常需要 在SpringBoot 应用启动时执行某一些逻辑,如下面的场景: 1、获取一些当前环境的配置或变量; 2、连接某些外部系统,读取相关配置和交互; 3、启动初始化多线程(线程池…

Linux 网络编程套接字

目录 一.网络知识 1.网络通信 2.端口号 (1)介绍 (2)端口号和进程ID 3.TCP协议 4.UDP协议 5.网络字节序 二. socket编程接口 1.socket常见API 2.sockaddr结构 (1)sockaddr结构 (2&a…

JavaScript 语句

文章目录JavaScript 语句JavaScript 语句分号 ;JavaScript 代码JavaScript 代码块JavaScript 语句标识符JavaScript 语句 JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。 JavaScript 语句 JavaScript 语句是发给浏览器的命令。 这些命令的作用是告诉浏…

顶象入选信通院“数字政府建设赋能计划”成员单位

为进一步推动数字政府建设提质增效,由中国信息通信研究院(以下简称“中国信通院”)联合数字政府相关企业、科研机构共同成立“数字政府建设赋能计划”,旨在凝聚各方力量,整合优质资源,开展技术攻关&#xf…

FlinkSQL基本语法和概念

Flink Sql1、简介2、网址3、SQL客户端4、Queries5、Create6、Drop7、Alter8、Insert9、ANALYZE10、Describe11、Explain12、Use13、Show14、Load15、Unload16、Set17、Reset18、Jar19、Windowing TVF19.1、TUMBLE(滚动窗口)19.2、HOP(滑动窗口…

rabbitmq+netcore6 【2】Work Queues:一个生产者两个消费者

文章目录1)准备工作2)新建消费者13)新建消费者24)生产者5)知识点解读1、autoAck: true2、重复声明/前后不一致3、Message durability 消息持久化4、Fair Dispatch 公平调度5、综合以上知识点的代码:官网参考…

Linux的运行级别

Linux的运行级别: Linux系统有7种运行级别(runlevel): 运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行运行级别 1:单用户工作状态,root权限,用于系统维护,找回丢失…

少儿Python每日一题(9):约瑟夫环

原题解答 本次的题目如下所示(原题出处:蓝桥杯) 【编程实现】 有n个人围成一个圈,按顺序排好号。然后从第一个人开始报数(从1到3 报数),报到3的人退出圈子,然后继续从1到3报数,直到最后留下一个 人游戏结束,问最后留下的是原来第几号。 输入描述:输入一个正整数n 输…