昇思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层。
相关推荐
Chef_Chen1 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电2 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
海的诗篇_2 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby2 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
AgilityBaby3 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
武昌库里写JAVA4 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
一弓虽5 小时前
git 学习
git·学习
阿部多瑞 ABU5 小时前
# 从底层架构到应用实践:为何部分大模型在越狱攻击下失守?
gpt·安全·ai·自然语言处理
Moonnnn.7 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
viperrrrrrrrrr78 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习