Эта статья изначально написана Луо Чжоуяном, пожалуйста, укажите автора и источник для перепечатки.
Стэнфордский классический учебник по НЛПSpeech and Language ProcessingЗаметки о чтении N-грамм.
Модель, вычисляющая вероятности для последовательности слов, называетсяЯзыковые модели,в,n-gramявляется самым простым. Одинn-gram
длинаN
Последовательность слов, состоящая из:
-
N=2
, тогда2-gram
(bigram) -
N=3
, тогда3-gram
(trigram)
простой пример
Есть задача посчитать, то есть с учетом историирассчитатьВероятность. Предположение, мы хотим посчитать следующее словоthe
вероятность, то есть:
Возможный способ:В большом корпусе статистикаколичество вхождений, а затем считатьколичество раз, второе делится на первое,который:
Такой подход работает во многих случаях. Но в некоторых случаях все же возникают следующие проблемы:
- Некоторые слова имеют нулевое ожидаемое появление.
Возникает аналогичная проблема: если мы хотим знатьсовместная вероятность,Например, то мы можем преобразовать задачу в следующую: «Во всех последовательностях из 5 словits water is so transparent
Сколько раз оно появлялось? "
Чтобы решить эту проблему, нам нужен лучший способ оценкина основевероятность , или вероятность всей последовательности.
Мы берем длинуN
Последовательность выражается как, просто выраженный как,Так:
вышеПравило цепиповерхностьсовместная вероятностьиУсловная возможностьотношения между.
Но вышеупомянутое умножение также приносит проблемы:
- Для очень длинных последовательностей, вычислительно затратных
- Если какая-либо из них имеет вероятность 0, то вся совместная вероятность становится равной 0
N-Grams
n-gramВместо расчета вероятности слова на основе всей истории он заменяет всю историю несколькими историческими словами.
заbigramмодели, мы только вычисляемто есть то естьвыродился в,который:
этоВероятность слова основана только на нескольких предыдущих словахпредположим, что его зовутМарковское предположение.
Поэтому для обычногоn-gramМодель, следующее слово основано на условной вероятности всех предыдущих слов, может быть упрощена до:
назадbigramМодель, совместная вероятность всей нашей последовательности, может быть упрощена до:
Итак, как мы оцениваем этиbigramилиn-gramвероятность? Интуитивно понятный способОценка максимального правдоподобия (оценка максимального правдоподобия или MLE).
Конкретный метод состоит в том, чтобы выбрать ожидание, подсчитать его и затем нормализовать.
или сbigramНапример,
Знаменательвсе собщее количество слов, начинающихся с, то есть можно упростить до **Количество вхождений**! который:
В реальной обработке мы обычно добавляем к каждому предложениюначальный тегиконечный тег,Например<s>
и</s>
.
<s>
заключается в том, чтобы дать контекст первому слову,</s>
заключается в создании более реалистичного распределения вероятностей.
We need the end-symbol to make the bigram grammer a true probability distribution. Without an end-symbol, the sentence probabilities for all sentences of given length would sum to one.
Практические вопросы и советы
Есть также некоторые практические проблемы и решения.
существуетN
Относительно большойn-gramмодель, например4-gramили5-gram, для первых нескольких слов в предложении у нас недостаточно длинных исторических слов, тогда наш подход состоит в том, чтобы создать несколько псевдослов.
Например, в3-gramв, для предложенийI love cake.
, мы сначала обрабатываем<s>I love cake.</s>
, то как вычислить условную вероятность «P(I)» для первого слова? Ответ заключается в использовании псевдослов,P(I|<s><s>)
.
Кроме того, мы обычно используемлогарифмическая вероятностьВместо упомянутой выше вероятности, поскольку логарифмическая вероятность дает два преимущества:
- Логарифмирование может преобразовать непрерывное умножение в накопление, что может ускорить вычисления.
- Может предотвратить числовое переполнение
Оцените языковые модели
При разделении набора данных обычная практика состоит в том, чтобы разделить обучающий набор на следующие три части:
.
|-data_set
|----training_set(80%)
|----dev_set (10%)
|----test_set (10%)
Среди них обучающий набор используется для обучения модели, проверочный набор используется для настройки параметров модели, а тестовый набор используется для оценки производительности модели.
Обычно используется метод оценкинедоумение.
для тестового набора, недоумение рассчитывается следующим образом:
По цепному правилу имеем
В частности, дляbigram, приведенную выше формулу можно упростить как
свяжитесь со мной
- WeChat: луочжоуян0528
- Почта:stupidme.me.lzy@gmail.com
- Публичный номер: тупыммедотме