昇思25天学习打卡营第35天|自然语言处理-LSTM+CRF序列标注

昇思25天学习打卡营第35天|自然语言处理-LSTM+CRF序列标注

序列标注简介

序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。

条件随机场(Conditional Random Fields, CRF)

CRF 是一种强大的序列标注模型,通过直接建模条件概率,避免了生成模型中观测序列独立性假设的限制。它能够捕捉观测序列和标签序列之间的复杂依赖关系,尤其适用于自然语言处理等领域的序列标注任务。其工作过程包括特征函数定义、势函数计算、条件概率计算、训练和解码等步骤。

命名实体识别:CRF 被用于将每个词标注为不同类型的实体或非实体。

词性标注:CRF 可以根据词的上下文信息来准确地预测词性。

语音识别:CRF 可以用于将音素或特征序列映射到词序列。

词汇分割:CRF 可以用来识别词的边界。

掩码矩阵 (mask)

掩码矩阵通常是一个与输入序列相同维度的矩阵,其值为 0 或 1。1 表示对应位置是有效的 token,0 表示对应位置是填充值。

使用掩码矩阵是为了处理不同长度的序列,将多个序列打包为一个 batch 时对填充 (padding) 的部分进行忽略。这样可以确保模型计算时仅考虑有效的 token,而不是填充的无效部分,是处理不同长度序列的关键工具。

Normalizer计算

Normalizer是𝑥𝑥对应的所有可能的输出序列的Score的对数指数和(Log-Sum-Exp)。此时如果按穷举法进行计算,则需要将每个可能的输出序列Score都计算一遍,因此需要通过复用计算结果来提高效率。

Viterbi算法

通过递归地计算每个时间步的最优状态路径来找到整个序列的最优状态路径。其基本思想是通过最大化条件概率来找到最优的标签序列。

双向 LSTM

LSTM (Long Short-Term Memory) 是一种能够有效捕捉长距离依赖的递归神经网络(RNN)。

双向 LSTM 使用两个 LSTM 网络,一个从序列的左到右处理,另一个从右到左处理。这种设计使模型能够同时利用前向和后向的上下文信息,从而更全面地理解每个词的语境。

双向 LSTM + CRF 组合的优势

上下文信息和全局标签依赖:双向 LSTM 提供了丰富的上下文特征,而 CRF 通过建模标签之间的依赖关系,能够确保最终的标签序列符合语法和语义规则。

提高识别准确性:这种组合在训练时能够同时优化特征提取和标签序列建模,通常能显著提高 NER 的性能。

处理长距离依赖:LSTM 能够处理较长的上下文,而 CRF 能够处理标签之间的长距离依赖。

模型架构

text 复制代码
nn.Embedding -> nn.LSTM -> nn.Dense -> CRF  #其中LSTM提取序列特征,经过Dense层变换获得发射概率矩阵,最后送入CRF层。
相关推荐
Rabitebla26 分钟前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件1 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
一个天蝎座 白勺 程序猿2 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
楚山之石2 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
Martina_03214 小时前
AI生成的3D白模单帧没问题,镜头一移动就被挡?用6步检查遮挡与构图
图像处理·人工智能·数学建模·3d·ai·自然语言处理·游戏策划
坤坤子吖5 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
2301_790355977 小时前
【技术拆解】短视频配音自动化流程:从文案预处理到 SRT 字幕的 9 个环节
自然语言处理·音视频
LGL6030A9 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
阿达和自己10 小时前
springboot学习-springboot引入MyBatis-Plus
spring boot·学习·mybatis
旖旎夜光11 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习