命名实体识别学习-从基础算法开始(02)lstm+crf序列标注

自然语言处理 -- NLP作业 2 :序列标注命名实体识别 命名实体识别 Bi-LSTM CRF条件随机场 代码 阅读详情

title: 命名实体识别学习-从基础算法开始(02)lstm+crf序列标注
date: 2020-06-22 21:23:07
tags:


命名实体识别学习-从基础算法开始(02)lstm+crf序列标注

文章目录


代码地址: https://github.com/SStarLib/NERfromBasic

序列标注

将命名实体识别看作序列标注问题,则可以用词性标注的方法来做。

标注方法:Inside–outside–beginning (tagging)

LSTM的不足

序列标注问题,lstm就可以做,但是lstm生成的标注序列是无约束的。而CRFs可以给模型增加约束,以下面例子为例,单纯的lstm极有可能生成第二个非法序列(没有先出现B,就出现了I),而条件随机场可以从训练数据中学习约束

合法序列:
"the wall street journal reported today that apple corporation made money"
" B   I      I      I       O       O     O    B        I       O     O"

非法序列:
"the wall street journal reported today that apple corporation made money"
" I   I      I      I       O       O     O    B        I       O     O"

条件随机场(CRFs):

image-20200622213107290

概率图模型:

image-20200622213529664

隐马尔可夫模型和条件随机场的区别在CRFs中,观察序列X并不是由模型生成的。标记序列取值以观察序列为条件,同时来自于其邻接点。

从CRFs模型推到代码实现

模型要解决序列标注问题。所以主要使用的是线性链式的CRFs。

李航老师在《统计学习方法》里的定义:

条件随机场(conditional random field)是给定随机变量X条件下,随机变量Y的马尔可夫随机场。其中线性链条件随机场可以用于标注等问题。这时, 在条件概率模型 P ^ ( Y ∣ X ) \hat{P}(Y|X) P^(YX)中,Y是输出变量,表示标记序列,X是输入变量,表示需要标注的观测序列。也把标记序列称为状态序列(参见隐马尔可夫模型)。学习时,利用训练数据集通过极大似然估计或正则化的极大似然估计得到条件概率模型 P ^ ( y ∣ x ) \hat{P}(y|x) P^(yx);预测时,对于给定的输入序列 x x x,求出条件概率 P ^ ( y ∣ x ) \hat{P}(y|x) P^(yx)最大的输出序列 。

线性链条件随机场参数化形式如:
P ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) Z ( x ) = ∑ y e x p ( ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) P(y | x) = \frac{1}{Z(x)}exp\bigg( \sum_{i,k}\lambda_k t_k (y_{i-1}, y_i, x, i) + \sum_{i,l}\mu_l s_l (y_i, x, i) \bigg) \\ Z(x) = \sum_{y}exp\bigg( \sum_{i,k}\lambda_k t_k (y_{i-1}, y_i, x, i) + \sum_{i,l}\mu_l s_l (y_i, x, i) \bigg) \\ P(yx)=Z(x)1exp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))Z(x)=yexp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))
可以使用梯度下降的方法对CRF参数进行梯度学习。(这里跟HMM模型很像),同时需要用前向算法递归的计算概率及期望值。前向算法本质是动态规划算法,基本思想L:定义前向变量 α t ( i ) \alpha_t(i) αt(i),递推式:
α t ( i ) = p ( O 1 O 2 ⋯ O t , q t = S i ∣ μ ) \alpha_t(i)=p(O_1 O_2 \cdots O_t, q_t=S_i | \mu) αt

Bert+LSTM+CRF命名实体识别pytorch代码详解 Bert+LSTM+CRF命名实体识别 从0开始解析源代码。 理解原代码的逻辑,具体了解为什么使用预训练的bert,bert有什么作用,网络的搭建是怎么样的,训练过程是怎么训练的,输出是什么 调试运行源代码 NER目标 NER是named entity recognized的简写,对人名、地名、机构名、日期时间、专有名词等进行识别。 结果输出标注方法 采用细粒度标注,就是对于每一个词都给一个标签,其中连续的词可能是一个标签,与原始数据集的结构不同,需要对数据进行处理,转化成对应的细粒度标注 阅读详情

相关推荐

从HMM到CRFLSTM+CRF

  在实习的时候有用到LSTM+CRF,但以前对HMM、CRF算法了解的不多,导致自己在理论方面有所欠缺。因此特此写一篇从HMM到CRF再到LSTM+CRF中的非纯理论性质的文章,算是一个阶段性笔记和总结。   本文的侧重点还是以LSTM+CRF为主,对于LSTM+CRF中依赖到的HMM、CRF中的概念会做详细说明,主要包含几个部分: 马尔科夫模型 隐马尔科夫模...

JokerDuuuu的博客 1万+

Python-LSTMCRF命名实体识别序列标记

Neural (LSTM) version of the partial CRF model

nlp基础—12.LSTM-CRF模型介绍

文章目录引言一、模型介绍1. LSTM模型2. BI-LSTM(双向LSTM)模型3.CRF模型4. LSTM+CRF模型5. BiLSTM+CRF模型 引言   本文讨论的是序列标注问题,所使用的模型是将两种现有的模型(LSTM+CRF)进行拼接,一种模型是双向LSTM模型,一种是CRF模型。下面介绍如何结合LSTMCRF用于sequence tagging,并且对这些结合的效果进行测量。 一、模型介绍   本篇文章涉及以下几种模型:LSTM,BI-LSTM,CRF,LSTM+CRF,BI-LSTM+C

柳杰的博客 5674

BiLSTM-CRF解决序列标注问题

使用深度学习方法BiLSTM,并结合CRF模型的标签依赖性特点,解决命名实体识别序列标注问题

NLP-Beginner任务四学习笔记:基于LSTM+CRF序列标注

NLP-Beginner任务四学习笔记:基于LSTM+CRF序列标注

qq_51983316的博客 5192

IOB Inside-outside-beginning (tagging)

IOB Inside-outside-beginning (tagging) IOB是一种标记技术,IOB foramt是一种在计算机语言学断句中常用的符号(tokens)的形式。 B前缀指代一个语句块的开始;I前缀指代在该语句块(chunk)当中;O前缀指代不在该语句块中。 B标签只在一个标签要紧跟在另一个同类型标签但没有两个标签之间没有O标志的时候使用。O标签显示该符号不属于任何语句块。 参考...

Steve Wang's blog 1143

自然语言处理入门练习(四):基于LSTM+CRF序列标注(附代码)

自然语言处理入门练习(四):基于LSTM+CRF序列标注(附代码) 目录自然语言处理入门练习(四):基于LSTM+CRF序列标注(附代码)一、基于门控的循环神经网络1 长短期记忆网络2 LSTM网络的各种变体3 门控循环单元网络二、无向图模型1 无向图模型2 无向图模型的概率分解3 常见的无向图模型3.1 对数线性模型3.2 条件随机场三、同步的序列序列模式【参考资料】 一、基于门控的循环神经网络 为了改善循环神经网络的长程依赖问题, 一种非常好的解决方案是在公式???????? = ???????

南有芙蕖 5263

序列标注之Bi-LSTM-CRF

文章目录Bi-LSTM-CRF1. 模型原理1.1 CRF原理2. 模型实现2.1 tensorflow实现2.2 pytorch实现 Bi-LSTM-CRF 1. 模型原理 1.1 CRF原理 2. 模型实现 2.1 tensorflow实现 2.2 pytorch实现 ...

real_ilin的博客 3185

序列标注:BiLSTM-CRF模型

概述 对于序列标注问题,目前BiLSTM-CRF模型是目前使用比较流行的方法。本文以Neural Architectures for Named Entity Recognition为例,讲解BiLSTM-CRF模型在命名实体识别任务上的应用,着重于CRF层的分析。 数据描述 假设数据集有两种实体类型:人物(Person)和机构(Organization)。同时假设采用BIO标注体系...

tiweeny的博客 2万+

NLP-Beginner 任务四:基于LSTM+CRF序列标注+pytorch

NLP-Beginner 任务四:基于LSTM+CRF序列标注+pytorch传送门一. 介绍1.1 任务简介1.2 数据集1.3 原数据解释二. 特征提取——Word embedding(词嵌入)三. 神经网络(LSTM+CRF)3.1 LSTM层3.2 CRF层(条件随机场Conditional Random Field)3.2.1 转移矩阵 TranTranTran 初始化3.2.2 CRF(最困难的部分)3.2.2.1 真实得分——对应CRF.true_prob3.2.2.2 全部得分——对应CR

0oTedo0 3431

Bidirectional LSTM-CRF Models for Sequence Tagging 论文理解及翻译

Bidirectional LSTM-CRF Models for Sequence Tagging 论文翻译摘要介绍2 模型2.1LSTM网络2.2 双向 LSTM 网络2.3 CRF网络2.5 BI-LSTM-CRF网络训练过程4 实验4.1 数据4.2 特征4.2.1 拼写特征4.2.2 上下文特征4.2.3 词嵌入4.2.4 特征连接技巧4.3 结果4.3.1 与Conv-CRF网络的比较...

weixin_37195726的博客 3576

NLP-Beginner 任务四:基于LSTM+CRF序列标注

本次使用的数据集为CONLI2003。数据集文件有train.txt dev.txt text.txt数据集共有4列,第一列为单词,第二列为词性标签,第三列为句法组块标签,第四列为命名实体标签。每行为一个单词。只有当同一类型的两个短语紧跟在一起时,第二个短语的第一个单词才会有标记B-type,以显示它开始了一个新短语。标记为O的表示不属于词组。. . O O。

m0_67549907的博客 1791

Bi-LSTM-CRF命名实体识别实战

一、数据集介绍 本项目的数据集来自于天池——基于糖尿病临床指南和研究论文的实体标注构建(瑞金医院MMC人工智能辅助构建知识图谱大赛第一赛季)。即提供与糖尿病相关的学术论文以及糖尿病临床指南,要求在学术论文和临床指南的基础上,做实体标注实体类别共十五类。 类别名称和定义 疾病相关: 1、疾病名称 (Disease),如I型糖尿病。 2、病因(Reason),疾病的成因、危险因素及机制。...

麦格芬230的博客 5459

命名实体识别模型BERT-Bi-LSTM-CRF

序列标注命名实体识别众多方法中将CNN、RNN和BERT等深度模型与条件随机场CRF结合已经成为最主流和普遍的方法,在本篇文章中我们仅关注基于CRF序列标注模型。[机器学习]:早期传统机器学习时代,除了利用人工规则的方法外,往往利用隐马尔科夫链HMM和条件随机场CRF进行实体标注;随着深度学习的发展,将CNN和RNN做为基本的文本特征编码器,更好的学习token或word的隐层表示,再利用CRF进行实体标签分类,Bi-LSTM-CRF是最常用和普遍的实体识别模型;[预训练模型]

u013250861的博客 8222

昇思25天训练营Day9 - LSTM+CRF序列标注

序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)命名实体识别(Named Entity Recognition, NER)等。输入序列清华大学座落于首都北京输出标注BIIIOOOOOBI如上表所示,清华大学和北京是地名,需要将其识别,我们对每个输入的单词预测其标签,最后根据标签来识别实体

qq_38146189的博客 1969

昇思25天学习打卡营第17天|LSTM+CRF序列标注

本章使用LSTMCRF完成了序列标注任务。

ptyp222的博客 1225

《昇思25天学习打卡营第22天|LSTM+CRF序列标注

序列标注(Sequence Labeling)在自然语言处理(NLP)领域中是一项关键技术,序列标注通过为序列中的每个元素分配一个标签,帮助计算机理解和处理自然语言中的各种信息,为进一步的语言处理和理解打下基础序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)命名实体识别(Named Entity Recognition, NER)等。如上表所示,

m0_58790800的博客 1533

【原创】序列标注之Bi-LSTM+CRF

本文讲解序列标注任务。 序列标注自然语言处理的基本任务,包括词性标注、中文分词、槽位识别等。 例如,在中文分词任务中,模型为每个字打上s/b/m/e等标签,分别表示单字成词、词语起始字、词语中间字、词语结尾字,将标签b/m/e结合起来就成了一个中文词,而s则单独分成一个中文词。 解决序列标注问题常用的方法有HMM、MEMM、CRFLSTM等,目前工业上比较成熟的方案是Bi-LSTM+CRF, 2018年google提出了BERT作为预训练词向量模型,其具有比Bi-LSTM更强的特征学习能力,因此现在很多

suvedo的博客 1817
上一篇: 命名实体识别学习-从基础算法开始(01)-维特比算法
下一篇: 面试中常见的图论问题
StarLib
博客等级 码龄8年 31粉丝 23原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值