放牧代码和思想
专注自然语言处理、机器学习算法
    恕不接待索要源码语料者、索求技术方案者、以及不Google的懒人。

中文分词

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

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

hankcs阅读(933)评论(0)

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

全文检索Solr集成HanLP中文分词

全文检索Solr集成HanLP中文分词

hankcs阅读(2722)

以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在Github上,欢迎改进。 HanLP中...

DoubleArrayTrie和AhoCorasickDoubleArrayTrie的实用性对比

DoubleArrayTrie和AhoCorasickDoubleArrayTrie的实用性对比

hankcs阅读(2137)评论(8)

前段时间开源了基于双数组Trie树的Aho Corasick自动机,当时认为在中文分词中,ACDAT应该能秒杀DAT。今天优化了DAT的多模式匹配后,竟然得出了意外的结果。 当初的DAT实现中,为了支持多模式匹配,我写了一个Searcher...

CRF分词的纯Java实现

CRF分词的纯Java实现

hankcs阅读(8084)评论(17)

与基于隐马尔可夫模型的最短路径分词、N-最短路径分词相比,基于条件随机场(CRF)的分词对未登录词有更好的支持。本文(HanLP)使用纯Java实现CRF模型的读取与维特比后向解码,内部特征函数采用 双数组Trie树(Double...

词性标注

词性标注

hankcs阅读(7849)评论(39)

词性标注(Part-of-Speech tagging 或POS tagging),又称词类标注或者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。在汉语中,词性标注比较简单...

ICTCLAS中的HMM人名识别

ICTCLAS中的HMM人名识别

hankcs阅读(4952)评论(1)

本文主要从代码的角度分析标注过程中的细节,理论谁都能说,但没几人能做出一个实用高效的系统。在得出粗分结果之后,需要对其进行人名、翻译人名、地名识别,然后重新KSP得出最终结果,在ICTCLAS中,这些标注都是通过HMM模型实现的。 人名识别...

N最短路径的Java实现与分词应用

N最短路径的Java实现与分词应用

hankcs阅读(4500)评论(17)

前言 今天连查带抄地用Java实现了N最短路径,马上要用到自己的分词器里了。 N最短路径其实就是K最短路径(KSP)的变种,KSP指的是DAG中单源路径中前K条最短的路径。求解KSP的算法有删除算法、改进的删除算法(MS Algorithm...

Bigram分词中的等效词串

Bigram分词中的等效词串

hankcs阅读(2816)评论(0)

Bigram语言模型中,分析的是连续两个词的组合概率。问题来了,“1人”和“2人”该怎么操作呢?这两个句子会被当成两种组合“1@人”和“2@人”,如果分别统计共现频次,会导致一个严重的问题,那就是对数词限定太死了,只在1人和2人的情况下能够...

词图的生成

词图的生成

hankcs阅读(4256)评论(17)

当分词系统有一份词典的时候,就可以生成词图了。所谓词图,指的是句子中所有词可能构成的图。如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B)。一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图。 词图的...

我的开源项目

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