首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

汉语言分词程序分析系列之Smartcn

2012-07-16 
中文分词程序分析系列之Smartcn?? ? ?现在有很多中文分词程序,他们的实现原理么样?分词效果如何?分词速度

中文分词程序分析系列之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简化后的版本;没有词性标注;没有人名、地名识别;没有采用隐马模型进行分词,而是采用的动态规划计算最短路径。

热点排行