下载ik最新版本:
IK Analyer 2012-FF hotfix 1 完整分发包
这个版本是支持lucene4的.其主页为:https://code.google.com/p/ik-analyzer/
下载ansj最新版本:
ansj_seg
下载mmesg4j最新版本
https://code.google.com/p/mmseg4j/选择其中mmseg4j-1.9.1.v20130120-SNAPSHOT.zip 版本
然后建立一个web project,把相应的包导入,具体细节不用再详述。
建立一个测试类,贴出其中关键代码:
使用ik进行分词:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public String ikAnalyzer(String str) { Reader input = new StringReader(str); // 智能分词关闭(对分词的精度影响很大) IKSegmenter iks = new IKSegmenter(input, true); Lexeme lexeme = null; StringBuilder sb = new StringBuilder(); try { while ((lexeme = iks.next()) != null) { sb.append(lexeme.getLexemeText()).append("|"); } } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } |
使用ansj进行分词
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public String ansjAnalyzer(String str) { List<Term> terms = NlpAnalysis.paser(str); new NatureRecognition(terms).recognition(); StringBuilder sb = new StringBuilder(); for (Term term : terms) { if (!" ".equals(term.getName()) && !" ".equals(term.getName()) && term.getName().trim().replaceAll("[\\pP\\pM\\pS]", "").length() > 1) { sb.append(term.getName()).append("|"); } } return sb.toString(); } |
使用ansj分词找出词性为名词的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public String ansjAnalyzerNature(String str) { List<Term> terms = NlpAnalysis.paser(str); new NatureRecognition(terms).recognition(); StringBuilder sb = new StringBuilder(); System.out.println(terms.toString()); // 词性过滤 Nature nature; for (Term term : terms) { nature = term.getNatrue(); if (nature.natureStr.subSequence(0, 1).equals("n") || nature.natureStr.subSequence(0, 1).equals("h")) { if (!" ".equals(term.getName()) && !" ".equals(term.getName()) && term.getName().trim().replaceAll("[\\pP\\pM\\pS]", "").length() > 1) { sb.append(term.getName()).append("|"); } } } return sb.toString(); } |
使用mmseg4j进行分词:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public String mmseg4jAnalyzer(String str)throws IOException{ Reader input = new StringReader(str); return segWords(input, "|"); } public String segWords(Reader input, String wordSpilt) throws IOException { StringBuilder sb = new StringBuilder(); Seg seg = getSeg(); //取得不同的分词具体算法 MMSeg mmSeg = new MMSeg(input, seg); Word word = null; boolean first = true; while((word=mmSeg.next())!=null) { if(!first) { sb.append(wordSpilt); } String w = word.getString(); sb.append(w); first = false; } return sb.toString(); } protected Seg getSeg() { return new ComplexSeg(Dictionary.getInstance()); } |
输入的文章:
官员揭公车使用乱象:不单是私用 普遍“家用”
测试结果为:
再输入别的文章:
北京市教委:非京籍考生入美籍即可高考不属实”
测试结果为:
通过输入别的文章发现,速度基本上差不多,分词效果也还差不多。只不过ansj提供了分析词性的功能。算法比较复杂。
个别词有的词未认识出来,是由于词库的原因。
总结
在实际应用中,根据个人的以上项目熟悉程度,随便选择以上三种分词算法的任意一种,其实速度和效果都差不多。重要的是词库。根据业务的需要,整理出相应的词库,这会对分词效果有比较大的提升。
如果搞源码研究,个人推荐ik分词和mmseg4j分词,这两个算法也比较简单,可以比较快的吃透。
http://www.chepoo.com/ik-ansj-mmseg4j-segmentation-performance-comparison.html
相关推荐
本话题将深入探讨四种常用的Java分词工具:word分词器、ansj分词器、mmseg4j分词器以及ik-analyzer,以及它们在实际应用中的效果评估。 首先,ansj分词器是由李弄潮开发的一款开源分词工具,它具有强大的词典支持和...
在 Solr 6.1 版本中,IK+MMSEG 分词器的整合意味着用户可以在享受 IK Analyzer 高效分词性能的同时,利用 MMSEG 的复杂词汇处理能力。这种组合可以处理各种复杂的中文文本,包括网络语言、专业术语等,对于提升搜索...
能兼容solr-4.10.2的分词器,大礼包...包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不介绍了.
lucene-solr-4.7所有Jar包 tika包 IK包 mmseg4j包 包括索引、高亮、IK分词及MMSEG分词 其中MMSEG中的BUG: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or ...
提到的两个分词器,mmseg4j 和 IKAnalyzer,都是为中文处理设计的。 1. **mmseg4j** 是一款由 Java 实现的中文分词库,它采用了 MaxMatch(最大匹配)算法。mmseg4j 提供了多种分词模式,如简短模式、精确模式、全...
在2.3.1版本中,它已经集成了两种常用的中文分词器:IK分词器和Ansj分词器,以及Head插件,这为中文文档的索引和搜索提供了更丰富的功能。 IK分词器(Intelligent Chinese Analyzer for Elasticsearch)是专为...
本文将深入探讨基于Lucene的四种中文分词器:Paoding、IK、Imdict和Mmseg4j,它们都是针对Java开发的高效、开源的中文分词工具。 1. Paoding(庖丁)分词器: Paoding是一款高性能的中文分词器,设计目标是提供...
本文将深入探讨"mlcsseg"项目,它是一个针对Solr的开源分词器解决方案,其中包括了IK分词器和ANSJ分词器,以及各种过滤器和动态加载词库功能。以下是对这些知识点的详细说明: 1. **Solr分词器**:Solr是Apache ...
IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载...
几种分词工具都试过,对于中文来说的的话个人觉得IKAnalyzer 最好用,不同版本的IKAnalyzer jar包,包括IKAnalyzer6.5.0、IKAnalyzer5.0、IKAnalyzer2012,IKAnalyzer6.5.0可完美兼容Lucene6+,IKAnalyzer5.0兼容...
从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 从 3.0 版本开始,IK 发展为面向 Java 的公用分词...
ik中文分词词库35万中文分词词库(含电商)
4. 配置字段类型,指定使用ik分词器。例如,创建一个用于存储中文内容的字段,并指定其类型为使用ik分词的text_ik类型。 5. 重新启动Solr服务,使其应用新的配置。 6. 创建索引时,Solr会使用ik-analyzer进行分词,...
IK分词器(Intelligent Chinese Analyzer for Elasticsearch)是专门为Elasticsearch设计的一款高性能中文分词组件。它支持多种分词模式,包括精确模式、全模式、最短路径模式、关键词模式等,能够满足不同场景下的...
总结来说,`elasticsearch-analysis-ik 7.17.16`为Elasticsearch提供了强大的中文分词能力,通过自定义词典、多种分词模式以及性能优化,确保了在处理中文文本时的高效和精准。在实际的文本检索应用中,合理配置和...
4. **多线程支持**:为了提升效率,IK分词器支持多线程处理,可以在高并发环境下保持高性能。 5. **配置灵活性**:用户可以通过修改配置文件调整分词策略,如设置最大深度、是否开启同义词扩展等。 6. **与Elastic...
在中文处理方面,IK (Intelligent Chinese) 分词器是 Elasticsearch 的一个非常重要的插件,尤其对于中文文本的索引和搜索性能提升起到了关键作用。IK 分词器针对中文的特性进行了优化,能够有效地对中文文本进行...
**Elasticsearch 7.6.2 中文分词器详解** Elasticsearch 是一个流行的开源全文搜索引擎,它提供了一种高效、灵活的方式来存储、搜索和分析...正确配置和使用IK分词器,对于提升Elasticsearch的中文检索性能至关重要。
**Elasticsearch 7.17.4 版本中的中文 IK 分词器** Elasticsearch 是一个流行的、开源的全文搜索引擎,它基于 Lucene 库,并提供了分布式、实时、可扩展的搜索和分析功能。在处理中文文本时,一个合适的分词器是至...
1. **高性能**:IK分词器采用高效的分词算法,能快速处理大量文本数据。 2. **智能切词**:IK分词器支持精确模式、全模式、最短路径模式等多种分词策略,可以根据实际需求进行选择。 3. **动态扩展**:用户可以...