Что такое обученные модели в НЛП?

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


person Abdallah Sayed    schedule 30.12.2016    source источник


Ответы (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):
    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"])


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

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

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

person errantlinguist    schedule 31.12.2016
comment
Не могли бы вы подробнее объяснить, как это набор вероятностных распределений, используемый для прогнозирования желаемой структуры? Вы имели в виду, что если я введу, например, слово perfect в предложение, perfect может быть adj или глаголом, поэтому модель решит adj или глагол в соответствии с наибольшей вероятностью из анализа предложения, это правильно? - person Abdallah Sayed; 01.01.2017
comment
Я добавил явный пример; Это помогает? - person errantlinguist; 01.01.2017
comment
Да, теперь мне стало понятнее, но есть еще одна проблема, связанная с точностью маркировки: Stanford coreNLP и OpenNLP не могут идентифицировать слово совершенно как глагол в таких случаях, как Совершенствовать< /i> в то время как этот тегировщик NLTK в Интернете делает это правильно, так что нужно что-то делать, чтобы справиться с такие случаи в Stanford coreNLP tagger? - person Abdallah Sayed; 02.01.2017
comment
То, что вы задали, потенциально очень сложно и, следовательно, является самостоятельным вопросом, выходящим за рамки этого вопроса: Стэнфорд и OpenNLP поставляются с предварительно обученными моделями, которые, как правило, неплохи, поэтому, вероятно, это связано с одним или несколькими из многих других факторов. и поэтому мне нужно гораздо больше информации, чем то, что вы предоставили. - person errantlinguist; 02.01.2017
comment
ОК, для этого примера Она усердно работает, чтобы улучшить свое письмо. я получаю эти POS-теги She_PRP работает_VBZ тяжело_JJ до_TO идеально_JJ ее_PRP$ пишет_NN ._. , есть два неправильных тега, hard должен быть наречием, а perfect должен быть глаголом, я не знаю, что не так, может быть, модель не обучена идентифицировать perfect как глагол в этом случае, так что мне делать? - person Abdallah Sayed; 04.01.2017
comment
Как я уже говорил, этой информации недостаточно, чтобы дать вам ответ; Напишите правильный вопрос, описывая, как вы на самом деле получаете результаты, и я постараюсь ответить на него, если найду. - person errantlinguist; 04.01.2017

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

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

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

person Ganesh Krishnan    schedule 01.01.2017