`

paoding, ik, jeasy,ictclas4j 四种切词工具的使用小结

阅读更多

本来是通过表格来写这博客的,但对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里的包

 

1
0
分享到:
评论

相关推荐

    基于Lucene的中文分词器代码paoding,IK,imdict,mmseg4j

    本文将深入探讨基于Lucene的四种中文分词器:Paoding、IK、Imdict和Mmseg4j,它们都是针对Java开发的高效、开源的中文分词工具。 1. Paoding(庖丁)分词器: Paoding是一款高性能的中文分词器,设计目标是提供...

    兼容solr4.10.2的ik-mmseg4j-paoding分词器

    能兼容solr-4.10.2的分词器,大礼包...包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不介绍了.

    paoding 分词

    **中文分词技术详解——以paoding为例** 中文分词是自然语言处理中的基础步骤,对于中文文本的理解和分析至关重要。在Java领域中,paoding(又称“庖丁”)是一个高效、灵活的中文分词库,专为处理大规模中文文本而...

    paoding分词与gate使用

    paoding分词与gate使用,给公司做报告时准备的ppt

    Lucene建立索引jar包和Paoding分词jar包

    四、整合Lucene与Paoding 整合Lucene与Paoding的过程主要包括以下步骤: 1. 引入依赖:在项目中添加lucene-core-3.0.0.jar和paoding-analysis.jar作为依赖。 2. 创建Analyzer:使用Paoding提供的Analyzer替换Lucene...

    paoding.rar_paoding_paoding analyzer.

    总之,"paoding" 提供了一种高效且实用的中文分词解决方案,无论对于初学者还是专业人士,都是进行中文文本处理的有力工具。通过深入理解并运用 "paoding analyzer",我们可以更好地挖掘和利用中文文本中的信息。

    中文搜索分词lucene包+paoding包

    Lucene和Paoding是两个广泛使用的开源工具,它们专门用于实现高效、准确的中文分词。 Lucene是一个强大的全文检索库,由Apache软件基金会开发。它提供了索引和搜索文本的能力,使得开发者能够快速构建自己的搜索...

    Paoding中文分词

    ”是对该工具的评价,意味着它不仅运行速度快,而且具备广泛的词库,能够准确地识别和处理各种词汇,适用于多种场景。 **标签解析** 1. “庖丁”:这是对中国古代厨师“庖丁”的引用,此处代表这个分词工具,暗示...

    paoding-rose-1.0.1.jar

    1. **Log4j**: Log4j是Apache的一个开源项目,是一个广泛使用的Java日志框架。它提供了一种灵活的日志记录方式,允许开发者根据需要调整日志级别,控制日志输出的位置、格式,甚至可以将日志记录到数据库中。在...

    paoding+lucene实现全文检索功能简单实例

    搜索器同样使用Paoding进行预处理,将用户的输入转换为分词后的关键词,然后使用Lucene的QueryParser或自定义查询构造器生成查询对象。查询执行后,Lucene会返回匹配的文档,你可以进一步处理这些结果,例如进行高亮...

    人人网 paoding 旗下 rose 项目实现服务器端 portal

    5. **工具支持**:Rose项目可能包含了各种辅助开发工具,如构建工具、调试工具、性能分析工具等,这些工具可以帮助开发者提高效率,优化代码质量。 6. **测试与rose_test**:压缩包中的“rose_test”可能包含了项目...

    paoding-analysis.jar

    paoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jarpaoding-analysis.jar

    lucene Demo(paoding)

    【Lucene Demo (Paoding)】是一个展示如何在Java环境中使用Apache Lucene库进行全文搜索引擎构建的示例项目。Lucene是开源的全文检索引擎库,它提供了强大的文本搜索功能,而Paoding则是针对中文处理的插件,优化了...

    spring-boot-paoding-rose.zip

    Paoding-Rose提供了丰富的API和工具,可以方便地集成到Spring Boot的生态中。例如,通过P6Spy监控数据库访问性能,或者使用Paoding-Rose的动态数据源切换功能,以应对复杂多变的业务场景。 总结来说,Spring Boot...

    lucene3.0学习笔记(三)与paoding整合

    4. **查询处理**: 在查询阶段,同样需要使用PaodingAnalyzer。创建`QueryParser`时,设置Analyzer为PaodingAnalyzer,这样在解析用户输入的查询字符串时,也会经过Paoding的分词处理。 5. **优化与扩展**: 结合...

    paoding中文分词

    **中文分词与Paoding简介** 中文分词是自然语言处理(NLP)中的关键步骤,它是将连续的汉字序列切...对于Java开发者而言,熟悉并掌握Paoding的使用,不仅可以提升项目效率,也是深入理解NLP和中文处理技术的良好途径。

    paoding的maven工程及jar包

    pom中定义了依赖包org.apache.lucene的lucene-analyzers2.2.0,commons-logging的commons-logging1.0.4,target中的jar包即是编译后的文件。可以自己动手打包paoding.jar

    适合lucene3.0用的paoding-analysis的jar包

    4. 对于查询,同样使用PaodingAnalyzer实例化QueryParser。 5. 运行应用程序,确保搜索结果符合预期。 总的来说,Paoding-Analysis是Lucene3.0处理中文搜索的得力助手,而提供的与Spring兼容的jar包则消除了集成...

    paoding rose 一个完整的MVC的demo

    标题中的"paoding rose 一个完整的MVC的demo"指出我们要讨论的是Paoding Rose,这是一个基于MVC(Model-View-Controller)设计模式的Web开发框架。"完整"意味着它提供了从路由到视图渲染的全套解决方案。而"demo"则...

    paoding-analysis-2.0.4.zip_ Paoding Analysis

    Paoding中文分词是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。 Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词...

Global site tag (gtag.js) - Google Analytics