IKAnalyzer分词样例
一、简介
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、运行结果
- 不使用配置
关于|爱情|的话|话题|我|一直在|一直|等你|并且|我|终于|等到|到了|你|
- 使用配置
关于爱情|关于|爱情|的话|话题|一直在|一直|等你|并且|终于|等到了你|等到|到了|