1、WhitespaceAnalyzer
仅仅是去除空格,对字符没有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);
}
}
分享到:
相关推荐
《深入理解Lucene分析器库:lucene-analysis.jar解析》 在信息检索和搜索引擎领域,Apache Lucene是一个广泛使用的开源全文检索库。它的核心功能包括文档的索引、搜索以及相关的高级特性。其中,"lucene-analysis....
本文将深入探讨"je-analysis-1.5.3"和"lucene-core-2.4.1"这两个分词组件,以及它们在相关场景中的应用。 首先,让我们了解什么是分词。分词,即词语切分,是自然语言处理(NLP)中的基本任务之一,它的目标是将...
在版本4.8.1中,Lucene已经相当成熟,支持多种文本分析器,包括对中文的支持。然而,Lucene本身并不包含专门针对中文的分词算法,这就需要我们引入第三方的分词工具,比如Paoding Analysis。 Paoding Analysis,又...
同时,为了满足中文分词的需求,Paoding-Analysis应运而生,它是一款专门针对中文的分析器,能够高效准确地进行中文分词,为Lucene的中文搜索提供了强大支持。 Paoding-Analysis是Java开发的开源项目,其核心功能是...
《深入理解Lucene与JE-Analysis:构建高效文本分析系统》 在信息技术领域,文本处理是数据挖掘和信息检索中的重要一环。Lucene和JE-Analysis是两个强大的开源工具,用于实现高效的全文检索和文本分析。本文将深入...
Lucene.Net.Analysis.Cn.dll集成了诸如SmartChineseAnalyzer、SimpleChineseAnalyzer等分词器,它们能够根据词汇库和规则对中文文本进行有效的切分,从而为后续的索引和搜索提供基础。例如,SmartChineseAnalyzer是...
《深入理解Lucene中文分词组件JE-Analysis 1.5.1——天狼解析》 在信息检索和自然语言处理领域,Lucene是一个广泛使用的全文检索库,它提供了强大的索引和搜索功能。然而,Lucene本身并不支持中文分词,因此我们...
`Lucene.Net.Analysis.China.dll`这个库很可能包含了实现HMM中文分析器的类和方法,为开发者提供了开箱即用的中文分词功能。 `Lucene.Net.dll`是Lucene.Net的核心库,包含了搜索引擎的主要功能,如索引创建、查询...
**Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache...在实际项目中,可以根据需求选择合适的存储(如硬盘目录或分布式存储)、优化分析器配置、处理大量文档的批量索引以及实现复杂的查询逻辑。
在IT领域,文本处理是至关重要的任务之一,特别是在搜索引擎、信息检索、自然语言处理等应用场景。其中,分词是文本处理的基石,它是指将连续的文本字符串分割成具有独立语义的词汇单元,这对于理解和分析文本内容至...
在全文检索中,分析器的作用是将输入的文本进行分词、去除停用词、词性标注等处理,以便更好地匹配用户查询。JE-Analysis提供了丰富的分词算法和配置选项,适应不同的应用场景,如新闻、微博、论坛等。 JE-Analysis...
1. 分析器(Analyzer):分析器是Lucene.NET中处理文本的核心组件,负责将原始输入文本转换为一系列的Token(分词结果)。对于中文,`Lucene.Net.Analysis.Cn.Standard.CJKStandardAnalyzer`是常用的选择,它包含...
jieba-lucene-analysis是将jieba分词库与Apache Lucene搜索引擎库相结合的项目,旨在为Lucene提供更适应中文处理的分析器和令牌生成器。这个项目的主要目的是解决在Lucene中对中文文本进行索引和搜索时的效率和准确...
本篇文章将深入探讨MMAnalyzer的使用以及与之相关的两个核心JAR包:`jeasy.analysis.MMAnalyzer`和`lucene-core-2.4.1.jar`。 首先,MMAnalyzer是JeasyAnalysis的一部分,JeasyAnalysis是一个轻量级的中文分析库,...
在 Lucene.NET 中,这些 DLL 文件可能包括 `Lucene.Net.dll`(基础库)、`Lucene.Net.Analysis.dll`(文本分析器)和其他扩展库,如`Lucene.Net.Highlighter.dll`(高亮显示搜索结果)等。 压缩包子文件的文件名称...
1. **Lucene.Net.Analysis.China.dll**:这是针对中文处理的分析器组件。在Lucene.Net中,分析器(Analyzer)是处理文本输入的关键部分,它负责将原始文本分解为搜索时使用的独立词项(Tokens)。对于中文来说,由于...
jieba的lucene分析器(Analyzer)扩展了Lucene的分析能力,它将jieba的分词结果转换为Lucene可理解的文档字段,这样在建立索引和执行查询时,中文文本可以被正确处理。这在构建基于Lucene的中文搜索引擎或者信息检索...
Lucene内置了多种分词器,如StandardAnalyzer、SimpleAnalyzer等,也可自定义。 5. 查询解析器(QueryParser):将用户的查询字符串转换为内部表示,用于与索引进行匹配。 6. 搜索器(Searcher):执行搜索操作,...
pinyinAnalyzer是Lucene的一个分析器,它利用了Pinyin4j的功能,能够将输入的中文文本分词并转化为拼音形式,以便于Lucene这样的全文搜索引擎进行索引和查询。而lucene-analyzers则是Lucene的一系列分析器集合,包含...
本文将深入探讨如何将 Elasticsearch Analysis IK 插件应用于 Elasticsearch 中,以实现对中文文本的高效、精准分析。 **一、IK Analyzer 简介** IK Analyzer 是由国人开发的一款针对中文的 Lucene 分词器,其设计...