IKAnalyzer中文分词(入门,持续更新中)

来源:互联网 发布:mac支持flash的浏览器 编辑:程序博客网 时间:2024/06/05 07:37

     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

默认
优化
实现


0 0