`
yufenfei
  • 浏览: 797739 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene之七(开源的中文分析器)

 
阅读更多

 

当前的中文分析器大致的有以下几个

1、IK Analyzer

   基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。

 

   下载地址:http://code.google.com/p/ik-analyzer/

    有操作文档,开发版本更新较快

2、mmseg4j

   (1)、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。

(2)、MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。

 

下载地址:http://code.google.com/p/mmseg4j/

没有操作文档,开发版本更新较快

3、paoding

   采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析

 

    下载地址:http://code.google.com/p/paoding/

    没有操作文档,开发活跃度比较低

4、imdict

    imdict智能词典所采用的智能中文分词程序

 

    没有操作文档,开发活跃度比较低

 

 

public class ChineseAnalyerDemo {
	
	/**standardAnalyer分析器 ,Lucene内置中文分析器*/
	public void standardAnalyer(String msg){
		StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
		this.getTokens(analyzer, msg);
	}

	
	/**IK Analyzer分析器*/
	public void iKanalyer(String msg){
		IKAnalyzer analyzer = new IKAnalyzer(true);//当为true时,分词器进行最大词长切分
                //IKAnalyzer analyzer = new IKAnalyzer();
		this.getTokens(analyzer, msg);
	}

	
	private void getTokens(Analyzer analyzer,String msg){
		TokenStream tokenStream=analyzer.tokenStream("content", new StringReader(msg));
		try {
			tokenStream.reset();
			this.printTokens(analyzer.getClass().getSimpleName(),tokenStream);
			tokenStream.end();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	private void printTokens(String analyzerType,TokenStream tokenStream){
		CharTermAttribute ta = tokenStream.addAttribute(CharTermAttribute.class);
		StringBuffer result =new StringBuffer();
		try {
			while(tokenStream.incrementToken()){
				if(result.length()>0){
					result.append(",");
				}
				result.append("["+ta.toString()+"]");
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		System.out.println(analyzerType+"->"+result.toString());
	}
}
 
 

 

 

 

public class TestChineseAnalyizer {

	private ChineseAnalyerDemo demo = null;
	
	private String msg = "我喜欢你,我的祖国!china 中国,I love you!";
	//private String msg = "I love you, China!B2C";
	@Before
	public void setUp() throws Exception {
		demo=new ChineseAnalyerDemo();
	}
	@Test
	public void testStandardAnalyer(){
		demo.standardAnalyer(msg);
	}
	@Test
	public void testIkAnalyzer(){
		demo.iKanalyer(msg);
	}
}

 

 

输出结果:

 

 

StandardAnalyzer->[我],[喜],[欢],[你],[我],[的],[祖],[国],[china],[中],[国],[i],[love],[you],[中],[华],[人],[民],[共],[和],[国]
IKAnalyzer->[我],[喜欢],[你],[我],[的],[祖国],[china],[中国],[i],[love],[you],[中华人民共和国]
 

 

分享到:
评论

相关推荐

    IK Analyzer分析器jar包和使用文档,支持lucene4.0

    IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包。它使用了全新的正向迭代最细粒度切分算法。可以结合lucene4.0使用

    中文分词库 IKAnalyzer For Lucene 5.2.1(适用Lucene 5.2.1)

    最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK...

    用于Lucene的IKAnalyzer分词器

    IKAnalyzer是一个开源的,基于Java语言开发的轻量级的中文分词语言包,它是以Lucene为应用主体,结合词典分词和文法分析算法的中文词组组件。从3.0版本开始,IK发展为面向java的公用分词组件,独立Lucene项目,同时...

    Lucene介绍,全文检索

    Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 另外,如果是在选择全文引擎,现在也许是试试Sphinx的时候了:相比Lucene速度更快,有中文分词的支持,而且...

    IK Analysis for Elasticsearch:一个将Lucene IK分析器集成到elasticsearch中的插件-开源

    最初是一个基于开源项目 Luence 为主要应用,结合词典分词和语法分析算法的中文分词组件。 从3.0版本开始,IK已经发展成为Java通用的分词组件,独立于Lucene项目,同时提供了Lucene的默认优化实现。 在 2012 版本中...

    lucene2.9.1所有最新开发包及源码及文档

    提供了一些内置的分析器:最常用的是StandardAnalyzer 2) index模块:负责索引的读写。 对索引文件的segment进行写、合并、优化的IndexWriter类。对索引进行读取和删除操作的IndexReader类。 3) store模块:负责...

    IK Analysis for Elasticsearch:一个将 Lucene IK 分析器集成到 elasticsearch 中的插件-开源

    最初是一个基于开源项目 Luence 为主要应用,结合词典分词和语法分析算法的中文分词组件。 从3.0版本开始,IK已经发展成为Java通用的分词组件,独立于Lucene项目,同时提供了Lucene的默认优化实现。 在 2012 版本中...

    IKAnalyzer 3.0 中文分词器

    1.IKAnalyzer3.0介绍 IKAnalyzer是一个开源的,基于java... * 针对Lucene全文检索优化的查询分析器IKQueryParser(作者吐血推荐);采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。

    基于Lucene的中文分词器的设计与实现

    针对Lucene自带中文分词器分词效果差的缺点,在分析现有分词词典机制的基础上,设计了基于全哈希整词二分算法的分词器,并集成到Lucene中,算法通过对整词进行哈希,减少词条匹配次数,提高分词效率。该分词器词典...

    全文索引引擎Lucene简单教程

    开源的全文索引引擎... 基于字符串匹配的分词方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机 器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。

    Lucene Jsceg IkAnalyzer jar包

    使用Lucene 分词器Jsceg IkAnalyzer jar包 ucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了...

    论文研究-一种基于Lucene的影片搜索引擎的研究和应用.pdf

    分析点播门户中现有的搜索引擎存在的不足,设计一种基于双字哈希算法支持中文的分词器,并利用该分词器和Lucene工具包,设计并实现了一个视频点播影片快速搜索引擎,它不仅支持中文检索,还具有搜索速度快、易于扩展...

    java开源包8

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Lucene Korean Analyzer and dictionary-开源

    我们正在制作Lucene韩国分析仪。 朝鲜语词典是Lucene朝鲜语分析器中最重要的元素。 我们也在制作《 Lucene韩文分析器韩语词典》。

    IKAnalyzer中文分词.rar

    IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。 如果使用中文分词器ik-analyzer,就需要在索引和搜索程序中使用一致的...

    IKAnalyzer开源轻量级中文分词工具包2012u6

    最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK...

    ElasticSearch 可扩展的开源弹性搜索解决方案

    ElasticSearch是一个基于ApacheLucene构建的开源搜索服务器。它提供了一个可扩展的搜索解决方案,内置支持近实时搜索和多租户。  《ElasticSearch 可扩展的开源弹性搜索解决方案》将教你如何构建一个快速、灵活、可...

    java开源包6

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

Global site tag (gtag.js) - Google Analytics