Paoding Analysis摘要
Paoding's Knives
中文分词具有极 高效率
和 高扩展性
。引入隐喻,采用完全的面向对象设计,构思先进。
高效率:在PIII 1G内存个人机器上,1秒
可准确分词 100万
汉字。
采用基于 不限制个数
的词典文件对文章进行有效切分,使能够将对词汇分类定义。
能够对未知的词汇进行合理解析
2010-01-20 庖丁 Lucene 3.0 升级说明
(代码已提交svn,下载包稍后稍推迟下)
这次升级的主要目的是支持Lucene 3.0,具体改动如下:
(1)支持Lucene 3.0,对Lucene 3.0以下的版本,请使用 http://paoding.googlecode.com/svn/branches/paoding-for-lucene-2.4/
中的代码编译。
(2)使用Java 5.0编译,不再支持Java 1.4,以后的新功能将会在Java 5上开发。
(3)PaodingAnalyzer的调用接口没有改动,但在使用上需要适应Lucene 3.0的API,分词示例如下:
//生成analyzer实例 Analyzer analyzer = new PaodingAnalyzer(properties);
//取得Token流 TokenStream stream = analyzer.tokenStream("", reader);
//重置到流的开始位置 stream.reset();
//添加工具类 TermAttribute termAtt = (TermAttribute)
stream.addAttribute(TermAttribute.class); OffsetAttribute offAtt =
(OffsetAttribute) stream.addAttribute(OffsetAttribute.class);
//循环打印所有分词及其位置 while (stream.incrementToken()) {
System.out.println(termAtt.term() + " " + offAtt.startOffset() + " "
+ offAtt.endOffset());
}
具体使用方法可以参见net.paoding.analysis.analyzer.estimate以及net.paoding.analysis.examples包下面的示例代码。
/*
*param 分词
*/
public List getname(String param) throws IOException{
//分词(庖丁解牛分词法)
Analyzer ika = new PaodingAnalyzer();
List<String> keys = new ArrayList<String>();
TokenStream ts = null;
try{
Reader r = new StringReader(param);
ts = ika.tokenStream("TestField", r);
TermAttribute termAtt = (TermAttribute) ts.getAttribute(TermAttribute.class);
TypeAttribute typeAtt = (TypeAttribute) ts.getAttribute(TypeAttribute.class);
String key = null;
while (ts.incrementToken()) {
if ("word".equals(typeAtt.type())) {
key = termAtt.term();
if (key.length() >= 2) {
keys.add(key);
}
}
}
}catch(IOException e){
e.printStackTrace();
} finally {
if (ts != null) {
ts.close();
}
}
Map<String, Integer> keyMap = new HashMap<String, Integer>();
Integer $ = null;
//计算每个词出现的次数
for (String key : keys) {
keyMap.put(key, ($ = keyMap.get(key)) == null ? 1 : $ + 1);
}
List<Map.Entry<String, Integer>> keyList = new
ArrayList<Map.Entry<String, Integer>>(keyMap.entrySet());
//进行排序
Collections.sort(keyList, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
//取出关键词
String id = null;
String str = "";
List list = new ArrayList();
if(keyList.size() >0){
for (int i = 0;i < keyList.size(); i++) {
id = keyList.get(i).toString();
String[] strs = id.split("\\=");
str = strs[0];
list.add(strs[0]);
System.out.println("id:"+id);
}
}
return list;
}
分享到:
相关推荐
由于庖丁官方目前提供可下载尚不支持Lucene 3.0以上版本。因此作者对paoding进行重新编译,使其与最新Lucene 3.0.1版本适用。 Latest paoding 3.0.1 for lucene 3.0.1 使用说明: 先下载2.0.4的版本(h t t p : / ...
《Lucene中文分词器——Paoding解牛详解》 在中文信息检索领域,分词是至关重要的一环,它能够将连续的汉字序列切割成具有独立意义的词语,为后续的索引和查询提供基础。Lucene作为Java最著名的全文搜索引擎库,其...
《深入理解Lucene 4.8.1与Paoding Analysis:中文分词技术解析》 在信息技术领域,中文分词是自然语言处理的关键步骤,它将连续的汉字序列分割成具有独立语义的词语,为后续的信息检索、文本分析等任务提供基础。本...
可以适用于lucene3.5的庖丁解牛分词器jar包
paoding-analysis-4.4.0.jar 庖丁分词jar,支持lucene4.4.0及solr4.4.0版本。
在Lucene中,我们可以通过集成paoding-analysis.jar来利用Paoding进行中文分词,提升索引质量和检索效果。 四、整合Lucene与Paoding 整合Lucene与Paoding的过程主要包括以下步骤: 1. 引入依赖:在项目中添加lucene...
- `paoding-analysis.jar`:这是庖丁分词的核心分析库,包含了分词算法和其他相关组件。 - `dic`:这是一个目录,很可能包含了庖丁分词的默认字典文件,这些字典用于指导分词过程,确定单词的边界。 综合以上信息,...
paoding可方便地与Lucene、Solr等全文检索引擎集成,提供高性能的中文分词服务。 总结来说,paoding分词是一个强大的中文分词工具,其高效、灵活的特性使得它在众多分词库中脱颖而出。通过理解其工作原理和熟练...
4. `paoding-analysis.jar`:这是核心的Java归档文件,包含了Paoding中文分词的代码和库,可以在Java环境中运行。 5. `dic`:可能是一个目录,存储了分词所需的词典文件,用于确定词汇及其边界。 6. `examples`:...
在压缩包中的`paoding-analysis`目录下,包含了庖丁分词的核心源代码。通过阅读源代码,你可以了解其内部工作原理,如分词算法、字典构建、动态策略等,这对于理解中文分词技术,以及自定义和优化分词规则非常有...
Paoding Analysis(庖丁分析)是由中国开发者开发的一个高效、灵活且功能强大的中文分词工具,它专门为 Lucene 设计,提供了对中文文本的智能分词、词性标注和关键词提取等功能。在 "paoding-analysis3.0_for_lucene...
lucene升级了,分词也得升级哦! 在使用lucene3与paoding集成的时候可能会出现以下错误: Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z ...
庖丁分词 使用 paoding-analysis-2.0.4-beta.zip 版时异常 Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z 换用svn里源码版正常 ...
在提供的压缩包文件"paoding-analysis"中,通常会包含分词器的源代码、库文件、配置文件以及相关的文档。源代码可以帮助开发者深入理解其内部工作原理,而库文件则可以直接在项目中引用以使用分词功能。配置文件可以...
庖丁解牛中文分词器,只要配置好字典的路径,就可以使用庖丁解牛,可以有效针对中文进行分词,而且可以自定义词典。适用于lucene-core-3.3.0.jar,包内已经包含lucene-core-3.3.0.jar,已测试,包好用!
pom中定义了依赖包org.apache.lucene的lucene-analyzers2.2.0,commons-logging的commons-logging1.0.4,target中的jar包即是编译后的文件。可以自己动手打包paoding.jar
在Lucene中,"庖丁解牛分词法"通过集成第三方分词库实现,如"paoding-analysis-2.0.4-alpha2",这是一个专门为Lucene定制的中文分词组件。这个版本的分词器具有以下特点: 1. **高效性能**:优化了算法,使其在处理...
Paoding's Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。 高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。 采用基于 不限制个数 的词典文件对文章进行...
- **Paoding’s Analysis(庖丁分词)**:具有极高的分词效率和良好的扩展性。它采用面向对象的设计思想,可以在高性能的情况下处理大量的文本数据。 - **IKAnalyzer**:采用了高效的正向迭代最细粒度切分算法,能够...