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

2014年03月的文章

第2页
双数组Trie树(DoubleArrayTrie)Java实现
Java

双数组Trie树(DoubleArrayTrie)Java实现

hankcs阅读(23581)评论(56)

双数组Trie树(DoubleArrayTrie)是一种空间复杂度低的Trie树,应用于字符区间大的语言(如中文、日文等)分词领域。 双数组Trie (Double-Array Trie)结构由日本人JUN-ICHI AOE于1989年提出...

判断双字节字符
C++

判断双字节字符

hankcs阅读(3868)评论(0)

C/C++的基本功了,在看ICTCLAS分词源码的时候偶然看到,写段例子验证一下。 由于ANSI字符有128个, 所以, ANSI字符的bit最高位为0, 当bit最高位为1时, 就表示是个双字节字符了。而char(也即是signed ch...

Trie树分词
Java

Trie树分词

hankcs阅读(9557)评论(21)

最近在看Ansj中文分词的源码,以前没有涉足过这个领域,所以需要做一些笔记。 2015年4月13日更新 经过研究与试验,我觉得trie树分词是一种很落后的技术。 最完美的分词、停用词过滤的技术是Aho Corasick自动机结合Double...

AOJ 2170: Marked Ancestor 题解 《挑战程序设计竞赛》
C++

AOJ 2170: Marked Ancestor 题解 《挑战程序设计竞赛》

hankcs阅读(3073)评论(3)

AOJ 2170: Marked Ancestor 染色祖先:距离某节点最近的染色节点称为祖先,求染色过程中各节点祖先。 2.4 加工并储存数据的数据结构 并查集 稍有些复杂,需要bfs和两棵树。一棵树用来维护并查集,一棵树用来保存原来的树...

Lucene 同义词
Java

Lucene 同义词

hankcs阅读(6406)评论(4)

在Lucene4.6中通过SynonymFilterFactory实现中文同义词非常方便,只需几行代码和一个同义词词典。这个词典还能在Lucene中实现一定程度的拼写纠错,提升搜索体验。在下面这个例子中我们从磁盘载入一个同义词词典,并且对“...

我的作品

HanLP自然语言处理包《自然语言处理入门》