在 GATE 中,ANNIE 的默认值是在初始化期间设置的,但有时根据要求必须更改它们。
我的要求:我想在不考虑“下一行字符”的情况下提取英文句子,但考虑给出正确句子的“句号”。为此,我需要在ANNIE 中更改SentenceSplitter 中的transducerURL的默认值。这可以通过两种方式完成:
使用ANNIE_with_defaults.gapp - 在 Sentencesplitter 中更改 initparams 值并从 java 访问:
Gate.setGateHome(new File(Configuration.GATE_HOME)); Gate.init(); // Load ANNIE with defaults from the plug-ins folder File pluginsHome = Gate.getPluginsHome(); File anniePlugin = new File(pluginsHome, ANNIEConstants.PLUGIN_DIR); File annieGapp = new File(anniePlugin, ANNIEConstants.DEFAULT_FILE); annieController = (CorpusController) PersistenceManager.loadObjectFromFile(annieGapp);
我无法在 gapp 文件中找到更改其值的位置。
初始化 GATE 后,使用 CreoleRegister 访问 ResourceData 并更改参数transducerURL的默认值,如下所示:
String resourceClassName = "gate.creole.splitter.SentenceSplitter"; ResourceData resData = Gate.getCreoleRegister().get(resourceClassName); //System.out.println(resData.getParameterList()); ParameterList params = resData.getParameterList(); List<List<Parameter>> param = params.getInitimeParameters(); System.out.println(param); //System.out.println(param.get(0)); for(List<Parameter> plist : param) { for(Parameter pm : plist) { System.out.println("Name : "+pm.getName()+", "+pm.getDefaultValue()); } }
但是 Parameter 没有setDefaultvalue
方法。
我怎样才能解决这个问题?