문제

I am new to Java and I want to call my saved pipeline using GATE JAVA API through Eclipse I am not sure how I could do this although I know how to create new documents etc

FeatureMap params = Factory.newFeatureMap();
params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL("http://www.gate.ac.uk"));
params.put(Document.DOCUMENT_ENCODING_PARAMETER_NAME, "UTF-8");

// document features
FeatureMap feats = Factory.newFeatureMap();
feats.put("date", new Date());
Factory.createResource("gate.corpora.DocumentImpl", params, feats, "This is home");

//End Solution 2
// obtain a map of all named annotation sets
Document doc = Factory.newDocument("Document text");
Map <String, AnnotationSet> namedASes = doc.getNamedAnnotationSets();
System.out.println("No. of named Annotation Sets:" + namedASes.size());

// no of annotations each set contains
for (String setName : namedASes.keySet()) {
// annotation set
AnnotationSet aSet = namedASes.get(setName);
// no of annotations
System.out.println("No. of Annotations for " +setName + ":" + aSet.size());
도움이 되었습니까?

해결책

There is a good example of GATE usage from java. Probably it does exactly what you want. BatchProcessApp.java. In particular: loading pipeline is done with lines

// load the saved application
CorpusController application =
  (CorpusController)PersistenceManager.loadObjectFromFile(gappFile);

pipeli executed with

// run the application
  application.execute();

Code is informative, clear and could be easy changed for your particular needs. The oxygen of open source project :)

다른 팁

Something like this could be used(do not forget to init GATE: set GATE home and etc):

private void getProcessedText(String textToProcess) {
    Document gateDocument = null;
    try {
      // you can use your method from above to build document
        gateDocument = createGATEDocument(textToProcess);
        corpusController.getCorpus().add(gateDocument);
        corpusController.execute();
       // put here your annotations processing 
    } catch (Throwable ex) {
        ex.printStackTrace();
    } finally {
        if (corpusController.getCorpus() != null) {
            corpusController.getCorpus().remove(gateDocument);
        }
        if (gateDocument != null) {
            Factory.deleteResource(gateDocument);
        }
    }
}

private CorpusController initPersistentGateResources() {
    try {
        Corpus corpus = Factory.newCorpus("New Corpus");
        corpusController = (CorpusController) PersistenceManager.loadObjectFromFile(new File("PATH-TO-YOUR-GAPP-FILE"));
        corpusController.setCorpus(corpus);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
       return corpusController;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top