快速搭建对话机器人,就用这一招!


作者 | Milvus.io 

责编 | 胡巍巍

问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。其经典应用场景包括:智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统。本文涉及的主要是在检索型、面向特定领域的问答系统,通常称之为——智能客服机器人。

在过去,客服机器人的搭建通常需要将相关领域的知识(Domain Knowledge),转化为一系列的规则和知识图谱。构建过程中重度依赖“人工”智能,换个场景,换个用户都需要大量的重复劳动。

随着深度学习在自然语言处理(NLP)中的应用,机器阅读可以直接自动从文档中找到匹配问题的答案。深度语言模型会将问题和文档转化为语义向量,从而找到最后的匹配答案。本文借助Google开源的Bert模型结合Milvus开源向量搜索引擎,快速搭建基于语义理解的对话机器人。

整体架构

本文通过语义相似度匹配来实现一个问答系统,大致的构建过程:

  1. 获取某一特定领域里大量的带有答案的中文问题(本文将之称为标准问题集)。

  2. 使用Bert模型将这些问题转化为特征向量存储在Milvus中,同时Milvus将给这些特征向量分配一个向量ID。

  3. 将这些代表问题的ID和其对应的答案存储在PostgreSQL中。

当用户提出一个问题时:

  1. 通过Bert模型将之转化为特征向量

  2. 在Milvus中对特征向量做相似度检索,得到与该问题最相似的标准问题的id

  3. 在PostgreSQL得出对应的答案。

系统架构图如下(蓝色线是导入过程,黄色线是查询过程):

接下来,将手把手教您搭建一个在线问答系统。

搭建步骤

在搭建之前您需要安装Milvus、Postgresql,具体安装步骤请参考官网。

1.数据准备

本文中的实验数据来自:https://github.com/SophonPlus/ChineseNlpCorpus。

该项目下的FAQ问答系统中的金融数据集,我们从中一共整理了33万条数据。结合这组数据,我们可以快速搭建一个xx银行智能客服机器人。

2.生成特征向量

本系统使用了Bert已预训练好的一个模型。在启动服务前,需要下载该模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip

使用该模型将问题库转化为特征向量,以用于后续的相似度检索。更多bert服务相关可参考:https://github.com/hanxiao/bert-as-service  

3.导入Milvus和PostgreSQL

将上述产生的特征向量归一化处理后导入Milvus中存储,然后j将Milvus返回的id以及该id对应的问题的答案导入PostgreSQL中。PostgreSQL中的表结构:

4.获取答案

用户输入一个问题,通过Bert产生特征向量后,在Milvus库中找出与之最相似的一个问题。本文采用的余弦距离来表示两个句子间的相似度,由于所有向量都进行了归一化,因此两个特征向量的余弦距离越接近1表示相似度也高越高。库中可能没有与用户给定问题比较相似的问题,所以在实践中我们可以设定了一个阈值0.9,当检索出来的最相似的距离小于该阈值时,则返回本系统未收录相关问题的提示。

系统演示

系统初始界面如下:

在对话框中输入你的问题,将会收到对应的答案。如图:

总结

上述的问答系统搭建是不是很简单?有Bert模型的加持,你根本不需要预先对语料进行分类整理、标签化等工作。同时,得益于开源向量搜索引擎Milvus的高性能和可扩展性,系统可以支撑上亿级别的语料库。Milvus向量搜索引擎已经加入Linux AI (LF AI)基金会进行孵化,欢迎大家加入Milvus社区。让我们一起加速AI技术的大规模落地。

附录

Milvus网站:milvus.io

系统演示:https://milvus.io/cn/scenarios

详细步骤(附代码):

https://github.com/milvus-io/bootcamp/tree/0.7.0/solutions/QA_System

声明:本文系作者投稿,不代表CSDN立场。

更多精彩推荐

没有监控和日志咋整?老程序员来支招

朱广权李佳琦直播掉线,1.2 亿人在线等

☞微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!

拿下 Gartner 容器产品第一,阿里云打赢云原生关键一战!

深聊 Solidity 的测试场景、方法和实践,太详细了,必须收藏!

万字干货:一步步教你如何在容器上构建持续部署!

☞据说,这是当代极客们的【技术风向标】...

你点的每个“在看”,我都认真当成了喜欢

这是一个旺旺客服机器人程序 网上下载的源代码修改而成,原来需要注册没用的控件,给去了 等有时间重新写个再完美一些的出来 下面是使用说明 一、运行环境 OS:WinsowXP/Vista/7(需要管理员权限) 硬件:建议可用内存不低于1GB,空闲时CPU占用率不高于10% 软件:以开启淘宝旺旺和网页不觉得卡、迟钝即可 二、使用条件 1.【必须】只能在阿里旺旺2012卖家版环境下使用 2.【建议】关闭关闭E客服功能 3.【必须】一定要关闭工作台模 4. 【必须】将发送信息设置为Enter(回车键)发送,而不是Enter+Ctrl 5.【建议】关闭自动升级功能 6.【必须】关闭所有自动回复功能 7.【必须】开启机器人任何时候均不得进入暂离、勿扰等模式 8.【必须】取消“不使用电脑XX分钟后进入离开模"式 9.【建议】关闭后台一切不必要软件,特别是P2P软件和大量占用CPU内存等资源的程,机器越卡约可能出现意外 10.【建议】关闭消息提醒所有浮出效果 11.【必须】开启机器人后请勿使用旺旺主动与其他任何人发起聊天,请勿对电脑有任何操作 12.【必须】关闭屏幕保护程序,关闭待机功能,一旦进入待机状态程序将停止 13.【强烈建议】关闭后台一切占用系统资源的程序:如游戏、MP3、视频、下载器等 14.【特别注意】自动回复提问和回答文字中不得含有“\"符号,网址应用"/"代替,如:http://www.baidu.com/index.html 三、常见问题 1.出现自动回复错误 由于机器人是采用模糊判断,假如回复内容为:在吗/在的,则所有回答含有"在吗“的所有提问都会被回答为:在的。 2.出现多句回复或短时间多次提问无法回复 当前版本机器人只擅长回复单句提问,无法适应短时间客户大量提出问题。建议在回复时提示用户提问速度放慢,使用简单易懂的单句 3.经常出现回复”无法识别“ 出现此类问题往往是用户发送图片、文件或者输入错别字或者没有设定符合条件的自动回复语句造成的 4.出现无回复窗口即消失等问题 请保证您的电脑能够流畅运行,本机器人不适合老爷机使用,系统越卡则出现此类问题几率越大 5.其他问题 请检查确保您的电脑已经符合运行环境且已经按照使用条件设置 四、使用技巧、方法 1.先启动旺旺2012卖家版 2.按照第二章节[使用条件]认真设置检查无误后开启本机器人 3.选钩”接受协议“,设置填写您的淘宝ID(即:您店铺中显示联系我所显示的ID名字),填写错误将导致机器人无法运行 4.添加删除设置问题、回答,完成后点击保存 5.关闭清理释放后台程序,将一切占用内存的程序统统退出 6.关闭所有旺旺聊天框,最小化旺旺2012卖家版 7.点击机器人界面”启动“即可,鼠标键盘不再做任何操作 技巧提示: 1.出现任何问题请勿急躁,请认真检查使用步骤、必须条件是否满足,仔细阅读本帮助文档 2.检查软件设置是否错误,是否符合要求 3.如果您找不到阿里旺旺2012卖家版的设置在哪,不明白第二章内容所指的设置在何处请点开旺旺2012卖家版界面,点击左下角”设置“,在出来的界面中细心查找 4.如果您找不到阿里旺旺2012卖家版请到此网址下载: http://www.onlinedown.net/soft/50032.htm [华军软件园] 5.免费软件,如果您想修改自动回复内容请联系597635593@qq.com
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值