长短时间记忆的中文分词 (LSTM for Chinese Word Segmentation)
翻译学长的一片论文:Long Short-Term Memory Neural Networks for Chinese Word Segmentation
传统的neural Model for Chinese Word Segmentation
中文分词一般是基于字符的序列标签。每个字符可以被标记为集合{B, M, E, S}中的一个元素。 B - Begin, M - Middle, E-End of a multi-character segmentation(多字符分割),S 代表 Single character segmentation。
neural Model总共有三个专门(specialized)的层:
- 字符嵌入层 (a character embedding layer)
- 一系列传统的神经网络层(a series of classical neural network layers)
- 标签推断层 ( tag inference layer)





c(t)∈Rd,x(t) =[c(t-2),c(t-1),c(t),c(t+1),c(t+2)]∈RH1,H1=k*d, |T|为tags size(这边假设k=5)
RNN Model
输入序列:

隐藏层update:

我们看到,h(t)与h(t-1)是有关系的。
PS:RNN实际上是无法学习长时间动力学行为的,梯度反向传播时,存在梯度爆炸(explode)或消失(vanish)现象。
LSTM Model
LSTM提供一个记忆单元 C。 C的变化被三个门给控制:
- 输入门input gate: i
- 遗忘门forget gate: f
- 输出门output gate: o
下面是gate, cell update, hidden output update的定义

PS: Wic, Wfc and Woc 是对角阵(diagonal matrices) 但是,在其他地Wic, Wfc and Woc 不是对角的的,而是额外再加个偏置bi,o,f
LSTM Architectures for Chinese Word Segmentation
LSTM-1: The LSTM-1 simply replace the hidden neurons with LSTM units

LSTM-2:在LSTM-1的基础上再堆积一层,并且下一层的h(t)直接作为上一层的输入, 不做任何变化

LSTM-3:在LSTM-1的基础上,将将局部的LSTM输出进行合并 ,将h'(t)=[h(t-m1),..,h(t),...,h(t+m2]代替原来的h(t)

LSTM-4:在LSTM-3的基础上,再堆积一层

Inference at Sentence Level
由于标签之间存在一定关系,已有的工作是定义一个概率转移矩阵A=(Aij)4*4,
Aij:代表Tag i 转移到 Tag j的转移概率,i,j ∈ T, |T|=4
定义a sentence level score

其中,
是Tag
对应的score,
就是网络输出的4维向量。涉及到的参数为
θ={M, A, Wic, Wfc, Woc, Wix, Wfx, Wox, Wih, Wfh, Woh, Wcx, Wch}
Training
Max-Margin criterion
定义Y (xi)为所有句子xi可能出现的标签集合,并且yi为xi对应的正确标签。
定义

其中,
,
现在假设我们有一批训练数据,并且建立以下的L2范数下的正则化损失函数:


用到的优化方法:
- subgradient method (Ratliff et al., 2007)
- diagonal variant of AdaGrad (Duchi et al., 2011)

Dropout
对于神经网络中的各个层的节点,都已p的概率选择睡眠,也就是1-p的概率被激活。(或者每层采取不同的p,反正得自己去试,看看怎么样的参数最好,文中是在input lay中取p=0.2)
模型超参(hyper-parameters)设置:

长短时间记忆的中文分词 (LSTM for Chinese Word Segmentation)的更多相关文章
- CRF++中文分词使用指南
http://blog.csdn.net/marising/article/details/5769653 前段时间写了中文分词的一些记录里面提到了CRF的分词方法,近段时间又研究了一下,特把方法写下 ...
- ANSJ中文分词使用方法
一.前言 之前做solr索引的时候就使用了ANSJ进行中文分词,用着挺好,然而当时没有写博客记录的习惯.最近又尝试了好几种JAVA下的中文分词库,个人感觉还是ANSJ好用,在这里简单总结之. 二.什么 ...
- SCWS 中文分词
SCWS 中文分词v1.2.3 开源免费的中文分词系统,PHP分词的上乘之选! 首页 下载 演示 文档 关于 服务&支持 API/HTTP 论坛 捐赠 源码@github 文档目录 SCWS- ...
- ES-自然语言处理之中文分词器
前言 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块.不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性.句法树 ...
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...
- 【中文分词】最大熵马尔可夫模型MEMM
Xue & Shen '2003 [2]用两种序列标注模型--MEMM (Maximum Entropy Markov Model)与CRF (Conditional Random Field ...
- 【中文分词】二阶隐马尔可夫模型2-HMM
在前一篇中介绍了用HMM做中文分词,对于未登录词(out-of-vocabulary, OOV)有良好的识别效果,但是缺点也十分明显--对于词典中的(in-vocabulary, IV)词却未能很好地 ...
- 【中文分词】隐马尔可夫模型HMM
Nianwen Xue在<Chinese Word Segmentation as Character Tagging>中将中文分词视作为序列标注问题(sequence labeling ...
- 利用 word2vec 训练的字向量进行中文分词
最近针对之前发表的一篇博文<Deep Learning 在中文分词和词性标注任务中的应用>中的算法做了一个实现,感觉效果还不错.本文主要是将我在程序实现过程中的一些数学细节整理出来,借此优 ...
随机推荐
- Oracle开发:创建一个用户并分配表空间和分配权限
-- 创建一个用户并分配表空间和分配权限 -- 以sysdba登录 oracle@sha-col-oracle-2:~> sqlplus / as sysdba SQL*Plus: Releas ...
- 事务的ACID属性
事务,一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的整体. ACID为事务的四大属性 原子性(Atomic):指整个数据库事务是不可分割的工作单位.只有使据库中所有的操作执行成功,才 ...
- MVC、MVP 和 MVVM
MVC Model–View–Controller 模型:管理应用程序的数据.逻辑和规则 视图:展示数据(可以直接从模型中获取数据) 控制器:接收输入并将其转化成模型和视图的命令 MVP Model– ...
- Selenium IDE安装及环境搭建教程
摘自https://blog.csdn.net/ywyxb/article/details/59103683 Selenium IDE环境部署- Firefox浏览器Firefox-ESR版本下载(推 ...
- Django信号量
摘自官方文档 使用 信号 Django发送的所有信号的列表.使用该send()方法发送所有内置信号. 参见 有关如何注册和接收信号的信息,请参阅信号调度器上的文档. 用户登录/注销时,身份验证框架会 ...
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_07.环境搭建的注意事项
2 resources下面创建目录要一级一级的创建,下面这个创建的就是一级目录而不是三级 在文件夹下看到的目录也是一级的 因此这里创建目录需要一个个的去创建 配置文件和dao类这两个目录要保持一致,这 ...
- 【漏洞复现】局域网 ARP 中间人攻击 获取他人账号密码
日期:2019-07-18 14:24:42 更新: 作者:Bay0net 介绍:如何在局域网内,窃取其他用户的账号密码? 0x01. 漏洞环境 攻击工具 arpspoof 基本用法: arpspoo ...
- mysql数据库delete数据时不支持表别名!!!
mysql数据库delete数据时不支持表别名!!! mysql delete时候 提示语法错误!如下sql: 去掉 表别名的时候: 正确的写法例如: DELETE FROM COMMENTS_REP ...
- 关于mysql中修改某个字段类型,以及备份表中数据到新建的表中,从新建的表中移除数据到修改过的表中
1:修改表中某个字段的类型 alter table usertable MODIFY dddd VARCHAR(50); 其中MODIFY是指修改表中字段的属性 alter表示修改表的意思 2:备份表 ...
- expect替人进行交互
expect是一门独立于shell的语言 用expect 执行写好的脚本 #!/usr/bin/expectspawn ssh root@192.168.40.67 (spawn 是expect ...