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
是第三方实现的分词器,继承自Lucene
的Analyzer
类,针对中文文本进行处理。
10、
JE-Analysis
JE-Analysis
是Lucene
的中文分词组件,需要下载。
11、
ICTCLAS4J
ictclas4j
中文分词系统是sinboy
在中科院张华平和刘群老师的研制的FreeICTCLAS
的基础上完成的一个java
开源分词项目,简化了原分词程序的复杂度,旨在为广大的中文分词爱好者一个更好的学习机会。
12、
Imdict-Chinese-Analyzer
imdict-chinese-analyzer
是 imdict
智能词典 的智能中文分词模块,算法基于隐马尔科夫模型(Hidden Markov Model, HMM)
,是中国科学院计算技术研究所的ictclas
中文分词程序的重新实现(基于Java
),可以直接为lucene
搜索引擎提供简体中文分词支持。
13、
Paoding Analysis
Paoding Analysis
中文分词具有极 高效率 和 高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。其效率比较高,在PIII 1G
内存个人机器上,1
秒可准确分词100
万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。
14、
MMSeg4J
mmseg4j
用 Chih-Hao Tsai
的 MMSeg
算法(http://technology.chtsai.org/mmseg/ )
实现的中文分词器,并实现 lucene
的 analyzer
和 solr
的TokenizerFactory
以方便在Lucene
和Solr
中使用。 MMSeg
算法有两种分词方法:Simple
和Complex
,都是基于正向最大匹配。Complex
加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%
。mmseg4j
已经实现了这两种分词算法
分享到:
相关推荐
3. **索引建立**:在创建索引时,使用配置好的分词器对中文文本进行分词,生成分词后的关键词列表,进而建立倒排索引。 4. **查询处理**:在查询阶段,同样使用相同的分词器对用户输入的查询语句进行分词,然后进行...
来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...
《Lucene中文分词器——Paoding解牛详解》 在中文信息检索领域,分词是至关重要的一环,它能够将连续的汉字序列切割成具有独立意义的词语,为后续的索引和查询提供基础。Lucene作为Java最著名的全文搜索引擎库,其...
lucene3.0 中文分词器, 庖丁解牛
### Lucene4.0 IK分词器使用概览 #### IKAnalyzer:中文分词利器 IKAnalyzer是一款基于Java开发的开源中文分词工具包,自2006年首次发布以来,历经多个版本的迭代,已成为业界广泛认可的中文分词解决方案。其最初...
2. **配置分词器**:在Lucene.NET的索引创建阶段,需要配置Analyzer类,指定使用特定的分词器。例如,使用IK Analyzer可以创建`IKAnalyzer analyzer = new IKAnalyzer();`。 3. **字段分析**:在创建Document对象时...
《深入剖析:Lucene3与庖丁解牛中文分词器》 在信息技术飞速发展的今天,全文检索和搜索引擎已经成为日常开发中不可或缺的部分。Lucene作为一款强大的全文检索库,被广泛应用于各种信息检索系统中。然而,对于中文...
分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...
3. **分词器分词**:这是核心步骤,IKAnalyzer采用动态调优算法,能够在运行时根据上下文调整分词策略,以达到更好的分词效果。它支持基于正向最大匹配(MMAX)和逆向最大匹配(RMMAX)等多种分词模式。 4. **歧义...
用java写的图形分词测试的小东西,用的分词器是: 来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器,其使用“正向全切分算法”,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I...
Lucene3.0分词系统的核心在于理解和应用其分词原理,无论是对于英文还是中文文本,这一过程都是构建高效搜索引擎的基础。以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较...
在网上找了好半天也没找到jcseg分词器对lucene 3的支持,自己参考这对lucene4的支持写的,希望对大家有用。
maven库中现有的ik分词器只支持低版本的Lucene,想要支持高版本的Lucene,需要重写老版本ik分词器里的部分代码. 下载代码片段后导入项目,在创建分词器的时候把new IKAnalyzer替换为 new IKAnalyzer5x即可。
然后,使用Lucene的`Analyzer`接口创建一个IK分词器实例,将网页内容传递给分词器进行分词。接着,使用Lucene的`IndexWriter`将分词后的文档写入索引。 4. **查询索引** 当用户输入关键词时,使用同样的IK分词器...
最后,IKAnalyzer.cfg.xml是IK分词器的配置文件,用于设置分词器的行为,如是否开启全模式、是否使用自定义词典等。通过修改这个配置文件,我们可以对分词过程进行精细化控制。 总的来说,"lucene6.6+拼音分词+ik...
3. Snowball Analyzer:基于Lucene的分词器,支持多国语言,但对中文支持有限,需配合其他中文分词库使用。 4. PKUAnnotator:北京大学开发的中文分词系统,具有较高的准确率和召回率。 五、选择与优化 不同的分词...
lucene中文分词器Jceseg和IK Analyzer使用示例,lucene5可以使用,本人亲测成功,大家放心用,喜欢lucene的人大家关注我的博客 http://blog.csdn.net/wuyinggui10000/article/category/3173543 大家共同交流,有需要...
然而,在处理中文文本时,由于中文特有的分词问题,直接使用Lucene.NET可能会遇到效率和准确性的挑战。本文将详细介绍一个基于Lucene.NET 2.0的中文分词器,以及它的核心——最大向前匹配算法。 中文分词是中文自然...
**Lucene分词器资源包详解** Lucene是一款开源的全文搜索引擎库,广泛应用于Java开发中,用于构建高效、可扩展的信息检索应用。这个压缩包提供了Lucene分词时所必需的jar包,使得开发者能够方便地在项目中集成...
3. 初始化分词器:在Lucene的索引过程中,需要实例化庖丁分词器,并设置相应的参数,如词典路径、分词模式等。 4. 分词处理:在索引文档时,先用庖丁分词器对中文文本进行分词,然后将分词结果转换成Lucene的Term...