Рубрики
Без рубрики

N -грамм -модели – руководство для начинающих

Вы когда -нибудь догадались, какое следующее предложение в абзаце, которое вы читаете, вероятно, будет говорить … Tagged MachineLearning, NLP, Python, новички.

Вы когда -нибудь догадались, о чем следующее предложение в абзаце, которое вы читаете, вероятно, будет говорить? Вы когда -нибудь замечали, что во время чтения вы почти всегда знаете следующее слово в предложении?

Ну, ответ на эти вопросы определенно Да ! Как люди, мы дарим способность читать, понимать языки и Интерпретировать контексты , и почти всегда может предсказать следующее слово в тексте, основываясь на том, что мы прочитали до сих пор. Можем ли мы сделать модель машинного обучения сделать то же самое? Ах, да! Мы очень хорошо можем! И мы уже используем такие модели каждый день, такие как автозаполнение Функция в поисковых системах и приложениях для обмена сообщениями.

В контексте обработки естественного языка задача прогнозирования того, какое слово приходит дальше, называется Языковое моделирование Анкет

Давайте возьмем простой пример,

Студенты открыли свой _______.

Какими возможными словами мы можем заполнить бланк? Книги 📒📚 Notes📖 ноутбуки 💻 Умы Экзамены

Ну, список можно продолжить. Подождите … почему мы думали об этих словах как о лучшем выборе, а не «открыли их двери или Windows ‘ ? Это потому, что у нас было слово студентов, и дали контекст ‘студенты Слова, такие как книги, ноты и ноутбуки, кажутся более вероятными и, следовательно, имеют более высокую вероятность возникновения, чем слова и окна.

Обычно это вероятность Это то, что языковая модель направлена на вычисление. В течение следующих нескольких минут мы увидим понятие N-граммов, очень эффективную и популярную традиционную технику NLP, широко используемое до того, как стали популярны модели глубокого обучения.

Что делает языковая модель?

Описывая в формальных терминах,

  • Учитывая текстовое корпус с словарным запасом V В
  • Учитывая последовательность слов, x (1), x (2),…, x (t) , Языковая модель, по сути, вычисляет Распределение вероятности следующего слова x (t+1) .

Таким образом, языковая модель присваивает вероятность текста. Вероятность может быть выражена с использованием цепного правила в качестве продукта следующих вероятностей.

  • Вероятность того, что первое слово будет x (1)
  • Вероятность того, что второе слово будет x (2) Учитывая, что первое слово x (1)
  • Вероятность того, что третье слово будет x (3) Учитывая, что первые два слова x (1) и x (2)
  • В целом, условная вероятность, которая x (i) это слово I, учитывая, что первые (i-1) слова-это x (1), x (2),…, x (i-1) Анкет

Вероятность текста в соответствии с языковой моделью:

Чтобы выучить языковую модель, изучите N-граммы!

N-грамм-это кусок n последовательных слов Анкет

Для нашего примера студенты открыли свой _______, ниже приведены N-граммы, 2,3 и 4.

Uni Грэмс: «The», «Студенты», «открытые», «их» bi Грэмс: «Студенты», «Студенты открыли», «открыли свои« Три Грэмс: «Студенты открыли», «Студенты открыли свои« 4 – Граммы: «Студенты открыли свои»

В модели N-грамма мы предполагаем, что слово x (t+1) Зависит только от предыдущих (n-1) слов. Идея состоит в том, чтобы собрать, как часто n-граммы встречаются в нашем корпусе, и использовать его для прогнозирования следующего слова.

Это уравнение при применении определения условной вероятности доходности,

Как вычислить эти вероятности?

Чтобы вычислить вероятности этих n-граммов и граммов N-1, мы просто начинаем считать их в большом текстовом корпусе! Вероятность N-грамма/вероятности (N-1) грамма определяется по:

Давайте изучим 4-граммовую языковую модель для примера,

Когда проктор начал часы, студенты открыли _____

При изучении 4-граммовой языковой модели следующее слово (слово, которое заполняет пробел) зависит только от предыдущих 3 слов. Если W это слово, которое входит в бланк, затем мы вычисляем условную вероятность слова W следующее:

В приведенном выше примере, допустим, у нас есть следующее:

"students opened their" occurred 1000 times
"students opened their books" occurred 400 times
-> P(books/students opened their) = 0.4
"students opened their exams" occurred 200 times
-> P(exams/students opened their) = 0.2

Языковая модель будет предсказать слово книги ; Но, учитывая контекст, это книги Действительно правильный выбор? Разве слово Экзамены лучше подходить? Напомним, что у нас есть, Когда проктор начал часы, студенты открыли свои _____ Если бы мы действительно отказались от контекста ‘ Proctor ‘? Похоже, у нас не должно быть. Это заставляет нас понять некоторые проблемы, связанные с N-граммами.

Недостатки моделей N-грамма языка

Проблема разреженности

Что, если «студенты открыли свои» никогда не происходили в корпусе?

Срок счета в знаменателе достигнет ноль!

Если (N-1) грамм никогда не возникал в корпусе, то мы не можем вычислить вероятности. В этом случае нам, возможно, придется вернуться к использованию «открыть их» вместо «студентов открыли свои», и эта стратегия называется Обратный Анкет

Что, если «студенты открыли свой W» никогда не происходили в корпусе?

Срок счета в числителе перейдет на ноль!

Если слово W никогда не появлялся после грамма N-1, тогда нам, возможно, придется добавить небольшой фактор Дельта По счету, это объясняет все слова в словаре V . Это называется ‘сглаживание’ Анкет Проблема разреженности увеличивается с увеличением n Анкет На практике, n не может быть больше 5.

Проблема хранения

Поскольку нам необходимо хранить количество для всех возможных N-граммов в корпусе, увеличивая N или увеличивая размер корпуса, оба имеют тенденцию к хранению, неэффективным.

Однако модели N-грамма также могут использоваться для генерации текста; Учебное пособие по созданию текста с использованием таких N-граммов можно найти в ссылке [2], приведенном ниже.

Рекомендации

[1] CS224N: обработка естественного языка с глубоким обучением [2] NLP для хакеров [3] Все уравнения взяты из Лекционные слайды CS224N

Изображение обложки: Фотография Бретт Джордан на Неспособный

Оригинал: “https://dev.to/balapriya/understanding-n-gram-language-models-3g72”