本篇介绍聊天机器人中出现的比较早的一种:问答系统。问答系统跟检索技术很相似,基本的功能就是,用户可以向系统咨询信息,系统通过“检索”,向用户返回精准、有效的信息。所以,常常有人说,问答系统是搜索引擎的最终形态。

作者&编辑 | 小Dream哥

1 什么是问答系统

我们之前介绍过,按照应用场景的不同,聊天机器人可以分为问答系统,对话系统以及闲聊机器人三类。今天我们就来详细讲一讲其中的问答系统。

问答系统是基于用户的问题,给定一个回答,不涉及到多轮对话。通常用于智能搜索,智能家居中的家电控制等场景。问答系统往往不需要调用业务能力,只需要完成对用户问题的匹配及回答。

我们之前介绍过,问答系统的任务其实就是,对用户的输入进行相似度或者相关性计算,然后在相应的FAQ库里,寻找该用户输入对应的答案,并返回给用户。

2 问答系统(QA)中的语料库

通常,一个问答系统,都是针对某一个领域的。例如,一个淘宝卖家的问答系统,针对的是买家常问的商品类型和价格信息问题作出回答。

因此,要构建一个问答系统第一步就是整理FAQ库。一个FAQ库应该如下的内容:

1.标准问。标准问是问答系统设计者设计的标准问题,例如,“***商品的价格是多少?”。标准问的个数,决定了问答系统的规模,通常由业务专家给定。

2.相似问。一个标准问通常会对应多个相似问,与标准问表达相同的意思,但往往会不那么规范,较口语化,相似问通常要求覆盖面越广越好。例如,“****商品多少钱呀?”。相似问早期由业务专家拟定,数据师扩写,后期会不断修缮、规整和增加。

3.答案。一个标准问对应一个答案,返回给用户。由业务专家拟定。

FAQ库的质量,对于一个问答系统非常的重要,但是FAQ库的建立和维护往往都是一件极其费时费人力的事情。当一个FAQ库规模变大时,相似问之间的界限开始变的迷糊,会给算法带来非常大的挑战;另一方面,当FAQ库规模很大时,后期的维护也变得非常的困难。例如,当系统出现bad case,数据师很难判断bad case出现的原因,无法判断是哪条标准问对应的相似问加错了,从而很难修改。

对于一个问答系统而言,高质量FAQ库需要建立的时候就异常用心,通常需要业务专家和算法工程师通力合作;在使用时也需要倍加用心的维护,这时,需要培养多位既了解算法特性,又熟悉业务场景的数据师。这大概是目前生产中大部分问答系统采用维护方案了。

3 问答系统Q-A的匹配方式

在问答系统中,模型算法的任务其实就根据用户输入的问题匹配到相应的答案。这看起来是个简单的问题,实际上不然。

一方面,一个标准问,用户可能的问法有很多,很多时候都无法预料,需要不断的完善;另一方面,FAQ库的规模通常很大,标问数目可以达到数万,相似问的数据可能就更多了。这么大数目的预料,长度不一,算法难度很大。

模型的训练过程,其实就是让模型能够学习到问题-答案(Q-A)对之间的联系,或者Query集的特征。如下图所示,是QA中匹配用户query的模式。

由此可知,目前QA系统的实现,主要有以下三种方式:

1.计算用户输入Query和Question的相似度。通过计算用户输入Query与FAQ语料集中Question之间的相似度,选出相似度最高的Question,再通过Q-A map找到相应的答案返回给用户。

2.计算用户输入Query和Answer的之间的相关性。通过计算用户输入Query与FAQ语料集中Answer之间的相关度,选出相关度最高的Answer,返回给用户。

3.结合用户输入Query和Answer的之间的相关性以及用户输入Query和Question的相似度。通过结合相关性和相似度,选出最匹配的Answer,返回给用户。

4  问答系统中匹配的算法

由上节可知,问答系统中的匹配可以归结为query与FAQ库中标问和相似问的相似度计算与query与FAQ库中答案的相关性计算。总的来说,目前相似度或相关性计算有下面的几种方式。

1)规则匹配

也许有读者会觉得很惊讶,都9012了,还有人用规则匹配来做机器人?其实不必惊讶,目前,很多机器人都有规则匹配的部分,它可控,高效、易于实现。

我这里介绍一种规则匹配的方式,也有人称为句式法。所谓句式法,就是针对FAQ库中的标问和相似问进行分词、提炼出大量的概念,并将上述概念组合,构成大量的句式,句式再进行组合形成标问。例如,标问“华为mate30现在的价格是多少?”,拆出来“华为mate30”是cellphone概念,“价格是多少”是askMoney概念,“现在”是time概念,那么“华为mate30现在的价格是多少?”就是cellphone+askMoney+time。用户输入"华为mate30现在卖多少钱?"进行分词,可以得到相同的句式和概念组合,就能够命中“华为mate30现在的价格是多少?”这个相似问了。

2)深度学习语义匹配

语义匹配笔者之前有介绍相关的代表性论文,感兴趣的同学可以仔细看看,非常有好处:

语义匹配的技术,从早期的DSSM,利用词袋模型,计算句之间的相似度;到后面利用LSTM-DSSM来捕捉长时间序列的语义信息;再到现在的基于BERT的语义相似度计算与匹配。本质上,其实都是提取句子的语义特征,再通过数学运算计算相似度。

5 KBQA介绍

Knowledge Based Question&Answer(KBQA),是一种基于知识体系的问答系统,现在知识库更多的是指知识图谱了。

KBQA回答用户问题的方式通常有如下两个步骤组成:

1.利用NLU模块进行语义理解和解析,包括意图识别,实体识别,实体关系识别,实体匹配等。

2.利用知识图谱进行查询、推理得出答案

搭建KBQA中最重要最关键的一步就在于知识图谱的搭建。知识图谱对于绝大部分NLP任务都有极大的加成,个人认为是当前最有价值的NLP方向。

总结

搭建一个问答系统是非常耗费时间和人力的事情,不管是传统的QA,还是近来的KBQA。对传统的QA,FAQ库的建立和维护都异常费事;对于KBQA,知识图谱的搭建,就是一个难度巨大的工程。

近期我们会在知识星球实现问答系统,具体实现和优化,感兴趣扫描下面的二维码了解。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"

下期预告:聊天机器人-对话系统介绍

知识星球推荐

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?

转载文章请后台联系

侵权必究

往期精选

【NLP-ChatBot】搜索引擎的最终形态之问答系统(FAQ)详述相关推荐

  1. 对话系统-“问答型”单轮对话:FAQ检索式对话系统【步骤:①用户意图判断、②文本检索召回、③文本匹配计算排序】【搜索引擎的最终形态】

    一.基本概念 文本匹配:计算文本之间的相似度,主要分为两大类: 1)基于句子向量表示的相似度模型(适合初始召回): 2)基于词级别匹配的相似度模型(适合对召回结果重排) 问答系统:信息检索的一种高级形 ...

  2. 安卓隐藏摄像_【快讯:诺基亚发布三款安卓机;全面屏手机的最终形态,目标是去掉摄像头;iPhone 打电话不息屏或挂断电话后不亮屏是什么问题?】...

    资讯一 [诺基亚发布三款安卓新机:带来了可拆后盖设计] 2月25日,诺基亚在MWC 2019正式召开发布会,发布了诺基亚4.2.诺基亚3.2.诺基亚1 Plus三款全新安卓机型. 其中诺基亚4.2是三 ...

  3. NLP 于搜索引擎的关系

    本文详细描述了周明如何在NLP进步中探索. 课程导师:雷鸣, 天使投资人,百度创始七剑客之一,酷我音乐创始人,北大信科人工智能创新中心主任,2000 年获得北京大学计算机硕士学位,2005 年获得斯坦 ...

  4. 自然语言处理(NLP)-4.3 BERT、T5与问答系统(BERTT5Question Answering)

    1.概述 1.1 问答系统(Question answering) 基于上下文:输入问题和文本,输出答案:如阅读理解 封闭系统:直接输入问题,输出答案:如聊天机器人 1.2 迁移学习(Transfer ...

  5. OnLine非游戏最终形态

    前阵子听朋友说,巴哈姆特网站上出了一款新游戏叫<小朋友齐打交OnLine>,不禁哑然失笑.这年头,连童年游戏都OnLine了,还有什么不可以OnLine的? 与单机游戏相比,网络游戏的确是 ...

  6. 中心化金融机构频现信任危机?DeFi或成金融最终形态

    自今年的3月8日以来,以加密友好银行Silvergate Bank,以及在美国科技领域地位举足轻重的银行业巨头硅谷银行(SVB)相继出现流动性危机,并触发破产后,传统金融业迎来重创并且信任缺失. 导致 ...

  7. 【年终总结】2019年有三AI NLP做了什么,明年要做什么?

    时间不紧不慢的,从2019年6月中旬有三AI公众号开始发布自然语言处理(NLP)相关的文章以来,已是半年有余. 回头看看,NLP系列文章基本维持在了一周一到两篇的更新频率,基本上覆盖了NLP所需要聊到 ...

  8. 【信息抽取】NLP中关系抽取的概念,发展及其展望

    事物.概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中.为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开. 然而,随着互联 ...

  9. 【NLP机器学习基础】从线性回归和Logistic回归开始

    古语常云:"大道至简",万事万物纷繁复杂,最终却归至几个最简单的道理.我常常在想,如今很火的AI领域是否也是如此.将AI真正学懂学会的过程就像一场遥不可及的漫长攀登,起始于晦涩难懂 ...

最新文章

  1. 随便说说---java初级学习路线
  2. Zabbix 3.0 安装
  3. 清华大学全面审查文科博士论文!
  4. Bootstrap3 轮番插件的使用方法
  5. 《移山之道-VSTS软件开发指南》---读书笔记
  6. Web开发中的主要概念
  7. Java面试锦囊送给你!大厂门槛随便跨!
  8. Matlab调用系统命令行利用Internet Download Manager(IDM)实现批量下载
  9. 比较热门好用的开源中文分词软件系统有哪些?
  10. Activiti7的进阶使用
  11. 推荐子龙山人的emacs的教程
  12. 计算机遥感毕设选题,遥感硕士毕业论文题目
  13. C#编写的AccessHelper
  14. 二叉树的遍历和总结--C和C++
  15. 农夫山泉(数据范围是亮点)
  16. 01-什么是架构、架构的目的
  17. “当前不会命中断点。还没有为该文档加载任何符号“解决方案
  18. Rethinking Image Aesthetics Assessment:Models,Datasets and Benchmarks
  19. DDR4之地址空间、颗粒容量、page size计算
  20. DeFi之道访谈:如何参与Web3?哪些细分赛道值得关注?

热门文章

  1. 为什么Java中1000==1000为false,而100==100为true?
  2. 什么是缓存一致性问题?如何解决呢?
  3. Java 循环队列原理与用法详解
  4. java基础之 “==”和“ equals”以及instanceof的区别
  5. Eclipse导入项目常见问题----乱码问题03
  6. sqlite 统计每张表的记录数_Excel单页式人事管理表,档案记录,自带查询统计,简单实用...
  7. (Spring)Spring的使用
  8. (JAVA学习笔记) 异常处理
  9. 阿里云的linux服务器简单部署网站80端口
  10. JavaScript中的原型,对split方法的重写