`
yufenfei
  • 浏览: 802959 次
  • 性别: 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],[中华人民共和国]
 

 

分享到:
评论

相关推荐

    深入了解Lucene之一 系统结构分析.pptx

    3. **项分析**:词元通过分析器(Analyzer)进行标准化,如去除停用词、词形还原等。 4. **索引构建**:分析后的词元和字段信息被写入段,形成索引。 5. **段合并**:当多个段生成后,可以合并成更大的段,以优化...

    Lucene开源的全文检索框架

    ### Lucene开源的全文检索框架 #### 知识点一:Lucene的定义与特性 - **定义**:Lucene是Apache软件基金会Jakarta项目组下的一个子项目,它是一款用Java编写的开源全文检索引擎工具包。需要注意的是,Lucene本身并...

    lucene.NET 中文分词

    总的来说,Lucene.NET在中文分词和高亮显示方面的应用需要结合合适的分词器,并进行适当的配置和优化。开发者可以根据实际需求选择适合的分词器,并通过集成和调优提高系统的搜索效率和用户体验。

    Lucene索引数据分析器

    **Lucene索引数据分析器** Lucene是一款强大的开源全文搜索引擎库,由Apache软件基金会开发,广泛应用于各种数据检索系统。它的核心功能在于高效地构建、管理和搜索文本索引,为开发者提供快速的数据查询能力。本篇...

    lucene+中文IK分词器 例子

    IK(Intelligent Chinese)分词器就是针对这一需求而设计的,它是Java开发的开源中文分词组件,特别适合于Lucene等全文检索引擎。 本实例基于Lucene 3.5版本,结合IK中文分词器,演示了如何从网页抓取数据,进行...

    Lucene+原理与代码分析完整版

    Lucene的架构主要包括以下几个部分:Analyzer(分析器)、Document(文档)、Field(字段)、IndexWriter(索引写入器)、IndexReader(索引读取器)、IndexSearcher(索引搜索器)和QueryParser(查询解析器)等。...

    Lucene 3.0 原理与代码分析完整版

    5. Analyzer:文本分析器,处理分词和标准化。 6. QueryParser:解析用户查询,生成Query对象。 五、高级特性 1. 分词器插件:允许自定义分词策略,适应不同领域的语料。 2. 基于位置的搜索:支持短语查询和近似...

    lucene-core-4.9.3,开源jar包

    Lucene提供了多种预定义的分析器,如StandardAnalyzer,同时也允许自定义分析器以满足特定的语言或领域需求。 3. **查询解析**:用户输入的查询字符串经过查询解析器转换成可以执行的查询对象。Lucene支持丰富的...

    Lucene分词器资源包

    使用Lucene进行分词时,你需要选择合适的分析器,如对于中文,可以使用`ChineseAnalyzer`,然后创建索引并执行查询。分词是全文搜索的关键步骤,因为搜索引擎是通过分析和索引文档中的单词来进行匹配的。通过合理的...

    lucene-4.7.0.

    Lucene 4.7.0包含了一系列的分析器,如标准分析器(StandardAnalyzer)、关键词分析器(KeywordAnalyzer)等。分析器的选择会直接影响到搜索效果,因此在实际应用中,开发者需要根据具体需求选择合适的分析器。 三...

    compass2.1.4包+所用lucene包+中文分词器

    "中文分词器"在这里指的可能是 "je-analysis-1.5.1.jar",这是一个专门针对中文的分析工具,用于将中文文本分解成有意义的词汇(词)。Je-Analysis 可能是基于 Java 实现的,适用于 Lucene 和 Solr 等搜索引擎,它...

    Lucene.net源码及中文文档

    在Lucene.NET中,你可以自定义分析器以适应特定的搜索需求。 搜索部分,Lucene.NET支持各种类型的查询,如布尔查询、短语查询、模糊查询、范围查询等。用户可以通过QueryParser构建复杂的查询表达式,并通过...

    Java_IK分析插件将Lucene IK分析器集成到Elasticsearch和OpenSearch中,支持自定义字.zip

    Java_IK分析插件是为Elasticsearch和OpenSearch设计的一款强大的中文分词插件,其核心是基于Apache Lucene的IK(Intelligent Chinese)分析器。IK分析器旨在提高中文文本在搜索引擎中的检索效果,它能有效地进行中文...

    Lucene5.3.1 中文完整Jar包

    这通常包括设置分词器、分析器和索引编写器。 3. **查询索引**:编写查询接口,解析用户输入,生成 Lucene 查询对象,然后执行搜索,获取搜索结果。 4. **展示结果**:根据搜索结果,高亮显示匹配的关键词,并呈现...

    Lucene 原理与代码分析完整版.pdf

    《Lucene原理与代码分析》深入探讨了Lucene——一款高性能、全功能的文本搜索引擎库——的核心机制与实现细节。本书不仅提供了理论上的全面解析,还辅以丰富的代码实例,帮助读者从源码层面理解Lucene的工作流程。...

    lucene.net中文分词器

    《Lucene.NET中文分词器:深入解析与实践》 Lucene.NET是一个开源全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个强大的信息检索工具,Lucene.NET广泛应用于搜索引擎开发、文档检索系统等领域。...

    jieba-lucene-analiysis:jieba的lucene中文分析器和令牌生成器

    jieba-lucene-analysis是将jieba分词库与Apache Lucene搜索引擎库相结合的项目,旨在为Lucene提供更适应中文处理的分析器和令牌生成器。这个项目的主要目的是解决在Lucene中对中文文本进行索引和搜索时的效率和准确...

    Lucene.Net的DLL

    1. **Lucene.Net.Analysis.China.dll**:这是针对中文处理的分析器组件。在Lucene.Net中,分析器(Analyzer)是处理文本输入的关键部分,它负责将原始文本分解为搜索时使用的独立词项(Tokens)。对于中文来说,由于...

    lucene3.4 jar

    在3.4版本中,Lucene提供了多种内置分析器,如标准分析器、简体中文分析器、英文分析器等,适应不同的语言特性和搜索需求。 3. **Lucene Highlighter 3.4.0**: `lucene-highlighter-3.4.0.jar`是高亮显示模块,用于...

Global site tag (gtag.js) - Google Analytics