我是GATE NLP的新手。我正在研究一个适用于GATE NLP
的应用程序。 因此,我创建了一个管道,并且通过创建单例对象在应用程序中只加载一次。所以,由于应用程序的性能有所提高,但是当我在本体或地名索引中进行任何更改并重新运行应用程序时,它并没有考虑新添加的单词,因为我通过加载我的管道来制作单个对象,所以它考虑以前加载的地名词典和本体论。所以, 我用下面的代码使用它正在更新地名词典,但不是本体论。toRootGazetteer的重新初始化方法不起作用
application = CorpusControllerSingleton.getInstance(gapFilePath).getApplicationObject();
Iterator<ProcessingResource> it = application.getPRs().iterator();
if(isReload){
System.out.println("processing resources------>"+it.next());
while(it.hasNext()){
ProcessingResource pr = it.next();
if(pr.getName().equals("RzCIS") || pr.getName().equals("RzCs")) {
System.out.println("PR initialization--->" +pr.getFeatures());
pr.reInit();
}
}
}
任何人都可以解释我如何重新初始化本体?
好问题。在我看来,实际上无法重新加载本体: - ( – dedek
)您可以尝试在本体上调用'cleanup()'和'init()',但我不能保证它会工作... – dedek
嗨,@dedek这个问题可以通过执行--Iterator it = application.getPRs()。iterator(); while(it.hasNext()){ ProcessingResource pr = it.next ();如果 (pr.getName()等于(FLEXIBLE_GAZETTEER)。){ onto_Root_gazetteer =(ProcessingResource)pr.getParameterValue(ONTOROOT_PROPERTY); onto_Root_gazetteer.setParameterValue(ONTOROOT_PARAMETER,OntoLoader.getInstance()getOntology()); to_Root_gazetteer.init(); } –
ganesh