2016-09-21 3 views
1

Я новичок в сцене НЛП и использую OpenNLP 1.5 для начала работы.Пользовательская модель NER - FAIL

Я прошел через некоторые команды, приведенные в документации здесь: https://opennlp.apache.org/documentation/manual/opennlp.html
(я использую интерфейс командной строки для начала)

я использовал уже имеющиеся модели образца для экспериментов с различными инструментами и наконец решил создать пользовательскую модель NER.

Я следовал инструкциям, указанным в вышеупомянутой ссылке.

скопировал Примеры, приведенные в .train файл (я просто создал новый файл с этим расширением и вставить содержимое в него):

<START:person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 . 
Mr . <START:person> Vinken <END> is chairman of Elsevier N.V. , the Dutch publishing group . 

Я использовал следующую команду, чтобы сделать модель:

bin/opennlp TokenNameFinderTrainer -model en-ner-person2.bin -lang en -data en-ner-person2.train -encoding UTF-8 

Проблема в том, что даже если модель создается, она работает неправильно. Протестировано это с использованием вновь созданной модели: bin/opennlp TokenNameFinder en-ner-person2.bin

Но когда я ввожу Pierre Vinken, он не узнается как человек. Я также попытался создать модель из файла .txt с тем же содержимым, но это тоже не удалось.

Что я делаю неправильно?

TIA.

+0

Каков результат, который вы получаете при вводе 'Pierre Vinken'? Вы пытались ввести полные предложения вместо этого? – NBartley

+0

@NBartley Токовый выход - это просто «Pierre Vinken». Я хочу '<НАЧАТЬ: человек> Пьер Винкен '. –

+0

@NBartley Я не пробовал полные предложения. Когда я попробовал только «Pierre Vinken» с уже доступной моделью образца, я получил ожидаемый результат. –

ответ

4

Короче - вы не можно ожидать статистическая модель, чтобы извлечь уроки из всего два предложений. Добавьте еще 14998, и вам хорошо идти.

Учебные данные должны содержать, по крайней мере, 15000 предложений, чтобы создать модель, которая выполняет вэй

CRF (Conditional Random Fields) являются такие статистические модели, они нужны много данных на рисунке они не просто «запоминают» то, что видели на тренировочной фазе, поэтому даже если вы попросите что-то из набора треугольников, они не смогут дать ответ.

+0

Newbie вопрос. Почему так? Не было бы более эффективным для модели запоминать слова из учебного набора в дополнение к процессу машинного обучения? –

+0

Является ли CRF самой популярной статистической моделью? Где новичок может узнать об этом больше? Какие другие статистические модели доступны? –

+0

Именно так, потому что то, как вы на самом деле учите хорошие модели, - это сложный статистический анализ, обычно основанный на некоторой дифференцируемой функции затрат, «запоминание» на самом деле несовместимо с такой парадигмой, это просто эвристика, не более того. Машиноведение (особенно современное) - это уход от эвристики и попытка узнать все, вместо того, чтобы предполагать, что люди лучше знают, что является основным механизмом. Если вы хотите узнать больше - пойдите для coursera, есть много курсов по обучению машинам и/или НЛП. – lejlot

Смежные вопросы