Модели, основанные на принципе статистической семантики, строят предложения по ассоциациям, а не по смыслу, поэтому приложение их для понимания ограничено. Однако с их помощью легче достичь результата, если иметь очень много данных —и с этими данными просто работать, ведь их не нужно предварительно обрабатывать или размечать.
Но все же конечная цель NLP — это понимание речи, поэтому все чаще применяются другие подходы.
Например, в семантике фреймов алгоритмы разбирают предложения по кирпичикам, выделяя слова, которые отвечают на вопросы кто, что, где, когда, а также существительные и глаголы. Например, если попросить Алексу: «Найди грузинское кафе в центре на завтра», алгоритм разобьет фразу на части: действие —что сделать (найти), что (грузинское кафе), когда (в пятницу) и где (в центре). Алгоритм различает простейшие фрагменты информации, что позволяет модели отвечать на простые вопросы или запросы. Это можно использовать для создания чатботов и голосовых помощников.
Фреймовые модели могут обрабатывать простые предложения и, таким образом, показывают элементы понимания текста, на котором учатся. Впрочем, они не улавливают нюансы, лишены гибкости и для обучения им нужны большие массивы данных под каждый конкретный запрос.
Третий подход называется теоретико-модальная семантика. Основана она на идее, что человеческие знания можно закодировать в виде логических правил. Если модель знает, что птицы могут летать, а орлы — это птицы, то она сама делает вывод, что орлы летают. Когда-то, на заре машинного обучения, за таким методом видели большое будущее, но вскоре убедились, что язык не так логичен, как кажется, и из каждого правила есть много исключений. Например, курица хоть и птица, но с полетами у нее проблемы, а летают, кроме птиц, самолеты и даже люди — космонавты.
Сейчас модели, основанные на этом подходе, используются для работы с базами данных, где информация уже упорядочена. Тогда модель может разбить предложение на части и дать ответ, исходя из логических правил, применимых к каждой из частей. Если взять вопрос «В какой стране мира было меньше всего убийств по неосторожности на душу населения в прошлом году?», алгоритм разделит его на серию отдельных запросов: «Какие есть страны мира?», «Какие бывают виды убийств?», «Сколько убийств по неосторожности было в таком-то году по странам?» и так далее. Алгоритм последовательно задает вопросы, обращаясь к базам данных, пока не получит окончательный ответ.
Такой метод позволяет отвечать на сложные запросы, хотя требует серьезной подготовки с представлением знаний. Если вопрос сформулирован неточно или выходит за рамки имеющихся данных, модель не работает.