有没有办法在代码中指定jcseg词库或配置文件位置?

黄冠能 发布于 2014/04/22 19:00
阅读 614
收藏 0

@狮子的魂 你好,想跟你请教个问题:

我想把jcseg嵌入到一个Android App里。这次用Java版之前用C++版的体验类似,配置比较头痛。默认的配置文件好像是把lexicon指向/java/JavaSE/jcseg/lexicon,有没有办法在代码里动态修改呢?或者在代码中指定配置文件jcseg.properties的位置。

加载中
0
狮子的魂
狮子的魂


可以的, 从1.8.x开始就支持了. 开发帮助文档有详细的说明.

1. 指定jcseg.properties初始化JcsegTaskConfig

JcsegTaskConfig config = new JcsegTaskConfig("/java/JavaSE/jcseg/jcseg.properties");
2. 调用JcsegTaskConfig#resetFromPropertyFile(file);
JcsegTaskConfig config = new JcsegTaskConfig();
config.resetFromPropertyFile("/java/JavaSE/jcseg/jcseg.properties");


完整的demo:

JcsegTaskConfig config = new JcsegTaskConfig();
//reset the options from a property file.
config.resetFromPropertyFile("/java/JavaSE/jcseg/jcseg.properties");
		
ADictionary dic = DictionaryFactory.createDefaultDictionary(config);
		
//two ways to reload lexicons
//for ( String lpath : config.getLexiconPath() )
//	dic.loadFromLexiconDirectory(lpath);
//dic.loadFromLexiconFile("/java/lex-main.lex");
seg = SegmentFactory.createJcseg(JcsegTaskConfig.COMPLEX_MODE, new Object[]{config, dic});



同时也支持自定义指定加载词库..


返回顶部
顶部