技术标签: CRNN text-classification 中文短文本分类 text-classify 自然语言处理 短文本分类 深度学习与tensorflow 分类
一.概述
CRNN(A C-LSTM Neural Network for Text Classification),是Chunting Zhou等提出的一种联合CNN和RNN的优点的混合神经网络,可称之为"卷积-递归"神经网络。
不同于RCNN先对文本句子上下文本信息、以及word-embedding本身特征的提取,CRNN中的CNN可以看成另外一种形式的句子信息的Embedding(char、word and n-gram),它具有实际意义上的解释性;也可以看成是对局部短语特征的提取,用于文本表达和文本分类。而LSTM便很善于捕捉文本的全局特征,在它接入CNN后,可以有效缓解CNN对于长文本句子信息捕获不足的缺点。
其实现在看来,CRN算是比较古老的版本的了,也没什么特别多可说的,不就是把CNN和RNN堆砌起来么,没什么那么多值得大惊小怪的。
github项目地址:
二. CRNN模型原理等
2.1 CRNN模型图
2.2 tricks等
初始化: 词向量dim=100, OOV词=随机初始化为均匀分布(uniform distribution [-0.25, 0.25])
规范化(Regularization): dropout 和 L2
似乎就没有了
三. CRNN代码实现
3.1 很简单的一个模型,就是把CNN和LSTM连在一起,似乎就好了
github项目地址:
3.2 核心代码
def create_model(self, hyper_parameters):
"""
构建神经网络
:param hyper_parameters:json, hyper parameters of network
:return: tensor, moedl
"""
super().create_model(hyper_parameters)
x = self.word_embedding.output
embedding_output_spatial = SpatialDropout1D(self.dropout_spatial)(x)
if self.rnn_units=="LSTM":
layer_cell = LSTM
elif self.rnn_units=="GRU":
layer_cell = GRU
elif self.rnn_units=="CuDNNLSTM":
layer_cell = CuDNNLSTM
elif self.rnn_units=="CuDNNGRU":
layer_cell = CuDNNGRU
else:
layer_cell = GRU
# CNN
convs = []
for kernel_size in self.filters:
conv = Conv1D(self.filters_num,
kernel_size=kernel_size,
strides=1,
padding='SAME',
kernel_regularizer=regularizers.l2(self.l2),
bias_regularizer=regularizers.l2(self.l2),
)(embedding_output_spatial)
convs.append(conv)
x = Concatenate(axis=1)(convs)
# Bi-LSTM, 论文中使用的是LSTM
x = Bidirectional(layer_cell(units=self.rnn_units,
return_sequences=True,
activation='relu',
kernel_regularizer=regularizers.l2(self.l2),
recurrent_regularizer=regularizers.l2(self.l2)
))(x)
x = Dropout(self.dropout)(x)
x = Flatten()(x)
# 最后就是softmax
dense_layer = Dense(self.label, activation=self.activate_classify)(x)
output = [dense_layer]
self.model = Model(self.word_embedding.input, output)
self.model.summary(120)
希望对你有所帮助!
sql右键编辑200速度很慢解决办法!_sql server 2014 右键 很慢
问题描述使用远程桌面访问Windows系统的ECS实例时,出现如下错误。使用管理终端连接服务器可正常登录。问题原因Windows操作系统内开启密码保护共享功能。解决方案参考如下操作步骤,关闭密码保护共享功能。使用管理终端登录ECS实例。打开 控制面板 > 所有控制面板项 > 网络和共享中心 > 高级共享设置。在 密码保护的共享配置项,选择 关闭密码保护共享 即可。..._我们无法使用此凭据登录因为你的域不可用
原帖地址: http://blog.sciencenet.cn/blog-370458-750306.html 关于计算机视觉和模式识别领域的期刊并不是很多,下面我收集了一些该领域的代表性期刊,并介绍了他们的影响因子以及投稿难度和审稿周期。希望对大家有帮助吧,后期大家还有发现的可以留言,补充哦。首先介绍计算机视觉领域的4个顶级代表性期刊吧。(1) IEEE Transactions..._计算机视觉好中的sci
文章目录一、什么是数据结构?一、什么是数据结构?数据结构就是在计算机中,存储和组织数据的方式。_数据结构算法就是
maven项目会用maven-compiler-plugin默认的jdk版本来进行j编译,如果不指明版本就容易出现版本不匹配的问题,可能导致编译不通过的问题。解决办法:在pom文件中配置maven-compiler-plugin插件(以jdk1.8)。1、方式一<properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source
题意:给出一个数a,求出a的因数中有多少个数是非质数埃筛,直接打出表来,并且输入输出一定要用scanf,cin加速了也不行!!!#include <bits/stdc++.h>using namespace std;const int maxn=2e6+5;int ans[maxn];int isp[maxn];void isprime(){ isp[1]=1; for(int i=2;i<=maxn;i++){ if(!isp[i]){ _kattis prime sieve
using System;using System.Text;using System.Diagnostics;using System.Runtime.InteropServices;namespace PlantsVsZombiesTool{ publicabstractclass Helper { [DllImpo_c# 写内存
电脑如何正确开关机要使用电脑必须启动它,要停用电脑的时候必须要关闭,电脑如何正确开关机呢?下面是小编分享的经验,一起来看一下吧。电脑开机正确步骤1、先把总电源打开。就是接通主机与显示器的总电源。一般是一个插排,打开插排的开关。2、先开显示器。这一步经常有人弄错,开电脑首先应该先开显示器。这样做对显示器好。3、再开主机。打开显示器后,就可以按主机的开始按钮了。这个顺序不能反,不然会有损机器的使用寿命..._电脑如何正确关机
观察者模式(Observer Design Pattern),也叫做发布订阅模式(Publish-Subscribe Design Pattern)、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式、从属者(Dependents)模式。指在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。比如说Redis 中的基于频道的发布订阅就是观察者模式的应用:一、观察者模式的介绍观察者模式是一种对象行为型模式,下面就来看看观察者模式_观察者模式应用场景
使用Visual Studio 2017 + WDK 10 KMDF模版 开发的驱动在Windows 7 上可以正常使用。在Windows 10 上可以正常安装驱动,驱动安装完,使用事件查看器查看到设备有错误:来源Kernel-PnP、问题0x15、问题状态0x00。另外,在驱动使用过程中,初始化、BAR0空间操作、DMA启动都正常,但是收不到板卡发来的中断。 此问题在Win 10 驱动中..._windros10 pcie驱动
从这篇起,正式开始对spring源码的阅读和学习。根据书上的流程,先对spring核心容器模块中的Beans模块下手。对于beans包来说,有两个非常核心的类,第一个是DefaultListableBeanFactory,该类实现默认的对bean的注册和加载,这也是控制反转特性的最基本的功能,第二个类是XmlBeanDefinitionReader,该类提供了spring的IOC容器中对x...
1 案例背景4 现成案例(代码+参考文献)1【手写数字识别】基于matlab CNN网络手写数字识别分类【含Matlab源码 1286期】2【手写数字识别】基于matlab Fisher分类手写数字识别【含Matlab源码 505期】3【手写数字识别】基于matlab GUI BP神经网络手写数字识别【含Matlab源码 1118期】4【手写数字识别】基于matlab GUI RBM神经网络手写数字识别【含Matlab源码 1109期】5【手写数字识别】基于matlab GUI SVM手写数字识_基于matlab的手写数字识别毕设