Я новичок в обработке естественного языка. Может ли кто-нибудь сказать мне, что такое обученные модели в OpenNLP или Stanford CoreNLP? При написании кода на java с использованием пакета apache openNLP нам всегда нужно включать несколько обученных моделей (здесь http://opennlp.sourceforge.net/models-1.5/ ). Кто они такие?
Что такое обученные модели в НЛП?
Ответы (2)
«Модель» , загружаемая для OpenNLP, — это набор данных, представляющий набор вероятностных распределений, используемый для прогнозирования желаемой структуры (например, part-of-speech теги) из входных данных, которые вы предоставляете (в случае OpenNLP, обычно это текстовые файлы).
Учитывая, что естественный язык зависит от контекста† , эта модель используется вместо системы, основанной на правилах, поскольку она обычно работает лучше, чем последняя, для ряд причин, которые я не буду излагать здесь для краткости. Например, как вы уже упоминали, токен perfect может быть либо глаголом (VB
), либо прилагательным (JJ
), и это может быть устранено только в контексте:
- This answer is perfect — for this example, the following sequences of POS tags are possible (in addition to many more‡):
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"])
†На самом деле это довольно спорный вопрос, но я подчеркиваю здесь, что я говорю о естественном языке в целом (включая семантику/прагматику/и т. д.), а не только о естественном языке синтаксис, который (по крайней мере, в случае английского языка) некоторые считают контекстно-свободным.
‡При анализе языка на основе данных фактически «возможна» любая комбинация тегов POS, но, учитывая образец «правильного» современного английского языка с небольшим шум, присвоение тегов, которые носители языка сочли бы «неправильными», должно иметь чрезвычайно низкую вероятность возникновения.
§На практике это означает, что модель обучена на большом и разнообразном корпусе (современного) английского языка (или какой-либо другой целевой области, которую вы хотите проанализировать) с соответствующими параметрами настройки (если я хочу быть еще более точно, эта сноска может легко состоять из нескольких абзацев).
Думайте об обученной модели как о «мудром мозге с существующей информацией».
Когда вы начинаете машинное обучение, мозг вашей модели чист и пуст. Вы можете загрузить обученную модель или обучить свою собственную модель (например, обучая ребенка).
Обычно вы тренируете модели только для крайних случаев, иначе вы загружаете «Обученные модели» и начинаете работать с прогнозированием/машинным обучением.