这是以前的一篇草稿,当初没写完,今天发出来,但总觉得水平有限,越学越觉得自己菜,写的博客水准低,发完这篇以后就谨慎发博了,毕竟自己菜,不能老吹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. geoserver 数据图层输出格式

    1.WMS服务请求参数 一般WMS的请求地址如下: http://localhost:8080/geoserver/topp/wms?service=WMS&versi on=1.1.0&am ...

  2. 织梦Dedecms容易被挂马文件以及可疑文件汇总

    1. 被植入木马,然后网站打开后自动弹出博彩,赌博,色情网站,一般这种病毒的特征代码如下 二.织梦CMS被挂马清理方法 1.删除增加的管理员service.spider等用户名. 2.删除根目录的as ...

  3. Android重写HorizontalScrollView仿ViewPager效果

    Android提供的ViewPager类太复杂,有时候没有必要使用,所以重写一个HorizontalScrollView来实现类似的效果,也可以当做Gallery来用 思路很简单,就是重写onTouc ...

  4. PMP用语集

    AC actual cost 实际成本 ACWP actual cost of work performed 已完工作实际成本 BAC budget at completion 完工预算 BCWP b ...

  5. 【GIS】地球经纬度和米换算(转)

    经度的定义是过某点的经线面和本初子午面之间的夹角.纬度的定义是过某点的球面切面垂线与赤道平面之间的线面角.可见,如果不加限定,1"之间的距离没有意义. 假设地球为一半径为R的表面光滑圆球体, ...

  6. WopiServerTutorial

    Program.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using ...

  7. Win10 我的电脑 -- 右键点击管理打不开

    右键点击我的电脑 -- 管理,出现如下错误,这是删除快捷方式小箭头导致的 解决方法: win+R 输入 regedit,分别在 HKEY_CLASSES_ROOT\piffile HKEY_CLASS ...

  8. 如何在 Ubuntu 中安装 Node.js

    在终端中执行以下命令: sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ...

  9. C#实现新建文件并写入内容

    using System; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(stri ...

  10. 微信小程序的wx-charts插件

    还有就是可以使用一些小程序的插件,比如wx-charts. 先来看一下网上对这个插件的评价: 目前在github上有1804颗星,使用的比较广泛. github地址:https://github.co ...