Gate-加载gapp文件需要时间。我可以减少它吗?

时间:2016-11-10 07:37:49

标签: java nlp gate

我正在研究GATE相关项目。
所以,我在这里通过GATE创建一个管道。我在我的java代码中使用了.gapp文件。因此,对于加载.gapp文件,大约需要10秒,这对我的应用来说太过分了。

我该如何解决这个问题?

第二个问题是,我必须在处理文档以释放内存后执行System.exit,如果我没有那么我得OutofMemoryError.

那么,我该如何解决这些问题?

我的代码如下:

public class GateMainClass {

    CorpusController application = null;
    Corpus corpus = null;

    public void processApp(String gateHome, String gapFilePath, String docSourcePath, String isSingleDocument) throws ResourceInstantiationException {
        try {
            if (!Gate.isInitialised()) {
                Gate.runInSandbox(true);
                Gate.setGateHome(new File(gateHome));
                Gate.setPluginsHome(new File(gateHome, "plugins"));
                Gate.init();
            }
            application = (CorpusController) PersistenceManager.loadObjectFromFile(new File(gapFilePath));
            corpus = Factory.newCorpus("main");
            application.setCorpus(corpus);

            if(isSingleDocument.equals(Boolean.TRUE.toString())) {
                Document doc = Factory.newDocument(new File(docSourcePath).toURI().toURL());
                corpus.add(doc);

            } else {
                File[] files;
                File folder = new File(docSourcePath);
                files = folder.listFiles(new FileUtil.CustomFileNameFilter(".xml"));
                Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE);
                for (int i = 0; i < files.length; i++) {
                    Document doc = Factory.newDocument(files[i].toURI().toURL());
                    corpus.add(doc);
                }
            }
            application.execute();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
          corpus.clear();
        }
    }

我的gapp文件就像:

1.Document Reset PR
2.Annie English Tokenizer.
3.ANnie Gazetteer.
4.Annie Sentence Spiliter.
5.Annie POS Tagger.
6.GATE morphological Analyser.
7.Flexible gazetteer.
8.HTML markup transfer
9.Main Jape file.

0 个答案:

没有答案