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

lucene3 分词器的使用

阅读更多

lucene3 中分词的一个例子

 

 

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

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.util.Version;

public class AnalyzerTest {

	public static void main(String[] args) throws IOException {
		String content  = "Dan O'Sullivan - Wikipedia: A New Community of Practice?http://www.1ju.org/";
		StringReader reader = new StringReader(content);
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_20);
		TokenStream ts = analyzer.tokenStream("", reader);
		ts.addAttribute(TermAttribute.class);
		
	
		while (ts.incrementToken()) {
			TermAttribute ta = ts.getAttribute(TermAttribute.class);
			System.out.println(ta.term());
		}
	}
}
 

 

 

dan
o'sullivan
wikipedia
new
community
practice
http
www.1ju.org

 

 

 

lucene3提供了下面几种分词器:

1、 StopAnalyzer

StopAnalyzer 能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能。

2、 StandardAnalyzer

StandardAnalyzer 根据空格和符号来完成分词,还可以完成数字、字母、E-mail 地址、IP 地址以及中文字符的分析处理,还可以支持过滤词表,用来代替StopAnalyzer 能够实现的过滤功能。

3、 SimpleAnalyzer

SimpleAnalyzer 具备基本西文字符词汇分析的分词器,处理词汇单元时,以非字母字符作为分割符号。分词器不能做词汇的过滤,之进行词汇的分析和分割。输出地词汇单元完成小写字符转换,去掉标点符号等分割符。

在全文检索系统开发中,通常用来支持西文符号的处理,不支持中文。由于不完成单词过滤功能,所以不需要过滤词库支持。词汇分割策略上简单,使用非英文字符作为分割符,不需要分词词库的支持。

4、 WhitespaceAnalyzer

WhitespaceAnalyzer 使用空格作为间隔符的词汇分割分词器。处理词汇单元的时候,以空格字符作为分割符号。分词器不做词汇过滤,也不进行小写字符转换。

实际中可以用来支持特定环境下的西文符号的处理。由于不完成单词过滤和小写字符转换功能,也不需要过滤词库支持。词汇分割策略上简单使用非英文字符作为分割符,不需要分词词库支持。

5、 KeywordAnalyzer

KeywordAnalyzer 把整个输入作为一个单独词汇单元,方便特殊类型的文本进行索引和检索。针对邮政编码,地址等文本信息使用关键词分词器进行索引项建立非常方便。

6、 CJKAnalyzer

CJKAnalyzer 内部调用CJKTokenizer 分词器,对中文进行分词,同时使用StopFilter 过滤器完成过滤功能,可以实现中文的多元切分和停用词过滤。在Lucene3.0 版本中已经弃用。

7、 ChineseAnalyzer

ChineseAnalyzer 功能与StandardAnalyzer 分析器在处理中文是基本一致,都是切分成单个的双字节中文字符。在Lucene3.0 版本中已经弃用。

8、 PerFieldAnalyzerWrapper

PerFieldAnalyzerWrapper 功能主要用在针对不同的Field 采用不同的Analyzer 的场合。比如对于文件名,需要使用KeywordAnalyzer ,而对于文件内容只使用StandardAnalyzer 就可以了。通过addAnalyzer() 可以添加分类器。

9、 IKAnalyzer

实现了以词典为基础的正反向全切分,以及正反向最大匹配切分两种方法。IKAnalyzer 是第三方实现的分词器,继承自LuceneAnalyzer 类,针对中文文本进行处理。

10、 JE-Analysis

JE-AnalysisLucene 的中文分词组件,需要下载。

11、 ICTCLAS4J

ictclas4j 中文分词系统是sinboy 在中科院张华平和刘群老师的研制的FreeICTCLAS 的基础上完成的一个java 开源分词项目,简化了原分词程序的复杂度,旨在为广大的中文分词爱好者一个更好的学习机会。

12、 Imdict-Chinese-Analyzer

imdict-chinese-analyzerimdict 智能词典 的智能中文分词模块,算法基于隐马尔科夫模型(Hidden Markov Model, HMM) ,是中国科学院计算技术研究所的ictclas 中文分词程序的重新实现(基于Java ),可以直接为lucene 搜索引擎提供简体中文分词支持。

13、 Paoding Analysis

Paoding Analysis 中文分词具有极 高效率 和 高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。其效率比较高,在PIII 1G 内存个人机器上,1 秒可准确分词100 万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。

14、 MMSeg4J

mmseg4jChih-Hao TsaiMMSeg 算法(http://technology.chtsai.org/mmseg/ ) 实现的中文分词器,并实现 luceneanalyzersolrTokenizerFactory 以方便在LuceneSolr 中使用。 MMSeg 算法有两种分词方法:SimpleComplex ,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%mmseg4j 已经实现了这两种分词算法

 

 

 

4
1
分享到:
评论

相关推荐

    Lucene中文分词器组件

    3. **索引建立**:在创建索引时,使用配置好的分词器对中文文本进行分词,生成分词后的关键词列表,进而建立倒排索引。 4. **查询处理**:在查询阶段,同样使用相同的分词器对用户输入的查询语句进行分词,然后进行...

    Lucene中文分词器包

    来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...

    lucene中文分词器(paoding解牛)

    《Lucene中文分词器——Paoding解牛详解》 在中文信息检索领域,分词是至关重要的一环,它能够将连续的汉字序列切割成具有独立意义的词语,为后续的索引和查询提供基础。Lucene作为Java最著名的全文搜索引擎库,其...

    lucene3.0 分词器

    lucene3.0 中文分词器, 庖丁解牛

    Lucene4.0 IK分词器使用pdf

    ### Lucene4.0 IK分词器使用概览 #### IKAnalyzer:中文分词利器 IKAnalyzer是一款基于Java开发的开源中文分词工具包,自2006年首次发布以来,历经多个版本的迭代,已成为业界广泛认可的中文分词解决方案。其最初...

    lucene.NET 中文分词

    2. **配置分词器**:在Lucene.NET的索引创建阶段,需要配置Analyzer类,指定使用特定的分词器。例如,使用IK Analyzer可以创建`IKAnalyzer analyzer = new IKAnalyzer();`。 3. **字段分析**:在创建Document对象时...

    lucene3庖丁解牛中文分词器

    《深入剖析:Lucene3与庖丁解牛中文分词器》 在信息技术飞速发展的今天,全文检索和搜索引擎已经成为日常开发中不可或缺的部分。Lucene作为一款强大的全文检索库,被广泛应用于各种信息检索系统中。然而,对于中文...

    Lucene-Demo.rar Lucene分词的demo

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

    lucene中文分词工具包

    3. **分词器分词**:这是核心步骤,IKAnalyzer采用动态调优算法,能够在运行时根据上下文调整分词策略,以达到更好的分词效果。它支持基于正向最大匹配(MMAX)和逆向最大匹配(RMMAX)等多种分词模式。 4. **歧义...

    lucene分词测试代码

    用java写的图形分词测试的小东西,用的分词器是: 来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器,其使用“正向全切分算法”,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I...

    Lucene3.0分词系统.doc

    Lucene3.0分词系统的核心在于理解和应用其分词原理,无论是对于英文还是中文文本,这一过程都是构建高效搜索引擎的基础。以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较...

    Jcseg支持lucene3的分词器

    在网上找了好半天也没找到jcseg分词器对lucene 3的支持,自己参考这对lucene4的支持写的,希望对大家有用。

    高版本Lucene的IK分词器

    maven库中现有的ik分词器只支持低版本的Lucene,想要支持高版本的Lucene,需要重写老版本ik分词器里的部分代码. 下载代码片段后导入项目,在创建分词器的时候把new IKAnalyzer替换为 new IKAnalyzer5x即可。

    lucene+中文IK分词器 例子

    然后,使用Lucene的`Analyzer`接口创建一个IK分词器实例,将网页内容传递给分词器进行分词。接着,使用Lucene的`IndexWriter`将分词后的文档写入索引。 4. **查询索引** 当用户输入关键词时,使用同样的IK分词器...

    lucene6.6+拼音分词+ik中文分词包

    最后,IKAnalyzer.cfg.xml是IK分词器的配置文件,用于设置分词器的行为,如是否开启全模式、是否使用自定义词典等。通过修改这个配置文件,我们可以对分词过程进行精细化控制。 总的来说,"lucene6.6+拼音分词+ik...

    lucene 中文分词 庖丁解牛

    3. Snowball Analyzer:基于Lucene的分词器,支持多国语言,但对中文支持有限,需配合其他中文分词库使用。 4. PKUAnnotator:北京大学开发的中文分词系统,具有较高的准确率和召回率。 五、选择与优化 不同的分词...

    lucene中文分词器Jceseg和IK Analyzer使用示例

    lucene中文分词器Jceseg和IK Analyzer使用示例,lucene5可以使用,本人亲测成功,大家放心用,喜欢lucene的人大家关注我的博客 http://blog.csdn.net/wuyinggui10000/article/category/3173543 大家共同交流,有需要...

    lucene.net中文分词器

    然而,在处理中文文本时,由于中文特有的分词问题,直接使用Lucene.NET可能会遇到效率和准确性的挑战。本文将详细介绍一个基于Lucene.NET 2.0的中文分词器,以及它的核心——最大向前匹配算法。 中文分词是中文自然...

    Lucene分词器资源包

    **Lucene分词器资源包详解** Lucene是一款开源的全文搜索引擎库,广泛应用于Java开发中,用于构建高效、可扩展的信息检索应用。这个压缩包提供了Lucene分词时所必需的jar包,使得开发者能够方便地在项目中集成...

    lucene中文分词(庖丁解牛)庖丁分词

    3. 初始化分词器:在Lucene的索引过程中,需要实例化庖丁分词器,并设置相应的参数,如词典路径、分词模式等。 4. 分词处理:在索引文档时,先用庖丁分词器对中文文本进行分词,然后将分词结果转换成Lucene的Term...

Global site tag (gtag.js) - Google Analytics