基于自然语言处理角度谈谈CRF

作者:白宁超

2016年8月2日21:25:35

【摘要】:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果。在中文分词、中文人名识别和歧义消解等任务中都有应用。本文源于笔者做语句识别序列标注过程中,对条件随机场的了解,逐步研究基于自然语言处理方面的应用。成文主要源于自然语言处理、机器学习、统计学习方法和部分网上资料对CRF介绍的相关的相关,最后进行大量研究整理汇总成体系知识。文章布局如下:第一节介绍CRF相关的基础统计知识;第二节介绍基于自然语言角度的CRF介绍;第三节基于机器学习角度对CRF介绍,第四节基于统计学习角度对相关知识介绍;第五节对统计学习深度介绍CRF,可以作为了解内容。(本文原创,转载请注明出处基于自然语言处理角度谈谈CRF。)

目录


【自然语言处理:漫步条件随机场系列文章(一)】:前戏:一起走进条件随机场

【自然语言处理:漫步条件随机场系列文章(二)】:基于自然语言处理角度谈谈CRF

【自然语言处理:漫步条件随机场系列文章(三)】:基于机器学习角度谈谈CRF

【自然语言处理:漫步条件随机场系列文章(四)】:基于统计学习角度谈谈CRF

【自然语言处理:漫步条件随机场系列文章(五)】:条件随机场知识扩展

1 条件随机场(Condition Random Fields),简称CRFs


条件随机场概念:条件随机场就是对给定的输出标识序列Y和观察序列X,条件随机场通过定义条件概率P(X|Y),而不是联合概率分布P(X,Y)来描述模型。

概念解析:

标注一篇文章中的句子,即语句标注,使用标注方法BIO标注,B代表句子的开始,I代表句子中间,O代表句子结束。则观察序列X就是一个语料库(此处假设一篇文章,x代表文章中的每一句,X是x的集合),标识序列Y是BIO,即对应X序列的识别,从而可以根据条件概率P(标注|句子),推测出正确的句子标注,显然,这里针对的是序列状态,即CRF是用来标注或划分序列结构数据的概率化结构模型,其在自然语言处理和图像处理领域得到广泛的应用,CRF可以看作无向图模型或者马尔科夫随机场。

2 条件随机场的形式化表示


设G=(V,E)为一个无向图,V为结点的集合,E为无向边的集合,即V中的每个结点对应一个随机变量Yv,其取值范围为可能的标记集合{Y}.如果观察序列X为条件,每一个随机变量 都满足以下马尔科夫特性:,其中,w – v表示两个结点在图G中是邻近结点,那么,(X,Y)为条件随机变量。

以语句识别的案例理解条件随机场的形式化表示。

G=(V,E表示识别语句:【我爱中国】的标注是一个无向图,X我观察序列,Y为标注序列,V是每个标注状态的结点,E的无向边,边上的权值为概率值。表示每个X的Y的标注,如:X1:我,y1:O,y2:I,y3:B;取值范围,而中w—v表示我与爱是相邻的结点,这样的(X,Y)为一个条件随机场,真正的标注再采用Viterbi算法,如:

寻求最大概率即,记录下我的标注路径,同理可知:

如上便是对条件随机场与Viterbi算法的综合运用,其中Viterbi标注问题本质是隐马尔科夫模型三大问题之解码问题算法模型,具体参考(揭秘马尔科夫模型系列文章)

3 深度理解条件随机场


理论上标记序列描述一定条件的独立性,G图结构任意的,对序列进行建模可形成最简单,最普通的链式结构图,结点对应标记序列X中元素,CRF链式图如下:

如上图两种表示是一致的,其中图链式句子标注是图链式2的实例化,读者可能问为什么上面图是这种而不是广义的图,这是因为观察序列X的元素之间并不存在图结构,没有做独立性假设,这点也非常容易理解,诸如图中,我爱中国,其中b表示反射概率而t是转移概率,线上的数值表示权值即概率值。如图3,我的发射概率0.7,我到爱的转移概率0.5,通俗讲,我和爱两个字是有关联的,并非独立的。

4 公式化表示条件随机场


在给定的观察序列X时,某个待定标记序列Y的概率可以定义为

其中是转移概率,是状态函数,表示观察序列X其中i的位置的标记概率,分别是t和s的权重,需要从训练样本中估计出来。

实例解析

我爱中国,其中x2是爱字,表示在观察状态2中,我到爱的转移概率,其中j∈{B,I,O},可知的生成概率或者发射概率的特征函数.观察序列{0,1}二值特征b(x,i)来表示训练样本中某些分布特征,其中采用{0,1}二值特征即符合条件标为1,反之为0;

为了便于描述,可以将状态函数书写以下形式:


特征函数:

其中每个局部特征表示状态特征,或者专业函数,由此条件随机场的定义条件概率如下:

其中分母为归一化因子:

5 本节总结


条件随机场模型也需要解决三个基本问题:特征的选择,参数训练和解码。其中参数训练过程在训练数据集上基于对数似然函数最大化进行。

CRF优点:相对于HMM,CRF主要优点是它的条件随机性,只需要考虑当前出现的观察状态的特性,没有独立性严格要求,CRF具有MEMM一切优点。

CRF与MEMM区别:

MEMM:使用每一个状态的指数模型来计算给定前一个状态下当前状态的条件概率。

CRF:用单个指数模型计算给定观察序列与整个标记序列联合概率。

《统计自然语言处理》P128页有关于随机场模型的实现工具。

6 参考文献


【1】 数学之美 吴军 著

【2】 机器学习  周志华 著

【3】 统计自然语言处理 宗成庆 著(第二版)

【4】 统计学习方法(191---208) 李航

【5】 知乎 网络资源

7 自然语言相关系列文章


【自然语言处理】:【NLP】揭秘马尔可夫模型神秘面纱系列文章

【自然语言处理】:【NLP】大数据之行,始于足下:谈谈语料库知多少

【自然语言处理】:【NLP】蓦然回首:谈谈学习模型的评估系列文章

【自然语言处理】:【NLP】快速了解什么是自然语言处理

【自然语言处理】:【NLP】自然语言处理在现实生活中运用

声明:关于此文各个篇章,本人采取梳理扼要,顺畅通明的写作手法。系统阅读相关书目和资料总结梳理而成,旨在技术分享,知识沉淀。在此感谢原著无私的将其汇聚成书,才得以引荐学习之用。其次,本人水平有限,权作知识理解积累之用,难免主观理解不当,造成读者不便,基于此类情况,望读者留言反馈,便于及时更正。本文原创,转载请注明出处基于自然语言处理角度谈谈CRF。

【NLP】基于自然语言处理角度谈谈CRF(二)的更多相关文章

  1. 【NLP】基于统计学习方法角度谈谈CRF(四)

    基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  2. 【NLP】基于机器学习角度谈谈CRF(三)

    基于机器学习角度谈谈CRF 作者:白宁超 2016年8月3日08:39:14 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都 ...

  3. 郑捷2017年电子工业出版社出版的图书《NLP汉语自然语言处理原理与实践》

    郑捷2017年电子工业出版社出版的图书<NLP汉语自然语言处理原理与实践> 第1章 中文语言的机器处理 1 1.1 历史回顾 2 1.1.1 从科幻到现实 2 1.1.2 早期的探索 3 ...

  4. 从个人的角度谈谈本次GNTC大会的收获

    GNTC资料:from sdnlab 从个人的角度谈谈本次大会的收获 从本次大会的主题演讲来看,目前SDN.NFV的最前沿已经不再像五年前持观望态度以及探讨,各大运营商.各大厂商已经将SDN.NFV具 ...

  5. Java基于opencv实现图像数字识别(二)—基本流程

    Java基于opencv实现图像数字识别(二)-基本流程 做一个项目之前呢,我们应该有一个总体把握,或者是进度条:来一步步的督促着我们来完成这个项目,在我们正式开始前呢,我们先讨论下流程. 我做的主要 ...

  6. 从架构师角度谈谈mybatis-plus可能存在的问题

    存在这么一个情况:对于缺营养的人来说,医生更倾向于建议他选择纯牛奶,而不是有机奶(因其有添加剂).然而,大部分人却更加倾向于选择有机奶, 因其口感不错,因此,对于选择纯牛奶还是有机奶,这是个博弈问题. ...

  7. Android RecyclerView单击、长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类

     Android RecyclerView单击.长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类 我写的附录文章2,介绍了 ...

  8. 条件随机场CRF(二) 前向后向算法评估标记序列概率

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...

  9. OpenCV_基于局部自适应阈值的图像二值化

    在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理.文本图片和验证码图片中字符的提取.车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等. 较为常用的图像二值化方 ...

随机推荐

  1. 微软.NET Core RC2正式发布,横跨所有平台

    .NET官方博客宣布了<Announcing .NET Core RC2 and .NET Core SDK Preview 1>,正式如期发布了.NET Core RC2, 现在可以放心 ...

  2. 我是如何在SQLServer中处理每天四亿三千万记录的

    首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...

  3. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  4. 【NLP】Python NLTK处理原始文本

    Python NLTK 处理原始文本 作者:白宁超 2016年11月8日22:45:44 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开 ...

  5. Asp.Net WebApi核心对象解析(上篇)

    生活需要自己慢慢去体验和思考,对于知识也是如此.匆匆忙忙的生活,让人不知道自己一天到晚都在干些什么,似乎每天都在忙,但又好似不知道自己到底在忙些什么.不过也无所谓,只要我们知道最后想要什么就行.不管怎 ...

  6. Solr高级查询Facet

    一.什么是facet solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索. facet主要用于导航实现渐进式精确搜索 ...

  7. OpenLiveWriter代码插件

    1.OpenLiveWriter安装 Windows Live Writer在2012年就停止了更新,Open Live Writer(以下简称OLW)是由Windows Live WriterWri ...

  8. Entity Framework 教程——Entity Framework中的实体类型

    Entity Framework中的实体类型 : 在之前的章节中我们介绍过从已有的数据库中创建EDM,它包含数据库中每个表所对应的实体.在EF 5.0/6.0中,存在POCO 实体和动态代理实体两种. ...

  9. 装饰者模式 Decoration

    1.什么是装饰者模式 动态给对象增加功能,从一个对象的外部来给对象添加功能,相当于改变了对象的外观,比用继承的方式更加的灵活.当使用装饰后,从外部系统的角度看,就不再是原来的那个对象了,而是使用一系列 ...

  10. iOS 后台处理

    iOS 后台处理的常见用途 1.进入后台时候删除资源:应用处于挂起状态的时候所占用的资源越少,该应用被iOS终止的风险就越低.通过从内存中清理那些易于重新创建的资源,可以增加应用驻留内存的机会,因此可 ...