条件随机场-应用

雪饮者 雪饮者     2022-09-09     399

关键词:

  今天介绍CRFs在中文分词中的应用

  工具:CRF++,可以去 https://taku910.github.io/crfpp/ 下载,训练数据和测试数据可以考虑使用bakeoff2005,这是链接 http://sighan.cs.uchicago.edu/bakeoff2005/

  首先需要了解一些概念

  字标记法——统计分词模型常用的方法,可以将分词问题转化为分类问题。这里我们介绍一下4-tag字标记法,4-tag指的是文档中的每个字都对应一个标记,一共有4类标记,分别是:B、M、E、S,分别代表一个字处于词的开始位置、中间位置、 结束位置,以及一个单子构成一个词。以“我是中国人”为例来说明,标记完的结果是

我  S

是  S

中  B

国  M

人  E

  这样给文档中的每个字都赋予一个标记,那么我们可以将分词任务视为一个分类问题--将文档中的每个字分别赋予一个类标记。

然而,如果将分词仅仅视为一个分类任务来考虑,那么得到的结果很可能不太理想,因为分词需要考虑上下文,如果仅考虑字本身的特征,还是无法得到想要的效果,而CRFs模型天然考虑了上下文特征,通常在需要考虑上下文特征的序列标注问题中能取得不错的效果。

在CRFs模型中,我们将一句话视为一个最大团(最大团的概念可以回顾下CRF第一篇),这样我们只需要求得所有候选词序列的联合概率分布的最大值(每个词对应一个随机变量),那么就可以得到一个分词的标注序列。

n-gram模型——用于限定我们考虑特征的范围,以uni-gram和bi-gram为例来说明,uni-gram窗口大小为1(cut-off=1)只考虑单字的特征,bi-gram窗口大小为2(cut-off=2)考虑两个连续字的特征,比如“我是中国人”,bi-gram在取每个字的特征的时候,只分别考虑“我是”、“是中”、“中国”、“国人”、“人”范围内的特征。笔者推测这样划分的原理应该是句子马尔科夫链的性质——一个字只和它周围的若干字有关联,越远,关联越弱。

  下面介绍CRF++工具包

  CRF++工具包输入数据的格式是这样的:

1  D  B
2 D M
月 W E
3 D B
1 D M
日 W E
, S S
中 W B
共 W M
中 W M
央 W E
  第一列是文档中的字,第二列是字的特征(比如我们规定数字用D表示,普通字用W表示,标点符号用S表示等),第三列是4-tag字标记。
CRF++引入了特征模板的概念,用于扩展特征集(显然上面的输入数据格式能提供的特征太少了),模板这样定义的(以上面的输入数据为例,假设当前字符为“共”)
template expanded feature
%x[0,0]
%x[0,1] W
%x[-1,0]
%x[-2,1] S
%x[0,0]/%x[0,1] 共/W
ABC%x[0,1]123 ABCW123
  %x[row,column]row是相对当前字符的行下标,column是列下标。

  特征模板长这样:
# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-1,0]/%x[0,0]
U06:%x[0,0]/%x[1,0]

U10:%x[-2,1]
U11:%x[-1,1]
U12:%x[0,1]
U13:%x[1,1]
U14:%x[2,1]
U15:%x[-2,1]/%x[-1,1]
U16:%x[-1,1]/%x[0,1]
U17:%x[0,1]/%x[1,1]
U18:%x[1,1]/%x[2,1]

U20:%x[-2,1]/%x[-1,1]/%x[0,1]
U21:%x[-1,1]/%x[0,1]/%x[1,1]
U22:%x[0,1]/%x[1,1]/%x[2,1]

# Bigram
B

  其中U01这些是特征ID,空行没任何意义,#Unigram #Bigram这些是解释说明,指的是下面用的是哪类模型。

  训练的话,可以在命令行进入项目根目录之后(或者添加环境变量方便在任意位置识别训练程序)输入
  crf_learn template_file train_file model_file
  crf_learn是训练程序,template_file指的是模板路径,train_file指的是训练数据路径,model_file指的是生成的模型文件路径(目录+文件)
  有4个可选参数,分别是
-a CRF-L2 or CRF-L1:
  选择L1正则化还是L2正则化(正则化的目的是防止过拟合,一般而言,L2正则化更优,因为L1正则化偏向于减少项的个数,而L2正则化偏向于降低每一项前面的系数,使之趋向于0,而不是减少为0)

   -c float

      这个参数设置CRF的hyper-parameter。c的数值越大,CRF拟合训练数据的程度越高。这个参数可以调整过拟合和欠拟合之间的平衡度。这个参数可以通过交叉验证等方法寻找较优的参数。

 -f NUM

      这个参数设置特征的cut-off threshold。CRF++使用训练数据中至少NUM次出现的特征。默认值为1。当使用CRF++到大规模数据时,只针对特定数据的特征可能会有几百万,这个选项就会在这样的情况下起到作用。

    -p NUM

      如果电脑有多个CPU,那么那么可以通过多线程提升训练速度。NUM是线程数量。

  所以我们在命令行训练数据也可以这样写:
crf_learn -f 3 -c 1.5 template_file train_file model_file
  下面是测试数据的命令行:
crf_test -m model_file test_files
  model_file指的是模型文件的路径,test_files指的是测试数据文件的路径,这里就不需要指定模板文件的路径了,因为其路径已经写入模型文件中
测试数据的文件格式与训练数据文件格式相同,运行测试命令会增加第四列,表示预测的各个字符的标记,然后可以用程序将其转化为我们想要的分词形式即可。
由于训练时间太长,笔者决定下期发布相关代码,敬请期待!

ml-13-5条件随机场(crf-conditionalrandomfield)

目录知识串讲HMMVSMEMM从随机场到马尔科夫随机场条件随机场(CRF)MRF因子分解定理线性链条件随机场(Linear-CRF)一句话简介:条件随机场(ConditionalRandomFields,以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型... 查看详情

条件随机场入门条件随机场的训练

本节讨论给定训练数据集估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数据上的对数线形模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有... 查看详情

条件随机场介绍——anintroductiontoconditionalrandomfields

...些应用所共有的特征,是在已知观测特征向量(mathbf{x})的条件下,预测随机向量输出(mathbf{y}={y_0,y_1,cdots,y_T})。以自 查看详情

条件随机场入门条件随机场的预测算法

...预测问题是给定模型参数和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列)$y^*$,即对观测序列进行标注。条件随机场的预测算法同HMM还是维特比算法,根据CRF模型可得:egin{aligned}y^*&=argmax_yP_w(y|x)\&= ... 查看详情

条件随机场

概述条件随机场(conditionalrandomfield,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场可以用于不同的预测问题,本章主要讲述线性链(linearc... 查看详情

条件随机场入门条件随机场的概率计算问题

条件随机场的概率计算问题是给定条件随机场P(Y|X),输入序列x和输出序列y,计算条件概率$P(y_i|x)$,$P(y_{i-1},y_i|x)$以及相应的数学期望的问题。为了方便起见,像HMM那样,引进前向-后向向量,递归地计算以上概率及期望值。这样... 查看详情

条件随机场摘要

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

条件随机场介绍——anintroductiontoconditionalrandomfields

2.模型本部分从建模的角度讨论条件随机场,解释条件随机场如何将结构化输出上的概率分布表示为高维输入向量的函数。条件随机场即可以理解为逻辑回归在任意图结构上的扩展,也可以理解为结构化数据的生成模型(如隐马... 查看详情

条件随机场介绍——anintroductiontoconditionalrandomfields

条件随机场介绍原文:AnIntroductiontoConditionalRandomFields作者:CharlesSutton(SchoolofInformatics,UniversityofEdinburgh,Edinburgh,EH89AB,UK)AndrewMcCallum(DepartmentofComputerScience,UniversityofMassachusetts,Amh 查看详情

理解条件随机场(转)

理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。原文在这里[http:... 查看详情

条件随机场

...calT$上进行对数似然函数$mathcalL$的极大化。根据上一篇《条件随机场(三)》,我们知道线性链CRF的模型为egin{equation}p_{vec{lambda}}(vecy|vecx)=frac1{Z_{vec{lambda}}(vecx)}exp( 查看详情

ml-13-6条件随机场的三个问题(crf-conditionalrandomfield)

目录条件随机场CRF——前向后向算法评估标记序列概率条件随机场CRF——模型参数学习条件随机场CRF——维特比算法解码一、条件随机场CRF——前向后向算法评估标记序列概率  linear-CRF第一个问题是评... 查看详情

条件随机场

...有结点为O,对应随机变量组YO,那么给定随机变量组YO的条件下,Yu和Yv是 查看详情

nlp——图模型条件随机场(conditionalrandomfield,crf)

...rkovrandomfield,无向图模型)简单回顾   (二)条件随机场(Conditionalrandomfield,CRF)    这篇写的非常浅,基于[1]和[5]梳理。感觉[1]的讲解很 查看详情

条件随机场介绍——anintroductiontoconditionalrandomfields

6.相关研究和未来方向本部分简要分析条件随机场的发展路线,特别是在结构化预测(structuredprediction)方面。除此之外,还将分析条件随机场与神经网络和最大熵马尔可夫模型(MEMMs)的关系。最后列出了几个未来研究的开放领... 查看详情

条件随机场(crf)-1-简介(转载)

转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html   首先我们先弄懂什么是“条件随机场”,然后再探索其详细内容。        于是,先介绍几个名词。马尔可夫链    & 查看详情

条件随机场(crf)占坑,待补充

CRF看了好久,一直感觉理解不太透彻,今天按照52自然语言处理运行了一下CRF++,先占坑,等忙完毕设,好好整理一下CRF与HMM(20181026)  查看详情

条件随机场(crf)-2-定义和形式(转载)

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html     参考书本:《2012.李航.统计学习方法.pdf》     书上首先介绍概率无向图模型,然后叙述条件随机场的定义和 查看详情