中文分词程序分析系列之Smartcn

 

     现在有很多中文分词程序,他们的实现原理么样?分词效果如何?分词速度如何?之间有什么关系?本系列将针对主流的中文分词程序进行逐一分析,并在ITeye的博客(http://zhangywibb.iteye.com/)上原创发布,欢迎大家批评斧正。

    Smartcn为Apache2.0协议的开源中文分词系统,Java语言编写,修改的中科院计算所ICTCLAS分词系统。很早以前看到Lucene上多了一个中文分词的contribution,当时只是简单的扫了一下.class文件的文件名,通过文件名可以看得出又是一个改的ICTCLAS的分词系统。

    Smartcn可以说是ICTCLAS的简化版,去除了词性标注(Part of Speech)模块、去除了人名(包括中国人名和日俄英美等外国人名)、地名识别的模块,分词部分将ICTCLAS的N最短路径算法简化为最短路径算法。

    Smartcn分词的入口类是HHMMSegmenter,HHMMSegmenter这个名字取的非常不好,很容易造成误解。HHMMSegmenter从名字上看,其中的HMM肯定是隐马尔科夫(Hidden Markov Model)的缩写,HHMM应该是层叠(又称层次、多层)隐马尔科夫(Hierarchical Hidden Markov Model)的缩写。但是,事实上,Smartcn采用的并不是隐马模型,更谈不上层次隐马了。

    整个Smartcn只有在BiSegGraph类中计算最短路径的getShortPath()方法时采用了一个动态规划算法。看getShortPath()方法的注释说,采用了Viterbi算法,可是查看计算概率概率的代码可以看得到getShortPath()方法没有用到隐马模型中的状态转移矩阵。

    Smartcn的分词模型比较简单:原子分词、二元分词、求带权值的最短路径。分词效果如何呢?我将会在别的文章中对其进行评测。

    综上所述:Smartcn是ICTCLAS简化后的版本;没有词性标注;没有人名、地名识别;没有采用隐马模型进行分词,而是采用的动态规划计算最短路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值