Как обучить идентификатор распознавателя именованных объектов в OpenNLP? - PullRequest
9 голосов
/ 05 августа 2011

Хорошо, у меня есть следующий код для обучения Идентификатора NER из OpenNLP

FileReader fileReader = new FileReader("train.txt");
ObjectStream fileStream = new PlainTextByLineStream(fileReader);
ObjectStream sampleStream = new NameSampleDataStream(fileStream);
TokenNameFinderModel model = NameFinderME.train("pt-br", "train", sampleStream, Collections.<String, Object>emptyMap());
nfm = new NameFinderME(model); 

Я не знаю, делаю ли я что-то неправильно, если что-то отсутствует, но классификация не работает,Я предполагаю, что train.txt неверен.

Возникает ошибка , что все токены относятся только к одному типу.

Мои данные train.txtэто что-то вроде следующего примера, но с большим количеством вариаций и количества записей.Другое дело, что я классифицирую слово за словом по тексту за раз, а не по всем токенам.

<START:distance> 8000m <END>
<START:temperature> 100ºC <END>
<START:weight> 50kg <END>
<START:name> Renato <END>

Кто-нибудь может показать, что я делаю неправильно?

1 Ответ

22 голосов
/ 05 августа 2011

Ваши тренировочные данные не в порядке.

Вы должны поместить все сущности в контекст внутри предложения:

At an altitude of <START:distance> 8000m <END> the temperature of boiling water is less than <START:temperature> 100ºC <END> .
The climber <START:name> Renato <END> is carrying <START:weight> 50kg <END> of equipment.

Вы получите лучшие результаты, если ваши учебные данные будут получены из предложений реального мира и будут иметь тот же стиль предложений, которые вы классифицируете. Например, вы должны тренироваться, используя газетный корпус, если вы будете обрабатывать новости.

Также вам понадобятся тысячи предложений для построения вашей модели! Может быть, вы можете начать с сотен, чтобы начать и использовать плохую модель, чтобы улучшить свой корпус и обучить вашу модель снова.

И, конечно, вы должны классифицировать все токены предложения, иначе не будет контекста для определения типа сущности.

...