本文介绍如何使用IKanalyzer进行中文分词
1.软件准备
下载地址:https://code.google.com/p/ik-analyzer/downloads/list,此处采用IKanalyzer 2012 u6
2.解压,可能用到文件包括一个配置文件,jar包和停用此表
3.使用说明
此处说明为简单分词使用,iK支持lucene分词接口,其用法参见下载文件中的使用手册。
首先导入jar包,示例代码如下:
public static void main(String[] args) {
try {
// TODO Auto-generated method stub
String string = "长春市长春药店";
StringReader stringReader = new StringReader(string);
IKSegmenter ikSegmenter = new IKSegmenter(stringReader, true);//最后一个参数控制是否消除歧义,true为消除歧义
Lexeme lexeme = new Lexeme(0, 0, 0, 0);
while ((lexeme = ikSegmenter.next())!=null) {
System.out.println(lexeme.getLexemeText());//还可提供起止位置,来自词典等信息
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
4.导入自定义词典
下载文件中包含配置文件和一个停用词典,下面介绍如何使用自定义词典。
将配置文件和词典共同置于代码根目录下,和项目的class文件放在同一个目录中,具体视项目的属性而定(是否为web项目),一般而言,java project的class文件在bin目录中,web项目在web-inf/classes目录中。
配置文件为,修改参见注释
<?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">stopword.dic;</entry>
</properties>
5.输出
成功调用,合理分词
6.总结
较ICTCLAS而言,IK缺乏词性,但相当的轻量级。