本来是通过表格来写这博客的,但对javaeye的表格编辑器实在是感到抱歉,还是通过纯文本来写好了...
最近因项目需要,对尝试了Paoding, Ik, Jeasy, Ictclas4j四种切词工具,现把使用经验小结一下:
测试的字符串是:“在传统意义上的几何学是研究图形的形状大小等性质”
1.Paoding
版本: 2.0.4
实现类: PaodingAnalyzer
依赖包: lucene 2.4
使用方法: 主要通过lucene的接口实现, Analyser#tokenStream方法
切词效果: 传统/意义/意义上/上的/几何/几何学/研究/图形/形的/形状/大/大小/等/性质
备注: paoding的切词会漏字(食字),上面的结果就食了 ‘在’ 字;
总会进行最小粒度切分,只要在词库里有的词组,都会出现。如:之前-->前/之前
2.IK
版本: 3.2.3
实现类:IKSegmentation
依赖包:无,可以不依赖于Lucene直接应用
使用方法:
IKSegmentation ik = new IKSegmentation(new StringReader(str1), false);// 最少粒度切分
Lexeme le = null;
while ((le = ik.next()) != null) {
System.out.print(le.getLexemeText() + "/");
}
切词效果:
IK(最小粒度):在/传统/意义上/意义/的/几何学/几何/几/是/研究/图形/的/形状/大小/等/性质/
IK(最大粒度):在/传统/意义上/的/几何学/几/是/研究/图形/的/形状/大小/等/性质/
备注:IK不会食字,
在构造函数的第二个参数可以设定最小粒度和最大粒度,
不依赖于Lucene
但可以看到最大粒度也仍然会有重字的情况,几何学-->几何学/几,分成了两个词。
3.Jeasy/je-analysis-1.5.1.jar/ MMAnalyzer
版本:1.5.1
实现类:MMAnalyzer
依赖包:依赖于Lucene2.4~2.9版本的包
使用方法:
很简单--> MMAnalyzer mm = new MMAnalyzer(); String result = mm.segment(str,splitor);
splitor是切词后各词组的分隔符,这里使用'/'
切词效果:传统/意义上/几何学/研究/图形/形状/大小/性质/
备注:
这个不开源的,不过感觉效果比其它都好,默认是正向最大匹配的
会食字,但不会有重字
本人觉得Jeasy占的内存比较大(因为我开始是paoding,Ik放一个类里同时进行测试的,当我加上Je也一起测试时,eclipse下总是报
outOfMemory的错误,我把eclipse的vm argument里调整了“-Xms256m -Xmx1024m”,就可以了)
4.Ictclas4j
版本:0.9.1
实现类:SegTag
依赖包:无,不依赖于Lucene
使用方法:
SegTag st = new SegTag(1);
SegResult sr = st.split(str);
System.out.println(sr.getFinalResult());
切词效果:在/p 传统/n 意义/n 上/f 的/u 几何学/n 是/a 研究/n 图形/n 的/b 形状/n 大小/a 等/a 性质/n
备注:
这个项目是中科院做的,带词性分析的,原来是c++写的,有牛人改写成java的
在官网上有几个版本,我这个是从google Code上下载的,把项目打包后,还要把项目里的Data文件夹放到应用的项目中才可以用。Data文件夹是保存字典的
一个很大的坏处是:在eclipse里的java文件一定要保存为gbk编码才可以正常运行,utf-8是不能运行的
不会食字,没有重字
小结:
因项目需要,经多次比较,个人使用MMAnalyzer,感觉它比较智能,切的词比较符合常规。但会食字,我感觉比较不好,因为我在另外一个应用中,我想全部字都保留。因为切的语句都不长,效率方面没比较。
P.S. 这博客过了段时间才写的,其中有些依赖包记不清了,好像有几个要依赖于apache的commons里的包
分享到:
相关推荐
本文将深入探讨基于Lucene的四种中文分词器:Paoding、IK、Imdict和Mmseg4j,它们都是针对Java开发的高效、开源的中文分词工具。 1. Paoding(庖丁)分词器: Paoding是一款高性能的中文分词器,设计目标是提供...
能兼容solr-4.10.2的分词器,大礼包...包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不介绍了.
**中文分词技术详解——以paoding为例** 中文分词是自然语言处理中的基础步骤,对于中文文本的理解和分析至关重要。在Java领域中,paoding(又称“庖丁”)是一个高效、灵活的中文分词库,专为处理大规模中文文本而...
paoding分词与gate使用,给公司做报告时准备的ppt
四、整合Lucene与Paoding 整合Lucene与Paoding的过程主要包括以下步骤: 1. 引入依赖:在项目中添加lucene-core-3.0.0.jar和paoding-analysis.jar作为依赖。 2. 创建Analyzer:使用Paoding提供的Analyzer替换Lucene...
总之,"paoding" 提供了一种高效且实用的中文分词解决方案,无论对于初学者还是专业人士,都是进行中文文本处理的有力工具。通过深入理解并运用 "paoding analyzer",我们可以更好地挖掘和利用中文文本中的信息。
Lucene和Paoding是两个广泛使用的开源工具,它们专门用于实现高效、准确的中文分词。 Lucene是一个强大的全文检索库,由Apache软件基金会开发。它提供了索引和搜索文本的能力,使得开发者能够快速构建自己的搜索...
”是对该工具的评价,意味着它不仅运行速度快,而且具备广泛的词库,能够准确地识别和处理各种词汇,适用于多种场景。 **标签解析** 1. “庖丁”:这是对中国古代厨师“庖丁”的引用,此处代表这个分词工具,暗示...
1. **Log4j**: Log4j是Apache的一个开源项目,是一个广泛使用的Java日志框架。它提供了一种灵活的日志记录方式,允许开发者根据需要调整日志级别,控制日志输出的位置、格式,甚至可以将日志记录到数据库中。在...
搜索器同样使用Paoding进行预处理,将用户的输入转换为分词后的关键词,然后使用Lucene的QueryParser或自定义查询构造器生成查询对象。查询执行后,Lucene会返回匹配的文档,你可以进一步处理这些结果,例如进行高亮...
5. **工具支持**:Rose项目可能包含了各种辅助开发工具,如构建工具、调试工具、性能分析工具等,这些工具可以帮助开发者提高效率,优化代码质量。 6. **测试与rose_test**:压缩包中的“rose_test”可能包含了项目...
paoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jar
【Lucene Demo (Paoding)】是一个展示如何在Java环境中使用Apache Lucene库进行全文搜索引擎构建的示例项目。Lucene是开源的全文检索引擎库,它提供了强大的文本搜索功能,而Paoding则是针对中文处理的插件,优化了...
Paoding-Rose提供了丰富的API和工具,可以方便地集成到Spring Boot的生态中。例如,通过P6Spy监控数据库访问性能,或者使用Paoding-Rose的动态数据源切换功能,以应对复杂多变的业务场景。 总结来说,Spring Boot...
4. **查询处理**: 在查询阶段,同样需要使用PaodingAnalyzer。创建`QueryParser`时,设置Analyzer为PaodingAnalyzer,这样在解析用户输入的查询字符串时,也会经过Paoding的分词处理。 5. **优化与扩展**: 结合...
**中文分词与Paoding简介** 中文分词是自然语言处理(NLP)中的关键步骤,它是将连续的汉字序列切...对于Java开发者而言,熟悉并掌握Paoding的使用,不仅可以提升项目效率,也是深入理解NLP和中文处理技术的良好途径。
pom中定义了依赖包org.apache.lucene的lucene-analyzers2.2.0,commons-logging的commons-logging1.0.4,target中的jar包即是编译后的文件。可以自己动手打包paoding.jar
4. 对于查询,同样使用PaodingAnalyzer实例化QueryParser。 5. 运行应用程序,确保搜索结果符合预期。 总的来说,Paoding-Analysis是Lucene3.0处理中文搜索的得力助手,而提供的与Spring兼容的jar包则消除了集成...
标题中的"paoding rose 一个完整的MVC的demo"指出我们要讨论的是Paoding Rose,这是一个基于MVC(Model-View-Controller)设计模式的Web开发框架。"完整"意味着它提供了从路由到视图渲染的全套解决方案。而"demo"则...
Paoding中文分词是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。 Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词...