美文网首页nlp
Sequence Labeling

Sequence Labeling

作者: 一梦换须臾_ | 来源:发表于2018-10-10 22:24 被阅读17次

写在前面

  1. Sequence Labeling主要涉及到了 POS taggingNamed Entity Recognitionchunking
  2. 主流的解决方案有两种,一种是基于 hand-crafted的,比如CRF, Hidden Markov Model;另一种是基于 end-to-end的,主要是使用RNN,配合CNN提取char级别的feature,配合LSTM获取word级别的上下文关联。配合CRF获取infer级别的前后关联,整体来说后者从性能、正确率以及实用程度上都高于前者

中文词处理

Word Segment
DataSets: pku, msr, cityu, as
Tokenizer: jieba, HanLP, StanfordCoreNLP

结婚的和尚未结婚的确实在干扰分词啊
[结婚/vi, 的/ude1, 和/cc, 尚未/d, 结婚/vi, 的/ude1, 确实/ad, 在/p, 干扰/vn, 分词/n, 啊/y]

买水果然后来世博园最后去世博会
[买/v, 水果/n, 然后/c, 来/vf, 世博园/n, 最后/f, 去/vf, 世博会/n]

中国的首都是北京
[中国/ns, 的/ude1, 首都/n, 是/vshi, 北京/ns]

欢迎新老师生前来就餐
[欢迎/v, 新/a, 老/a, 师生/n, 前来/vi, 就餐/vi]

工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作
[工信处/n, 女/b, 干事/nnt, 每月/t, 经过/p, 下属/v, 科室/n, 都/d, 要/v, 亲口/d, 交代/v, 24/m, 口/n, 交换机/n, 等/udeng, 技术性/n, 器件/n, 的/ude1, 安装/v, 工作/vn]

随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。
[随着/p, 页游/nz, 兴起/v, 到/v, 现在/t, 的/ude1, 页游/nz, 繁盛/a, ,/w, 依赖于/v, 存档/vi, 进行/vn, 逻辑/n, 判断/v, 的/ude1, 设计/vn, 减少/v, 了/ule, ,/w, 但/c, 这/rzv, 块/q, 也/d, 不能/v, 完全/ad, 忽略/v, 掉/v, 。/w]
Tokenizer ds Precision Recall F1 score
jieba pku 0.8338489375832363 0.7728782904800608 0.8022067842526882
jieba(with user dict) pku 0.8343200050211338 0.7727757815260308 0.8023694658651723
HanLP pku 0.8863987044475511 0.8734416798869414 0.8798724933853116
Stanford pku 0.883465898038581 0.8237619508157312 0.8525699626278037
jieba msr 0.7798768059172906 0.7544719981628073 0.766964083416498
jieba(with user dict) msr 0.7922662578776877 0.7593750028213545 0.7754720205623936
HanLP msr 0.8167591303780943 0.8210837683916675 0.8189157398952949
Stanford msr 0.7818544940010788 0.8010022770029455 0.7913125703503816

Named Entity Recognition
SLTK
DataSet: CoNLL 2003 NER
Model: CNN + Bi-LSTM(Char + Word) + CRF

model Precision Recall F1
Random Initialization 0.7072862824839918 0.6843748979258535 0.6956419913024885
Glove 0.8792050905687264 0.9106106561520572 0.8946323395375901
Glove.Pos.Chunk 0.8775935069639225 0.9135456410774879 0.8952087544973495

Hidden Markov Model

  1. 知识点参见:Part-of-Speech Tagging 以及 Hidden Markov Models
  2. 项目参见:HMM-Tagger
  3. 论文参见:Stanford Pos Tagging

End-to-End Sequence Labeling

  1. 项目参见:SLTKNCRF++
  2. 论文参见: Ma X, and Hovy E. End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF 以及 Lample G, Ballesteros M, et al. Neural Architectures for Named Entity Recognition. NANCL, 2016.

CRF++

Sequence Labeling鼓捣了两三天,主要就是怼这个CRF++模型,谈一些自己个人的理解
整个模型分为三个大层:

  1. 第一个大层是char级别的特征提取层,主要用到的是CNN,关注点是单词的形态学(比如ly后缀大概率会是adverb)
  2. 第二个大层是word级别的特征提取层,主要用到的有 Word Embedding, LSTM(GRU),提取出句子中word与其context之间的关系
  3. 第三个大层是infer级别的输出训练层,在以往的RNN模型中,输出时使用softmax或者sigmoid函数得到结果,每个结果输出时是独立的,因此我们加了一层CRF,使得输出时需要考虑context
crf++.png

Hidden Markov Model

上面HMM知识点中阿衡学姐已经详细地记录了笔记,因此在这里只放几张图帮助理解

Hidden Markov Model的概览


hmm.png

Forward时某一时刻t

  1. 在 forward_algorithm中,t+1时刻hidden状态j的概率是 t时刻所有状态概率*转换矩阵,再求和
  2. 而在viterbi_algorithm中,t+1时刻hidden状态j的概率是 t时刻所有状态概率*转换矩阵,再取最大值,并记录下t时刻贡献值最大的状态 用于输出路径


    forward_at_t.png

Forward Algorithm


image.png

相关文章

网友评论

    本文标题:Sequence Labeling

    本文链接:https://www.haomeiwen.com/subject/oigmaftx.html