当前位置:   article > 正文

智能问答客服java_基于文本语义的智能问答系统

java 向量 客服机器人

0 开篇介绍

问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。

经典应用场景包括:智能语音交互、在线客服、知识获取、情感类聊天等。

常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统。

本文涉及的主要是在检索型、面向特定领域的问答系统**——智能客服机器人。**

传统客服机器人的搭建流程

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

16fb6b11812ac070a3cecd7fdf8e14ba.png

深度学习-智能问答机器人

深度语言模型会将问题和文档转化为语义向量从而找到最后的匹配答案。本文借助Google开源的Bert模型结合Faiss开源向量搜索引擎,快速搭建基于语义理解的对话机器人。

案例分享:FAQ问答机器人

FAQ是Frequently Asked Questions的简称。假定我们有一个常见问题和答案的数据库,现在用户提出了一个新问题,能不能自动从常见问题库中抽取出最相关的问题和答案来作答呢?在这个项目中,我们会探索如何构建这样问答机器人。

项目核心技术点:

  • 通过深度学习模型判断问题与答案的匹配得分
  • 使用BERT模型特征提取并判断问题相似度
  • 使用检索引擎Faiss索引构建和检索
  • 构建在线FAQ问答系统

0-1 学什么

结合Faiss和bert提供的模型实现了一个中文问答系统。旨在提供一个用Faiss结合各种AI模型实现语义相似度匹配的解决方案。最后通过项目案例实现:文本语义相似度文本检索系统和FAQ问答机器人。

3ab876fd9c1b5d0cc5e02a5ec6e04b3b.png

0-2 在线系统DEMO

  • 文本语义相似度匹配检索
  • 文本语义FAQ问答机器人

项目实现以一种平台化思路建议系统,是一个通用的解决方案。开发者只需要按照数据规范即可,不需要修改代码就可以运行系统了

1 对话系统整体简介

1-1 对话系统概念

对话系统可以根据人的输入自动选择或者生成出相应的回复,来达到帮助人们在特定领域或者开放域解决一定的问题。(最后,通过医疗数据提供FAQ智能问答: aiwen2100)

  • 用途:任务型、问答型、闲聊型对话系统;
  • 场景:封闭域、开放域对话系统;
  • 使用方法:检索式、生成式对话系统

1-1-1 不同对话任务对比

  • 问答型(案例:提供基于文本语义-bert 和 faiss 的通用解决方案)

用户希望得到某个问题的答案,机器人回复来自于特定知识库,以特定的回复回答用户

  • 任务型

用户希望完成特定任务,机器人通过语义执行后台已对接能力,帮用户完成指定任务

  • 闲聊型

用户没有明确目的,机器人回复也没有标准答案,以趣味性的回复回答用户

87cd2c3ce2c8011699061deee0d9ed15.png

614e6ad94f3ebdc6970fa3ff9c6804eb.png

1-1-2 检索式对话系统

基于检索的模型不会产生新的文字,只能从预先定义的“回答集”中挑选出一个较为合适的回答。

  • 缺点

检索式对话系统不会产生新的回复,其能够回复类型与内容都由语料库所决定。一旦用户的问话超脱了语料库的范围,那么对话系统将无法准确回答用户。

  • 优点

相对严谨可靠,可控性强,不会回复令人厌恶或违法法规的文本。

一般处理流程:

1.问答对数据集的清洗

2.Embedding(tfidf,word2ec,doc2vec,elmo,bert…)

3.模型训练

4.计算文本相似度

5.在问答库中选出与输入问题相似度最高的问题

6.返回相似度最高的问题所对应的答案

8ca8b7e832938cbf86180bc1ca861217.png

1-1-3 生成式对话系统

基于自然语言理解生成式对话策略:即通过机器学习算法构建深层语义模型,结合句词分析

等统计规律提取特征,让模型从大量的已有对话中学习对话规则,利用训练好的模型预测结果。

  • 缺点

评估问题,需要依赖人工评定;生成内容,控制不好会回复令人厌恶或违反法规的文本。

  • 优点

智能对话,回复内容丰富。

2183d72531623ac5d3fb96e36dc88eb3.png

1-1-4 任务型对话系统

任务型对话的最终目标是完成指定任务,比如小度智能音箱,需要在每一轮对话都采取合适的决策,保证自己执行正确的指令(即识别出用户的正确意图)

f698743ee53e412a205849945d1984dd.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5W9MrmV-1606198473806)(https://uploader.shimo.im/f/iOwhzmol8N1oJdI5.png!thumbnail)]

多轮对话是一种在人机对话中初步明确用户意图之后,获取必要信息以最终得到明确用户指令的方式。

这里介绍一种对话管理的一种方式:Frame-Based Dialogue Control,预先指定了一张表格 (Frame),聊天机器人的目标就是把这张表格填满。

602b9dddb2cd879cf3a2ffdc314b33de.png

通过一个实际场景的案例来解释上述实现具体执行过程:

我:『去北京大兴机场多少钱』

意图:行程花费计算

槽位:【起始地:当前位置;目的地:北京大兴机场;使用货币:???】)

智能客服:『您好,请问是使用人民币吗』

我:『是的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/363359
推荐阅读
相关标签
  

闽ICP备14008679号