FreeICTCLAS中文分词系统从2006年3月就开始接触
,之后通过研读相关论文和源代码,写了一系列的学习笔记
,给很多同样的中文分词爱好者提供了一个可参考的文档资料
。但因为工作及其它原因(嘿嘿,说白就了就是比较偷懒
,没有坚持下去),把该项目做成一个java版的原始想法一度中断
。之后,也曾多次尝试重新拾起,完成我的一个心愿
,但复杂的工作都让我半途而费。
4月份的时候,一个爱好才MSN上问我相关问题
,又激起了我的原始想法,同时看到吕震宇老师只用了半个月的时间就
完成了C#版本的工作,并且写了完成的系列文章,又大大刺激我的神
经。想想我的系列文章只到半道,ictclas4j的程序也是半拉
子工程,真是惭愧之极。于是下定决定,一定要把这个项目完成
,给自己也给关心ictclas的朋友一个交待。
经过三个星期的不懈努力,到现在为止,基本上完整的实现了原Fre
eICTCLAS所实现的功能。原VC++实现的程序比我想象的更
复杂,中间涉及大量的临时性的数据结构和大量的全局变量
,搞的我非常头大,好几次都有放弃的想法。不过谢天谢地
,我这次终于坚持下来了。从java程序的角度从出
,我对原来的数据结构做了大量调整和优化,去掉了很多不必要的中间
变量。经过优化后,在整个分词过后中只用到两个对象:Atom
、SegNode,原子和分词结点,整个分词过程就是对SegNo
de的不断调整和改进,最终得到分词结果。
因为到现在为止,我只是做了一些简单的测试,可能还有很多的BUG
在里面(对标点符号的处理就是一问题),并且分词的速度还远远达不
到我的要求,程序还有很多改进的地方,所以暂时源代码还不会放上来
,但我想最迟一个星期之内,我可以上传到论坛供大家测试。同时
,我已在Google Code上申请了ictclas4j的开源项目,期望有兴趣的朋友
加入进来共同改进。
再次感谢张华平、刘群老师,你们的杰作ICTCLAS分词系统给国内的自然语言研究提供了一个很好的入门工具。也非常感谢吕震宇、DanceFire精辟入理的相关分析
文章!
相关参考:
ICTCLAS分词系统论坛组:http://groups.google.com/group/ictclas
ICTCLAS for java研究,sinboy的BLOG:http://blog.csdn.net/sinboy/category/207165.aspx
ICTCLAS for C#研究,吕震宇的BLOG:http://www.cnblogs.com/zhenyulu/category/85598.html
DanceFire的专栏:http://blog.csdn.net/DanceFire/category/294373.aspx
ICTCLAS的老家:http://www.i3s.ac.cn/index.htm
ICTCLA4J开源项目:http://code.google.com/p/ictclas4j/