IKAnalyzer分词器自定义扩展字典设置不起作用

发布于 2021-11-25 04:19:44 字数 1618 浏览 1030 评论 10

public class TestIKAnalyzer2 {
	public static void main(String[] args) throws IOException {
		String text = "2012年欧洲杯四强赛";
		Analyzer analyzer = new IKAnalyzer(true);
		TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(text));
		CharTermAttribute term= tokenStream.addAttribute(CharTermAttribute.class);  
		tokenStream.reset();
        while(tokenStream.incrementToken()){  
            System.out.print(term.toString() + "/");  
        }  
        tokenStream.end();
        tokenStream.close();
	}
}

IKAnalyzer配置如下:

<?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">chinese_stopword.dic;english_stopword.dic</entry> 
</properties>



ext.dic是自定义扩展词库,我在里面添加了一项: 欧洲杯四强赛

希望IKAnalyzer能把它当作一个词,不要把它拆分,可是运行结果却是:
加载扩展词典:/ext.dic
加载扩展停止词典:chinese_stopword.dic
加载扩展停止词典:english_stopword.dic
2012年/欧洲杯/四强赛/
我希望是:
2012年/欧洲杯四强赛/
Lucene我用的是最新版4.7, IKAnalyzer也是最新版

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

风透绣罗衣 2021-11-29 19:49:26

感觉像是解决了:

1、除了楼上容器说的编码问题,我发现我的路径还错了,配置前面多了一个斜线;

2、屏蔽掉IKanalyzer的智能分词,效果更明显一些。Analyzer analyzer =newIKAnalyzer(true);参数true改为false。

3、我的测试环境是lucene4.7.2版本的,支持没问题。

坚持沉默 2021-11-29 19:46:56

用myeclipse 修改.dic文件的时候 记得选中src右键refresh 一下.

多彩岁月 2021-11-29 19:35:39

回复
正解,感谢贡献方法。使我解决了这个问题(一定记得要refresh)。插一句:我用Editplus改的编码格式。

离去的眼神 2021-11-29 19:07:05

我解决了 最后发现还是编码问题.     去网上下载一个 notepad++ 

这个软件很容易滴可以看到文本的编码方式.

确保旧新两个方面的编码正确.

旧方面: 1、确认各个.dic 文件编码为UTF-8无BOM格式

            2、确认被分词的data文件文件编码为UTF-8无BOM格式.

新方面:  (针对myeclipse)project右键>Resource>Text file encoding

             改为UTF-8   

            这么改可能会让你的.java文件里的String出现乱码. 这个时候简洁的做法是:

            右键选中.java文件>open with>other>External programs>Browse 选择notepad++.exe(前边notepad++的安装路径下)

        打开后 格式>转为UTF-8编码格式  ctrl+s 保存. 回到myEclipse更新就好了.

    希望能够给你带来帮助.

情绪失控 2021-11-29 18:18:52

请问问题解决没有? 我也遇到了

情绪失控 2021-11-29 18:12:44

加载词典很简单 你调试下你的扩展词典的路径对不,搞java的你反编译看看代码不就得了。

爱你是孤单的心事 2021-11-29 17:40:53

不知道这个问题你解决没有,我也遇到了相同的问题

奈何桥上唱咆哮 2021-11-29 12:46:16

我换成了Lucene4.0.0版本试过了,一样不行,我确定不是Lucene版本过高问题,我用的也是IK Analyzer 2012FF_hf1

他自己也解释FF表示for 4版本即支持Lucene4.x,但我测试就是不起作用,不知为何,我也确定不是ext.dic文件编码不是UTF-8无BOM格式,ext.dic第一行为空行也试过了.
知道怎么解决的请回复,谢谢!

墨洒年华 2021-11-28 10:10:11

那支持的最高版本是多少?

本王不退位尔等都是臣 2021-11-27 12:58:42

ik最新版不支持4.7吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文