专栏首页NLP算法工程师之路基于文档的限定领域对话式问答系统设计说明

基于文档的限定领域对话式问答系统设计说明

引言

编写目的

为了从整体上描述基于文档的限定领域对话式问答系统要实现的功能,使用户能够对本系统有一个全面正确的认识,同时给程序开发者一个关于系统的使用,系统的功能模块,以及系统的各种技术解决方案一个详细的说明。

背景

问答系统(Question Answering System, QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是目前人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。 不同的应用需要不同形式的问答系统,其所采用的语料和技术也不尽相同。从涉及的应用领域进行分类,可将问答系统分为限定域问答系统和开放域问答系统。 限定域问答系统是指系统所能处理的问题只限定于某个领域或者某个内容范围,比如只限定于医学、化学或者某企业的业务领域等。由于系统要解决的问题限定于某个领域或者范围,因此如果把系统所需要的全部领域知识都按照统一的方式表示成内部的结构化格式,则回答问题时就能比较容易地产生答案。

开放域问答系统不同于限定域问答系统,这类系统可回答的问题不限定于某个特定领域。在回答开放领域的问题时,需要一定的常识知识或者世界知识并具有语义词典。 按支持问答系统产生答案的文档库、知识库,以及实现的技术分类,可分为自然语言的数据库问答系统、对话式问答系统、阅读理解系统、基于常用问题集的问答系统、基于知识库的问答系统,以及基于大规模文档集的问答系统。 目前国内的大多数问答系统都是针对开放领域的对话式问答系统,在限定领域特别是基于文档的对话式问答系统很少,且功能均不够完善。本文设计了一种使用最先进的深度学习自然语言技术的基于文档的限定领域对话式问答系统设计说明。基本步骤包括处理文档数据、构造训练数据集、模型训练和优化、模型部署等,使用时输入用户需要查询的问题,系统可以自动匹配与问题最相关的段落,并由模型给出问题的答案。此外模型有完整的日志系统以及在线训练和离线训练模块。

概要设计

系统总体设计

系统的整体编程语言使用Python进行开发,使用的深度学习框架为TensorFlow。基于机器阅读理解模型的问答流程如下图所示:

系统模块功能

文档数据识别和处理模块

常见的办公文档多数为txt文档,word文档,excel表格或者pdf文档。针对不同的文档需要设计不同的数据读取方式并进行读取后数据的存储。

模型训练数据的构建模块

SQuAD 示例: 内容:阿波罗计划于 1962 至 1972 年间进行,期间得到了同期的双子座计划(1962 年 - 1966 年)的支持。双子座计划为阿波罗计划成功必需的一些太空旅行技术做了铺垫。阿波罗计划使用土星系列火箭作为运载工具来发射飞船。这些火箭还被用于阿波罗应用计划,包括 1973 年到 1974 年间支持了三个载人飞行任务的空间站 Skylab,以及 1975 年和前苏联合作的联合地球轨道任务阿波罗联盟测试计划。 问题:哪一个空间站于 1973 到 1974 年间承载了三项载人飞行任务? 答案:Skylab 空间站

基于深度学习的阅读理解模型

YESNO问题类型的处理方式 在第一阶段使用的是分类的方法,我后来考虑同样的问题可能在不同原文中可能是不同的回答,所以我就把YESNO作为原文进行训练。具体做法就是在原文后边拼接YESNO字符串,然后将之前的答案索引修改为YESNO对应的索引。这样在训练过程中就可以学到答案跟原文之间的关系,而不像之前只关注问题直接得出答案,实验证明这种方法确实能提高成绩,大概提高了3个百分点。2. 不能回答的问题的处理方式在BERT的源码中,对于不能回答的问题有一套处理方式,就是根据预测结果得出的nbest和答案为空的概率进行对比,如果答案为空的概率最高就把空作为答案。我使用与处理YESNO问题的方式去试了一下,就是将NULL拼接到原文后,将对应的答案索引改为NULL的索引,实验效果证明能提升, 但是只能提升百分之零点几,anyway,有点提升就用起来吧。

模型导出和部署模块

针对问题段落匹配的信息检索模块

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 朴素贝叶斯

    假设现在有一些评论数据,需要识别出这篇文本属于正向评论还是负面评论,也就是对文本进行分类。用数学语言描述就是: 假设已经有分好类的N篇文档:(d1,c1)、(d...

    故事尾音
  • BiliBili蒙版弹幕

    首先打开Mask_RCNN/samples notebook,运行。 出现两个错误:

    故事尾音
  • 海量数据相似度——局部敏感哈希(LSH)

    海量高维数据查找与某个数据最相似的一个或者多个数据。与其它基于Tree的数据结构,诸如KD-Tree、SR-Tree相比,它较好地克服了Curse of Dim...

    故事尾音
  • 估算软件规模之前如何明确划分系统边界?

      软件项目系统边界的正确划分,是使用功能点方法度量软件时识别系统内部和外部需求亦即内部逻辑文件和外部接口文件的前提。在估算软件规模之前,我们应根据软件项目范...

    软件成本造价评估
  • 阿里离职后自我创业:从零到百亿互联网金融架构发展史总体介绍下面做详细介绍

    美的让人心动
  • 高效程序员如何优雅落地需求

    回想起从公司成立敲出的第一行代码算起到现在也快三年了,平台的技术架构,技术体系也算是经历了四次比较重大的升级转化(目前第四代架构体系正在进行中),临近年底也想抽...

    技术zhai
  • 阿里离职后自我创业:从零到百亿互联网金融架构发展史

      回想起从公司成立敲出的第一行代码算起到现在也快三年了,平台的技术架构,技术体系也算是经历了四次比较重大的升级转化(目前第四代架构体系正在进行中),临近年底也...

    美的让人心动
  • 高效程序员如何优雅落地需求总体介绍大数据系统的架构图第三代系统架构第四代系统架构

    美的让人心动
  • 面试官问我,使用Dubbo有没有遇到一些坑?我笑了。

    根据面试经验而言,能在简历上写上原理、源码等关键词的,是非常具备核心竞争力的.上周和粉丝交流面试情况如下

    java架构师
  • 系统运维五大要素

    版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://b...

    shaonbean

扫码关注云+社区

领取腾讯云代金券