认识hmm与crf模型(代码片段)

黑马程序员官方 黑马程序员官方     2022-12-06     368

关键词:

学习目标:

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

HMM模型的输入和输出

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

什么是隐含序列:

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

举个栗子:

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

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

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

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

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

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

HMM模型的作用

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

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).

CRF模型的输入和输出

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

CRF模型的作用

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

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).

HMM与CRF模型之间差异

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

HMM和CRF的发展现状

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

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

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

机器学习——hmm&crf

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

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

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

自然语言处理之hmm模型分词(代码片段)

...(x1|x1,x2)……P(xm|x1,x2,……,xm-1)l 用n-gram模型将上式进行简化,认为其概率仅与其前n-1个词相关:P~=P(xi|xi-(n-1),xi-(n-2)……,xi-1)=count(xi-(n-1),xi-(n-2)……,xi-1,xi)/count(xi-(n-1),xi-(n-2)……,xi-1) ... 查看详情

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

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

条件随机场摘要

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

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

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

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

...唯一词性。OOV是任何自然语言处理任务的难题。词性标注模型统计方法为这两个难点提供了解决方案,那就是我们熟悉的序列标注模型。只需将中文分词中的汉字替换为词语,B,M, 查看详情

crf进行中文命名实体识别(使用sklearn_crfsuite进行实现)(代码片段)

...义通用函数3定义一些特征4从数据中提取特征5读取数据6模型训练7验证模型效果8保存模型总结前言最近在一个项目中需要使序列标注的方法来进行命名实体识别,目前使用序列标注方法进行命名实体识别主要有两种实现方法&... 查看详情

史诗级干货长文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... 查看详情

hmm及crf

参考技术A在概率图模型的表达中,数据(样本)由公式建模表示:根据图模型(graphicalmodels)的边是否有向,概率图模型通常被划分成有向概率图模型和无向概率图模型。求解联合概率写成通用形式即如果联合概率分布满足成对、... 查看详情

hmmmemmcrf差别联系

...文字编辑,原创部分甚少。參考资料见最后。隐马尔可夫模型(HiddenMarkovModel。HMM),最大熵马尔可夫模型(MaximumEntropyMarkovModel,MEMM)以及条件随机场(ConditionalRandomField,CRF)是序列标注中最经常使用也是最主要的三个模型。H... 查看详情

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

参考技术A概率模型与条件随机场1、概率模型 机器学习中的很多模型可以根据概率分布形式分为生成模型和判别模型,其中生成模型以输入输出的联合分布P(X,Y)为基础建模,如朴素贝叶斯、隐马尔可夫模型;判别模型以条件... 查看详情

crfpp/crf++编译安装与部署(代码片段)

CRFPP/CRF++编译安装与部署下载CRF++https://taku910.github.io/crfpp/#download说明:在上面网站中下载CRF++0.58解压tarzxfCRF++-0.58.tar.gz-C/usr/local/说明:将文件解压到/usr/local/目录下编译安装CRF++-0.58cd/usr/local/CRF++-0.58./configuremakem 查看详情

hmm隐马尔科夫模型及matlab实现(代码片段)

隐马尔科夫模型文章目录隐马尔科夫模型前言一、定义二、三个基本问题1、观测序列概率2、模型参数学习3、预测(解码)问题三、三个问题的代码1、观测序列概率2、模型参数学习总结前言隐马尔科夫模型(HMM)... 查看详情

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

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

简单易懂的隐马尔可夫模型(hmm)讲解(代码片段)

学习目标:了解什么是马尔科夫链知道什么是HMM模型知道前向后向算法评估观察序列概率知道维特比算法解码隐藏状态序列了解鲍姆-韦尔奇算法知道HMM模型API的使用一、马尔科夫链在机器学习算法中,马尔可夫链(Markovcha... 查看详情

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

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