Я новичок в обработке на естественном языке. Может ли кто-нибудь сказать мне, что такое обученные модели в OpenNLP или Stanford CoreNLP? При кодировании в java с использованием пакета apache openNLP мы всегда должны включать некоторые обучаемые модели (см. Здесь http://opennlp.sourceforge.net/models-1.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-тегов возможны (в дополнение ко многим более ‡):
DT NN VBZ JJ
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-тегов «можно», но, учитывая образец «правильного» современного английского языка с небольшим количеством шума, тегов заданий, которые родной ораторы будут считать «неправильными», должны иметь крайне низкую вероятность возникновения.
§ На практике это означает, что модель обучается на большом, разнообразном корпусе (современном) английском (или другом целевом домене, который вы хотите проанализировать) с соответствующими параметрами настройки (если я хочу быть более точным , эта сноска может быть легко длинной в несколько абзацев).
Подумайте о обученной модели как «мудрый мозг с существующей информацией».
Когда вы начинаете обучение в компьютере, мозг вашей модели чист и пуст. Вы можете либо загрузить обученную модель, либо обучить свою собственную модель (например, обучить ребенка)
Обычно вы только обучаете модели для кросс-чехлов, которые вы загружаете «Обученные модели» и получаете возможность работать в режиме прогнозирования/машинного обучения.
Не могли бы вы объяснить, как это набор вероятностных распределений, используемых для прогнозирования структуры, которую вы хотите ?, вы имели в виду, если я вводил, например, слово «совершенный» в предложении, совершенным может быть adj или глагол, поэтому модель решит приращение или глагол в соответствии с наивысшей вероятностью из анализа предложения, верно ли это? – Abdallah
Я добавил явный пример; Это помогает? – errantlinguist
Да, теперь яснее, но есть еще одна проблема, которая заключается в точности тегов, Stanford coreNLP и OpenNLP терпят неудачу в определении слова _perfect_ в качестве глагола в таких случаях, как _ «Совершенствовать» _, а [этот онлайн-тег NLTK ] (http://textanalysisonline.com/nltk-pos-tagging) сделать все правильно, так есть ли что-то, что можно было бы сделать, чтобы обрабатывать такие случаи в тегераторе coreNLP в Stanford? – Abdallah