语音问答系统研究分析

日期: 2018-11-08 09:47:21 / 人气: 32

因工作需要,准备开头做语音问答系统,之前对语音和自然语言处置(NLP)没接触过,所以开头还是很难的,历时两周做了一个大约的了解,适合像我这样的新手入门,里边借鉴了n多大神的内容,并给出了讲得比较好的网页、课程等等,如侵权请联系删除。。。

一 对话系统框架


二 调研内容
语音识别-- Speech Recogniton, SR
闲聊型问答系统--Chitchat-bot
知识库问答--Knowledge base Question Answering,KB-QA
垂直领域QA
三 循环神经网络(RNN)基本类型
    在语音识别和问答系统中,必不可少的就是循环神经网络(RNN)了,这里不对算法做详细介绍,只给出基本类型及应该学习了解的网络结构及其较好的学习资源。



    上图是RNN的基本类型,下边对其输入输出及其作用做一个大约的说明

one to one: 给一个输入,得到一个输出,就是基本的网络结构,不含序列信息,比如我们常用的图像分类
one to many:给一个输入,得到一系列输出,可用于image caption generation,输入一张图像,输出对该张图像的文字描述
many to one: 给一系列输入,得到一个输出,可用于文本情感分类,如分析文本是积极的还是消极的
many to many: 第四幅图像,输入和输出的序列数不肯定相同,可用于机器翻译、问答系统等
many to many: 第五幅图像,输入和输出的序列数相同,可用于字符预测、对视频的帧打标签等
  需要提前了解的网络结构有RNN、 LSTM、 Attention机制,推举李宏毅老师的课程:
http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLSD15_2.html    

四 语音识别的前世今生
前世


    从1990年到2010年,语音识别多采纳上述框架,下边对上述框架的部分做一简要解析

预处置:
1. 首尾端的静音切除,降低对后续步骤造成的干扰,静音切除的操作一般称为VAD(语音激活检测);
2. 声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧,使用移动窗函数来实现,不是简单的切开,各帧之间一般是有交叠的;

特征提取:
主要算法有线性预测倒谱系数( LPCC)和Mel 倒谱系数( MFCC),目的是把每一帧波形变成一个包含声音信息的多维向量;


声学模型( AM):
通过对语音数据进行训练获得,输入是特征向量,输出为音素信息;常用算法为GMM+HMM;

字典:
字或者词与音素的对应, 简单来说, 中文就是拼音和汉字的对应,英文就是音标与单词的对应;
语言模型( LM) :
通过对大批文本信息进行训练,得到单个字或者词相互关联的概率;常用算法为: n-gram模型;
解码:
就是通过声学模型、字典、 语言模型对提取特征后的音频数据进行文字输出; 

上述模块中涉及到很多知识,在此列出本人觉得比较好的链接,部分内容我也已经转载,但是为了尊重原创,还是给出原文链接:

MFCC算法请参看: https://www.cnblogs.com/BaroC/p/4283380.html
                                        https://blog.csdn.net/xueyingxue001/article/details/53183757

 GMM+HMM算法详解请参看:https://blog.csdn.net/davidie/article/details/46929269 以及  https://www.zhihu.com/lives/843853238078963712
n-gram模型请参看:https://blog.csdn.net/ahmanz/article/details/51273500
今生
    今生主要得益于神经网络,主要思想就是用DNN取待原有模块,或做最后的大融合









    上述涉及到的知识如果想要详细了解请参考以下链接:

对声波型号如何转化为可输入到神经网络的向量请参看https://zhuanlan.zhihu.com/p/24703268
关于语音识别的前世今生及其算法的详细解释请参看https://www.zhihu.com/lives/843853238078963712
五 闲聊型问答系统
Seq2Seq
    在闲聊型问答系统介绍之前不得不先请出该系统的明星:Seq2Seq

   其模型结果如下所示:

 

  每个单元是循环神经网络,如: RNN、 LSTM、 GRU等, LSTM居多;
seq2seq属于encoder-decoder结构中的一种, encoder将一个可变长度的信号序列变为固定长度的向量表示, Decoder将这个固定长度的向量变成可变长度的目的信号序列。
该模型有很多变体,如加入注意力机制、记忆力模型等
   

说明: 上上一个模型为训练模式,即decoder的输入为ground truth,上个模型为部署模式,在测验时, decoder的输入为其上一时刻的输出

闲聊式问答系统框架

分词
? 概念
a) 中文分词指的是将一个汉字序列切分成一个一个单独的词。 分词就是将陆续的字序
列按照肯定的规范重新组合成词序列的进程。
? 中文分词方法
a) 基于字符串匹配的分词方法
b) 基于了解的分词方法 ( 处于实验阶段)
c) 基于统计的分词方法
d) 实际使用时结合a)和c)
? 中文分词工具
jieba分词、 SnowNLP、 THULAC、 NLPIR

词嵌入( Word Embedding)
? 概念
a) 是一种词的类型表示, 具有相似意义的词具有相似的表示, 是将词汇映射到实数向
量的方法总称。
? 独热码( one-hot encoding)
a) 将词表示为很长的向量, 词的维度是词表大小, 绝大多数维度为0, 只有一个维度为
1
b) “ 可爱” [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 ……]
? 常用算法
a) word2vec:详细算法请参看http://www.dataguru.cn/article-13488-1.html Skip-gram及CBOW算法详解及训练进程请参看cs224d视频的第2节课的内容

Seq2Seq
? 工具
a) Tensorflow embedding_attention_seq2seq的API接口
b) 接口参数请参看http://www.shareditor.com/blogshow?blogId=136
c) 该接口融合了word embedding 和attention机制

d) seq2seq详细算法讲解请参看 https://blog.csdn.net/Irving_zhang/article/details/78889364

自然语言生成( Word Embedding)
? 算法
a) 贪欲搜索:输出序列的每一步中输出最有可能的单词
b) 集束搜索( beam search) :返回可能性最大的输出序列列表
c) 详细讲解请参看: https://www.sohu.com/a/159397046_206784

知识库问答系统(KB-QA)
概念
给定自然语言问题,通过对问题进行语义了解和解析,进而使用知识库进行查询、推理得出答案。

应用场景
适合解答when,what等事实性问题,解答的答案是知识库中的实体或实体联系

知识库
使用三元组存储(实体entity, 实体联系relation, 实体entity),如(姚明,诞生地,上海)

主流方法
? 语义解析
思想在于将人类使用的自然语言句子转化为机器能够了解的逻辑形式,通过数据库得出答案。
? 信息抽取
思想在于通过抽取句子中的特征信息和知识库中相关实体的特征信息,用以上特征训练分类器对候选答案排序得出答案。
? 向量建模
思想在于将知识库的实体和自然语言句子都映射到同一个向量空间中,通过比较相似度寻找答案。

? 深度学习
应用于语义解析、向量建模;采纳记忆网络、 Attention机制
? 动态模型
思想在于预定义一些网络模块,通过对问题进行解析,针对问题使用不同的
模块组合出动态模型进行解答。
? 参考资料
知乎专栏 https://zhuanlan.zhihu.com/p/27141786

垂直领域QA
对话系统

?基于检索的对话系统 (面向具体任务的问答新系统) 

? 模式: s1,s2->R, 即字符串s1和s2符合肯定的规则
? 将回复使用的数据预先存储, 优点为回复的内容不会有语
法和语义的失误;
? 缺点:不会发明新的解答, 无法对未训练的问题作出解答

 基于生成的对话系统 ( chitchat-bot, KB-QA)
? 模式: s1->s2, 即由字符串s1得到s2

趋势
具有上述两种功能的混合对话系统

说明
现大部分采纳对用户的问题与已有的问句计算语义相似度并排序选出最相似的问句, 再使用这句问句的应答句解答用户;
https://blog.csdn.net/coder_oyang/article/details/72731419涉及知识图
 http://www.sohu.com/a/115593961_465975 http://www.sohu.com/a/140243692_500659 2017年之前的较好的检索式对话论文( 可通过此了解关键词, 查询较新的论文)
https://zhuanlan.zhihu.com/p/31638132 示例
总结
相关知识比较庞杂,基础知识比较欠缺的情况下,刚开头学起来可能成就感较低,弄清楚一个知识点可能需要查阅许多资料;
传统方法比较多,比较难了解; 但是不要丧气,不断学习总能掌握
--------------------- 
作者:勤劳的凌菲 
来源:CSDN 
原文:blog.csdn.net/Suan2014/article/details/82699271 


现在致电 最专业的时时彩平台2 OR 察看更多联系方式 →

Sitemap
条评论
Sitemap
条评论