2020年寒假假期总结0210

  java中文分词工具

  1.Word分词工具

  api文档:http://apdplat.org/word/apidocs/1.3/

  依赖:

        <dependency>
            <groupId>org.apdplat</groupId>
            <artifactId>word</artifactId>
            <version>1.3</version>
        </dependency>

  使用情况:自己使用的第一个分词工具,上手比较容易,但是已经不再维护,最新的版本是2015的。提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词频统计、词性标注、同义标注、反义标注、拼音标注等功能。提供了10种分词算法,还提供了10种文本相似度算法,同时还无缝和Lucene、Solr、ElasticSearch、Luke集成。注意:word1.3需要JDK1.8。

  2.IKAnalyzer分词工具

  api文档没有找到。

  依赖:

        <dependency>
            <groupId>com.janeluo</groupId>
            <artifactId>ikanalyzer</artifactId>
            <version>2012_u6</version>
        </dependency>

  使用情况:功能挺齐全的,但是我个人原因,添加自定义的词典始终失败,最后没有选用,网上成功案列挺多,但是我始终没成功。以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。

  3.Ansj分词工具

  api文档:http://nlpchina.github.io/ansj_seg/

  依赖:(最好还需要下载一个jar包配合使用,否则可能会出现找不到jar的情况,下载地址:https://repo1.maven.org/maven2/org/nlpcn/nlp-lang/1.7.8/

        <dependency>
            <groupId>org.ansj</groupId>
            <artifactId>ansj_seg</artifactId>
            <classifier>min</classifier> <!--如果是需要nlp方式分词,就去掉这个标签-->
            <version>1.4</version>
        </dependency>

  使用感受:功能较为完善,在添加停用词表的功能有些麻烦,只能单独添加停用词,需要自己写代码将txt文档导入到停用词中。基于google语义模型+条件随机场模型的中文分词的java实现.分词速度达到每秒钟大约200万字左右(mac air下测试),准确率能达到96%以上目前实现了.中文分词. 中文姓名识别 . 用户自定义词典可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目.

  4.jieba分词工具(结巴分词)

  api文档:没有找到。github:https://github.com/huaban/jieba-analysis

  依赖:

        <dependency>
            <groupId>com.huaban</groupId>
            <artifactId>jieba-analysis</artifactId>
            <version>1.0.2</version>
        </dependency>

  使用感受:也还可以,但是java版的没有详细文档介绍功能。支持多种分词模式,全角统一转成半角,用户词典功能,conf 目录有整理的搜狗细胞词库,因为性能原因,最新的快照版本去除词性标注,也希望有更好的 Pull Request 可以提供该功能。

原文地址:https://www.cnblogs.com/heiyang/p/12297506.html