- 是基于检索的还是基于生成式回答的
- 是开放领域的还是限定领域的
问答系统分为开放领域和限定领域的智能问答系统
面向学生的智能聊天机器人
包含以下两个部分
问答模块 | 聊天对话模块 |
---|---|
解决学生提出的问题 | 与学生闲聊 |
基于规则实现 | 基于深度学习实现 |
数据库为15个关于新生的问题 | 公开数据集:小黄鸭语料库 |
问题分类、句子相似度度量 | seq2seq模型 |
人为评判 | 人为评判 |
seq2seq的框架
其中,编码器和解码器可以使用LSTM算法
问答模块:每一类的问题按列表存储,列表的每一个元素是问题答案键值对(字典)
对问题进行归类,将同一个问题的不同问法整合到一起,使他们共同拥有一个标志,把这个标志设置为字典的键,问题处理时,根据关键词找到键,键所对应的值即为问题的答案。
基于深度学习的领域问答系统的设计与实现
为限定在电影领域的问答系统,是通过检索知识库的检索式的问答系统。检索式不是基于关键词匹配的,而是将用户的自然语言查询转化为知识库可理解的结构化查询语句。
知识库的建立模块负责从豆瓣电影网站获取电影领域知识(爬虫)。
对于自然语言处理任务来说,首先需要对文本数据向量化,然后利用深度模型(CNN或RNN)进行特征提取,最后根据任务的不同学习训练即可。
基于混合embedding的深度学习答案选择模块
答案选择模块是智能问答系统中关键的一部分,任务描述为:给予一个问题和一系列的候选答案集,目标是根据问题从候选答案集中找出与问题最为匹配的答案。
答案选择模块的核心是计算问题与答案间的语义匹配程度。
基于深度学习的智能问答系统的研究与实现
作者:卓越
一般的问答系统由三部分组成:问题分析,信息搜索和答案抽取
问答系统的常用算法
1、支持向量机(SVM),一种机器学习算法,用于处理小样本任务。思想比较简单,但是需要复杂的特征工程支持。
2、TF-IDF
3、深度学习与NLP
基于深度学习的问答算法
1)、词向量word2vec,又称词嵌入,把自然语言中的字词表示为一个低纬度的向量空间。分为CBOW模式和skip-Gram模式。
2)、双向LSTM+注意力机制(attention)
BLSTM该模型在隐层同时有一个正向LSTM和一个反向LSTM,正向LSTM处理前一时刻语义的特征信息,反向LSTM处理后一时刻语义的特征信息。
注意力机制:能够自动的调整权重,使得深度学习模型注意那些重要的部分,提高模型的性能。
数据集为来自百度的web QA数据集,分为训练集和测试集,分别在RNN,LSTM还有BLSTM+Attention上进行了测试。
选用了两种编程语言实现,Java负责开发部分,python实现问答系统的核心模块,也就是基于深度学习的QA算法。
问答系统:向用户提供问答功能
问答算法:如何对用户检索的问题进行智能化的回答
需要对数据库做一些预处理操作,像分词和词性标注。该系统使用的是结巴中文分词工具。提供了中文分词,添加自定义字典,关键词提取,词性标注等功能。jieba.posseg
补充:json文件
json是互联网上数据交换的主要载体,几乎所有语言都有解析json的库
json就是python中的字典
基于CNN的智能问答系统的搭建
研究智能问答系统是基于问答社区积累的大量问答信息,采用Word2vec构建词向量问答相似矩阵,利用中文分词技术分词,然后利用卷积神经网络(CNN)构造分类器进行分类处理,再构建问答匹配算法,最终实现问答匹配。国内研究智能化问答系统主要有通过问题相似度实现问答匹配,通过构建知识库进行关键字匹配来实现问答匹配和利用关键字进行全文检索实现问答匹配三种方式。本系统构建主要采用问题相似度进行问答匹配,这样可以实现不限领域的开放式问答,同时也可以实现复杂问题的问答,并且利用基于统计的神经网络算法构建词向量,实用CNN神经网络来实现语义的识别和匹配,使系统问答更加注重语义之间的匹配而非表面上的关键字匹配。本系统利用问答信息来构建问答系统,实现了语义上的问答匹配,解决了普通问答社区的信息冗余和问答信息不精确等问题。
爬取红网问答社区的问答语料,使用jieba分词工具,利用Word2vec实现词向量矩阵的构建,python直接导入gensim包即可使用,但是完成单词的词向量的构建还不够,需要完成单词词向量的相似度计算,也就是需要输出两个单词之间的词向量相似度值输出,并且最好是利用softmax实现归一化。
问答系统的分类
1)、根据知识的来源不同可以分为基于知识库的问答、基于文档的问答、答案选择
2)、根据领域的来源分类,分为特定领域的问答系统和开放领域的问答系统
3)、按照答案的来源分类,分为基于阅读理解的智能问答和基于问答对的智能问答,基于阅读理解的智能问答又可以分为抽取式的智能问答和生成式的智能问答。例:基于斯坦福问题训练集SQuAD的问答。基于问答对的智能问答,例:常见问答集FAQ的问答。
基于深度学习的智能问答模块设计
分为特定领域的检索式模块和领域外的对话生成模块
构成检索式模块的是问句分类模型(BLSTM+Attention)和句子相似度匹配模型(CNN),从领域知识库中匹配与问句语义最为相似的句子,答案是事先定义好的。
构成对话生成模块的是对话生成模型,根据用户输入的句子来生成答句,训练更为复杂。基于seq2seq模型训练并学习到句子的不同结构。
输入均为word2vec产生的词向量
毕业设计方向 做基于句子匹配度的问答系统
问答系统采用了一个FAQ(Frequently Asked Questions)问答库,并基于句子相似度进行设计。
1)首先建立一个足够大的问题答案库,即语料库--------建库
2)然后计算用户提问的问题和语料库中各个问题的相似度-------计算相似度-------余弦定理
3)最后把相似度较高的问题所对应的答案返回给用户。-------返回结果
才用word2vec做句子的向量化。