IKAnalyzer中文分词器的使用
IK-Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,也就是可以将一串中文字符分割成一个个的词组或者字词
- 安装
修改pom文件
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
- 使用测试
StringReader sr = new StringReader("每个人都要走一条自己坚定了的路,就算是粉身碎骨。 ");
IKSegmenter ik = new IKSegmenter(sr,true);
Lexeme lex = null;
while ((lex=ik.next())!=null){
System.out.print(lex.getLexemeText()+" ");
}
- 配置暂停词和字典,暂停词也就是忽略词,字典也就是自定义组合词
以下三个文件都在src目录下配置
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">test.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典 -->
<entry key="ext_stopwords">teststop.dic;</entry>
</properties>
自己在俩个字典里面添加词组即可
-
注意点:
1、停用词词典必须是UTF-8编码。
2、这里非常多跟我一样的新手没办法成功的原因就是被无bom的UTF-8格式给折磨的,IK作者自己也这样说了
3、假设你不知道啥叫无BOM,也不确定自己的文件是不是UTF-8无bom,那么请在第一行使用回车换行,从第二行開始加入停止词
4、该配置文件以及停用词词典均存放在src文件夹以下就可以。 -
我在test.dic里输入
teststop.dic输入
-
运行
加了字典的
没加字典的
发现都要走三个字合起来了,的 路俩个字忽略了