Обучение модели классификатора Opennlp

Я пытаюсь обучить модель с помощью приведенного ниже кода, но я продолжаю получать сообщение об ошибке в методе DocumentCategorizerME.train(), который говорит мне изменить factory на doccatfactory. Зачем?

public void trainModel() 
{
    DoccatModel model = null;
    InputStream dataIn = null;

    try
    {
        InputStreamFactory factory = getInputStreamFactory(new File("D:/training.txt"));
        ObjectStream<String> lineStream = new PlainTextByLineStream(factory, Charset.defaultCharset());
        ObjectStream<DocumentSample> sampleStream = new DocumentSampleStream(lineStream);
        TrainingParameters params = new TrainingParameters();
        params.put(TrainingParameters.ITERATIONS_PARAM, "100");
        params.put(TrainingParameters.CUTOFF_PARAM, "0");

        model = DocumentCategorizerME.train("en", sampleStream, params, factory);

    }



}

public static InputStreamFactory getInputStreamFactory(final File file) throws IOException{
    return new InputStreamFactory() {

        @Override
        public InputStream createInputStream() throws IOException {
            return new FileInputStream(file);
        }
    };
}

person Sietse    schedule 06.10.2017    source источник


Ответы (1)


когда вы используете метод DocumentCategorizerME.train(...), вам нужно передать DoccatFactory, а не InputStreamFactory. Пытаться:

  model = DocumentCategorizerME.train("en", sampleStream, params, new DoccatFactory());

Надеюсь, поможет.

person HowYaDoing    schedule 06.10.2017