码农场

放牧代码和思想
专注自然语言处理、机器学习算法
    Why join the Navy if you can be a pirate?

最新发布 第4页

序列标注模型算法比较
机器学习

序列标注模型算法比较

hankcs阅读(584)评论(6)

偶然浏览到一篇挺有实际参考价值的论文Nguyen and Guo(2007)。该文比较了一些模型和算法在词性标注和OCR任务上的性能,包括HMM、CRF、AP、Structured SVM、M3N、SEARN算法以及SLE算法,对算法选型很...

基于结构化平均感知机的分词器Java实现
中文分词

基于结构化平均感知机的分词器Java实现

hankcs阅读(561)评论(0)

最近高产似母猪,写了个基于AP的中文分词器,在Bakeoff-05的MSR语料上F值有96.11%。最重要的是,只训练了5个迭代;包含语料加载等IO操作在内,整个训练一共才花费23秒。应用裁剪算法去掉模型中80%的特征后,F值才下降不到0....

HanLP极致简繁转换
自然语言处理

HanLP极致简繁转换

hankcs阅读(386)评论(0)

谈起简繁转换,许多人以为是小意思,按字转换就行了。事实上,汉语历史悠久,地域复杂,发展至今在字符级别存在“一简对多繁”和“一繁对多简”,在词语级别上存在“简繁分歧词”,在港澳台等地则存在“字词习惯不同”的情况。为此,HanLP新增了“简体”...

CRF++代码分析
机器学习

CRF++代码分析

hankcs阅读(1173)评论(8)

本文按照调用顺序抽丝剥茧地分析了CRF++的代码,详细注释了主要函数,并指出了代码与理论公式的对应关系。内容包括拟牛顿法的目标函数、梯度、L2正则化、L-BFGS优化、概率图构建、前向后向算法、维特比算法等。 背景知识请参考《条件随机场》。...

条件随机场
机器学习

条件随机场

hankcs阅读(819)评论(0)

本文是《统计学习方法》第11章的笔记,在课本的基础上加入了自己的注释和理解。作为CRF的入门读物,著名的几篇英文教程难度稍高,还是李航博士的《方法》比较适合初学者。其拟牛顿法讲解可以直接与CRF++的代码对应,实为难得。我还单独写了篇《CR...

计算指数函数的和的对数
机器学习

计算指数函数的和的对数

hankcs阅读(373)评论(0)

译自哈佛大学《Computing Log-Sum-Exp》。在许多ML库中,经常看到这类函数,如scipy中的misc.logsumexp、CRF++中的CRFPP::logsumexp,其意义何在? 这篇文章旨在讲解这个必学,却没有任何M...

数值优化:理解L-BFGS算法
机器学习

数值优化:理解L-BFGS算法

hankcs阅读(486)评论(0)

译自《Numerical Optimization: Understanding L-BFGS》,本来只想作为学习CRF的补充材料,读完后发现收获很多,把许多以前零散的知识点都串起来了。对我而言,的确比零散地看论文要轻松得多。原文并没有太多...

隐马尔可夫模型
机器学习

隐马尔可夫模型

hankcs阅读(703)评论(1)

本文是《统计学习方法》第10章的笔记,用一段167行的Python代码实现了隐马模型观测序列的生成、前向后向算法、Baum-Welch无监督训练、维特比算法。公式与代码相互对照,循序渐进。 HMM算是个特别常见的模型,早在我没有挖ML这个坑...

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机