# CRF++源码分析——模型的加载#

CRF++源码分析——模型的加载

接触CRF++有一段时间了,也看了一些CRF++的一些源码,再次打算对CRF++的源码进行分析,整理下以前对CRF++的理解。对CRF++的分析主要分为三部分:
1-模型的训练
2-模型的加载
3-任务的应用

由于模型训练的分析比较复杂,所以我打算放在最后来分析,按2->3->1的顺序来讲。关于CRF++的一些基本知识不再单独讲解,不熟悉的可以参考CRF++自带的说明文档,或者和说明文档比较接近的这篇文章来了解!本文以CRF++中自带样例中的一个(/example/chunking下)来分析。

由于知识储备有限,分析的有问题的地方还请见谅和指教!


CRF++在执行具体任务(对各种序列打标签)之前会将学习到的模型加载到自己的内存中,本模块主要分析CRF++加载模型的过程!

1、特征值

为了下面的讲解方便,我们引入特征值的概念。
我们知道对于Unigram类型的特征模板,产生的特征函数的数量是L.N,对于Bigram类型的特征模板,产生特征函数的数量是L.L.N(其中L是标注集中类别数量,N是从模板中扩展处理的字符串种类)。我们在特征模板与特征函数之间增加一层概念。
设x是特征模板t扩展处理的字符串集X(t)(上边的N表示的是本集合的大小\势)元素,我们将x应用于T(即将T所指定的位置的字符串指定为x)得到T的一个特征值。我们有(Y表示标注集,Y的大小为L):

  1. 特征值是包括特征模板与对应位置字符串组成的二元组,特征模板t生成的特征值集合为
    V(t)={ (t,x)|xX(t)}|V(t)|=|X(t)|=N V ( t ) = { ( t , x ) | x ∈ X ( t ) } , | V ( t ) | = | X ( t ) | = N
  2. Unigram特征函数是包括特征模板,对应位置字符串和标注组成的三元组,U特征模板t生成的特征函数的集合
    F(t)={ (t,x,y)|xX(t),yY}={ (v,y)|vV(t),yY},|F(t)|=|V(t)|.|Y|=NL F ( t )
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值