Вы когда -нибудь догадались, о чем следующее предложение в абзаце, которое вы читаете, вероятно, будет говорить? Вы когда -нибудь замечали, что во время чтения вы почти всегда знаете следующее слово в предложении?
Ну, ответ на эти вопросы определенно Да ! Как люди, мы дарим способность читать, понимать языки и Интерпретировать контексты , и почти всегда может предсказать следующее слово в тексте, основываясь на том, что мы прочитали до сих пор. Можем ли мы сделать модель машинного обучения сделать то же самое? Ах, да! Мы очень хорошо можем! И мы уже используем такие модели каждый день, такие как автозаполнение Функция в поисковых системах и приложениях для обмена сообщениями.
В контексте обработки естественного языка задача прогнозирования того, какое слово приходит дальше, называется Языковое моделирование Анкет
Давайте возьмем простой пример,
Студенты открыли свой _______.
Какими возможными словами мы можем заполнить бланк? Книги 📒📚 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”