`
qpshenggui
  • 浏览: 14155 次
  • 性别: Icon_minigender_1
  • 来自: 襄阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

paoding Lucene中文分词Paoding Analysis

阅读更多

 

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;
    }

1
2
分享到:
评论

相关推荐

    paoding analysis 3.0.1 jar (庖丁解牛分词器)

    由于庖丁官方目前提供可下载尚不支持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中文分词(庖丁解牛)庖丁分词

    支持中文的庖丁解牛,庖丁分词,找了好久才找到的希望对你有帮助。

    适用于lucene..5的庖丁解牛分词器

    可以适用于lucene3.5的庖丁解牛分词器jar包

    paoding-analysis-4.4.0.jar

    paoding-analysis-4.4.0.jar 庖丁分词jar,支持lucene4.4.0及solr4.4.0版本。

    lucene3庖丁解牛中文分词器

    支持lucene3的庖丁解牛分词器和字典,可直接调用

    paoding-analysis.jar

    paoding-analysis 庖丁分词 paoding-analysis.jar java开源中文分词jar包

    lucene 中文分词 庖丁解牛

    庖丁解牛(很好的分词效率) 在做站内全文检索时创建索引时比较快,而且感觉效果比JE要好一些。。

    中文分词器Paoding(庖丁)

    很好用的中文分词器,能很好的与搜索引擎框架整合,此jar兼容支持Lucene3.0以上版本。

    支持lucene3.4的paoding

    资源为庖丁解牛分词法的最新源码以及生成的jar包,支持最新的Lucene3.4以及Lucene3.0以上版本。Jar包为本地生成

    lucene3.0 分词器

    lucene3.0 中文分词器, 庖丁解牛

    庖丁解牛分词 java包

    庖丁解牛分词 java包庖丁解牛分词 java包庖丁解牛分词 java包庖丁解牛分词 java包庖丁解牛分词 java包庖丁解牛分词 java包庖丁解牛分词 java包

    Lucene建立索引jar包和Paoding分词jar包

    Lucene建立索引jar包和Paoding庖丁分词jar包,Lucene结合Paoding庖丁分词创建索引索引jar包汇总

    庖丁解牛分词源码

    庖丁解牛分词器源码,包含源码与对应项目,可以用eclipse打开编译

    庖丁解牛分词之自定义词库、庖丁解牛配置

    庖丁解牛分词之自定义词库、庖丁解牛配置,java搜索分词

    与lucene3.0兼容的庖丁jar包

    lucene升级了,分词也得升级哦! 在使用lucene3与paoding集成的时候可能会出现以下错误: Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z ...

    paoding(庖丁解牛)

    庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。Paoding填补了国内中文分词方面开源组件的空白,本书介绍了在nutch上配置paoding

    庖丁分词.jar

    庖丁分词.jar 庖丁分词.jar 庖丁分词.jar 庖丁分词.jar

    Lucene使用

    庖丁分词 使用 paoding-analysis-2.0.4-beta.zip 版时异常 Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z 换用svn里源码版正常 ...

    paoding-analysis3.0

    庖丁解牛中文分词器,只要配置好字典的路径,就可以使用庖丁解牛,可以有效针对中文进行分词,而且可以自定义词典。适用于lucene-core-3.3.0.jar,包内已经包含lucene-core-3.3.0.jar,已测试,包好用!

Global site tag (gtag.js) - Google Analytics