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

Lucene之六(Lucene内置Analysis分析器)

阅读更多

 

1WhitespaceAnalyzer

    仅仅是去除空格,对字符没有lowcase,不支持中文;

      并且不对生成的词汇单元进行其他的规范化处理。

2、SimpleAnalyzer

    功能强于WhitespaceAnalyzer, 首先会通过非字母字符来分割文本信息,然后将词汇单元统一为小写形式。该分析器会去掉数字类型的字符。

3、StopAnalyzer

    StopAnalyzer的功能超越了SimpleAnalyzer,在SimpleAnalyzer的基础上增加了去除英文中的常用单词(如the,a等),也可以更加自己的需要设置常用单词不支持中文

4、StandardAnalyzer

    英文的处理能力同于StopAnalyzer.支持中文采用的方法为单字切分。他会将词汇单元转换成小写形式,并去除停用词和标点符号。

 

 

 

 

public class AnalyzerDemo {

	/**WhitespaceAnalyzer分析器*/
	public void whitespaceAnalyzer(String msg){
		WhitespaceAnalyzer analyzer = new WhitespaceAnalyzer(Version.LUCENE_36);
		this.getTokens(analyzer, msg);
	}
	
	/**SimpleAnalyzer分析器*/
	public void simpleAnalyzer(String msg){
		SimpleAnalyzer analyzer = new SimpleAnalyzer(Version.LUCENE_36);
		this.getTokens(analyzer, msg);
	}
	
	/**StopAnalyzer分析器*/
	public void stopAnalyzer(String msg){
		StopAnalyzer analyzer = new StopAnalyzer(Version.LUCENE_36);
		this.getTokens(analyzer, msg);
	}
	
	/**StandardAnalyzer分析器*/
	public void standardAnalyzer(String msg){
		StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
		this.getTokens(analyzer, msg);
	}
	
	
	private void getTokens(Analyzer analyzer,String msg){
		TokenStream tokenStream=analyzer.tokenStream("content", new StringReader(msg));
		this.printTokens(analyzer.getClass().getSimpleName(),tokenStream);
	}
	
	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 TestAnalyizer {

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

	@Test
	public void testWhitespaceAnalyzer(){
		demo.whitespaceAnalyzer(msg);
	}
	
	@Test
	public void testSimpleAnalyzer(){
		 demo.simpleAnalyzer(msg);
	}
	
	@Test
	public void testStopAnalyzer(){
		demo.stopAnalyzer(msg);
	}
	
	@Test
	public void testStandardAnalyzer(){
		 demo.standardAnalyzer(msg);
	}
}
 

 

分享到:
评论
1 楼 jieweier733 2014-10-14  
写的不错

相关推荐

    lucene-analysis.jar

    《深入理解Lucene分析器库:lucene-analysis.jar解析》 在信息检索和搜索引擎领域,Apache Lucene是一个广泛使用的开源全文检索库。它的核心功能包括文档的索引、搜索以及相关的高级特性。其中,"lucene-analysis....

    je-analysis-1.5.3、lucene-core-2.4.1分词组件

    本文将深入探讨"je-analysis-1.5.3"和"lucene-core-2.4.1"这两个分词组件,以及它们在相关场景中的应用。 首先,让我们了解什么是分词。分词,即词语切分,是自然语言处理(NLP)中的基本任务之一,它的目标是将...

    lucene-4.8.1 + paoding-analysis-master

    在版本4.8.1中,Lucene已经相当成熟,支持多种文本分析器,包括对中文的支持。然而,Lucene本身并不包含专门针对中文的分词算法,这就需要我们引入第三方的分词工具,比如Paoding Analysis。 Paoding Analysis,又...

    适合lucene3.0用的paoding-analysis的jar包

    同时,为了满足中文分词的需求,Paoding-Analysis应运而生,它是一款专门针对中文的分析器,能够高效准确地进行中文分词,为Lucene的中文搜索提供了强大支持。 Paoding-Analysis是Java开发的开源项目,其核心功能是...

    lucene je-analysis jar包

    《深入理解Lucene与JE-Analysis:构建高效文本分析系统》 在信息技术领域,文本处理是数据挖掘和信息检索中的重要一环。Lucene和JE-Analysis是两个强大的开源工具,用于实现高效的全文检索和文本分析。本文将深入...

    Lucene.Net.Analysis.Cn.dll

    Lucene.Net.Analysis.Cn.dll集成了诸如SmartChineseAnalyzer、SimpleChineseAnalyzer等分词器,它们能够根据词汇库和规则对中文文本进行有效的切分,从而为后续的索引和搜索提供基础。例如,SmartChineseAnalyzer是...

    转 Lucene中文分词组件 JE-Analysis 1.5.1 天狼

    《深入理解Lucene中文分词组件JE-Analysis 1.5.1——天狼解析》 在信息检索和自然语言处理领域,Lucene是一个广泛使用的全文检索库,它提供了强大的索引和搜索功能。然而,Lucene本身并不支持中文分词,因此我们...

    Lucene.Net 中文文本分析器

    `Lucene.Net.Analysis.China.dll`这个库很可能包含了实现HMM中文分析器的类和方法,为开发者提供了开箱即用的中文分词功能。 `Lucene.Net.dll`是Lucene.Net的核心库,包含了搜索引擎的主要功能,如索引创建、查询...

    Lucene索引器实例

    **Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache...在实际项目中,可以根据需求选择合适的存储(如硬盘目录或分布式存储)、优化分析器配置、处理大量文档的批量索引以及实现复杂的查询逻辑。

    MMAnalyzer 分词jar包(lucene-core-2.4.1.jar je-analysis-1.5.3.jar)

    在IT领域,文本处理是至关重要的任务之一,特别是在搜索引擎、信息检索、自然语言处理等应用场景。其中,分词是文本处理的基石,它是指将连续的文本字符串分割成具有独立语义的词汇单元,这对于理解和分析文本内容至...

    lucene和je-analysis-1.5.3

    在全文检索中,分析器的作用是将输入的文本进行分词、去除停用词、词性标注等处理,以便更好地匹配用户查询。JE-Analysis提供了丰富的分词算法和配置选项,适应不同的应用场景,如新闻、微博、论坛等。 JE-Analysis...

    lucene.net.analysis.cn

    1. 分析器(Analyzer):分析器是Lucene.NET中处理文本的核心组件,负责将原始输入文本转换为一系列的Token(分词结果)。对于中文,`Lucene.Net.Analysis.Cn.Standard.CJKStandardAnalyzer`是常用的选择,它包含...

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

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

    MMAnalyzer 分词必导入jar包(lucene-core-2.4.1.jar je-analysis-1.5.3.jar)

    本篇文章将深入探讨MMAnalyzer的使用以及与之相关的两个核心JAR包:`jeasy.analysis.MMAnalyzer`和`lucene-core-2.4.1.jar`。 首先,MMAnalyzer是JeasyAnalysis的一部分,JeasyAnalysis是一个轻量级的中文分析库,...

    lucene的应用程序扩展

    在 Lucene.NET 中,这些 DLL 文件可能包括 `Lucene.Net.dll`(基础库)、`Lucene.Net.Analysis.dll`(文本分析器)和其他扩展库,如`Lucene.Net.Highlighter.dll`(高亮显示搜索结果)等。 压缩包子文件的文件名称...

    Lucene.Net的DLL

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

    jieba结巴分词 支持lucene5

    jieba的lucene分析器(Analyzer)扩展了Lucene的分析能力,它将jieba的分词结果转换为Lucene可理解的文档字段,这样在建立索引和执行查询时,中文文本可以被正确处理。这在构建基于Lucene的中文搜索引擎或者信息检索...

    Lucene学习源码.rar

    Lucene内置了多种分词器,如StandardAnalyzer、SimpleAnalyzer等,也可自定义。 5. 查询解析器(QueryParser):将用户的查询字符串转换为内部表示,用于与索引进行匹配。 6. 搜索器(Searcher):执行搜索操作,...

    拼音分词 Pinyin4j+pinyinAnalyzer+lucene-analyzers

    pinyinAnalyzer是Lucene的一个分析器,它利用了Pinyin4j的功能,能够将输入的中文文本分词并转化为拼音形式,以便于Lucene这样的全文搜索引擎进行索引和查询。而lucene-analyzers则是Lucene的一系列分析器集合,包含...

    elasticsearch-analysis-ik,ik分析插件将lucene ik analyzer集成到elasticsearch中,支持自定义字典。.zip

    本文将深入探讨如何将 Elasticsearch Analysis IK 插件应用于 Elasticsearch 中,以实现对中文文本的高效、精准分析。 **一、IK Analyzer 简介** IK Analyzer 是由国人开发的一款针对中文的 Lucene 分词器,其设计...

Global site tag (gtag.js) - Google Analytics