2016-12-30 11 views
1

Я новичок в обработке на естественном языке. Может ли кто-нибудь сказать мне, что такое обученные модели в OpenNLP или Stanford CoreNLP? При кодировании в java с использованием пакета apache openNLP мы всегда должны включать некоторые обучаемые модели (см. Здесь http://opennlp.sourceforge.net/models-1.5/). Кто они такие?Что такое обученные модели в НЛП?

ответ

5

«модель» А as downloadable for OpenNLP это a set of data representing a set of probability distributions используется для предсказания структуры вы хотите (например, part-of-speech тегов) от входа вы поставляете (в случае OpenNLP, как правило, текстовые файлы).

Учитывая, что естественный язык context-sensitive, эта модель используется вместо системы, основанной на правилах, потому что она обычно работает лучше, чем последний для a number of reasons, которые я не буду излагать здесь ради краткости. Например, как you already mentioned маркер идеально может быть либо глагол (VB) или прилагательное (JJ), и это может быть снято неоднозначность только в контексте:

  • Этот ответ является идеальным — для этого примера , следующие последовательности POS-тегов возможны (в дополнение ко многим более ):
    1. DT NN VBZ JJ
    2. DT NN VBZ VB

Тем не менее, в соответствии с моделью, которая точно представляет ("правильный") английский §, вероятность примера 1 больше, чем в примере 2: P([DT, NN, VBZ, JJ] | ["This", "answer", "is", "perfect"]) > P([DT, NN, VBZ, VB] | ["This", "answer", "is", "perfect"])


на самом деле, это довольно спорный, но я подчеркиваю, что здесь я говорю о естественном языке в целом (в том числе и семантика/прагматика/др.), а не только о естественном языке ами yntax, который (в случае, если не английский) is considered by some to be context-free.

При анализе языка в манере, управляемых данными, на самом деле любой сочетание POS-тегов «можно», но, учитывая образец «правильного» современного английского языка с небольшим количеством шума, тегов заданий, которые родной ораторы будут считать «неправильными», должны иметь крайне низкую вероятность возникновения.

§ На практике это означает, что модель обучается на большом, разнообразном корпусе (современном) английском (или другом целевом домене, который вы хотите проанализировать) с соответствующими параметрами настройки (если я хочу быть более точным , эта сноска может быть легко длинной в несколько абзацев).

+0

Не могли бы вы объяснить, как это набор вероятностных распределений, используемых для прогнозирования структуры, которую вы хотите ?, вы имели в виду, если я вводил, например, слово «совершенный» в предложении, совершенным может быть adj или глагол, поэтому модель решит приращение или глагол в соответствии с наивысшей вероятностью из анализа предложения, верно ли это? – Abdallah

+0

Я добавил явный пример; Это помогает? – errantlinguist

+0

Да, теперь яснее, но есть еще одна проблема, которая заключается в точности тегов, Stanford coreNLP и OpenNLP терпят неудачу в определении слова _perfect_ в качестве глагола в таких случаях, как _ «Совершенствовать» _, а [этот онлайн-тег NLTK ] (http://textanalysisonline.com/nltk-pos-tagging) сделать все правильно, так есть ли что-то, что можно было бы сделать, чтобы обрабатывать такие случаи в тегераторе coreNLP в Stanford? – Abdallah

-1

Подумайте о обученной модели как «мудрый мозг с существующей информацией».

Когда вы начинаете обучение в компьютере, мозг вашей модели чист и пуст. Вы можете либо загрузить обученную модель, либо обучить свою собственную модель (например, обучить ребенка)

Обычно вы только обучаете модели для кросс-чехлов, которые вы загружаете «Обученные модели» и получаете возможность работать в режиме прогнозирования/машинного обучения.