IKAnalyzer集成

IKAnalyzer 开源、轻量级的中文分词器,应用广

最想是作为lucene上使用而开发,后来发展为独立的分词组件。只提供到Lucene4.0版本的支持。我们4.0以后版本Lucene中使用就需要简单的集成一下。

<!-- ikanalyzer 中文分词器  -->
<dependency>
    <groupId>com.janeluo</groupId>
    <artifactId>ikanalyzer</artifactId>
    <version>2012_u6</version>
    <exclusions>
    <exclusion>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-core</artifactId>
    </exclusion>
    <exclusion>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-queryparser</artifactId>
    </exclusion>
    <exclusion>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-analyzers-common</artifactId>
    </exclusion>
    </exclusions>
</dependency>

<!--  lucene-queryparser 查询分析器模块 -->
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-queryparser</artifactId>
    <version>7.3.0</version>
</dependency>

  • 需要做集成,是因为Analyzer的createComponents方法API改变了

集成步骤:

IK类

  1. 找到 ikAnalyzer包提供的Lucene支持类,比较IKAnalyzer的createComponets方法。
  2. 照这两个类,创建新版本的类,类里面的代码直接复制,修改参数即可。

IKAnalyzer提供两种分词模式:细粒度分词和只能分词,看它的构造参数。

代码github地址

IKAnalyzer 的停用词

Ik中默认的停用词很少,我们往往需要扩展它。可从网址: https://github.com/cseryp/stopwords 下载一份比较全的停用词。

文件配置

IK中停用词的扩展步骤:
1、在类目录下创建IK的配置文件:IKAnalyzer.cfg.xml
2、在配置文件中增加配置扩展停用词文件的节点:

<entry key=“ext_stopwords”>my_ext_stopword.dic</entry>  
如有多个,以“;”间隔。

3、在类目录下创建我们的扩展停用词文件 my_ext_stopword.dic
4、编辑该文件加入停用词,一行一个


my_ext_stopword.dic

扩展IKAnalyzer的词典:
每年都有很多的新词产生,往分词器的词典中添加新词的步骤:
1、在类目录下IK的配置文件:IKAnalyzer.cfg.xml 中增加配置扩展词文件的节点:

<entry key="ext_dict">ext.dic</entry>
如有多个,以“;”间隔

2、在类目录下创建扩展词文件 ext.dic
3、编辑该文件加入新词,一行一个


ext.dic

代码github地址

IKAnalyzer.cfg.xml 文件实例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">ext.dic</entry> 
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">my_ext_stopword.dic</entry>
</properties>

注意配置文件必须为UTF-8的格式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,335评论 1 25
  • 现有的分词工具总结 IKAnalyzer IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词...
    Dorann阅读 496评论 0 1
  • 凌晨4点起床为了赶7点航班,但纠结我的不是早起,其实迫不及待就起床了,习惯了窗外一片漆黑,但要错过瑜伽是我不舒服的...
    徐林Grace阅读 1,287评论 11 21
  • 每一次毕业,是一个结束,也是新的开始!从初中毕业开始,我的那些同学,有的继续读书,有的去了职业技术学院。高中毕业的...
    言卿卿卿阅读 399评论 4 1