这是以前的一篇草稿,当初没写完,今天发出来,但总觉得水平有限,越学越觉得自己菜,写的博客水准低,发完这篇以后就谨慎发博了,毕竟自己菜,不能老吹B,下面是原稿。

好久没更了,本来年前想写篇关于爬虫的总结来,结果在家懒癌发作,开学了也没“挤”出时间来。今天主要是心情好,写下自己学到的一点知识,长了一点人生的经验。

前两周看了HMM和CRF的知识,因为最近做的东西要用到,这两天在用crf++,目前最新的好像是0.58版,再新的没找到资源,貌似0.54之后就只有发布的exe了,0.53版的还有源码,感兴趣的同学可以看看源码(我打算最近两天看)。用一个东西首先要看它的官方文档,对一些命令什么的看过之后,卡在了一个地方——template,文档上只说template里是训练时生成特征函数的,并解释了一下形如U00:%x[-2,0]的含义,但是,对于我们这种菜鸡,根本理解不了啊。问题主要有三个(首先假设我们有如下的template:)

# Unigram
U00:%x[-,]
U01:%x[-,]
U02:%x[,]
U03:%x[,]
U04:%x[,]
U05:%x[-,]/%x[-,]/%x[,]
U06:%x[-,]/%x[,]/%x[,]
U07:%x[,]/%x[,]/%x[,]
U08:%x[-,]/%x[,]
U09:%x[,]/%x[,] # Bigram
B

1)U00~U04组合起来是什么意思;2)形如U05~U09那样的是什么意思;3)模版怎么写

知道问题就可以有目的的搜索,搜索结果大致是怎么理解crf++中的模版、用crf++进行中文标注、crf++模版格式等等,看了一堆,主要收获就是形如U09 是联合概率,剩下的都是和官网文档差不多,大多数文章相似度很高(哈哈哈),也算小小的解决了第二个问题,别的我依然蒙蔽。

今晚找老大聊了聊,老大解决了我的疑惑,又学到了一点人生的经验。下面说一下我得理解。

首先假设我们知道CRF(s因为有的加了)的概念,知道计算P(y|X)的公式

然后我们在模型中使用某特征(暂且叫字符n-gram特征),其具体特征形式化描述为

下标表示距离当前考察字符的相对位置,上一句意思就是对位置i,还要考察其前面两个字符和后面两个字符来计算其 Φ,比如: 我是中国人,考察中的时候还要考察我 是 国 人,模版写出来就是我们的U00~U04。

上面理解了,U05-U09就好理解了,它们其实就是像U00-U04这样的特征的组合,还是上面那个例子,U08表示 是/中。U08、U09这样的叫bigram(和下面的Bigram不同,一般而言比Bigram灵活一点),U05-U07叫trigram。其实在crf++代码是现中根据模板生成的特征也不过是一些字符串和对应的编号,然后通过学习得到特征函数的权重。

关于模板怎么写,这取决于你,一般来说会有一个窗口(即考虑当前token前几个后几个),大小自定义,源码里好像限制窗口最大为17,如果你的特征有多列,可能要多写些像U00-U04这样的模板不同的地方在于[,]里的第二项还有像U05-U09这样的组合特征模板,下面的Bigram特征一般没用,用的话也是最简单的B。

其实现在看来当初的疑问很简单,大家都是事后诸葛亮,但还是希望亡羊补牢为时未晚。学东西还是要学透,不然笨鸟还是笨鸟,最后连飞都飞不动了。

对crf++的template的理解 ©seven_clear的更多相关文章

  1. 概率图模型学习笔记:HMM、MEMM、CRF

    作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

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

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html 参考书本: <2012.李航.统计学习方法.pdf> 书上 ...

  3. 条件随机场之CRF++源码详解-训练

    上篇的CRF++源码阅读中, 我们看到CRF++如何处理样本以及如何构造特征.本篇文章将继续探讨CRF++的源码,并且本篇文章将是整个系列的重点,会介绍条件随机场中如何构造无向图.前向后向算法.如何计 ...

  4. 条件随机场(CRF) - 2 - 定义和形式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968声明: 1,本篇为个人对& ...

  5. CodeSmith使用总结--调用自定义方法

    上一篇读取了一个表的内容,但是到了真正应用的时候还是不够用的,我们很容易可以对比出来,SQL里边的数据类型的定义和C#中有所不同,比如Saler--String,大写的String在C#中不是一个类型 ...

  6. 开源项目kcws代码分析--基于深度学习的分词技术

    http://blog.csdn.net/pirage/article/details/53424544 分词原理 本小节内容参考待字闺中的两篇博文: 97.5%准确率的深度学习中文分词(字嵌入+Bi ...

  7. [ipsec][strongswan] strongswan源码分析--(一)SA整体分析

    strongswan SA分析(一) 1 概念 下面主要介绍两个本文将要阐述的核心概念.他们是SA和SP.注意,这不是一篇不需要背景知识的文章.作者认为你适合阅读接下来内容的的前提是,你已经具备了一下 ...

  8. 2018VUE面试题总结

      Vue面试题 一:什么是MVVM MVVM是是Model-View-ViewModel的缩写,Model代表数据模型,定义数据操作的业务逻辑,View代表视图层,负责将数据模型渲染到页面上,Vie ...

  9. Django安装与简单配置(1)

    目录 1. 环境准备 2. 开始安装 2.1 安装Django 2.2 安装 Mysql数据库 3. 开始配置 3.1 Django简单配置 3.1.1 创建一个工程(project)为devops: ...

随机推荐

  1. 配置caffe过程中,生成解决方案出错。无法打开包括文件: “gpu/mxGPUArray.h”

    ------ 已启动生成: 项目: matcaffe, 配置: Release x64 ------12> MatlabPreBuild.cmd : Create output director ...

  2. python 源码安装

    1)下载python源码包 http://mirrors.sohu.com/python/3.5.2/Python-3.5.2.tgz 2)安装相关依赖  yum install zlib-devel ...

  3. 8 -- 深入使用Spring -- 1...3 容器后处理器

    8.1.3 容器后处理器(BeanFactoryPostProcessor) 容器后处理器负责处理容器本身. 容器后处理器必须实现BeanFacotryPostProcessor接口.实现该接口必须实 ...

  4. __stdcall __cdecl 引起的程序崩溃

    崩溃弹出的截图如下 看到0xC0000005, 访问冲突的问题, 九成九是内存访问违规, 比如访问了已经释放的指针, 又或者是离开函数时栈被破坏之类. 找了一下午一直没有头绪, 好在有一份可以执行的源 ...

  5. GreenPlum数据加载

    1. copy命令 对于数据加载,GreenPlum数据库提供copy工具,copy工具源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.使用copy命令进行 ...

  6. WAF Bypass FUZZ小脚本

    分享两个小脚本,用来WAF Bypass简单FUZZ的 第一个:先生成一个字典,带入搭建的环境进行FUZZ,针对某些软WAF挺好用的,可FUZZ出不少姿势出来,记得先把CC攻击加入白名单才行哦... ...

  7. JavaWeb学习总结(十五)Jsp中提交的表单的get和post的两种方式

    两者的比较: Get方式: 将请求的参数名和值转换成字符串,并附加在原来的URL之后,不安全 传输的数据量较小,一般不能大于2KB: post方式: 数量较大: 请求的参数和值放在HTML的请求头中, ...

  8. 手机CPU

    说起手机CPU的历史,笔者给大家提一个问题:"世界上第一款智能手机是什么呢?"相信很多人的答案是爱立信的R380或诺基亚的7650,但都不对,真正的首款智能手机是由摩托罗拉在200 ...

  9. 使用jquery的 $.grep实现es6的filter效果

    现在es6是趋势,习惯了es6会方便的多,但是有时候由于项目的限制,会限制es6的使用,在处理数组的时候,往往会想将一个数组进行过滤产生另一个新数组,如es6的filter 如下,我又一个数组,[1, ...

  10. 为JDK自带的jvisualvm安装Visual GC插件

    1.打开cmd,输入jvisualvm,回车: 2.点击工具——>插件; 3.访问网址:https://visualvm.github.io/pluginscenters.html,找到自己JD ...