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()+" ");
            }

【IKAnalyzer】IKAnalyzer中文分词器的使用_jar

  • 配置暂停词和字典,暂停词也就是忽略词,字典也就是自定义组合词
    以下三个文件都在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里输入
    【IKAnalyzer】IKAnalyzer中文分词器的使用_自定义_02
    teststop.dic输入
    【IKAnalyzer】IKAnalyzer中文分词器的使用_中文分词_03

  • 运行
    加了字典的
    【IKAnalyzer】IKAnalyzer中文分词器的使用_中文分词_04
    没加字典的
    【IKAnalyzer】IKAnalyzer中文分词器的使用_jar
    发现都要走三个字合起来了,的 路俩个字忽略了