自然语言处理之LSTM+CRF序列标注

前言

序列标注是对输入序列中的每个标记进行标注标签的过程,常用于信息抽取任务,如分词、词性标注和命名实体识别。其中,命名实体识别是其中的一种任务。

输入序列
输出标注 B I I I O O O O O B I

条件随机场

序列标注需要考虑相邻Token之间的关联关系,而条件随机场是一种适合解决这种问题的概率图模型。文章详细介绍了条件随机场的定义和参数化形式,以及计算输出序列概率的公式和发射概率函数、转移概率函数的定义。

Score计算

根据一个公式计算正确标签序列对应的得分,需要注意维护两个向量作为序列开始和结束时的转移概率,并引入一个掩码矩阵来忽略填充值,使得得分计算只包含有效的Token。

Normalizer计算

使用动态规划算法来计算Normalizer的方法,通过复用计算结果来提高效率。假设需要计算从第0至第𝑖个Token所有可能的输出序列得分Score𝑖,则可以先计算出从第0至第𝑖−1个Token所有可能的输出序列得分Score𝑖−1。

Viterbi算法

完成前向训练后,需要实现解码部分,选择Viterbi算法求解序列最优路径。通过动态规划求解所有可能的预测序列得分,并同时保存每个Token对应的最大概率得分和标签历史。根据Viterbi算法的公式,逆序求解每一个概率最大的标签,构成最佳的预测序列。由于静态图语法限制,Viterbi算法部分将作为后处理函数,不纳入后续CRF层的实现。

CRF层

关于如何组装完整的CRF(条件随机场)层的。在组装过程中需要考虑输入序列可能存在Padding的情况,因此除发射矩阵和标签外,加入了 seq_length 参数传入序列Padding前的长度,并实现了生成mask矩阵的 sequence_mask 方法。最后使用 nn.Cell 进行封装,实现完整的CRF层。

总结

主要介绍使用MindSpore实现序列标注任务的条件随机场(CRF)模型。从公式推导到具体代码实现,详细介绍了CRF层的前向训练部分、动态规划求解Normalizer、Viterbi算法寻找最优路径等关键步骤。最后构建了一个BiLSTM+CRF模型进行命名实体识别任务的训练和预测,并展示了训练及预测结果。

相关推荐
孔明兴汉1 小时前
大模型 ai coding 比较
人工智能
IT研究所2 小时前
IT 资产管理 (ITAM) 与 ITSM 协同实践:构建从资产到服务的闭环管理体系
大数据·运维·人工智能·科技·安全·低代码·自动化
沐曦股份MetaX2 小时前
基于内生复杂性的类脑脉冲大模型“瞬悉1.0”问世
人工智能·开源
power 雀儿3 小时前
张量基本运算
人工智能
陈天伟教授3 小时前
人工智能应用- 人工智能交叉:01. 破解蛋白质结构之谜
人工智能·神经网络·算法·机器学习·推荐算法
政安晨3 小时前
政安晨【人工智能项目随笔】使用OpenClaw的主节点协同子节点撰写大型技术前沿论文的实战指南
人工智能·ai agent·openclaw论文写作·openclaw论文写作经验·ai代理写论文·ai分布式协作·oepnclaw应用
大成京牌4 小时前
2026年京牌政策深度对比,三款优质车型选购推荐榜单探索
人工智能
xuxianliang5 小时前
第154章 “神谕”的低语(AI)
人工智能·程序员创富
geneculture5 小时前
人机互助新时代超级个体(OPC)的学术述评——基于人文学科与数理学科的双重视域
大数据·人工智能·哲学与科学统一性·信息融智学·融智时代(杂志)
KG_LLM图谱增强大模型5 小时前
给具身智能装上图谱大模型大脑,7B小模型超越72B大模型!层次化知识图谱让复杂机器人规划能力暴增17%,能耗大幅降低
人工智能·机器人·知识图谱