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();
}
}
}
分享到:
相关推荐
分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...
用java实现的,利用了lucene里面的standardAnalyzer分析器实现的分词,可以去停用词,再利用波特算法实现 词干提取 最后排序 和词频统计输出
**Lucene分词与查询详解** Lucene是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发中。它提供了一套强大的API,用于索引文本数据,并执行复杂的查询操作。在深入理解Lucene的分词与查询机制之前,我们...
《Lucene分词搜索、增量索引与全量索引详解》 在现代信息检索系统中,搜索引擎扮演着至关重要的角色。Apache Lucene是一个高性能、全文本搜索库,被广泛应用于构建复杂的数据检索应用。本文将深入探讨Lucene的分词...
传统的Lucene使用标准分词器(StandardAnalyzer),它主要依据词频数据库来分词,但对于专业领域或者特定需求,这种方法可能不够准确或全面。 ThesaurusAnalyzer的创新之处在于它利用了一个词库(wordlist.txt),...
《Lucene分词测试工程详解》 在信息技术领域,搜索引擎的构建是不可或缺的一部分,而Lucene作为Java领域内的搜索引擎库,扮演着至关重要的角色。本文将深入探讨一个以"lucene的分词的测试工程"为主题的项目,涵盖...
分词(lucene.Net提供StandardAnalyzer一元分词,按照单个字进行分词,一个汉字一个词) 盘古分词 基于词库的分词,可以维护词库 首先我们新增的SearchHelper类需要将其做成一个单例,使用单例是因为:有许多地方需要...
Lucene作为一款强大的全文检索库,虽然内置了StandardAnalyzer,但其对中文分词的支持并不完全满足所有应用需求。因此,开发者们开发了一系列专门针对中文分词的Analyzer,以提升搜索效率和准确度。以下是对几种常见...
默认的`StandardAnalyzer`可以处理大多数情况,但也可以根据需求使用自定义的分析器。索引过程会将每个文档分割成单独的术语,并在倒排索引中存储这些术语的位置和频率信息。 4. **词频计算**: 一旦索引建立完成...
- **选择合适的分词器**:Lucene提供了多种分词器,如`StandardAnalyzer`、`WhitespaceAnalyzer`等。对于中文分词,通常会选择`IKAnalyzer`或者自定义的分词器。 - **集成Lucene分析器**:在Struts应用中,可以通过...
lucene::analysis::standard::StandardAnalyzer an; if (!clearIndex && IndexReader::indexExists(target)) { if (IndexReader::isLocked(target)) { printf("Index was locked unlocking it.\n"); ...
**Lucene 中文分词** Lucene 是一个开源的全文检索库,由Apache软件基金会开发,用Java编写。在处理中文文档时,由于中文的特殊性,需要进行分词处理,才能有效地进行全文检索。这个小案例展示了如何在Lucene中...
在给定的代码示例中,展示了如何使用 Lucene 的 StandardAnalyzer 分析器来查看其分词效果。StandardAnalyzer 是 Lucene 提供的默认分析器,适用于英文文本,对于中文来说,它可能无法正确处理。在测试类中,我们...
4. **分词**:Lucene.NET的StandardAnalyzer或者自定义Analyzer会根据设定的规则将输入文本分解成一系列的词语。对于中文,Analyzer需要考虑词语的组合和语义,这通常涉及到词典和词性标注。 5. **查询和搜索**:...
压缩包子文件的文件名称“Lucene分词技术”暗示了其中可能包含关于如何使用 Lucene 进行分词的文档或示例。分词是 Lucene 搜索过程中的关键步骤,它将输入的查询和文档内容分解为单独的词语(或称为“术语”)。...
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自带的标准分词器(StandardAnalyzer),它对英文文本进行了诸如词干提取和停用词过滤等处理,提高了搜索精度。 标准分词器(StandardAnalyzer)是Lucene提供的一种通用...
Lucene内置了多种分词器,如StandardAnalyzer、SimpleAnalyzer等,也可自定义。 5. 查询解析器(QueryParser):将用户的查询字符串转换为内部表示,用于与索引进行匹配。 6. 搜索器(Searcher):执行搜索操作,...
然后,我们使用`StandardAnalyzer`对文档进行分词,分词是将文档分割成单个词项的过程。最后,我们使用`IndexWriter`类将索引写入到磁盘上。 Lucene索引结构 Lucene索引结构主要由三个部分组成:索引文件、词典和...
Java中的`Analyzer`类扮演了这个角色,可以根据不同的需求定制分词规则。 2. **文档字段(Document Fields)**:每个文档都是由一个或多个字段组成的,比如标题、内容等。`Document`类用于表示这些字段及其值。 3....