当前位置: 首页 > news >正文

网站开发包含上线吗好的手机网站建设公司

网站开发包含上线吗,好的手机网站建设公司,开源公司网站,网站建设方式丨金手指排名26文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层#xff1a;2.4 池化层#xff1a;2.5 全连接softmax层#xff1a;2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.… 文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层2.4 池化层2.5 全连接softmax层2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.1 测试英文情感分类效果4.2 测试中文情感分类效果 5 调参实验结论6 建议7 最后 1 前言 优质竞赛项目系列今天要分享的是 基于深度学习的中文情感分类 该项目较为新颖适合作为竞赛课题方向学长非常推荐 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 2 情感文本分类 2.1 参考论文 Convolutional Neural Networks for Sentence Classification 模型结构 在短文本分析任务中由于句子句长长度有限、结构紧凑、能够独立表达意思使得CNN在处理这一类问题上成为可能主要思想是将ngram模型与卷积操作结合起来 2.2 输入层 如图所示输入层是句子中的词语对应的wordvector依次从上到下排列的矩阵假设句子有 n 个词vector的维数为 k 那么这个矩阵就是 n × k 的(在CNN中可以看作一副高度为n、宽度为k的图像)。 这个矩阵的类型可以是静态的(static)也可以是动态的(non static)。静态就是word vector是固定不变的而动态则是在模型训练过程中word vector也当做是可优化的参数通常把反向误差传播导致word vector中值发生变化的这一过程称为Fine tune。(这里如果word vector如果是随机初始化的不仅训练得到了CNN分类模型还得到了word2vec这个副产品了如果已经有训练的word vector那么其实是一个迁移学习的过程) 对于未登录词的vector可以用0或者随机小的正数来填充。 2.3 第一层卷积层 输入层通过卷积操作得到若干个Feature Map卷积窗口的大小为 h ×k 其中 h 表示纵向词语的个数而 k 表示word vector的维数。通过这样一个大型的卷积窗口将得到若干个列数为1的Feature Map。(熟悉NLP中N-GRAM模型的读者应该懂得这个意思)。 2.4 池化层 接下来的池化层文中用了一种称为Max-over-timePooling的方法。这种方法就是简单地从之前一维的Feature Map中提出最大的值文中解释最大值代表着最重要的信号。可以看出这种Pooling方式可以解决可变长度的句子输入问题因为不管Feature Map中有多少个值只需要提取其中的最大值。最终池化层的输出为各个Feature Map的最大值们即一个一维的向量。 2.5 全连接softmax层 池化层的一维向量的输出通过全连接的方式连接一个Softmax层Softmax层可根据任务的需要设置通常反映着最终类别上的概率分布。 2.6 训练方案 在倒数第二层的全连接部分上使用Dropout技术Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作不工作的那些节点可以暂时认为不是网络结构的一部分但是它的权重得保留下来只是暂时不更新而已因为下次样本输入时它可能又得工作了它是防止模型过拟合的一种常用的trikc。同时对全连接层上的权值参数给予L2正则化的限制。这样做的好处是防止隐藏层单元自适应或者对称从而减轻过拟合的程度。 在样本处理上使用minibatch方式来降低一次模型拟合计算量使用shuffle_batch的方式来降低各批次输入样本之间的相关性(在机器学习中如果训练数据之间相关性很大可能会让结果很差、泛化能力得不到训练、这时通常需要将训练数据打散称之为shuffle_batch)。 3 实现 我们以上图为例图上用红色标签标注了5部分结合这5个标签具体解释下整个过程的操作来看看CNN如何解决文本分类问题的。 3.1 sentence部分 上图句子为“[I like this movie very much!” 一共有两个单词加上一个感叹号关于这个标点符号不同学者有不同的操作比如去除标点符号。在这里我们先不去除那么整个句子有7个词词向量维度为5那么整个句子矩阵大小为7x5 3.2 filters部分 filters的区域大小可以使不同的在这里取2,3,43种大小每种大小的filter有两个不同的值的filter,所以一共是有6个filter。 3.3 featuremaps部分 我们在句子矩阵和过滤器矩阵填入一些值那么我们可以更好理解卷积计算过程这和CNN原理那篇文章一样 比如我们取大小为2的filter最开始与句子矩阵的前两行做乘积相加得到0.6 x 0.2 0.5 x 0.1 … 0.1 x 0.1 0.51,然后将filter向下移动1个位置得到0.53.最终生成的feature map大小为7-21x16。 为了获得feature map我们添加一个bias项和一个激活函数比如Relu 3.4 1max部分 因为不同大小的filter获取到的feature map大小也不一样为了解决这个问题然后添加一层max- pooling,选取一个最大值相同大小的组合在一起 3.5 concat1max部分 经过max-pooling操作之后我们将固定长度的向量给sofamax来预测文本的类别。 3.6 关键代码 下面是利用Keras实现的CNN文本分类部分代码 ​ # 创建tensorprint(正在创建模型...)inputsInput(shape(sequence_length,),dtypeint32)embeddingEmbedding(input_dimvocabulary_size,output_dimembedding_dim,input_lengthsequence_length)(inputs)reshapeReshape((sequence_length,embedding_dim,1))(embedding)# cnnconv_0Conv2D(num_filters,kernel_size(filter_sizes[0],embedding_dim),paddingvalid,kernel_initializernormal,activationrelu)(reshape)conv_1Conv2D(num_filters,kernel_size(filter_sizes[1],embedding_dim),paddingvalid,kernel_initializernormal,activationrelu)(reshape)conv_2Conv2D(num_filters,kernel_size(filter_sizes[2],embedding_dim),paddingvalid,kernel_initializernormal,activationrelu)(reshape)maxpool_0MaxPool2D(pool_size(sequence_length-filter_sizes[0]1,1),strides(1,1),paddingvalid)(conv_0)maxpool_1MaxPool2D(pool_size(sequence_length-filter_sizes[1]1,1),strides(1,1),paddingvalid)(conv_1)maxpool_2MaxPool2D(pool_size(sequence_length-filter_sizes[2]1,1),strides(1,1),paddingvalid)(conv_2)concatenated_tensor Concatenate(axis1)([maxpool_0, maxpool_1, maxpool_2])flatten Flatten()(concatenated_tensor)dropout Dropout(drop)(flatten)output Dense(units2, activationsoftmax)(dropout)modelModel(inputsinputs,outputsoutput)**main.py**import osos.environ[CUDA_DEVICE_ORDER] PCI_BUS_ID # see issue #152os.environ[CUDA_VISIBLE_DEVICES] import reimport numpy as npfrom flask import Flask, render_template, requestfrom keras.models import load_modelfrom data_helpers_english import build_input_englishfrom data_helpers_chinese import build_input_chineseapp Flask(__name__)en_model load_model(results/weights.007-0.7618.hdf5)ch_model load_model(results/chinese.weights.003-0.9083.hdf5)# load 进来模型紧接着就执行一次 predict 函数print(test train...)print(en_model.predict(np.zeros((1, 56))))print(ch_model.predict(np.zeros((1, 50))))print(test done.)def en_predict(input_x):sentence input_xinput_x build_input_english(input_x)y_pred en_model.predict(input_x)result list(y_pred[0])result {sentence: sentence, positive: result[1], negative: result[0]}return resultdef ch_predict(input_x):sentence input_xinput_x build_input_chinese(input_x)y_pred ch_model.predict(input_x)result list(y_pred[0])result {sentence: sentence, positive: result[1], negative: result[0]}return resultapp.route(/classification, methods[POST, GET])def english():if request.method POST:review request.form[review]# 来判断是中文句子/还是英文句子review_flag re.sub(r[^A-Za-z0-9(),!?\\], , review) # 去除数字review_flag re.sub([\s\.\!\/_,$%^*(\\)]|[——()?【】“”。、~#%……*], , review_flag)if review_flag:result en_predict(review)# result {sentence: hello, positive: 03.87878, negative: 03.64465}return render_template(index.html, resultresult)else:result ch_predict(review)# result {sentence: hello, positive: 03.87878, negative: 03.64465}return render_template(index.html, resultresult)return render_template(index.html)## if __name__ __main__:# app.run(host0.0.0.0, debugTrue) 4 实现效果 4.1 测试英文情感分类效果 准训练结果验证集76%左右 4.2 测试中文情感分类效果 准训练结果验证集91%左右 5 调参实验结论 由于模型训练过程中的随机性因素如随机初始化的权重参数mini-batch随机梯度下降优化算法等造成模型在数据集上的结果有一定的浮动如准确率(accuracy)能达到1.5%的浮动而AUC则有3.4%的浮动词向量是使用word2vec还是GloVe对实验结果有一定的影响具体哪个更好依赖于任务本身Filter的大小对模型性能有较大的影响并且Filter的参数应该是可以更新的Feature Map的数量也有一定影响但是需要兼顾模型的训练效率1-max pooling的方式已经足够好了相比于其他的pooling方式而言正则化的作用微乎其微。 6 建议 使用non-static版本的word2vec或者GloVe要比单纯的one-hot representation取得的效果好得多为了找到最优的过滤器(Filter)大小可以使用线性搜索的方法。通常过滤器的大小范围在1-10之间当然对- 于长句使用更大的过滤器也是有必要的Feature Map的数量在100-600之间可以尽量多尝试激活函数实验发现ReLU和tanh两种激活函数表现较佳使用简单的1-max pooling就已经足够了可以没必要设置太复杂的pooling方式当发现增加Feature Map的数量使得模型的性能下降时可以考虑增大正则的力度如调高dropout的概率为了检验模型的性能水平多次反复的交叉验证是必要的这可以确保模型的高性能并不是偶然。 7 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.pierceye.com/news/713260/

相关文章:

  • 汕头市网站建设商机互联网站建设
  • 口碑好的网站建设苏州园区做网站公司
  • 网站互联网设计图风格网站服务器异常是什么意思
  • 有哪些好的做兼职网站有哪些免费做ppt的网站
  • 学生成绩管理系统网站建设上海公共招聘网12333官网
  • 邵东做网站的公司wordpress修改文章字体颜色
  • 那个网站百度收录快天河高端网站建设
  • 网站建设 客户拜访wordpress设置新页面
  • 做百度推广送的网站网站建设中gif
  • 网站风格介绍wordpress怎么给产品编号
  • 站长聚集地深圳网络提速优化服务包
  • 西安外贸网站建设公司网站域名过期后续费多长时间生效
  • 网站制作资质2017建设厅网站
  • 网站系统开发毕业设计哈尔滨seo优化软件
  • 南通企业网站网站制作的书籍
  • 长沙网站收录怎么网站能找人做装修事
  • 鞍山网站制作谁家好2021没封的网站有人分享吗
  • 网站建设公司net2006iis虚拟网站
  • 有哪些竞价网站wordpress手机端网站模板下载
  • 浙江建设厅网站施工员报名莱芜庞允盟
  • 网站建设 销售 知乎云南网站设计外包
  • 网站建设怎么学习phpcms门户网站
  • 佛山营销型网站定制三站合一网站建设方案
  • 广州市哪有做网站的查找全国免费网站建设
  • 江门seo网站推广跳动爱心代码html教程
  • 网站退出率网易搜索引擎入口
  • 企业网站建设方讯长沙城乡建设网站
  • 手机网站建设优化软件做网站空间费用是什么意思
  • 网站透明效果工厂网站建设流程图
  • 崇安网站建设广州本地门户网站