文档章节

IKAnalyzer分词

白志华
 白志华
发布于 2015/12/30 15:45
字数 533
阅读 582
收藏 2

一、IKAnalyzer介绍

    IK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。

IK Analyzer 2012特性:

    采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式;

    在系统环境:Core2 i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力。

    2012版本的智能分词模式支持简单的分词排歧义处理和数量词合并输出。

    采用了多子处理器分析模式,支持:英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符

    优化的词典存储,更小的内存占用。支持用户词典扩展定义。特别的,在2012版本,词典支持中文,英文,数字混合词语。

    IKAnalyzer 同时还有一个非官方的 .NET 版本 —— IKAnalyzer.NET


二、使用说明

分词停止词词典及数据库相关词典:


例子1:

public class IKAnalyzer {
    
    /**
     * 
     * @param text
     * @param type    true: 智能分词        false: 细粒度分词
     * @return words
     * @throws IOException
     */
    public static Map<String, String> iKAnalyzer(String text, boolean type) throws IOException{
        Map<String, String> words = new HashMap<String, String>();
        StringReader sr = new StringReader(text);
        IKSegmenter ik = new IKSegmenter(sr, type);
        Lexeme lex = null;
        while ((lex = ik.next()) != null) {
            words.put(lex.getLexemeText(), lex.getLexemeText());
        }
        return words;
    }
}

IKAnalyzer用于Lucene5的文件:

IKAnalyzer最新版用于Lucene5的文件,不需要修改源代码。
在使用Lucene5时原有Analyzer analyzer = new IKAnalyzer();的地方代替换为Analyzer analyzer = new IKAnalyzer5x();




© 著作权归作者所有

白志华
粉丝 34
博文 265
码字总数 57524
作品 0
长沙
程序员
私信 提问
Lucene 自定义分词

各位大神,帮菜鸟看个问题! 使用Lucene3.5版本以及 IKAnalyzer 分词, 在对IP字段(192.168.2.240)分词时,结果为 : 192.168.2.240;其他表字段同样采用IKAnalyzer 分词; 我的问题是:如何...

learn_more
2015/05/13
261
3
IKAnalyzer中文分词器

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

期待变强的菜鸟
2014/09/10
2.4K
0
Lucene的中文分词器IKAnalyzer

分词器对英文的支持是非常好的。 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好。 国人林良益写...

王国龙_成长
2013/02/05
1K
3
IKAnalyzer的分词结果有误

@林良益 你好,想跟你请教个问题: 下面这个程序,使用IKanalyzer进行分词,“你好啊”像这样的“X好啊”形式的词都会出现把X删掉,只出现“好啊”,如下面: 我觉得,分词的话应该不能删减原...

天际流云
2014/11/27
678
2
solr搜索之demo和集成IKAnalyzer(二)

1 新建demo-solr 关闭运行的solr应用。 进入solr目录:D:solr-4.10.2example 1、在example目录下创建demo-solr文件夹; 2、将./solr下的solr.xml拷贝到demo-solr目录下; 3、在demo-solr下创...

技术小阿哥
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos 查看删除旧内核

1、查看系统中安装的内核 $ yum list installed | grep kernel 2、删除系统中旧内核 $ yum install yum-utils$ package-cleanup --oldkernels --count=2...

编程老陆
32分钟前
7
0
ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部