Как понять естественный язык?

Понятие искусственный интеллект (ИИ, англ. Artificial intelligence, AI) объединяет множество технологий, среди которых распознавание изображений, голоса и прочее. Мы используем NLP (понимание естественного языка, англ. Natural language processing or understanding).

На самом деле чатбот, конечно же, не понимает о чем говорит человек, но он может очень эффективно притворяться. Посмотрим как это происходит.

Мы говорили о намерениях в разделе о статистике. Задача любой системы обработки естественного языка выделить намерение из сообщения собеседника.

Представьте диалог:

Собеседник: «Подскажи какая сегодня погода в Сан-Франциско?»

Чатбот: «В Сан-Франциско сегодня солнечно, 20ºC».

Выглядит как разговор двух людей. Как же это происходит?

  1. Сохраняем вопрос собеседника в переменную %question=Подскажи какая сегодня погода в Сан-Франциско?
  2. Отправляем в NLP.
  3. NLP определяет наличие названия города в сообщении (%city=Сан-Франциско), времени (%date=сегодня) и намерения (%intent=погода).
  4. Чатбот получает переменные %city, %date и %intent.
  5. По переменной %intent=погода чатбот перепрыгивает в карту с погодой.
  6. Идем на погодный сервис и спрашиваем погоду за сегодняшнее число. Получаем ответ %weather=солнечно, 20ºC.
  7. Вот и все! Остается только отослать ответ собеседнику В %city %date %weather (В Сан-Франциско сегодня солнечно, 20ºC).

NLP дает возможность получить волшебные эффекты в построении диалогов. Сервисов достаточно много. К примеру попробуй dialogflow.com. Для его подключения к боту задай настройки в узле @default как показано на карте:

Click icon to copy this map or open it in