一、简介

1、简介

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,它基于lucene实现。

2、词典

  • 扩展词典

扩展词典中的词在分词时可以不被切分开来,保持完整的词。

  • 停止词典

停止词典中的词在分词时会直接从结果中删除。

3、配置

src/main/resource目录下新建IKAnalyzer的配置文件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_mydict.dic</entry> 
	
	<!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">/ext_stopword.dic</entry> 
	
</properties>

词典文件可以配置多个,使用;分隔。

二、安装

1、安装到本地仓库

下载或克隆IKAnalyzer后,在IKAnalyzer项目根目录下执行:

mvn install -Dmaven.test.skip=true

2、配置pom.xml

pom.xml中添加依赖:

<dependency>
	<groupId>org.apache.lucene</groupId>
	<artifactId>lucene-core</artifactId>
	<version>3.3.0</version>
	<optional>true</optional>
</dependency>

<dependency>
	<groupId>org.wltea.ik-analyzer</groupId>
	<artifactId>ik-analyzer</artifactId>
	<version>3.2.8</version>
</dependency>

三、样例

1、配置文件

配置文件与词典文件均位于src/main/resource目录下:

  • IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
	<entry key="ext_dict">/ext_mydict.dic</entry> 	
	<entry key="ext_stopwords">/ext_stopword.dic</entry> 
</properties>
  • ext_mydict.dic

等到了你
关于爱情
  • ext_stopword.dic

了
我

2、Java代码

String sentence = "关于爱情的话题:我一直在等你,并且我终于等到了你。";
    	
try(IKAnalyzer analyzer = new IKAnalyzer()){
	
	StringBuilder text = new StringBuilder();
	StringReader reader = new StringReader(sentence);
	
	TokenStream tokenStream = analyzer.tokenStream("", reader);
	CharTermAttribute charTerm = tokenStream.getAttribute(CharTermAttribute.class);
	
	tokenStream.reset();
	while (tokenStream.incrementToken()) {
		text.append(charTerm.toString()).append("|");
	}
	tokenStream.close();
	reader.close();
	
	System.out.println(text);
}

3、运行结果

  • 不使用配置
关于|爱情|的话|话题|我|一直在|一直|等你|并且|我|终于|等到|到了|你|
  • 使用配置
关于爱情|关于|爱情|的话|话题|一直在|一直|等你|并且|终于|等到了你|等到|到了|
参考资料

ik-analyzer

大数据工具:IKAnalyzer分词工具介绍与使用

中文分词器 ~ IK Analyzer

11大Java开源中文分词器的使用方法和分词效果对比