2017-12-03 6 views
1

私は(Javaで)ANNIEを使用して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を読み込んだ後、最後のPRとしてCoreferencerを追加します。

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")); 
    } 
} 
関連する問題