(QA-LSTM)自然语言处理:智能问答 IBM 保险QA QA-LSTM 实现笔记.md
train集:
包含若干条与保险相关的问题,每一组问题对为一行,示意如下:
可分为四项,第三项为问题,第四项为答案:
1.build_vocab
统计训练集中出现的词,返回结果如下(一个包含3085个元素的dict,每个词作为一个key,value为这些词出现的顺序):
2. load_word_embedding(vocab,embedding_size)
vocab为第一步获取的词集,embedding_size=100
load_vectors()
获取预先训练好的保存在vectors.nobin中的词向量
返回的vector中保存有22353个词的向量
然后通过暴力匹配,获取vocab中每个词的词向量,存在embeddings中,embedding中的序数对应的是vacab中的key的value
3. load_train_list
获取保存在train中18540个问题与答案
4. load_test_list
获取保存在test.sample中的问题与答案,共10000条
在测试集中,共有20个问题,每个问题包含若干个正确答案与错误答案,共500个答案,由每一行的第一个元素标识,为1时为正确答案,为0时为错误答案
5.load_data(trainList,vocab,batch_size)
batch_size=256
encode_sent(vocab,string,size) 讲string中的词转换成vocab中所对应的的序号
得到一个batch_size的train_1(问题),train_2(正确答案), train_3(错误答案)
同时返回3个mask,用于标识数据集语句除去 < a > 后的真实的长度
6. LSTM Model
proj_size=100
初始化LSTM的参数
project_size=100
tparams={}
grad_params=[]
随机生成ndimndim的矩阵W,对其进行SVD分解得到 u,s,v,返回floatX的u,维度100100
初始化W,维度为100400
W_t=W
tparam[‘lstm_W’]=W_t
初始化U,维度为100400,U_T=U,tparam[‘lstm_U’]=W_t
初始化b,b的维度为4001,初始化为0,b_t=b,tparam[‘lstm_b’]=b_t
grad_params=[W_t, U_t,b_t]
返回tparam和grad_params
返回后的分别赋值给tparam和self.params
初始化CNN的参数
filter_sizes=[1,2,3,5]
num_filters=500
proj_size=100
tparam={lstm_U, lstm_w, lstm_b} 之前lstm初始化时赋好的值
self.params=lstm赋好的self.params
对于filter_sizes中的每一个元素(以2为例):
filter_shape=(num_filters,1,filter_size,proj_size)=(500,1,2,100)
fan_in=filter_shape[1:]的乘积=200
fan_out=filter_shape[0]np.prod(filter_shape[2:]) 500filter_shapefilter_sizeproj_size=100000
W_bound=
W初始化为最低值为-w_bound,最大值为w_bound,size=filter_shape
=tparams[‘cnn_w_2’]=W
初始化b为5001维的向量
=tparams[‘cnn_b_2’]=b
grand_params+=[W,b]
最终返回tparams和grad_params 各含有11个元素
lookup_table=word_embedding
tparams[‘lookup_table’]=lookup_table
input1, input2, input3分别是问题,正确答案,错误答案
这一函数首先将input的训练集转成词向量模式的
将input的矩阵reshape成(sequence_len,batch_size, embedding_size)(100,256,100)的input_x
state_below就是input
nsteps=训练数据的sequence_len
n_samples=训练数据的batch_size
input=input*lstm_W+lstm_b
通过scan做lstm的相关步骤
得到的输出在输入CNN中,抽取特征,计算问题,正确答案,错误答案的相似度,余下的与QACNN类同
(QA-LSTM)自然语言处理:智能问答 IBM 保险QA QA-LSTM 实现笔记.md的更多相关文章
- (QACNN)自然语言处理:智能问答 IBM 保险QA QACNN 实现笔记
follow: https://github.com/white127/insuranceQA-cnn-lstm http://www.52nlp.cn/qa%E9%97%AE%E7%AD%94%E7 ...
- Android之智能问答机器人
本文主要利用图灵机器人的接口,所做的一个简单的智能问答机器人 实现 由于发送与接收消息都是不同的listView,所以要用有两个listVeiw的布局文件 接收消息布局文件 <?xml vers ...
- springboot+lucene实现公众号关键词回复智能问答
一.场景简介 最近在做公众号关键词回复方面的智能问答相关功能,发现用户输入提问内容和我们运营配置的关键词匹配回复率极低,原因是我们采用的是数据库的Like匹配. 这种模糊匹配首先不是很智能,而且也没有 ...
- 智能问答中的NLU意图识别流程梳理
NLU意图识别的流程说明 基于智能问答的业务流程,所谓的NLU意图识别就是针对已知的训练语料(如语料格式为\((x,y)\)格式的元组列表,其中\(x\)为训练语料,\(y\)为期望输出类别或者称为意 ...
- 自然语言处理:问答 + CNN 笔记
参考 Applying Deep Learning To Answer Selection: A Study And An Open Task follow: http://www.52nlp.cn/ ...
- 基于百度ai,图灵机器人,Flask 实现的网站语音智能问答
准备以下模块中的函数 from aip import AipSpeech import time import os import requests APP_ID = '15420654' API_K ...
- Android 智能问答机器人的实现
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38498353 ,本文出自:[张鸿洋的博客] 今天看到一个ios写的图灵机器人,直 ...
- 《IBM BPM实战指南》读书笔记
理论 BPM不是一个IT术语,更不是因技术的发展而起源的,相反,BPM自始至终都是管理学的术语和概念.它关注的一直都是效率.成本.利润.质量等核心问题.BPM是一门学科和一种方法论,只是现代的企业管理 ...
- 深度学习原理与框架-递归神经网络-RNN网络基本框架(代码?) 1.rnn.LSTMCell(生成单层LSTM) 2.rnn.DropoutWrapper(对rnn进行dropout操作) 3.tf.contrib.rnn.MultiRNNCell(堆叠多层LSTM) 4.mlstm_cell.zero_state(state初始化) 5.mlstm_cell(进行LSTM求解)
问题:LSTM的输出值output和state是否是一样的 1. rnn.LSTMCell(num_hidden, reuse=tf.get_variable_scope().reuse) # 构建 ...
随机推荐
- Hadoop 2.2.0集群搭建
一.环境说明 1.虚拟机平台:VMware10 2.Linux版本号:ubuntu-12.04.3-desktop-i386 3.JDK:jdk1.7.0_51 4.Hadoop版本号:2.2.0 5 ...
- uva 11127(暴力)
题意:给出一个字符串,包含0.1.*,当中×是能够替换成0或者1的,假设字符串的某个子串S有SSS这种连续反复3次出现,不是Triple-free串,问给出的字符串能够形成多少个非Triple-fre ...
- Visual Studio 12无法调试Silverligh应用程序的问题
环境: Win7 Ultimate X64 Visual Studio 12 (以下简称 VS12) Internet Explorer 9(以下简称 IE9) Silverlight5_x64 ad ...
- Linux中du和df
Linux运维过程中,常常发现du和df返回值不一样,偶尔会发现区别非常大. 特定情况下,可能df看到磁盘已满,可是du推断磁盘剩余空间非常大. 文件系统分配当中的一些磁盘块用来记录它自身的一些数据. ...
- man gitworkflows
gitworkflows(7) Manual Page NAME gitworkflows - An overview of recommended workflows with Git SYNOPS ...
- Linux Kernel Maintainers
http://en.wikipedia.org/wiki/Ingo_Molnár http://zh.wikipedia.org/wiki/英格·蒙內 Ingo Molnár Ingo Molnár, ...
- 阿里云OSS对象存储 简单上传文件
不得不说阿里云的命名比较让人摸不着头脑,开始以为是文件存储NAS,弄了半天什么文件系统,挂载点的搞不明白.后来才搞清楚原来 对象存储OSS才是我需要的. 其中EndPoint就是画红框的部分,但是要加 ...
- Laravel 数据库连接, 数据库名,配置文件修改
数据库连接:在根目录(laravel5.1下面有个.env文件,如果没有则会有个.env.example然后将此文件修改成.env文件即可)打开文件:找到:DB_HOST=127.0.0.1 //连 ...
- kubernetes之多容器pod以及通信
系列目录 容器经常是为了解决单一的,窄范围的问题,比如说微服务.然而现实中,一些复杂问题的完成往往需要多个容器.这里我们讨论一下如何把多个容器放在同一个pod里以及容器间的通信 什么是pod pod是 ...
- Canvas学习笔记——动画中摩擦力的运用
摩擦力是与物体运动方向相反的力.我们在处理物体运动时,常把物体分解水平(X轴)方向和竖直(Y轴)方向的运动(比如平抛运动),但在处理摩擦力时,如果把摩擦力分解为X轴和Y轴上的阻力,就会出现某条轴上速度 ...