基于文本语义的智能问答系统以及数据格式应用

NLP: 基于文本语义的智能问答系统

应用场景:
智能语音交互,在线客服,知识获取,情感类聊天等

常见的分类:生成型,检索型问答系统;
单论问答,多轮问答系统;
面向开放领域,特定领域的问答系统
example:
基于检索,面向特定领域的问答系统——智能客服机器人
1. 传统客服机器人的搭建流程:
思路一:需要将相关领域知识转化为一系列的规则和知识图谱
弊端=[重度依赖"人工",换个场景,换个用户都需要大量的重复劳动]
2. 基于语义理解的对话机器人搭建:
思路二: 深度语言模型会将问题和文档转为语义向量, 从而找到最后的匹配答案,
本文借助Google开源bert+Faiss开源向量搜索引擎 =中文问答系统
3.FAQ 全名[Frequently Asked Questions] ——FAQ问答机器人
假定我们有一个常见问题和答案的数据库,现在用户提出了一个新问题,能不能自动从常见问题库中抽取出最相关的问题和答案来作答呢?

项目核心技术点:

                      通过深度学习模型判断问题与答案的匹配得分使用BERT模型特征提取并判断问题相似度使用检索引擎Faiss索引构建和检索构建在线FAQ问答系统 **项目宗旨:**结合Faiss和bert提供的模型实现了一个中文问答系统,旨在提供一个用Faiss结合各种AI模型实现语义相似度匹配的解决方案。项目实例实现:文本语义相似度文本检索系统和FAQ问答机器人

QA数据格式标准化:
汽车之家拥有全球最大的汽车社区论坛。积累了丰富的用户问答数据,能够解决用户在看车、买车、用车等方面遇到的各种问题。
数据多样性以及用语不规范:

        针对用户在平台上提出的各种问题,从海量的高质量问答库中匹配语义最相似的问题和答案。

文本数据具有表达多样化、用语不规范(如:车型车系用语存在大量缩写、简写、语序颠倒等现象)、歧义性强(如:“北京”可能指汽车品牌,也可能指城市)等特点,这给传统基于关键词匹配的搜索方法带来了很大挑战。因此,在传统关键词匹配的基础上,进一步引入语义搜索技术,将精华问答库的问题映射为多维向量,进行语义匹配,提升问题匹配准确性。

智能对话闲聊系统:
Data format: query-answer 对如下
不要骂人 好的,听你的就行了
不要骂人严重的直接禁言 好的,听你的就行了
不要骂人了吧 好的,听你的就行了
不要骂人哦 好的,听你的就行了
不要骂人小心封号啊 好的,听你的就行了
不认识你不记得你 你当我傻逼啊
不认识你昂 你当我傻逼啊
不认识你老哥了 你当我傻逼啊
智能问答常用解决方案:
针对FAQ检索式问答系统,一般处理流程
问答对数据集的清洗
Embedding
模型训练
计算文本相似度
在问答库中选出与输入问题相似度最高的问题
返回相似度最高的问题所对应的答案
搭建一个FAQ问答系统一般实现方法
基于ES的智能问题系统
(通过关键词匹配获取答案,类似电商、新闻搜索领域关键词召回)
基于TF-IDF方式
(计算每个单词的tfidf数值,分词后换算句子表示。TF-IDF 方式也在用在关键词提取)
基于Doc2Vec 模型(考虑词和段,相比于word2vec来说有了段落信息)
通过深度学习语言模型bert 提取向量,然后计算相似度
方案可以扩展到的业务需求(本文介绍的是一种文本语义匹配通用解决方案)
智能客服领域语义匹配
(对话系统检索式智能问答系统,答案在知识库中且返回唯一的数据记录)
以图搜索(resnet 图片向量化表示)
新闻领域文本相似推荐(相似新闻推荐等)
基于文本语义匹配检索系统(文本相似性rank )
针对这类问题,重点文本等通过某种方式进行向量化表示(word2vec、doc2vec、elmo、bert等),然后把这种特征向量进行索引(faiss/Milus) ,最终实现在线服务系统的检索,然后再通过一定的规则进行过滤,获取最终的数据内容。
传统文本匹配方法存在问题:
传统的文本匹配技术有BoW、VSM、TF-IDF、BM25、Jaccord、SimHash等算法,主要解决字面相似度问题。
面临的困难:
由 于中文含义的丰富性,通常很难直接根据关键字匹配或者基于机器学习的浅层模型来确定两个句子之间的语义相似度。
深度学习文本匹配
深度学习模型文本做语义表示逐渐应用于检索式问答系统。
相比传统的模型优点:
能够节省人工提取特征的大量人力物力
从大量的样本中自动提取出词语之间的关系,并能结合短语匹配中的结构信息和文本匹配的层次化特性,发掘传统模型很难发掘的隐含在大量数据中含义不明显的特征
本文采用相似问题匹配来实现一个FAQ问答系统。

问题:什么是相似问题匹配?

答案:即对比用户问题与现有FAQ知识库中问题的相似度,返回用户问题对应的最准确的答案
深度语义匹配模型可以分为两大类,分别是representation-based method 和 interaction-based method,这里我们针对Represention-based Method这种方法进行探索。
问答系统关键技术
Google 的 BERT 模型在 NLP 领域中具有巨大的影响力。它是一个通用的语言表示模型,可以应用于诸多领域。本文的项目是将 Faiss与 BERT 模型结合搭建文本语义匹配检索系统,使用 BERT 模型将文本数据转成向量,结合 Faiss特征向量相似度搜索引擎可以快速搜索相似文本,最终获取想要的结果
Faiss
Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)的算法,以及用于算法评估和参数调整的支持代码。Faiss用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现。相关介绍参考《Faiss:Facebook 开源的相似性搜索类库》
Bert
BERT 模型是 Google 发布的一个新的语言表达模型(Language Representation Model),全称是 Bidirectional Encoder Representations from Transformers,即双向编码表征模型。
BERT 模型的优势体现在两方面。
一方面,它使用基于特别设计的注意力机制(Attention Mechanism)的简单全连接网络取代了复杂的 CNN 和 RNN 网络。不但大大减少了训练时间,同时有效地提升了网络性能。
另一方面,BERT 模型是第一个真正捕获上下文语义信息的预训练语言表示模型。这是因为 BERT 模型使用了 Transformer 作为算法的主要框架,而 Transformer 框架能更彻底地捕捉语句中的双向关系。
Google 提供了一些预先训练的模型,其中最基本的两个模型是BERT-base 模型和 BERT-large 模型。具体参数如下表所示:
BERT-base 模型和 BERT-large 模型的参数总量大小和网络层数不同,BERT-large 模型所占计算机内存较多,所以本文项目选用 BERT-base 模型对文本数据进行向量转化。(注:其中,层数(即 Transformer 块个数)表示为 L,隐藏尺寸表示为 H ,自注意力头数表示为 A 。)
数据规范:
id question answer
10000 为什么男人长胡子,女人不长胡子 在男人的身体里,有一种较雄性激素的东西,这种雄性激素能刺激男人的脸上长出毛茸茸的胡子,男孩从…
10001 身体的左边与右边是一样的吗 从外形上看,人的身体似乎是对称的,其实,人体并不对称,就拿左右手来说吧,粗细长段就不一样,眼…
10002 为什么人走路时手脚左右交错摆动 人们走路之所以要手脚左走摆动,就是为了保持身体的平衡,走起路来也非常省力。看到运动员在跑到上…
10003 为什么人早上比晚上高 人体各部分是由关节和韧带连载一起的。经过白天的工作和学习后,全身各肌肉,关节和韧带都处于…
10004 为什么有的人长得高,有的人长得矮 人的高矮决定于遗传,营养及体育锻炼等因素。一般说,父母长得高,孩子也会较高,父母个子矮…

针对不同的业务系统,我们只需要提供这种数据格式,通过本文的模板就可以快速搭建一个demo了,祝大家学习愉快。

基于文本语义的智能问答系统以及数据格式应用相关推荐

  1. NLP: 基于文本语义的智能问答系统

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx 问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛 ...

  2. 自然语言处理(NLP):24基于文本语义的智能问答系统

    文章目录 0 开篇介绍 0-1 学什么 0-2 在线系统DEMO 1 对话系统整体简介 1-1 对话系统概念 1-1-1 不同对话任务对比 1-1-2 检索式对话系统 1-1-3 生成式对话系统 1- ...

  3. 基于Bert的知识库智能问答系统

    项目完整地址:https://github.com/1105425455/Bert/tree/master 有训练好的模型 可以先看一下Bert的介绍. Bert简单介绍 一.系统流程介绍. 知识库是 ...

  4. JAVASCRIPT实现基于文本的自动智能聊天机器人

    原创作者:一粒马豆&冰豆小李 首先让我们来看看这样一种语言现象: 研表究明,汉字序顺并不定一影阅响读. Aoccdrnig to a rscheearch at an Elingsh uine ...

  5. 如何做一个智能问答系统及neo4j可视化

    如何做一个智能问答系统 可以直接用neo4j做,这样简单很多,protege感觉比较复杂 最近闲来无事,想想自己学了那么多东西,是时候整个东西出来练练手,整合以前学的东西了,因此做了个简单的问答系统 ...

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

    更多干货内容敬请关注「平安寿险PAI」(公众号ID:PAL-AI),文末有本期分享内容资料获取方式. 智能问答系统是人机交互的核心技术之一,常见的应用场景主要是智慧客服.通过构建该系统,机器人可以快速 ...

  7. mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录

    学习了"谓之小一"大佬的基于电影知识图谱的智能问答系统,做个记录.地址如下:https://github.com/weizhixiaoyi/DouBan-KGQA 一.知识图谱构建 ...

  8. 文本解析 python 多行,关于python:基于文本的数据格式,支持多行字符串

    我搜索支持多行字符串的基于文本的数据格式. JSON不允许多行字符串: >>> import json >>> json.dumps(dict(text='firs ...

  9. 【自然语言处理(NLP)】基于ERNIE语言模型的文本语义匹配

    [自然语言处理(NLP)]基于ERNIE语言模型的文本语义匹配 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资 ...

最新文章

  1. 运行时异常与一般异常有何异同?(转)
  2. Digital Image Processing 学习笔记3
  3. 云原生的本质_云原生是什么 云原生技术有何作用
  4. JDK 8中的流驱动的集合功能
  5. 微博html天涯吴奇隆刘诗诗,吴奇隆深夜微博晒爱心,为刘诗诗庆生,网友:撒了一大把狗粮...
  6. 机器学习笔记十之聚类
  7. 兰州大学c语言课程作业答案,兰州大学11春学期《C语言程序设计》第1次作业答案...
  8. svn打分支与分支合并回主干
  9. VMWare安装Ubuntu 12.04开启虚拟机的Unity Mode模式
  10. json 数组 select默认选中
  11. Linux内核(4) - 内核学习的心理问题
  12. Java 实现区块链中的区块,BLOCK的实现
  13. Windows的cmd中如何关闭端口
  14. 导图解文 从梦想到财富(05)世界第八大奇迹,知者赚不知者被赚
  15. Biopython---part 1
  16. 【深度学习|数据集】Python 划分训练集和验证集
  17. Python 自然语言处理笔记(五)——信息检索系统,基于Lucene实现
  18. 大学计算机专业课程体系
  19. postgres查询序列_PostgreSQL之序列(Sequence)
  20. 武林大会之国产数据库风云榜-2021年11月

热门文章

  1. 四、达尔文机器人开发指南(针对中国机器人比赛、华北五省机器人比赛)-----达尔文官方框架解读
  2. 深度学习笔记——秒懂评价指标precision和recall(附例子)
  3. MDK+STM32F2X7VG+ucos_II
  4. 跨平台免费内网穿透工具(钉钉内网穿透)
  5. 90后破了60年未解数学难题 将面临无学可上的尴尬
  6. C/C 零基础开发,实现五指棋游戏!小白也能学会
  7. Visual Studio 控制台程序世界杯足球C语言版(附源码)
  8. EPSON LS3-401S机器人学习笔记 1
  9. ELKF搭建详细步骤(Elasticsearch+logstash+kibana+filebeat)
  10. 码一篇灰色模型的博客