`
yu120
  • 浏览: 80257 次
社区版块
存档分类
最新评论

IKAnalyzer中文进行分词

阅读更多
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.highlight.*;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;
import org.wltea.analyzer.lucene.IKAnalyzer;
 
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 搜索工具类
 * User: Winter Lau
 * Date: 13-1-10
 * Time: 上午11:54
 */
public class SearchHelper {
 
    private final static Log log = LogFactory.getLog(SearchHelper.class);
    private final static IKAnalyzer analyzer = new IKAnalyzer();
 
    private final static List<String> nowords = new ArrayList<String>(){{//可用可不用
        try{
            addAll(IOUtils.readLines(SearchHelper.class.getResourceAsStream("/stopword.dic")));
        }catch(IOException e){
            log.error("Unabled to read stopword file", e);
        }
    }};
 
    /**
     * 关键字切分
     * @param sentence 要分词的句子
     * @return 返回分词结果
     */
    public static List<String> splitKeywords(String sentence) {
 
        List<String> keys = new ArrayList<String>();
 
        if(StringUtils.isNotBlank(sentence))  {
            StringReader reader = new StringReader(sentence);
            IKSegmenter ikseg = new IKSegmenter(reader, true);
            try{
                do{
                    Lexeme me = ikseg.next();
                    if(me == null)
                        break;
                    String term = me.getLexemeText();
                    if(StringUtils.isNumeric(StringUtils.remove(term,'.')))
                        continue;
                    if(nowords.contains(term.toLowerCase()))
                        continue;
                    keys.add(term);
                }while(true);
            }catch(IOException e){
                log.error("Unable to split keywords", e);
            }
        }
 
        return keys;
    }
 
}

 

protected static void test_split(){
    String text = "开源中国 www.oschina.net 成立于2008年8月,是目前中国最大的开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。";
    long ct = System.currentTimeMillis();
    for(String word : SearchHelper.splitKeywords(text)){
        System.out.println(word);
    }
    System.out.printf("TIME %d\n", (System.currentTimeMillis() - ct));
}

 

分享到:
评论

相关推荐

    IKAnalyzer中文分词计算句子相似度

    IKAnalyzer中文分词,计算句子相似度

    IKAnalyzer中文分词.rar

    IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。 如果使用中文分词器ik-analyzer,就需要在索引和搜索程序中使用一致的...

    Lucene的IK Analyzer 3.0 中文分词器 全解

    Lucene IK Analyzer 3.0 Lucene的IK Analyzer 3.0 中文分词器 Lucene IK Analyzer 3.0 Lucene的IK Analyzer 3.0 中文分词器Lucene IK Analyzer 3.0 Lucene的IK Analyzer 3.0 中文分词器

    使用IK Analyzer实现中文分词之Java实现(包含所有工具包)

    1、lucene-core-3.6.0.jar 2、IKAnalyzer2012.jar(主jar包) 3、IKAnalyzer.cfg.xml(分词器扩展配置文件) 4、stopword.dic(停止词典) 5、IkSegmentation.java(样例类)

    IKAnalyzer 中文分词 完整java项目demo

    IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。 这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可

    IKAnalyzer中文分词器

    IKAnalyzer中文分词器,里面包含jar包和使用手册

    使用IK Analyzer实现中文分词之Java实现

    从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 从 3.0 版本开始,IK 发展为面向 Java 的公用分词...

    IK Analyzer 3.2.8中文分词器

    1. 《IKAnalyzer中文分词器V3.X使用手册》 2. IKAnalyzer3.X.jar(主jar包) 3. IKAnalyzer.cfg.xml(分词器扩展配置文件) 4. ext_stopword.dic(扩展的stopword词典,3.2以上版本提供) 它的安装部署十分简单,...

    IKAnalyzer中文分词器 java

    IKAnalyzer中文分词器,里面包含jar包,html文档,pdf文档以及源码

    IKAnalyzer中文分词器V3.1.1使用手册

    IKAnalyzer中文分词器V3.1.1使用手册 IKAnalyzer中文分词器V3.1.1使用手册

    Java IKAnalyzer 中文分词器

    IK-Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,也就是可以将一串中文字符分割成一个个的词组或者字词 文件中包含分词工具 ikanalyzer-2012_u6.jar 中文分词配置 IKAnalyzer.cfg..xml

    IKAnalyzer 3.0 中文分词器

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer 已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文...

    IKAnalyzer2012_u6中文分词器jar包

    IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包

    IkAnalyzer分词工具

    IkAnalyzer3.2的jar包 IK Analyzer 是一个开源的,基于java 语言开发的轻量级的中文分词工具包。从2006 年12 月推出1.0 版开始, IKAnalyzer 已经推出了3 个大版本。最初,它是以开源项目 Luence 为应用主体的,结合...

    IKAnalyzer中文分词器支持Lucene6.0以上

    提示:IKAnalyzer中文分词器支持Lucene6.0以上,IKAnalyzer中文分词器支持Lucene6.0以上。

    IKAnalyzer中文分词器V3.2使用

    IKAnalyzer 中文分词器V3.2使用手册 lucene

    java IKAnalyzer 中文分词器

    IK Analyzer 安装包 它的安装部署十分简单,将IKAnalyzer3.oGA.jar 部署于项目的lib目录中;

    IK Analyzer 开源中文分词 2012 u6.zip

    从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于...

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    此为solr8的ikanalyzer中文分词包

Global site tag (gtag.js) - Google Analytics