在研究了一段时间中科院计算所张华平、刘群所开发的ICTCLAS分词系统(Free版)代码后,阅读了大量的相关资料,我开始着手将C++的ICTCLAS分词系统移植到.net平台下,并取得了较好的实验结果。这种移植并不容易,在研究了ICTCLAS分词理论的同时还要阅读C++代码实现,其中遇到了很多困惑、迷茫,也不得不重写了一小部分代码,我将在随后的文章中介绍具体实现。
目前经过调整后的SharpICTCLAS运行效果还算不错。在对博客园一万五千篇文章进行分词测试过程中,向词库中添加了一千三百多个词汇然后进行分词,效果还不错, 分词异常一共发生了15次,其中有9处是因为存在大量日文字符,另外6处是一句话中单词过多,超出了软件限制(200词)。分词效率也比较令人满意(尽管总体还是比较慢),15000篇文章总用时2.5小时,但这不只是分词的时间,还包括了繁体转简体、利用正则表达式去掉HTML符号,统计词频(这需要进行重复词的判别,我使用了AVL树 ,共统计得到16万词汇)、将分词结果写入SQL Server 2005数据库。如果不考虑这些因素的话,感觉应当和C++程序效率差不多,当然这是没有经过严格测试的结论。