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改变了
集成步骤:
- 找到 ikAnalyzer包提供的Lucene支持类,比较IKAnalyzer的createComponets方法。
- 照这两个类,创建新版本的类,类里面的代码直接复制,修改参数即可。
IKAnalyzer提供两种分词模式:细粒度分词和只能分词,看它的构造参数。
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、编辑该文件加入停用词,一行一个
扩展IKAnalyzer的词典:
每年都有很多的新词产生,往分词器的词典中添加新词的步骤:
1、在类目录下IK的配置文件:IKAnalyzer.cfg.xml 中增加配置扩展词文件的节点:
<entry key="ext_dict">ext.dic</entry>
如有多个,以“;”间隔
2、在类目录下创建扩展词文件 ext.dic
3、编辑该文件加入新词,一行一个
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的格式。