`

lucene 的分词StandardAnalyzer

阅读更多
package analyzer;

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;

public class StandardAnalyzerTest {
/**
 * 构造函数
 *
 */
	public StandardAnalyzerTest()
	{
		
	}
	
	public static void main(String[] args)
	{//初始化一个standardAnalyzer对象
		Analyzer aAnanyzer=new StandardAnalyzer();	
		StringReader sr=new StringReader("People are always talking about 'the problem of youth'.");
		//生成TokenStream对象
		TokenStream ts=aAnanyzer.tokenStream(sr);	
		int i=0;
		Token t;
		try {
			//调用next()方法不断的取得下一个切出的词
			t = ts.next();
			while(t!=null)
			{
				i++;
				System.out.println("Line "+i+":"+t.termText());
				t=ts.next();
			}
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		
	}
}

 1:对空格进行了分词

 2:大写都转换成小写

 3:对停止词的过滤如a,an ,the 等小词

 4:删除了所有的标点符号

 

下面是汉语的效果

package analyzer;

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;

public class StandardAnalyzerTestForCH {

	public StandardAnalyzerTestForCH()
	{
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根
      Analyzer a=new StandardAnalyzer();
      StringReader sr=new StringReader("龙门石窟位于山西省大同市西 郊,是 '我国古代艺术的宝贝!");
      
      TokenStream ts=a.tokenStream(sr);
      
      int i=0;
      try {
		Token t=ts.next();
		while(t!=null)
		{
			i++;
			System.out.println("Line "+i+":"+t.termText());
			t=ts.next();
		}
	} catch (IOException e) {
		// TODO 自动生成 catch 块
		e.printStackTrace();
	}
      
      
	}

}

 

分享到:
评论

相关推荐

    Lucene-Demo.rar Lucene分词的demo

    分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...

    java lucene 实现分词和词干抽取

    用java实现的,利用了lucene里面的standardAnalyzer分析器实现的分词,可以去停用词,再利用波特算法实现 词干提取 最后排序 和词频统计输出

    Lucene分词与查询详解

    **Lucene分词与查询详解** Lucene是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发中。它提供了一套强大的API,用于索引文本数据,并执行复杂的查询操作。在深入理解Lucene的分词与查询机制之前,我们...

    lucene分词搜索,增量索引及全量索引

    《Lucene分词搜索、增量索引与全量索引详解》 在现代信息检索系统中,搜索引擎扮演着至关重要的角色。Apache Lucene是一个高性能、全文本搜索库,被广泛应用于构建复杂的数据检索应用。本文将深入探讨Lucene的分词...

    自己写的一个基于词库的lucene分词程序--ThesaurusAnalyzer

    传统的Lucene使用标准分词器(StandardAnalyzer),它主要依据词频数据库来分词,但对于专业领域或者特定需求,这种方法可能不够准确或全面。 ThesaurusAnalyzer的创新之处在于它利用了一个词库(wordlist.txt),...

    lucene的分词的测试工程

    《Lucene分词测试工程详解》 在信息技术领域,搜索引擎的构建是不可或缺的一部分,而Lucene作为Java领域内的搜索引擎库,扮演着至关重要的角色。本文将深入探讨一个以"lucene的分词的测试工程"为主题的项目,涵盖...

    Lucene关于几种中文分词的总结

    Lucene作为一款强大的全文检索库,虽然内置了StandardAnalyzer,但其对中文分词的支持并不完全满足所有应用需求。因此,开发者们开发了一系列专门针对中文分词的Analyzer,以提升搜索效率和准确度。以下是对几种常见...

    基于lucene的词频分析源代码

    默认的`StandardAnalyzer`可以处理大多数情况,但也可以根据需求使用自定义的分析器。索引过程会将每个文档分割成单独的术语,并在倒排索引中存储这些术语的位置和频率信息。 4. **词频计算**: 一旦索引建立完成...

    完整的站内搜索引擎(Lucene.Net+盘古分词)

    分词(lucene.Net提供StandardAnalyzer一元分词,按照单个字进行分词,一个汉字一个词) 盘古分词 基于词库的分词,可以维护词库 首先我们新增的SearchHelper类需要将其做成一个单例,使用单例是因为:有许多地方需要...

    Struts标签Lucene中文分词构建

    - **选择合适的分词器**:Lucene提供了多种分词器,如`StandardAnalyzer`、`WhitespaceAnalyzer`等。对于中文分词,通常会选择`IKAnalyzer`或者自定义的分词器。 - **集成Lucene分析器**:在Struts应用中,可以通过...

    lucene及分词工具说明

    lucene::analysis::standard::StandardAnalyzer an; if (!clearIndex && IndexReader::indexExists(target)) { if (IndexReader::isLocked(target)) { printf("Index was locked unlocking it.\n"); ...

    lucene 中文分词

    **Lucene 中文分词** Lucene 是一个开源的全文检索库,由Apache软件基金会开发,用Java编写。在处理中文文档时,由于中文的特殊性,需要进行分词处理,才能有效地进行全文检索。这个小案例展示了如何在Lucene中...

    全文检索技术学习(三)——Lucene支持中文分词 - 李阿昀的博客 - CSDN博客1

    在给定的代码示例中,展示了如何使用 Lucene 的 StandardAnalyzer 分析器来查看其分词效果。StandardAnalyzer 是 Lucene 提供的默认分析器,适用于英文文本,对于中文来说,它可能无法正确处理。在测试类中,我们...

    lucene的应用程序扩展

    压缩包子文件的文件名称“Lucene分词技术”暗示了其中可能包含关于如何使用 Lucene 进行分词的文档或示例。分词是 Lucene 搜索过程中的关键步骤,它将输入的查询和文档内容分解为单独的词语(或称为“术语”)。...

    c#写的关于分词使用Lucene.net

    4. **分词**:Lucene.NET的StandardAnalyzer或者自定义Analyzer会根据设定的规则将输入文本分解成一系列的词语。对于中文,Analyzer需要考虑词语的组合和语义,这通常涉及到词典和词性标注。 5. **查询和搜索**:...

    Apache Lucene全文检索和IKAnalyzer分词工具类

    import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org...

    lucene实例lucene实例

    4. 分词器(Analyzer):对输入文本进行分词,是Lucene处理自然语言的关键步骤。 5. 查询(Query):用户提交的搜索条件,可以是简单的关键词,也可以是复杂的查询语法。 二、Lucene实例操作流程 1. 创建索引...

    Lucene测试程序3.5

    在这个测试程序中,开发者可能使用了Lucene自带的标准分词器(StandardAnalyzer),它对英文文本进行了诸如词干提取和停用词过滤等处理,提高了搜索精度。 标准分词器(StandardAnalyzer)是Lucene提供的一种通用...

    lucene学习lucene学习

    `StandardAnalyzer` 是 Lucene 提供的一个标准分词器,用于处理英文文本。`IndexWriter` 是负责创建和更新索引的主要类,它可以接受一个目录和分词器实例,然后遍历指定目录下的所有文件,为每个文件创建一个 `...

    Lucene学习源码.rar

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

Global site tag (gtag.js) - Google Analytics