不知道用ictclas4j的人多不多,该项目地址是http://code.google.com/p/ictclas4j/ 关于ictclas分词系统讨论组地址是http://groups.google.com/group/ictclas
其中在ictclas4j项目的issues中有人提到一个问题“程序分词最后结果会吃掉一些字”,也就是漏字、漏词的问题。
问题地址为http://code.google.com/p/ictclas4j/issues/detail?id=2,但是没有人来回答。
我也碰到这个问题,只能自己看看了。经过对ictclas4j源程序的理解以及与原始c++版本(FreeICTCLAS)的源程序的比对,终于发现了错误所在:PosTagger.java文件中人名识别部分personRecognize方法里面出错了
ictclas4j的代码是
if (sn.getPos() < 4 && unknownDict.getFreq(sn.getWord(), sn.getPos()) < Utility.LITTLE_FREQUENCY)
personName += sn.getWord();
而原始C++版本里面代码为:
if(m_nBestTag[nPos]<4 && personDict.GetFrequency(m_sWords[nPos],m_nBestTag[nPos])<LITTLE_FREQUENCY)
nLittleFreqCount++;//The counter increase
strcat(sPersonName,m_sWords[nPos]);
这两段代码里面personName和sPersonName含义是一样的,这样我们就看到错误在什么地方了。
估计sinboy在写程序的时候没看清。漏掉的nLittleFreqCount变量在ictclas4j里面添不添加都无所谓,对它暂时没什么影响(以后的版本有没有影响就不知道了),所以我们就直接将该if判断句的条件部分注释掉。
另外,看到它的sn.getWord()方法我还有点不放心,毕竟sn.getSrcWrod()取得的才是原始字词(参加SegNode类的注释),所以这个方法也改掉比较好。
最终,我的修改方法是将ictclas4j中PosTagger类的personRecognize方法里面的上段代码直接改为:
personName += sn.getSrcWord();
也就是将该if判断句的条件部分注释掉。
如此再进行测试,ictclas4j就不会发生分词结果“漏字”、“漏词”、“吃掉词”的现象了。
另外好像据sinboy自己曾说过要将ictclas4j升级到1.0的版本,现在是0.9.1版本的,期待中吧
分享到:
相关推荐
ictclas4j java版 for lucene
本代码用java实现了分词功能,包括分词和词性标注,里面有具体的说明文档,包括数据结构的设计,分词步骤,分词系统研究等。
ictclas4j java版实现,可供参考
ictclas4j for lucene 2.4 任何人不得将此用于商业用途,仅限个人学习研究之用.该开源项目遵循Apache License 2.0
sinboy发表的ictclas4j-0.9.1版(最新)相关的字典、源码和开发文档打包
最好的中分分词工具ictclas 最好的中分分词工具ictclas 最好的中分分词工具ictclas
ictclas中科院分词
基于Lucene的中文分词包,ictclas4j的最新发布,已经打包成jar包。
NULL 博文链接:https://summerbell.iteye.com/blog/1354546
总的来说,ictclas4j_3是一个强大的中文处理工具,结合了贝叶斯分类和高效分词算法,为开发者提供了便捷的文本处理手段。无论是进行科研工作还是实际项目开发,都能从中受益。同时,它的开源性质也鼓励了社区的交流...
分词结果是中/w 国/w 科/w 学/w 院/w 计/w 算/w 技/w 术/w 研/w 究/w 所/w 在/w 多/w 年/w 研/w 究/w 基/w 础/w 上/w ,/w 耗/nx 时/nx 一/nx 年/nx 研/nx 制/nx 出/nx 了/nx ICTCLAS/nx解决: 字典没导入成功,/...
NULL 博文链接:https://lionsadness.iteye.com/blog/689910
ictclas进行文本词汇标注,可直接运行 主函数在postag类
java开源分词系统主要功能包括中文分词;词性标注;命名实体识别;...我们先后精心打造五年,内核升级7次,目前已经升级到了ICTCLAS2009 用户词典接口扩展用户可以动态增加、删除用户词典中的词,调节分词的效果
在左边的文本框中输入要分词的中文,单击“分词”按钮,可以在右边生成分词后的文本。... sinboy写的ictclas4j有一个gui函数是空的。为了抛砖引玉,写了一个gui demo,很简单。 写给0.9版本的,0.9.1已经有gui了
ictcasj 中文分词技术 有详细的说明
这个包是Bory.Chan对ictclas4j进行修改,适用于lucene分词的工具包
基于ICTCLAS中科院分词器实现Lucene4.9版本的中文分词功能,新增中英文停用词库,直接导入即可使用。
ICTCLAS2010是基于信息与计算技术的汉语词法分析系统,它在中文自然语言处理领域具有...对于想要深入理解中文自然语言处理的人来说,ICTCLAS2010是一个不可多得的学习资源,可以借此了解词法分析的基本原理和实际操作。