欢迎来到天天文库
浏览记录
ID:38067948
大小:35.00 KB
页数:5页
时间:2019-05-25
《Ikanalyzer分词器动态自定义词库的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Ikanalyzer分词器动态自定义词库的方法IKanalyzer可通过配置Ikanalyzer.cfg.xml进行自定义词库,但有时需要在程序中根据不同的文章动态调用不同的词库进行分词,这就需要自定义Configuration类来实现。方法如下:首先,拷贝Ikanalyzer源码中的DefaultConfig.java,改为MyConfiguration.java,然后做如下改写:publicclassMyConfigurationimplementsConfiguration{//懒汉单例privatestaticfinalConfigu
2、rationCFG=newMyConfiguration();/**分词器默认字典路径*/privateStringPATH_DIC_MAIN="org/wltea/analyzer/dic/main2012.dic"; //需要把staticfinal去掉privateString staticfinalPATH_DIC_QUANTIFIER="org/wltea/analyzer/dic/quantifier.dic"; /**分词器配置文件路径*/privatestaticfinalStringFILE_NAME="IKAnaly
3、zer.cfg.xml";//保留静态自定义词库的功能//配置属性——扩展字典privatestaticfinalStringEXT_DICT="ext_dict";//配置属性——扩展停止词典privatestaticfinalStringEXT_STOP="ext_stopwords";privatePropertiesprops;/**是否使用smart方式分词*/privatebooleanuseSmart;/***返回单例*@returnConfiguration单例*/publicstaticConfigurationgetIns
4、tance(){returnCFG;}/**初始化配置文件*/MyConfiguration(){props=newProperties();InputStreaminput=this.getClass().getClassLoader().getResourceAsStream(FILE_NAME);if(input!=null){try{props.loadFromXML(input);}catch(InvalidPropertiesFormatExceptione){e.printStackTrace();}catch(IOExcept
5、ione){e.printStackTrace();}}}/***返回useSmart标志位*useSmart=true,分词器使用智能切分策略,=false则使用细粒度切分*@returnuseSmart*/publicbooleanuseSmart(){returnuseSmart;}/***设置useSmart标志位*useSmart=true,分词器使用智能切分策略,=false则使用细粒度切分*@paramuseSmart*/publicvoidsetUseSmart(booleanuseSmart){this.useSmart=u
6、seSmart;}/***新加函数:设置主词典路径**@returnString主词典路径*/publicvoidsetMainDictionary(Stringpath){this.PATH_DIC_MAIN=path;}/***获取主词典路径**@returnString主词典路径*/publicStringgetMainDictionary(){returnPATH_DIC_MAIN;}/***获取量词词典路径*@returnString量词词典路径*/publicStringgetQuantifierDicionary(){retur
7、nPATH_DIC_QUANTIFIER;}/***获取扩展字典配置路径*@returnList相对类加载器的路径*/publicListgetExtDictionarys(){ListextDictFiles=newArrayList(2);StringextDictCfg=props.getProperty(EXT_DICT);if(extDictCfg!=null){//使用;分割多个扩展字典配置String[]filePaths=extDictCfg.split(";")
8、;if(filePaths!=null){for(StringfilePath:filePaths){if(filePath!=null&&!"".equals(f
此文档下载收益归作者所有