我开发的中文分词程序,开源发布

功能介绍:请参看花2周时间开发的中文分词终于有点小样了 (有些功能没体现出来)
本中文分词是基于匹配模式开发的中文分词程序,为本人练手作品。也可以直接使用。但不建议。因为整体架构有一些基础性问题。不过做为开发中文分词的参考,相信还是有一定价值的。
最近吕震宇老师发布了ICTCLAS的C#版SharpICTCLAS。很优秀的中文分词程序。我的这个和它根本不是一个级别的。不过在自己的应用中,估计还是不能直接拿SharpICTCLAS就用。因为现在中文分词不仅仅关注准确性了,而更多考虑应用的问题了,比如(以下提的例子仅仅为交流而已,希望你在交流的范围进行思考。不存在褒贬什么的含义):
1,全角识别和处理问题
例子:SUN开放了Java源代码
分析:如果能识别SUN有全角字符,而且也正确识别SUN为一个字符,但是从搜索的角度来看。似乎需要把所有形式处理为一种形式sun,当然这也可以看成是属于Lucene的Analyzer的问题

2,英文识别和处理的问题
例子:U.S.A是美国的的英文简称
分析:在SharpICTCLAS中会把U.S.A分成6个字符。估计SharpICTCLAS的英文处理还是比较弱,毕竟是免费版的。

3,专业术语和特殊字符识别和处理问题
比如asp.net是分成asp/./net还是分成asp.net好?test@test.com是做为一个词还是分开等等。

中文的例子就不举了。SharpICTCLAS对纯中文的分词是非常优秀的。
其实我提出上面的问题,是想表达一个观点,没有最好的中文分词。只有最符合应用的中文分词,所以最好的中文分词应该是你自己根据需求定制开发的。希望我的这个中文分词程序(虽然还是比较烂的)能够为你提供一些参考。那怕是一点点。
架构(类关系图)

中文分词v1类关系图.gif

download source code
posted @ 2007-03-19 06:14 kwklover 阅读(...) 评论(...) 编辑 收藏