Как обучить POSTagger OpenNLP и добавить результат обратно в старую модель?

Итак, я пытаюсь использовать Trainning API POSTagger. Но я хотел бы добавить новые обученные данные к старой модели. Или, если я хочу обучить его несколько раз, у меня будет много файлов моделей. Как я могу объединить результат с существующей моделью. Итак, у меня есть только одна модель с большими данными. Я думаю, что файл модели является двоичным файлом, поэтому я не уверен, что добавление файла может работать в этом случае.

Вот мой код


public class POSTraining {
    private final String outputModel;
    private InputStream dataIn;

    public POSTraining() throws IOException {
        outputModel = this.getClass().getResource("/model/en-pos-maxent.bin").getPath();
        dataIn = this.getClass().getResourceAsStream("/model/en-pos.train");
    }

    public static void main(String args[]) throws IOException {

        POSTraining posTraining = new POSTraining();
        posTraining.train();
    }

    public void train() {
        try {
            ObjectStream lineStream = new PlainTextByLineStream(dataIn, "UTF-8");
            ObjectStream sampleStream = new WordTagSampleStream(lineStream);

            TrainingParameters trainParams = new TrainingParameters();
            trainParams.put("model", ModelType.MAXENT.name());
            POSModel trainedModel = POSTaggerME.train("en", sampleStream, trainParams, null, null);

            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(outputModel));
            trainedModel.serialize(bufferedOutputStream);

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (dataIn != null) {
                try {
                    dataIn.close();
                } catch (IOException e) {
                    // Not an issue, training already finished.
                    // The exception should be logged and investigated
                    // if part of a production system.
                    e.printStackTrace();
                }
            }
        }


    }
}



person toy    schedule 22.08.2012    source источник
comment
Приведенный выше ответ верен, однако вы можете повторно обучить новую модель с большим количеством обучающих данных.   -  person    schedule 17.10.2012


Ответы (1)


Обычно это невозможно с моделями НЛП. Вы не можете постепенно настраивать их.

person bmargulies    schedule 22.08.2012
comment
Итак, это означает, что я должен хранить данные о поездах и постепенно добавлять их? - person toy; 23.08.2012