Cleartk: ошибки инициализации [class org.cleartk.classifier.jar.DefaultSequenceDataWriterFactory] Поле 'dataWriterClassName' является обязательным
Моя основная программа выглядит примерно так:
public static void main(String args[]) throws UIMAException, IOException{
//TypeSystemDescription tsd = TypeSystemDescriptionFactory.createTypeSystemDescription(Question.class);
AggregateBuilder builder = new AggregateBuilder();
//builder.add(SentenceAnnotator.getDescription());
builder.add(AnalysisEngineFactory.createPrimitiveDescription(POSAnnotator1.class,
ExampleComponents.TYPE_SYSTEM_DESCRIPTION,
GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH, outputDirectory + File.separator + "model.jar",
CleartkAnnotator.PARAM_IS_TRAINING, true,
DefaultDataWriterFactory.PARAM_DATA_WRITER_CLASS_NAME, InstanceDataWriter.class.getName(),
DirectoryDataWriterFactory.PARAM_OUTPUT_DIRECTORY, new File(outputDirectory)));
JCas jcas = JCasFactory.createJCas();
jcas.setDocumentText(testData);
SimplePipeline.runPipeline(jcas, builder.createAggregateDescription());
}
Кто-нибудь может объяснить эту ошибку?
Вызвано: java.lang.IllegalArgumentException: ошибки инициализации [class org.cleartk.classifier.jar.DefaultSequenceDataWriterFactory] Поле 'dataWriterClassName' обязательно для заполнения
Я пытался заменить InstanceDataWriter другими устройствами записи данных, но они не работают.
1 ответ
Аннотатор POS использует записывающее устройство данных последовательности для написания примеров. Вы устанавливаете параметр имени класса DataWriter из DefaultDataWriterFactory.PARAM_DATA_WRITER_CLASS_NAME. Это должно быть DefaultSequenceDataWriterFactory.PARAM_DATA_WRITER_CLASS_NAME для средства записи данных последовательности. Последовательность означает, что у вас есть более 1 метки в кассе (много POS-тегов) в отличие от "обычного" классификатора, который дает только 1 метку для всего документа.