java 单例 字典 动态_IK-Analyzer(5.3.1)动态配置自定义词典

参考文献:http://blog.csdn.net/fatpanda/article/details/37911079

jar包:

IK-Analyzer-extra-5.3.1.jar

IKAnalyzer5.3.1.jar

lucene-core-5.3.1.jar

lucene-analyzers-common-5.3.1.jar

一、创建类自己的分词器配置类并实现IK-Analyzer分词器的配置接口:

值得注意的一点是:我们在指定配置文件时候,要指定我们自己的配置文件。如果不指定路径默认会视作IKAnalyzer5.3.1.jar里面的IKAnalyzer.cfg.xml

importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.InvalidPropertiesFormatException;importjava.util.List;importjava.util.Properties;importorg.apache.commons.lang.StringUtils;importorg.wltea.analyzer.cfg.Configuration;public class MyConfiguration implementsConfiguration {//懒汉单例

private static final Configuration CFG = newMyConfiguration();/** 分词器默认字典路径*/

private String PATH_DIC_MAIN = "org/wltea/analyzer/dic/main2012.dic";//需要把static final去掉

private static final String PATH_DIC_QUANTIFIER = "org/wltea/analyzer/dic/quantifier.dic";/** 分词器配置文件路径*/

private static final String FILE_NAME = "com/unruly/test/IKAnalyzer.cfg.xml";//指定我们自己的分词器配置文件//配置属性——扩展字典

private static final String EXT_DICT = "ext_dict";//配置属性——扩展停止词典

private static final String EXT_STOP = "ext_stopwords";privateProperties props;/** 是否使用smart方式分词*/

private booleanuseSmart;/*** 返回单例

*

*@returnConfiguration单例*/

public staticConfiguration getInstance() {returnCFG;

}/** 初始化配置文件*/MyConfiguration() {

props= newProperties();

InputStream input= this.getClass().getClassLoader().getResourceAsStream(FILE_NAME);if (input != null) {try{

props.loadFromXML(input);

}catch(InvalidPropertiesFormatException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}

}/*** 返回useSmart标志位 useSmart =true ,分词器使用智能切分策略, =false则使用细粒度切分

*

*@returnuseSmart*/

public booleanuseSmart() {returnuseSmart;

}/*** 设置useSmart标志位 useSmart =true ,分词器使用智能切分策略, =false则使用细粒度切分

*

*@paramuseSmart*/

public void setUseSmart(booleanuseSmart) {this.useSmart =useSmart;

}/*** 新加函数:设置主词典路径

*

*@returnString 主词典路径*/

public voidsetMainDictionary(String path) {if(!StringUtils.isBlank(path)){this.PATH_DIC_MAIN =path;

}

}/*** 获取主词典路径

*

*@returnString 主词典路径*/

publicString getMainDictionary() {returnPATH_DIC_MAIN;

}/*** 获取量词词典路径

*

*@returnString 量词词典路径*

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值