下载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
相关推荐
ansj、mmseg4j和ik-analyzer的评估程序 博文链接:https://yangshangchuan.iteye.com/blog/2056537
能兼容solr-4.10.2的分词器,大礼包...包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不介绍了.
ik+mmseg分词器,适用于solr6.1版本,内附说明 亲测可用!!!
lucene-solr-4.7所有Jar包 tika包 IK包 mmseg4j包 包括索引、高亮、IK分词及MMSEG分词 其中MMSEG中的BUG: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or ...
elasticsearch-2.3.1 集成了 ik分词 ansj分词 head
solr 分词器 mmseg4j IKAnalyzer
基于Lucene的中文分词器代码paoding,IK,imdict,mmseg4j。测试可运行,输入一个段落,每个分词器的分词结果不同,可得到结果和所需时间。
几种分词工具都试过,对于中文来说的的话个人觉得IKAnalyzer 最好用,不同版本的IKAnalyzer jar包,包括IKAnalyzer6.5.0、IKAnalyzer5.0、IKAnalyzer2012,IKAnalyzer6.5.0可完美兼容Lucene6+,IKAnalyzer5.0兼容...
mlcsseg, solr分词器大补贴, 包括IK ANSJ、过滤器,动态加载词库
ik中文分词词库35万中文分词词库(含电商)
从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 从 3.0 版本开始,IK 发展为面向 Java 的公用分词...
1、lucene-core-3.6.0.jar 2、IKAnalyzer2012.jar(主jar包) 3、IKAnalyzer.cfg.xml(分词器扩展配置文件) 4、stopword.dic(停止词典) 5、IkSegmentation.java(样例类)
IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。 这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可
基于ik动态词库分词实现--无需重启服务
ik分词器ik分词器
solr安装ik分词器将jar复制到solr\WEB-INF\lib 中 具体使用:https://mp.csdn.net/postedit
lucene3.5 IKAnalyzer3.2.5 实例中文分词通过,目前在网上找的lucene 和IKAnalyzer 的最新版本测试通过。内含:示例代码,以及最新jar包。 lucene lucene3.5 IKAnalyzer IKAnalyzer3.2.5 jar 中文 分词
分布式搜索elasticsearch1.1.0版本 中文分词集成,现在不支持bin/plugin -install medcl/elasticsearch-analysis-ik/1.1.0 版本的安装,直接解压安装ik和mmseg插件,看博文
elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip ...
elasticsearch-analysis-ik-6.6.1为ik分词器最新版本需结合solr使用