当前的中文分析器大致的有以下几个
1、IK Analyzer
基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
下载地址:http://code.google.com/p/ik-analyzer/
有操作文档,开发版本更新较快
2、mmseg4j
(1)、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。
(2)、MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。
下载地址:http://code.google.com/p/mmseg4j/
没有操作文档,开发版本更新较快
3、paoding
采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析
下载地址:http://code.google.com/p/paoding/
没有操作文档,开发活跃度比较低
4、imdict
imdict智能词典所采用的智能中文分词程序
没有操作文档,开发活跃度比较低
public class ChineseAnalyerDemo {
/**standardAnalyer分析器 ,Lucene内置中文分析器*/
public void standardAnalyer(String msg){
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
this.getTokens(analyzer, msg);
}
/**IK Analyzer分析器*/
public void iKanalyer(String msg){
IKAnalyzer analyzer = new IKAnalyzer(true);//当为true时,分词器进行最大词长切分
//IKAnalyzer analyzer = new IKAnalyzer();
this.getTokens(analyzer, msg);
}
private void getTokens(Analyzer analyzer,String msg){
TokenStream tokenStream=analyzer.tokenStream("content", new StringReader(msg));
try {
tokenStream.reset();
this.printTokens(analyzer.getClass().getSimpleName(),tokenStream);
tokenStream.end();
} catch (IOException e) {
e.printStackTrace();
}
}
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 TestChineseAnalyizer {
private ChineseAnalyerDemo demo = null;
private String msg = "我喜欢你,我的祖国!china 中国,I love you!";
//private String msg = "I love you, China!B2C";
@Before
public void setUp() throws Exception {
demo=new ChineseAnalyerDemo();
}
@Test
public void testStandardAnalyer(){
demo.standardAnalyer(msg);
}
@Test
public void testIkAnalyzer(){
demo.iKanalyer(msg);
}
}
输出结果:
StandardAnalyzer->[我],[喜],[欢],[你],[我],[的],[祖],[国],[china],[中],[国],[i],[love],[you],[中],[华],[人],[民],[共],[和],[国]
IKAnalyzer->[我],[喜欢],[你],[我],[的],[祖国],[china],[中国],[i],[love],[you],[中华人民共和国]
分享到:
相关推荐
3. **项分析**:词元通过分析器(Analyzer)进行标准化,如去除停用词、词形还原等。 4. **索引构建**:分析后的词元和字段信息被写入段,形成索引。 5. **段合并**:当多个段生成后,可以合并成更大的段,以优化...
### Lucene开源的全文检索框架 #### 知识点一:Lucene的定义与特性 - **定义**:Lucene是Apache软件基金会Jakarta项目组下的一个子项目,它是一款用Java编写的开源全文检索引擎工具包。需要注意的是,Lucene本身并...
总的来说,Lucene.NET在中文分词和高亮显示方面的应用需要结合合适的分词器,并进行适当的配置和优化。开发者可以根据实际需求选择适合的分词器,并通过集成和调优提高系统的搜索效率和用户体验。
**Lucene索引数据分析器** Lucene是一款强大的开源全文搜索引擎库,由Apache软件基金会开发,广泛应用于各种数据检索系统。它的核心功能在于高效地构建、管理和搜索文本索引,为开发者提供快速的数据查询能力。本篇...
IK(Intelligent Chinese)分词器就是针对这一需求而设计的,它是Java开发的开源中文分词组件,特别适合于Lucene等全文检索引擎。 本实例基于Lucene 3.5版本,结合IK中文分词器,演示了如何从网页抓取数据,进行...
Lucene的架构主要包括以下几个部分:Analyzer(分析器)、Document(文档)、Field(字段)、IndexWriter(索引写入器)、IndexReader(索引读取器)、IndexSearcher(索引搜索器)和QueryParser(查询解析器)等。...
5. Analyzer:文本分析器,处理分词和标准化。 6. QueryParser:解析用户查询,生成Query对象。 五、高级特性 1. 分词器插件:允许自定义分词策略,适应不同领域的语料。 2. 基于位置的搜索:支持短语查询和近似...
Lucene提供了多种预定义的分析器,如StandardAnalyzer,同时也允许自定义分析器以满足特定的语言或领域需求。 3. **查询解析**:用户输入的查询字符串经过查询解析器转换成可以执行的查询对象。Lucene支持丰富的...
使用Lucene进行分词时,你需要选择合适的分析器,如对于中文,可以使用`ChineseAnalyzer`,然后创建索引并执行查询。分词是全文搜索的关键步骤,因为搜索引擎是通过分析和索引文档中的单词来进行匹配的。通过合理的...
Lucene 4.7.0包含了一系列的分析器,如标准分析器(StandardAnalyzer)、关键词分析器(KeywordAnalyzer)等。分析器的选择会直接影响到搜索效果,因此在实际应用中,开发者需要根据具体需求选择合适的分析器。 三...
"中文分词器"在这里指的可能是 "je-analysis-1.5.1.jar",这是一个专门针对中文的分析工具,用于将中文文本分解成有意义的词汇(词)。Je-Analysis 可能是基于 Java 实现的,适用于 Lucene 和 Solr 等搜索引擎,它...
在Lucene.NET中,你可以自定义分析器以适应特定的搜索需求。 搜索部分,Lucene.NET支持各种类型的查询,如布尔查询、短语查询、模糊查询、范围查询等。用户可以通过QueryParser构建复杂的查询表达式,并通过...
Java_IK分析插件是为Elasticsearch和OpenSearch设计的一款强大的中文分词插件,其核心是基于Apache Lucene的IK(Intelligent Chinese)分析器。IK分析器旨在提高中文文本在搜索引擎中的检索效果,它能有效地进行中文...
这通常包括设置分词器、分析器和索引编写器。 3. **查询索引**:编写查询接口,解析用户输入,生成 Lucene 查询对象,然后执行搜索,获取搜索结果。 4. **展示结果**:根据搜索结果,高亮显示匹配的关键词,并呈现...
《Lucene原理与代码分析》深入探讨了Lucene——一款高性能、全功能的文本搜索引擎库——的核心机制与实现细节。本书不仅提供了理论上的全面解析,还辅以丰富的代码实例,帮助读者从源码层面理解Lucene的工作流程。...
《Lucene.NET中文分词器:深入解析与实践》 Lucene.NET是一个开源全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个强大的信息检索工具,Lucene.NET广泛应用于搜索引擎开发、文档检索系统等领域。...
jieba-lucene-analysis是将jieba分词库与Apache Lucene搜索引擎库相结合的项目,旨在为Lucene提供更适应中文处理的分析器和令牌生成器。这个项目的主要目的是解决在Lucene中对中文文本进行索引和搜索时的效率和准确...
1. **Lucene.Net.Analysis.China.dll**:这是针对中文处理的分析器组件。在Lucene.Net中,分析器(Analyzer)是处理文本输入的关键部分,它负责将原始文本分解为搜索时使用的独立词项(Tokens)。对于中文来说,由于...
在3.4版本中,Lucene提供了多种内置分析器,如标准分析器、简体中文分析器、英文分析器等,适应不同的语言特性和搜索需求。 3. **Lucene Highlighter 3.4.0**: `lucene-highlighter-3.4.0.jar`是高亮显示模块,用于...