【NLP】一文了解词性标注CRF模型
文章目录
- 学习目标
- CRF的概念和作用
- 关于条件随机场与马尔科夫假设
- 转移概率矩阵:
- 发射概率矩阵
学习目标
- 了解CRF的概念和作用
- 了解转移概率矩阵
- 了解发射概率矩阵
CRF的概念和作用
场景一: 假设有一堆日常生活的给小朋友排拍的视频片段, 可能的状态有睡觉、吃饭、喝水、洗澡、刷牙、玩耍等, 大部分情况, 我们是能够识别出视频片段的状态. 但如果你只是看到一小段拿杯子的视频, 在没有前后相连的视频作为前后文参照的情况下, 我们很难知道拿杯子是要刷牙还是喝水. 这时, 可以用到CRF模型.
场景二: 假设有分好词的句子, 我们要判断每个词的词性, 那么对于一些词来说, 如果我们不知道相邻词的词性的情况下, 是很难准确判断每个词的词性的. 这时, 我们也可以用到CRF.
CRF(全称Conditional Random Fields), 条件随机场. 是给定输入序列的条件下, 求解输出序列的条件概率分布模型.
下面举两个应用场景的例子:
基本定义: 我们将随机变量的集合称为随机过程. 由一个空间变量索引的随机过程, 我们将其称为随机场. 上面的例子中, 做词性标注时, 可以将{名词、动词、形容词、副词}这些词性定义为随机变量, 然后从中选择相应的词性, 而这组随机变量在某种程度上遵循某种概率分布, 将这些词性按照对应的概率赋值给相应的词, 就完成了句子的词性标注.
关于条件随机场与马尔科夫假设
马尔科夫假设, 也就是当前位置的取值只和与它相邻的位置的值有关, 和它不相邻的位置的值无关.
应用到我们上面的词性标注例子中, 可以理解为当前词的词性是根据前一个词和后一个词的词性来决定的, 等效于从词性前后文的概率来给出当前词的词性判断结果.
现实中可以做如下假设: 假设一个动词或者副词后面不会连接同样的动词或者副词, 这样的概率很高. 那么, 可以假定这种给定隐藏状态(也就是词性序列)的情况下, 来计算观测状态的计算过程. 本质上CRF模型考虑到了观测状态这个先验条件, 这也是条件随机场中的条件一词的含义.
转移概率矩阵:
首先假设我们需要标注的实体类型有一下几类:
{"O": 0, "B-dis": 1, "I-dis": 2, "B-sym": 3, "I-sym": 4}# 其中dis表示疾病(disease), sym表示症状(symptom), B表示命名实体开头, I表示命名实体中间到结尾, O表示其他类型.
因此我们很容易知道每个字的可能标注类型有以上五种可能性, 那么在一个句子中, 由上一个字到下一个字的概率乘积就有5 × 5种可能性, 具体见下图所示:
最终训练出来结果大致会如上图所示, 其中下标索引为(i, j)的方格代表如果当前字符是第i行表示的标签, 那么下一个字符表示第j列表示的标签所对应的概率值. 以第二行为例, 假设当前第i个字的标签为B-dis, 那么第i+1个字最大可能出现的概率应该是I-dis.
发射概率矩阵
发射概率, 是指已知当前标签的情况下, 对应所出现字符的概率. 通俗理解就是当前标签比较可能出现的文字有哪些, 及其对应出现的概率.
下面是几段医疗文本数据的标注结果:
可以得到以上句子的转移矩阵概率如下:
对应的发射矩阵可以理解为如下图所示结果:
【NLP】一文了解词性标注CRF模型相关推荐
- 自然语言处理(NLP)学习笔记——HMM与CRF模型
一.HMM模型 1.HMM模型的输入和输出 HMM(Hidden Markov Model),中文称作隐含马尔可夫模型,因俄国数学家马尔可夫而得名.它一般以文本序列数据为输入,以该序列对应得隐含序列为 ...
- 定制你自己的CRF模型以及JAVA实现的Word2Vec模型和一些java版NLP的工具
定制自己的CRF模型 JAVE 用户自定义词典 这个项目是一个基本包.封装了大多数nlp项目中常用工具 word2vec java版本的一个实现 CRF详解
- NLP(二十五)实现ALBERT+Bi-LSTM+CRF模型
在文章NLP(二十四)利用ALBERT实现命名实体识别中,笔者介绍了ALBERT+Bi-LSTM模型在命名实体识别方面的应用. 在本文中,笔者将介绍如何实现ALBERT+Bi-LSTM+CRF ...
- 【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型
模型前的铺垫 我们先引入一个假设,假设一个句子的产生只需要两步: 第一步:基于语法产生一个合乎文法的词性序列 第二步:对第一步产生的序列中的每个词性找到符合这个词性的一个词汇,从而产生一个词汇序列,便 ...
- 使用Java-Hanlp训练CRF模型
文章目录 一.CRF分词 二.CRF模型训练 1.语料库准备 2.词性标注 3.训练 4.结果文件 5.BEMS标注 三.实验结果 CRF是序列标注场景中常用的一种语言模型,与基于隐马尔可夫模型(HM ...
- 【NLP】文档集数据处理 gensim corpora.Dictionary 的简单使用
[NLP]文档集数据处理 gensim corpora.Dictionary 1. corpora 和 dictionary 2. 词典操作 3. 存储 4. 其他操作 5. 分批处理和分布式计算 6 ...
- 信息抽取实战:命名实体识别NER【ALBERT+Bi-LSTM模型 vs. ALBERT+Bi-LSTM+CRF模型】(附代码)
实战:命名实体识别NER 目录 实战:命名实体识别NER 一.命名实体识别(NER) 二.BERT的应用 NLP基本任务 查找相似词语 提取文本中的实体 问答中的实体对齐 三.ALBERT ALBER ...
- NLP自然语言处理系列——LDA主题词模型探析
NLP自然语言处理系列--LDA主题词模型探析 时间 2015-06-17 22:39:57 十一城elevencitys.com 原文 http://elevencitys.com/2015/0 ...
- 下列哪个不属于CRF模型对于HMM和MEMM模型的优势( )
感想 CRF,HMM和HEMM我也用心的学过,可能公式没有怎么推过,这三个模型还是蛮复杂的,搞得我现在有点生疏,我这里也整理一下,方便后面的复习. problem 下列哪个不属于CRF模型对于HMM和 ...
- 词性标注HMM模型之TnT — A Statistical Part-of-Speech Tagger (2000) 论文解读
这里写目录标题 概述 内容背景介绍 模型体系架构 目标函数推导 Smoothing 处理 未知词的处理 大小写问题 定向搜索 总结 概述 该文作者是德国萨尔大学的Thorsten Brants,作者认 ...
最新文章
- Python运行的17个时新手常见错误小结
- lvs直接路由模式简单部署
- Leetcode 682. 棒球比赛 解题思路及C++实现
- 数据中心运维人的半衰期危机
- 浅谈Nginx服务器的内部核心架构设计
- 程序员财富自由了,居然会想做这些事!
- 制炭机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 菜鸟的IT道路ing (一)
- githug-54-git练习
- Windows的CMD的NET命令net start , net stop ...
- win10中鼠标点右键或者重命名文件夹系统卡顿解决方法
- 利用Python解决利率相关计算问题(利率计算器):本金翻倍,定期取款,多重利率,通货膨胀等问题
- proftpd 530 Login incorrect
- 【附源码】Python计算机毕业设计社区志愿者管理系统
- 宠物赛道的泡泡玛特|BarkBox 如何靠一流的订阅服务实现 95% 的用户留存
- c属于什么语言,C语言属于什么语言
- 微信小程序-实现两个按钮固定在页面底端且不随页面滑动(静态页面)
- 虚拟机Linux如何做快照、备份以及快照的使用
- Hi3559AV100-网口调试
- 杜洋单片机c语言,杜洋工作室 DoYoung Studio