Данные о диване в CAS можно установить только один раз. Он не может быть изменен после его установки.
Чтобы повторно использовать CAS, вызовите на нем метод reset()
. Это очищает все аннотации и позволяет снова установить диван/текст.
Чтобы создать CAS поэтапно, общей стратегией является добавление аннотаций к CAS при добавлении текста в строковый буфер и установка текста только в конце процесса.
пример uimaFIT основе может выглядеть примерно так:
Strings[] texts = {
"Hello world.",
"This is a test." };
// Create empty CAS/JCas initialized using uimaFIT typesystem auto-detection
JCas jcas = JCasFactory.createJCas();
// Instantiate some analysis engine
AnalysisEngine engine = AnalysisEngineFactory.createEngine(...);
// Process texts re-using the previously created CAS/JCas instance
for (String t : texts) {
jcas.reset();
jcas.setDocumentText(t);
jcas.setDocumentLanguage("en");
engine.process(jcas);
}
engine.collectionProcessComplete();
engine.destroy();
Раскрытие информации: Я работаю над проектом Apache UIMA.
Вы по-прежнему получаете преимущества в производительности от необходимости перезагружать все модели и т. Д. (Адрес является упомянутым вопросом), делая это таким образом? – zode64
Если вы создаете экземпляр фактических компонентов, используя, например, uimaFIT 'AnalysisEngine engine = AnalysisEngineFactory.createEngine (...)' вызывает, то обычно модели/ресурсы загружаются только один раз (при создании экземпляра или в первом обработанном документе). Обработка CASes с использованием 'engine.process (cas);'. – rec