欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-21 22:43:04
...

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中文分词器的使用

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

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