IK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
本文完整描述一个helloworld级别的IK Analyzer中文分词程序,使用独立于Luence的方法,不结合Lucene(不使用lucene-core-3.6.0.jar),而是仅仅单独的使用IKAnalyzer,可以直接使用IK分词器的核心类,真正分词的实现类IKSegmenter分词器进行分词.
1. 官网下载 ik-analyzer最新完整分发包。https://code.google.com/p/ik-analyzer/downloads/list
2. 下载解压后。
3. 新建java工程(text_processing),将上述解压后的文件夹中IKAnalyzer.cfg.xml和stopword.dic放到src目录下(classpath指定目录下,对于stopword.dic和ext.dic的放置位置也可以变动,但必须与IKAnalyzer.cfg.xml中配置相一致),然后将IKAnalyzer2012_u6.jar加入外部JAR路径。
4. “helloworld”代码
package cutword;
import java.io.IOException;
import java.io.StringReader;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;
public class IKAnalyzer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 单独使用
// 检索内容
String text = "IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目 Lucene 为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 ";
// 创建分词对象
StringReader reader = new StringReader(text);
IKSegmenter ik = new IKSegmenter(reader,true);// 当为true时,分词器进行最大词长切分
Lexeme lexeme = null;
try {
while((lexeme = ik.next())!=null)
System.out.println(lexeme.getLexemeText());
} catch (IOException e) {
e.printStackTrace();
} finally{
reader.close();
}
}
}
5. 分词效果
加载扩展停止词典:stopword.dic
ikanalyzer
是
一个
开源
的
基于
java
语言
开发
的
轻量级
的
中文
分词
工具包
从
2006年
12月
推出
1.0版
开始
ikanalyzer
已经
推出
了
3个
大
版本
最初
它
是以
开源
项目
lucene
为
应用
主体
的
结合
词典
分词
和
文法
分析
算法
的
中文
分词
组件
新版本
的
ikanalyzer3.0
则
发展为
面向
java
的
公用
分词
组件
独
立于
lucene
项目
同时
提供
了
对
lucene
的
默认
优化
实现