nlp带你认识经典的序列模型-hmm与crf(代码片段)

ZSYL ZSYL     2023-01-10     773

关键词:

1. HMM模型

1.1 HMM模型的输入和输出

HMM(Hidden Markov Model), 中文称作隐含马尔科夫模型, 因俄国数学家马尔可夫而得名. 它一般以文本序列数据为输入, 以该序列对应的隐含序列为输出.

什么是隐含序列:

  • 序列数据中每个单元包含的隐性信息, 这些隐性信息之间也存在一定关联.

举个栗子:

给定一段文本: "人生该如何起头"

我们看到的这句话可以叫做: 观测序列

我们可以将这句话以词为单位进行jieba划分得到:

["人生", "该", "如何", "起头"]

那么每个词对应的词性就是它的隐含序列,: 

["n", "r", "r", "v"]

1.2 HMM模型的作用

在NLP领域, HMM用来解决文本序列标注问题. 如分词, 词性标注, 命名实体识别都可以看作是序列标注问题.

1.3 HMM模型使用过程简述

  • 首先, HMM模型表示为: lambda = HMM(A, B, pi), 其中A, B, pi都是模型的参数, 分别称作: 转移概率矩阵, 发射概率矩阵和初始概率矩阵.
  • 接着, 我们开始训练HMM模型, 语料就是事先准备好的一定数量的观测序列及其对应的隐含序列, 通过极大似然估计求得一组参数, 使由观测序列到对应隐含序列的概率最大.
  • 在训练过程中, 为了简化计算, 马尔可夫提出一种假设: 隐含序列中每个单元的可能性只与上一个单元有关. 这个假设就是著名的隐含假设.
  • 训练后, 我们就得到了具备预测能力的新模型: lambda = HMM(A, B, pi), 其中的模型参数已经改变.
  • 之后给定输入序列(x1, x2, …, xn), 经过模型计算lambda(x1, x2, …, xn)得到对应隐含序列的条件概率分布.
  • 最后, 使用维特比算法从隐含序列的条件概率分布中找出概率最大的一条序列路径就是我们需要的隐含序列: (y1, y2, …, yn).

2. CRF模型

2.1 CRF模型的输入和输出

CRF(Conditional Random Fields), 中文称作条件随机场, 同HMM一样, 它一般也以文本序列数据为输入, 以该序列对应的隐含序列为输出.

2.2 CRF模型的作用

同HMM一样, 在NLP领域, CRF用来解决文本序列标注问题. 如分词, 词性标注, 命名实体识别.

2.3 CRF模型使用过程简述

  • 首先, CRF模型表示为: lambda = CRF(w1, w2, …, wn), 其中w1到wn是模型参数.
  • 接着, 我们开始训练CRF模型, 语料同样是事先准备好的一定数量的观测序列及其对应的隐含序列.
  • 与此同时我们还需要做人工特征工程, 然后通过不断训练求得一组参数, 使由观测序列到对应隐含序列的概率最大.
  • 训练后, 我们就得到了具备预测能力的新模型: lambda = CRF(w1, w2, …, wn), 其中的模型参数已经改变.
  • 之后给定输入序列(x1, x2, …, xn), 经过模型计算lambda(x1, x2, …, xn)得到对应隐含序列的条件概率分布.
  • 最后, 还是使用维特比算法从隐含序列的条件概率分布中找出概率最大的一条序列路径就是我们需要的隐含序列: (y1, y2, …, yn).

3. HMM与CRF模型之间差异

  • HMM模型存在隐马假设, 而CRF不存在, 因此HMM的计算速度要比CRF模型快很多, 适用于对预测性能要求较高的场合.
  • 同样因为隐马假设, 当预测问题中隐含序列单元并不是只与上一个单元有关时, HMM的准确率会大大降低, 而CRF不受这样限制, 准确率明显高于HMM.

4. HMM和CRF的发展现状

  • HMM和CRF模型曾在多种序列任务中表现出色, 伴随NLP工程师度过漫长的一段时期.
  • 但由于近年来深度学习发展迅速, 经典序列模型, 如HMM和CRF, 已经开始慢慢淡出人们的视野.
  • 因此, 我们这里也是对其做了简洁的总结知识, 让大家对其有一定的基本认识.

5. 总结

  • 了解HMM与CRF模型的输入和输出.
  • 了解HMM与CRF模型的作用.
  • 了解HMM与CRF模型的使用过程.
  • 了解HMM与CRF模型之间的差异.
  • 了解HMM和CRF的发展现状.

加油!

感谢!

努力!

文本数据挖掘中文命名实体识别:hmm模型+bilstm_crf模型(pytorch)调研与实验分析(代码片段)

1️⃣本篇博文是【文本数据挖掘】大作业-中文命名实体识别-调研与实验分析2️⃣在之前的自然语言课程中也完成过一次命名实体识别的实验【一起入门NLP】中科院自然语言处理作业三:用BiLSTM+CRF实现中文命名实体识别&... 查看详情

浅谈分词算法基于字的分词方法(crf)

...的方法,这也是一种基于字的分词方法,在将句子转换为序列标注问题之后,不使用HMM的生成模型方式,而是使用条件概率模型进行建模,即判别模型CRF。之后我们对CRF与HMM进行对比,同样的我们最终也会附上CRF分词的实现代码... 查看详情

条件随机场摘要

...件随机场(ConditionalRandomFields,以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。HMM引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关,HMM是一种生... 查看详情

nlp一文了解词性标注crf模型(代码片段)

文章目录学习目标CRF的概念和作用关于条件随机场与马尔科夫假设转移概率矩阵:发射概率矩阵学习目标了解CRF的概念和作用了解转移概率矩阵了解发射概率矩阵CRF的概念和作用场景一:假设有一堆日常生活的给小朋友排拍的视频... 查看详情

nlp命名体识别bilstm+crf

...分4、保存数据a.将标注的句子拆分自成列表和对应的标注序列b.创建词汇表和标签c.文本的向量化表示d.划分训练集和测试集e.保存成二进制pkl文件5、加载数据6、训练模型BiLSTM&HMM7、保存训练后的模型用于预测8、预测"""importcode... 查看详情

hmm经典介绍论文rabiner1989翻译(十七)——多观测序列

5.2多观测序列在第4节我们讨论了左右HMM(Bakis模型),这种模型中状态按序从t=1t=1时的状态1移动到t−Tt-T时的状态N。我们已经讨论了左右模型是怎么对状态转移矩阵施加约束的以及初始状态概率(45)-(48)。但是,... 查看详情

隐马尔可夫(hmm)/感知机/条件随机场(crf)----词性标注(代码片段)

...计方法为这两个难点提供了解决方案,那就是我们熟悉的序列标注模型。只需将中文分词中的汉字替换为词语,B,M, 查看详情

序列标注常用模型crfhmmmemm简介及比对

序列标注常用模型CRF、HMM、MEMM简介及比对隐马尔可夫模型(HiddenMarkovModel,HMM),最大熵马尔可夫模型(MaximumEntropyMarkovModel,MEMM)以及条件随机场(ConditionalRandomField,CRF)是序列标注中最常用也是最基本的三个模型。生成式模... 查看详情

带你认识传统语音识别技术

摘要:隐马尔可夫链HMM模型自从1980年代被用于语音识别以来,一直都是实际语音识别系统的主流方法。本文分享自华为云社区《新手语音入门(四):传统语音识别技术简介|隐马尔可夫链|声学/语言模型|WFST... 查看详情

nlp作业三:用bilstm+crf实现中文命名实体识别(tensorflow入门)代码+报告(代码片段)

...要求程序说明代码链接代码结构运行步骤2.基础知识概述序列标注问题CRF3.数据预处理4.模型结构5.训练6.测试疑问与思考💜在pycharm中如何配置perl?🖤已经安装了pytorch后如何安装TensorFlow?🧡tensorflow中的sess.runὉ... 查看详情

如何用简单易懂的例子解释条件随机场模型?它和hmm有啥区别

...,conditional条件分布。singleclass输出单一类别,sequence输出序列。例如,朴素贝叶斯将输出y扩展成序列(y1,y2,...,yn),就可以以此为基础构造HMM;在满足输入条件下的HMM可以扩展成CRF。这里面,朴素贝叶斯假设最强,因为它要求所有... 查看详情

机器学习——hmm&crf

...&fps=1HMMCRFHMM和CRF对比 1.HMM算法   隐马尔可夫模型是用于标注问题的生成模型。有几个参数(ππ,A,B):初始状态概率向量ππ,状态转移矩阵A,观测概率矩阵B。称为马尔科夫模型的三要素。&nb 查看详情

nlp入门使用crf++实现命名实体识别(ner)(代码片段)

...输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫(Markov)随机场。??较为简单的条件随机场是定义在线性链上的条件随机场,称为线性链条件随机场(linearchainconditionalrandom... 查看详情

nlp经典案例transformer构建语言模型(代码片段)

Transformer构建语言模型引言1.导入必备的工具包2.导入wikiText-2数据集并作基本处理3.构建用于模型输入的批次化数据4.构建训练和评估函数5.进行训练和评估(包括验证以及测试)引言什么是语言模型:以一个符合语言规律的序列为输... 查看详情

nlp经典案例transformer构建语言模型(代码片段)

Transformer构建语言模型引言1.导入必备的工具包2.导入wikiText-2数据集并作基本处理3.构建用于模型输入的批次化数据4.构建训练和评估函数5.进行训练和评估(包括验证以及测试)引言什么是语言模型:以一个符合语言规律的序列为输... 查看详情

利用隐马尔科夫链(hmm)模型实现中文分词(代码片段)

...前时刻的隐藏状态。3.HMM可以解决3类基本问题:评估观察序列的概率。学习模型参数。即给定观察序列,估计模型的参数,是观察序列出现的 查看详情

史诗级干货长文hmm模型(代码片段)

HMM模型1.马尔科夫链1.1简介1.2经典举例1.3小结2.HMM简介2.1简单案例2.2案例进阶2.2.1问题阐述2.2.2问题解决2.2.2.1一个简单问题【对应问题2】2.2.2.2看见不可见的,破解骰子序列【对应问题1】2.2.2.3谁动了我的骰子?【对应问题3... 查看详情

hmmmemmcrf差别联系

...ovModel,MEMM)以及条件随机场(ConditionalRandomField,CRF)是序列标注中最经常使用也是最主要的三个模型。HMM首先出现。MEMM其次,CRF最后。三个算法主要思想例如以下: 查看详情