0

我是 Java 新手,我想通过 Eclipse 使用 GATE JAVA API 调用我保存的管道我不知道如何做到这一点,尽管我知道如何创建新文档等

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());
4

2 回答 2

0

java中有一个很好的GATE用法示例。可能它完全符合您的要求。批处理应用程序.java。特别是:加载管道是用线完成的

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

管道执行与

// run the application
  application.execute();

代码内容丰富、清晰,可以根据您的特定需求轻松更改。开源项目的氧气 :)

于 2014-04-07T14:56:41.380 回答
0

可以使用这样的东西(不要忘记初始化 GATE: set GATE home 等):

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;
}
于 2014-04-08T06:27:42.010 回答