2017-12-03 2 views
1

내가 (자바) 애니를 사용하여 pronomial coreference module를로드하기 위해 노력하고있어하지만 난 다음 코드를 사용하여 몇 가지 문제에 봉착 다음을 실행 한 후GATE로드 처리 리소스/대명사 해상도

FeatureMap params = Factory.newFeatureMap(); 

params.put("resolveIt", "true"); 
ProcessingResource coref = (ProcessingResource) Factory.createResource("gate.creole.coref.Coreferencer", params); 
Collection<ProcessingResource> processingResources = new ArrayList<ProcessingResource>(); 
processingResources.add(coref); 
pipelineController.setPRs(processingResources); 

params.clear(); 
params.put("sourceUrl", url); # this is the url of a test document 
params.put("collectRepositioningInfo", new Boolean(true)); 
Document doc = (Document) Factory.createResource("gate.corpora.DocumentImpl", params); 
corpus.add(doc); 

pipelineController.setCorpus(corpus); 
pipelineController.execute(); 

pipelineController, "MatchesAnnots"기능 또는 다른 기능에 액세스하려고 시도하지만 Coref 경고 : 처리 할 수있는 주석이 없습니다.. 누구든지 내 실수의 방향으로 나를 가리킬 수 있습니까? pipelineController.setPRs()를 사용하지 않아야합니까?

답변

0

코드가 거의 정확합니다. 문서는 일반적으로 ANNIE GATE 응용 프로그램에서 처리 한 사전 처리이 필요합니다. 그래서 "처리를 위해 주석을 찾을 수 없습니다!"라는 불평을하는 것입니다.

코드에서 나는 먼저 ANNIE를로드 한 다음 Coreferencer을 마지막 PR로 추가합니다.

import java.io.File; 
import gate.*; 
import gate.creole.ConditionalSerialAnalyserController; 
import gate.util.persistence.PersistenceManager; 

public class CoreferencerTest { 
    public static void main(String[] args) throws Exception { 
     Gate.setGateHome(new File("C:\\Program Files\\GATE_Developer_8.4")); 
     Gate.init(); 

     //load ANNIE GATE app 
     Object gapp = PersistenceManager.loadObjectFromFile(
       new File(Gate.getPluginsHome(), "ANNIE/ANNIE_with_defaults.gapp")); 
     ConditionalSerialAnalyserController pipelineController = (ConditionalSerialAnalyserController) gapp; 

     //add Coreferencer to the end of ANNIE 
     ProcessingResource coref = (ProcessingResource) Factory.createResource(
       "gate.creole.coref.Coreferencer", Utils.featureMap("resolveIt", true)); 
     pipelineController.add(coref); 


     //execute it 
     Corpus corpus = Factory.newCorpus("corpus name"); 
     Document doc = Factory.newDocument("Peter was driving his car."); 
     corpus.add(doc); 
     pipelineController.setCorpus(corpus); 
     pipelineController.execute(); 

     //see the result 
     System.err.println(doc.getFeatures().get("MatchesAnnots")); 
    } 
}