Модель N-грамм для начала работы с НЛП

искусственный интеллект алгоритм NLP

Из вышеизложенного мы знаем, что текущей основной тенденцией обработки естественного языка является статистическая обработка естественного языка, и основная цель статистической обработки естественного языка состоит в том, чтобы объединить некоторые данные в корпусе для обработки некоторых неизвестных данных, чтобы получить некоторые данные. по распределению этих данных.Вывод, подумайте об этом, мы обнаружили в корпусе, что два слова "вы" и "вы ели" всегда имеют какие-то вложения, предсказывали ли мы, что такие вложения будут в каком-то неизвестном статьи отношения?

В этой статье мы представим модель n-грамм и решим несколько распространенных алгоритмов гладкости, введенных из-за недостатка данных.

1:n-граммовая модель

Базовую формулу модели n-грамм можно рассматривать как следующую формулу вероятности P:

Смысл, выраженный этой формулой, состоит в том, что вероятность образования i-го слова определяется вероятностью слова от w1 до wi-1, которое было порождено ранее, В таком процессе мы используем предыдущее слово, а также Это предсказать следующее слово, которое появится, используя предыдущее слово, а затем мы будем наблюдать по большому количеству текстов, мы будем знать, будет ли слово иметь тенденцию все больше и больше отставать от этих слов. Например, " вы" в приведенном выше примере Вы ели?" Теперь предположим, что в нашем тексте 1000 предложений, и теперь вы ели 20 раз, поэтому мы получим соответствующую вероятность появления этого слова P(Вы ели)= (20/1000)=(1/50).

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

Возможный вариант такой комбинированной текстовой истории - это то, что мы часто называем гипотезой Маркова. Эта гипотеза фактически относится к проблеме, соответствующей вышеизложенной. Эта гипотеза фактически означает, что слова, которые появятся следующими, являются из предыдущих. Если в соответствии с приведенной выше формулой, поскольку фронт состоит из i-1 слов, то если мы построим модель, вся история на самом деле состоит из предыдущих i-1 слов, поэтому модель, которую мы строим, становится (n- 1) модель Маркова порядка или модель n-грамм (потому что мы хотим предсказать n-е слово).

Здесь мы хотим поговорить о значении n. В общем случае мы не можем задавать значение n слишком большим. Если оно слишком велико, обязательно будет много классов эквивалентности. Слишком много свободных параметров может быть не очень хорошо.( На самом деле, разделение данных на несколько классов эквивалентности имеет преимущества и недостатки.С одной стороны, если мы разделим данные на несколько классов, это может фактически дать нам больше дискриминации, но если используется слишком много классов эквивалентности, то Для каждой категории , его тренировочные данные очень малы, и даже некоторые части не имеют тренировочных данных.В этом случае очень неточно делать статистическую оценку целевых характеристик, так как в это время сбалансировать и найти подходящую.Количество категорий является одной из наших целей исследования.) Затем мы посмотрим на значение n в это время.В общем, наиболее часто используемые значения n равны n=2, 3 и 4. В настоящее время, соответственно, это называется биграммой (бинарной грамматикой), триграммой (тройной грамматикой), фурграммой (четвертичной грамматикой).

Теперь предположим, что говорящий использует 20 000 слов, тогда количество параметров показано на следующем рисунке:

Из этого рисунка видно, что четверичная модель грамматики уже имеет очень большие параметры, поэтому строить больше моделей грамматики явно нереально.

2: Создайте модель n-грамм

1; Обычно первым шагом в построении модели является обработка корпуса

В первую очередь нам необходимо обработать корпус, так как по требованиям n-граммной грамматики вероятность слова связана только с вероятностью предыдущего слова, ведь сумма всех вероятностей должна быть равна 1, поэтому нам нужно добавить в начале и конце предложения Маркер начала предложения и маркер конца предложения, чтобы мы могли вычислить, вот пример:

p(I Love You)

После обработки предложения таким образом, если мы получим определенный корпус, если слово появляется сейчас 10 раз, например: «хорошо», за которым следует «утро» 8 раз, «мальчик» один раз и «девочка» один раз, ну и что? с какой вероятностью мы должны оценить следующее слово?

Фактически, мы можем рассмотреть возможность использования относительной вероятности для оценки:

P(morning)=0.8

P(girl)=0.1

P(boy)=0.1

P(other)=0 (другое не принадлежит к трем вышеуказанным словам)

После классификации таким образом рассчитайте их вероятности для этих данных, а затем нормализуйте их, чтобы можно было рассчитать:

Здесь мы используем C(w1.......wn) для представления количества раз, когда n-грамма появляется в заданном тексте, поэтому у нас есть следующая формула:

Такая оценка обрабатывается способом, который мы называем оценкой максимального правдоподобия (MLF) p(wn|w1.........wn-1)

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

Итак, как мы должны решить эту проблему? В настоящее время мы будем думать, что должен быть лучший метод оценки. Если мы сможем идентифицировать события, которые не появляются в обучающих данных, и можем дать определенную вероятность, некоторые исследователи Лучший способ дано:

Если вы можете немного уменьшить размер вероятности событий, которые наблюдались, и вы можете присвоить небольшую величину вероятности событиям, которые не были замечены, то каждое событие произойдет и может работать эффективно, это то, что мы часто называем метод дисконтирования, процесс дисконтирования называется сглаживанием (это потому, что распределение без нулей более гладкое, чем распределение с нулями?)

Итак, как мы должны выполнять сглаживание?Существует несколько распространенных способов сглаживания.В следующей статье мы опишем несколько распространенных методов сглаживания данных.

Начинающих изучать НЛП прошу критиковать и исправлять недостатки, спасибо!