智能答疑系统

article/2025/11/6 18:41:52

        问答系统是目前自然语言处理领域中的研宄热点,它既能让用户通过自然语言直接发问,又能直接向用户返回精确、简洁的答案,而不是一系列相关网页。

      从算法与模型上来说,问答系统主要分成两个流派,一派是搜索式问答,另一派则是基于端到端方法的生成式问答,近年来两个流派都得到了长足发展,涌现了很多优秀的论文。然而,当我们真正开始使用这些问答系统与算法时,就会发现其有两大严重的问题尚未解决,一是对于领域相关的问题回答不够精确,二是对开放类问答的简单问题回答较为单一,且容易出现“I don’t know”类的笼统回答。主要是因为(1)现有模型没有考虑到问答上下文的情景并加以优化;(2)核心算法优化不足;(3)缺乏足量的训练语料覆盖各种情景。这些因素导致当前主流的模型在实际应用中力显不足。众多学者在现有方法上针对问答的特性进行了大量改进,但各方面的提升似乎收效甚微。

一、面向具体任务的检索式问答系统

    近年来,基于检索的面向具体问题的问答系统得到了广泛的发展,大量研宄人员对其进行了深入的研宄。基于检索的问答系统可以被化归为一种复杂的信息检索系统,可以自动将用户的自然语言问句转化为查询请求并从一系列候选文档中找到可能性最高的回答。早在1999年,TREC比赛就加入了问答系统比赛项目,目前大部分问答系统的构建思路都是在现有的信息检索(IR)系统外添加用户问句意图预测与分类模块、答句检索与答案提取模块、问答状态追踪模块以实现所需功能。因此,检索式问答系统的核心性能与其依赖的IR系统紧密相关,是理论上限。而IR系统的性能取决于其文档索引与查询请求的设计,由于自然语言天生具有句式复杂、表达多样的特性,大部分问答系统的IR模块都会采用问句重写[(Query Expansion)与语义模板(SemanticTemplate)的方法来化简自然语言问句与提高召回率。这两种方法多采用语言学家手工构造规则模板,选用特征包括同义词、反义词、上下位词、频次信息、标点、关键词、代词、位置(比如句首与句尾)、前后词性标注(POSTag)作为问句的特征,然后利用各类传统的机器学习分类算法如K最近邻算法、支持向量机(SVM)算法重写问句与模板匹配。这些方法大多依赖于词典、语义模板,倘若这些先验知识足够准确与丰富,其准确率与召回率还是相当高的,然而,这类方法的局限性很大,且难以扩展维护,随着问句种类的增多,需要花大量时间大幅度修改模板、维护词典,在工业中应用困难。另外,此类方法或多或少忽略了问句的上下文语境与语义信息,准确率较低。

    近年来,深度学习方法在语音和图像处理领域取得了突破性进展,其在自然语言处理领域也越来越受到重视,并逐渐被广泛应用于各类自然语言处理任务中。其中很多工作采用了词向量(word2vec)与卷积神经网络CNN)并在多个数据集上证明了方法的有效性,此类方法可以很好的与现有的问答系统框架结合,根据这种思想,在现有的问答系统框架中加入了word2vec与CNN模型,提升问答系统的各项指标。

二、端到端开放领域问答系统

   基于检索的问答系统从一系列可能的回答中选出一个与问句最相关的答句,因此从本质上来说其并没有生成任何新的句子,因此我们无需担心答句中引入的语法错误。与基于检索的问答系统不同,端到端问答系统较为智能,其基于用户的问句中的每一个词依次生成答句,因此在答句中可能会有语法错误。另外,此种模型的训练较为复杂,这是因为在训练中需要学习各类复杂的句子结构。但是,一旦完成了训练,端到端问答系统在未登入(non-seen)的用户问句情境下能大幅超过大多数基于检索的问答系统,而且给用户以一种与真人交流的感受。

       端到端模型最先在机器翻译方向得到应用,从此一发不可收拾,成为了机器翻译方向的首选方法,后续文章大部分基于此类模型进行优化与改造。由于问答系统的训练输入为问句-答句对,与机器翻译系统的平行语料训练输入格式极为相似,因此近年来在问答系统中也大量采用了端到端方法改进系统。

     其模型结构较为简单,主要有两个循环神经网络(RNN)构成,两个RNN中的一个作为编码器将用户经过分词的输入句子按照输入顺序逐词编码成一个由隐藏层输出定长的向量,这样一个定长的隐藏层向量可以充当输入句子的语义特征向量,其嵌入了句子中各类重要的语义信息,因此可以很有效的表征一个句子的语义。

      我们可以将编码的过程沿着时间轴进行可视化,每一轮前一个词的编码结果将会作为下一轮后一个词的编码过程的输入的一部分,因此最终得到的隐藏层向量包含了整句句子的语义信息,而在解码过程中,另一个RNN作为解码器,根据输入一个个词输出解码的结果,将这些词按序拼接后得到的就是对于用户问句的答句。在这个过程中,每一个RNN单元的输入是上一轮解码的隐藏层向量与前N轮解码出的单词。

      因此,在解码过程中的每一轮输出的结果都受到了上下文(也就是编码结果)以及之前N轮生成的单词的影响,因此此类系统输出的答句既能准确回答用户的问题,又具有较好的语法结构、语序合理,而且答句句式较为新颖。相比之下,对于基于检索的方法,其所有回答大多来自于现存的知识图谱或数据库,因此很少会出现语法错误,但是这种方法无法对没有事先定义的输入问句进行有效回答。同样这些模型无法考虑在很早之前的会话中出现的实体信息。而端到端方法可以回溯到前文讨论的实体,给人感觉像是在和人问答,然而端到端模型难以训练,并且容易使用语法错误的答句进行回复。另外,由于大部分模型都采用了RNN,因此这类模型也继承了RNN的缺点,如问句长度受限,答案主观性太强、忽略了问句中的同义词、多义词等。

三、相关技术

1、中文分词

    中文分词算法所描述的是在中文语句中将句子拆分,使其成为一个个独立的中文词语。中文分词的过程就是将成句的中文语句根据一系列制定好的规则拆分成中文词序列的过程。

2、基于向量空间模型的语句相似度计算

     Salton 等学者在 60 年代提出向量空间模型(VSM:Vector Space Model),并将该模型成功地应用于著名的 Smart 文本检索系统[1]。VSM 用向量空间中的向量运算替代对文本内容的处理,在这种模型中,以向量空间上的相似度来表达中文语义的相似度,该模型概念简单,直观易懂。当对一份中文文档建立向量空间模型,将其表示为中文文档空间的向量,计算机就可以很容易通过编程来计算向量之间的相似度,从而衡量中文文档间的相似性。在中文文本处理中,我们常用余弦距离来定量计算文本的相似性。

      在向量空间模型中,将每个中文词语看成一个向量维度,而中文词语的频率看成向量的模,这样一来,每个中文文本的词语和词语的频率就形成了一个 N维向量空间,定义两个向量空间的接近程度为两个中文文本的相似度。当中文文档的词语数量较多时,上述方法的运算量很大。因此人们使用降低向量维度的方法来降低算法复杂度。落实到中文文本的相似度计算中,具体方法就是减少中文词语的数量。人们常常使用功能词和停用词作为降维的词。而向量的维度降低了,不但能提高算法效率,还能提高算法中计算的准确度。通过对文本构建上述的向量空间模型,文本数据就从计算机不易处理的抽象数据转换成了计算机容易处理的结构化数据,而中文文本之间的相似性问题就转化成了两个空间向量之间的接
 

3、语义相似度计算

     文本语义分析作为自然语言学习中的最大的挑战,其基础性工作便是计算语义相似度。计算语义相似度不仅在词语获取上,学习词的定义,机器翻译中甚至在信息检索中都有着广泛的应用空间。我们需要一定的语义知识资源作为其基础,才能计算中文语义的相似度。在英语中,人们通常采用 Word Net,研究中引入了梅家驹等人编纂而成的《同义词词林》作为系统的语义知识资源。    
    梅家驹等人于 1983 年编写了《同义词词林》,这本词典中除了有介绍一个词语的同义词之外,也对词语的相关词进行了一定数量的介绍,即和该词语具有同类意义词。然而这本书创作已经有一些时日,并且在其问世之后作者没有对其进行继续更新,所以高校的学者研究专家利用相关的资源,撰写了一部《同义词词林扩展版》,该词典具有汉语大词表,词典中摘录近 7 万条词语,所有的词语都按意义进行编排,该词典是一部很好的同义类词典。

4、索引结构

普通问句的存在形式为:(形式 1)
Question→Key Word1, Key Word2, Key Word3, Key Word2
   ……
这表示一个问句由许多的关键词(Key Word)组成。
倒排索引即翻转过程,表示为:(形式 2)
Key Word1, Key Word2, Key Word3, Key Word2→Question
建立倒排索引的过程就是将形式 1 转化为形式 2,并且要进行 Key Word 与Question 的合并

5、词向量模型

词向量技术来源于谷歌年发布的幵源工具word2vec。词向量技术分为两种模型,第一种模型是CBOW,第二种模型是SKIP_GRAM..


http://chatgpt.dhexx.cn/article/4SNrMwHO.shtml

相关文章

人工智能AI系列 - 问答系统

目录: http://aias.top/ 问答系统 问答系统(Question Answering System, QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是人工智能和…

智能问答系统:问句预处理、检索和深度语义匹配技术

更多干货内容敬请关注「平安寿险PAI」(公众号ID:PAL-AI),文末有本期分享内容资料获取方式。 智能问答系统是人机交互的核心技术之一,常见的应用场景主要是智慧客服。通过构建该系统,机器人可以快速找到与用户问题相匹配的答案并自动回答,从而大大减少企业的人力成本;除…

自然语音处理(NLP)系列(五)——详解智能问答系统

为方便客户进行网上登记,提升各大官网系统的智能化水平,很多官网已上线“智能小客服”。“智能小客服”支持语音引导、机器人24小时智能问答、文字提问、上传图片咨询、关联问题推荐、远程人工客服等多种便利化的贴心咨询服务。这些服务中运用到了自然语…

FAQ智能问答系统设计与实现

一、项目介绍 FAQ(FAQ,frequently-asked questions)问答系统表示常见问题问答系统,常用于一些特定领域的智能客服,将用户经常问到的高频问答对索引起来,当新的提问命中时可以快速回答,准确而高…

react全家桶实战

整个目录结构如下: package.json代码如下: {"name": "active","version": "0.1.0","private": true,"dependencies": {"react": "^16.4.1","react-dom"…

React全家桶学习

来源:尚硅谷视频教程 - 张天禹 一、React简介 1 react特点 React:用于构建用户界面的javascript库。是一个将数据渲染为HTML视图的开源JavaScript库。 react的特点: 1.采用组件化模式、声明式编码,提高开发效率及组件复用率。…

react全家桶实战(千峰教育)

说明&#xff1a;本笔记为本人基于千锋教育2022版React全家桶教程_react零基础入门到项目实战完整版的学习笔记&#xff0c;知识点不清或不全&#xff0c;可以到视频教程中学习 文章目录 一、安装create-react-app&#xff0c;新建react项目1、安装脚手架create-react-app<s…

搭建react全家桶

1.安装react项目 ①使用webpack安装 npx create-react-app my-app cd my-app npm start ②使用vite安装 创建Vite项目 npm create vitelatest my-vue-app --template react cd my-app npm run dev 配置vite.config.js import { defineConfig } from vite import react from vit…

React 全家桶

文章目录 前言一、React是什么&#xff1f;二、基础内容1. React 相关 js 库2. React 开发者调试工具3. JSX语法规则4. 模块与组件、模块化与组件化5. 类的基本知识 三、React 面向组件编程1. 函数式组件2. 类式组件3. 组件实例的三个核心属性&#xff1a; state、refs、props-…

React全家桶

文章目录 第1章&#xff1a;React入门1.1. React简介1.1.1. 官网1.1.2. 介绍描述1.1.3. React的特点1.1.4. React高效的原因 1.2. React的基本使用1.2.1. 效果1.2.2. 相关js库1.2.3. 创建虚拟DOM的两种方式1.2.4. 虚拟DOM与真实DOM 1.3. React JSX1.3.1. 效果1.3.2. JSX1.3.3. …

react全家桶有哪些?(详细)

一 、 create-react-app脚手架 对于现在比较流行的三大框架都有属于自己的脚手架&#xff08;目前这些脚手架都是使用node编写的&#xff0c;并且都是基于webpack的&#xff09;&#xff1a; Vue的脚手架&#xff1a;vue-cliAngular的脚手架&#xff1a;angular-cliReact的脚手…

React全家桶详细讲解-图文并茂

文章目录 前言一、React-表单处理受控组件使用步骤多表单元素优化非受控组件 二、React-组件综合案例需求分析搭建任务的模板渲染列表添加任务删除任务 三、React-组件进阶组件通讯介绍组件的props 四、react-组件通讯的三种方式react-父组件传递数据给子组件react-子组件传递数…

【尚硅谷React】——React全家桶笔记

文章目录 第1章 React简介1.1 React的特点1.2 引入文件1.3 JSX1.3.1 为什么要用JSX1.3.2 JSX语法规则 1.4 虚拟DOM1.5 模块与组件1.5.1 模块1.5.2 组件 第2章 React面向组件编程2.1 创建组件2.1.1 函数式组件2.1.2 类式组件 2.2 组件实例的三大属性2.2.1 state属性2.2.2 props属…

React全家桶(收藏吃灰必备!)

文章目录 ECMAScript61、ES6简介1.1、什么是ES61.2、ECMAScript和JavaScript的关系1.3、为什么要学习ES6&#xff1f; 2、ES6环境搭建2.1、前期准备2.2、ES6环境搭建 3、let与const3.1、let命令3.2、const命令 4、ES6解构赋值4.1、解构赋值概述4.2、解构模型4.3、数组的解构赋值…

Neurosynth元分析——认知解码工具,软件包安装以及使用

Neurosynth元分析——认知解码工具,软件包安装以及使用 NeuroSynth 基本简介基本原理例子Neurosynth package安装及使用创建虚拟环境安装Dependencies:安装neurosynthNeurosynth使用加载必要的包下载neurosynth数据参考如上图所示。NeuroSynth 元分析感兴趣的区域沿功能连接梯…

编码和解码

概念 字符的三种形态 图片来自&#xff1a;https://zhuanlan.zhihu.com/p/25435644 编码&#xff1a;将字符转为字节序列&#xff08;abcdefg-------------> 0101010…10010&#xff09; 解码&#xff1a;将字节序列转为字符&#xff08;1001010…10010110------> abcd…

编码器和解码器

1.编码器—解码器&#xff08;seq2seq&#xff09; 编码器的作用是把一个不定长的输入序列变换成一个定长的背景变量c&#xff0c;并在该背景变量中编码输入序列信息。常用的编码器是循环神经网络。 编码器可以是一个单向的循环神经网络&#xff0c;每个时间步的隐藏状态只取决…

二维码解码工具

http://tool.chinaz.com/qrcode/?jdfwkeyweexu

编解码工具

支持各种文件摘要&#xff08;Hash&#xff09;、Base64编码、Hex编码、国密sm2加密、Rsa加密&#xff0c;以及各种对称加密算法的小工具 下载地址&#xff1a;https://pan.baidu.com/s/1AJwUaVizzk5HeLa_8Q5AqA 提取码&#xff1a;4567

编码与解码

什么是编码与解码 电脑是由电路板组成&#xff0c;电路板里面集成了无数的电阻和电容&#xff0c; 交流电经过电容的时候&#xff0c;电压比较低 记为低电平 &#xff0c; 用0表示&#xff0c;交流电流过电阻的时候&#xff0c;电压比较高&#xff0c;记为高电平&#xff0c;用…