当前位置:   article > 正文

问答系统的常见技术_基于信息检索的问答系统应用到的技术

基于信息检索的问答系统应用到的技术

0、

一、问答系统技术和使用场景

1、问答系统的使用场景

  1. 电话营销机器人
  2. 智能客服
  3. 智能助手
  4. 游戏智能机器人
  5. 聊天机器人

 2、问答系统用到的技术

  1. 1、模板与规则:精确度极高,召回率较低,使用于某一个很狭窄的领域(车票查询、商品查询、天气查询...),
  2. 例如百度的高考问答系统:关键词一定要覆盖广泛,密切注意 关键词的近似词,如 电脑 --- 计算机 、脚踏车 ----
  3. 自行车,以保证较高的召回率。

规则模板解析: 需要基于  分词、词性标注、命名实体识别、依存句法分析、语义分析 的前提下 才能完成

                                           而且数据中使用的也是字典形式(key hash 结构),查询速度较快。

 

  1. 特点:人力物力耗时巨大
  2. 技术:规则模板 需要在 分词(HMM等)、词性标注、NER、依存句法分析(hanlp/ltp)、语义分析 的前提下 完成。
  3. eg {('n','爱吃','n'):0,('n','到','n'):1, ... } ------ 规则模板的字典

  1. 2、词距匹配:一般使用 编辑距离/simhash 来求 当前query 与 内部问答库中的 问题的相似度,一般取出相似度>0.8的问题
  2. 的答案作为当前query的答案。说白了就是答案问答库里已经有了,不是机器现场组织出来的答案。
  3. 技术:① sim hash
  4. ② 编辑距离: 将两句话进行 添加/删减/替换,使得两个字符串相等的最小的操作次数(即最小的距离 )为 编辑距离。
  5. 根据这个编辑距离来求 相似度。
  •   simhash 

               

  •   编辑距离 

             


  1. 3、语义匹配:利用doc2vec来计算当前query与问答库中问题的相似度,类似词距匹配,获取问答库的答案。
  2.     技术:① doc2vec/word2vec、n-gram、LDA/LSA(潜在语义分析,根据矩阵分解奇异值大小) tip:词语级语义分析
  3. ② 语义角色标注、依存句法分析 ----- ltp、hanlp 提取三元组:(主体obj,关系谓语rel,客体obj) 精确率
  4. 较高,因此比较适合做比较狭窄的领域,比如:买票查询
  5. tip:句子语义分析:实施关系,受事关系,时间,地点

                        NLP知识包--语义分析&智能问答&工具 

                        自然语言处理(NLP)语义分析--文本分类、情感分析、意图识别           

  1. ③ 基于规则模板(booststriping,主干抽取:三元组),召回率和精确率都不错,需要人工干涉,是一种成熟的技术
  2. https://blog.csdn.net/qq_16555103/article/details/103792301 -----信息抽取(booststraping、深度学习..)
  3. 以上两个方式:耗时较短   
  4. 大致实现:利用NER抽取实体,利用 分词、词性标注、依存句法分析 去除句子修饰词,利用实体做种子搜索匹配模板。

 


  1. 4、状态机与行为树:用于特定的任务场景中。场景:相对复杂的流程,包括 引导、反问、提示、确认 等功能(例如:售后服
  2. 务【第一步:。。。第二步:。。。】)

 

  1. 5、知识图谱:主要用于推理过程的回答。场景:相对复杂的关系推理
  2. 例:小明的爸爸的孙子是谁?
  3. 理解:
  4. 知识图谱本质上也是一种规则模板,而且其构建过程用的是三元组的结构( ('苹果','颜色','红') ),
  5. 技术:知识图谱是建立在 信息抽取(方法:前面文章) 的前提下,将 信息抽取 获得的三元组进行 知识图谱。

        注意:以上五种方式获取答案的结果都是在问答库中搜寻答案获取的,机器只是分析了问题query寻找答案而已,并不是现场组织的语言进行回答。 

  1. 5.. 信息抽取
  2. 链接:https://blog.csdn.net/qq_16555103/article/details/103792301 ---- 信息抽取(booststraping、深度学习..)

 


  •   问答系统 深度学习 部分: 
    • seq2seq 闲聊对话
    • NER 命名实体识别
    • 情感分析
    • 意图识别
6、命名实体识别NER:
    
7、seq2seq+attention:场景:QA对话闲聊
    
  • 8、意图识别
  1. 1、基于词典以及模版的规则方法
  2. ​ 不同的意图会有的不同的领域词典,比如书名,歌曲名,商品名等等。当一个用户的意图来了以后我们根据意图和词典的匹配
  3. 程度或者重合程度/或者打分来进行判断,最简单一个规则是哪个domain的词典重合程度高,就将该query判别给这个领域。
  4. 2、基于查询点击日志
  5. ​ 如果是搜索引擎等类型业务场景,那么我们可以通过点击日志得到用户的意图。
  6. 3、基于分类模型来对用户的意图进行判别
  7. ​ 因为意图识别本身也是一个分类问题,其实方法和分类模型的方法大同小异。
  8. 4、意图识别的难点
  9. ​ 意图识别工作最大的难点其实是在于标注数据的获取。目前标注数据的获取主要来自两方面,一方面是专门的数据标注团队对数据
  10. 进行标注,一方面是通过半监督的方式自动生成标注数据。

 

  1. 5.意图识别的做法:
  2. 两种方式:
  3. ① 基于规则模板解析; 例 1公斤等于多少斤? >>>>> 模板: 【数量】【单位】 是/等于 【数量】【单位】
  4. 需要基于 分词、词性标注、命名实体识别、依存句法分析、语义分析 的前提下 才能完成
  5. tip思想:利用词性标注,依存句法分析去除修饰词并获得意图动词,利用NER判别实体,由实体命中
  6. 各个子模型的主域,意图动词命中领域,用领域模板进行匹配的方式,输出所有子模型中重合度最大
  7. 的模型作为预测模型。
  8. 而且数据中使用的也是字典形式(key hash 结构),查询速度较快。
  9. ② 基于机器学习、深度学习分类算法:
  10. 机器学习的算法:
  11. 例:doc2vec + LR、SVM、XGboost、KNN
  12. 贝叶斯算法 ------- 算法特性 适合短文本 分类
  13. 深度学习的算法:
  14. 例: LSTM、GRU、BiLSTM + attention 分类模型
  15. transformer、BERT 结构
  1. 9、情感分析:前面文章
  2. 情感分析与意图识别一样,属于分类模型的范畴
  3. 基于情感词典的方法:
  4. ①建立带类别(喜、怒、哀、乐等)和分值等级与极性的情感词典;
  5. ②建立带分值的程度词典(非常、有点、稍微等);
  6. ③建立否定词字典
  7. 依存句法分析 去除修饰词分割句子 得到情感动词、否定词、程度词,算分公式:sum(程度词分值*情感词分值*否定词*极性);
  8. 扩充情感字典的思想:
  9. 对于新词 使用 word2vec 中skip-gram 找出 周围相近的词,用这些
  10. 词评分的平均值作为新词的平均值。
  11. 基于 依存句法分析 + 评分 的方法:
  12. https://blog.csdn.net/qq_16555103/article/details/100710191 ------- 第一章的第二小节
  13. 基于机器学习或深度学习的方法:
  14. 输入为语料中的句子;
  15. 输出为打情感的label和分数;
  16. 评级并标记label较为困难;
  17. 技术:情感分析是一个分类的模型
  18. ① 基于模型:
  19. 深度学习:
  20. word2vec + LSTM / .... /依存句法分析(核心谓词 是 情感词,然后找出程度词 >>>>> 最后评分)
  21. 机器学习:
  22. doc2vec + 机器学习分类器(贝叶斯、KNN、svm、LR) 或者 tf-idf + 贝叶斯、svm ....
  23. ② 基于情感词典:
  24. eg:我十分喜欢旅游 label:正 score:45 (基本的手段:程度词 分数 * 情感词 分数)
  25. eg:我有点讨厌旅游 label:负 score:-10

     https://blog.csdn.net/qq_16555103/article/details/95625946    -------  NLP领域基本名词、算法(情感分析)

     https://blog.csdn.net/qq_16555103/article/details/100939224     -------- NLP常见项目领域(算法思路)【情感分析】

 

  1. 10、文本分类与聚类:
  2. 1)文本分类(有监督学习):
  3. 1)机器学习算法:
  4. ① tf-idf + 贝叶斯(需要用PCA降维并获取独立特征)、svm、LR、XGboost、KNN ....
  5. ② doc2vec + 机器学习分类器(贝叶斯、KNN、svm、LR)
  6. 为什么用 doc2vec?查看文章(Doc2vec小节):
  7. https://blog.csdn.net/qq_16555103/article/details/98748593
  8. 2)深度学习算法:
  9. ① word2vec + LSTM / GRU + attention + softmax/CRF
  10. ② BERT、transformer、GPT
  1. 2)文本聚类(无监督学习):
  2. 1)机器学习算法:
  3. ① TF-IDF + KMeans 、 密度聚类 ----- 效果可能不好
  4. ② Doc2vec + Kmeans 、密度聚类
  5. 为什么用Doc2vec?查看文章(Doc2vec小节):
  6. https://blog.csdn.net/qq_16555103/article/details/98748593

 

二、简单的问答系统算法构建结构

  1. 问答系统 QA:
  2. 四个模块:
  3. 1、闲聊
  4. 2、车票
  5. 3、天气
  6. 4、售后
  • 第一步:先 对query 做意图识别

        意图识别大致有两种方式:① 规则模板解析(分词、词性标注、命名实体识别、句法分析、语义分析的前提下)  

                                                   ② 基于机器学习/深度学习做分类预测 

             https://blog.csdn.net/qq_16555103/article/details/100767984   -----------  意图识别

  • 第二步:根据 query 的意图选取子模块算法

 

 

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

闽ICP备14008679号