Разница между Rasa core и Rasa nlu

Я попытался понять разницу между ядром Rasa и Rasa NLU из официальной документации, но я мало что понимаю. Я понял, что ядро ​​Rasa используется для направления разговора, а Rasa NLU используется для обработки текста для извлечения информации (сущностей).

Примеры создания чат-ботов можно найти в ядре Rasa, а также в Rasa NLU. Я не мог понять, в чем разница между двумя подходами и когда применять один подход вместо другого.

Не могли бы вы помочь мне лучше понять это?


person Henu    schedule 14.12.2017    source источник


Ответы (4)


Вы все правильно поняли. Оба работают вместе, но у них разные цели. Проще говоря, Rasa Core обрабатывает поток разговора, высказывания, действия и извлекает сущности и намерения Rasa NLU.

По поводу вашего второго вопроса:

В первом примере показан весь рабочий процесс по созданию бота, показано, как настроить домен и истории. Это особенности Rasa Core, а не Rasa NLU. В пункте 2 этого примера (который называется «Определить интерпретатор») автор прямо сказал, что он использует Rasa NLU в качестве интерпретатора (но вы могли бы даже использовать другую структуру экстрактора сущностей).

Второй пример (Rasa NLU) показывает, как обучать только объект и средство извлечения намерений. У вас нет никакой информации о доменах и историях, никакой информации о диалоговом потоке, это чистый пример NLU (даже несмотря на то, что он использует метод запуска по умолчанию из Rasa Core для запуска бота).

Когда я начал изучать Расу, мне было немного сложно понять концепции разработки ботов. Но когда вы начали кодировать, все стало ясно. Независимо от того, какие платформы вы используете, NLU будет обрабатывать сущности и намерения, в то время как разговорный поток будет чем-то другим.

Можно даже использовать одну библиотеку для обработки ядра вашего бота, а другую - для обработки NLU.

Я хотел бы отметить, что в отличие от большинства инструментов, которые вы можете использовать для создания ядра своего бота, Rasa Core использует машинное обучение для лучшего обобщения потока диалога. Вместо того, чтобы писать код для каждого возможного узла в вашем диалоге, вы можете использовать набор данных возможных диалоговых путей и обучить ядро ​​обобщать его. Это очень крутая и мощная функция :)

Надеюсь, это поможет.

person Trinca    schedule 14.12.2017
comment
Итак, если я хочу создать своего собственного чат-бота, который работает аналогично LEX, Luis и DialogFlow, какой из них я должен выбрать? - person AntonIva; 01.06.2018
comment
@AntonIva - вам понадобится и то, и другое, чтобы создать полноценное приложение чат-бота, поскольку для этого требуются обе части: понимание того, что пытается сказать пользователь (Rasa NLU - извлечение сущности и намерения), а затем выполнение соответствующих действий в соответствии с контекстной информацией. разговора (Rasa Core). - person Uzair A.; 18.06.2018
comment
Что я получил от этого Rasa NLU: отвечает за извлечение сущностей и намерений; в основном анализирует контекст сообщения чата. Rasa Core: объединяет логику Entities + Respective Reply для создания диалоговой системы для чат-бота. - person Sumanth Lazarus; 31.07.2020

Проще говоря, Rasa NLU использует NLP (обработка естественного языка), чтобы понять, что вы говорите боту.

Он понимает, что вы говорите, и сопоставляет это с определенным намерением, которое вы определили.

Rasa Core, с другой стороны, обрабатывает поток разговора. В файле разметки Stories перечислены намерения и действия для них.

Следовательно, когда NLU передает намерение, Ядро выполняет соответствующее ему действие, а бот отвечает этим действием.

person Prem Kagrani    schedule 07.06.2019
comment
Предоставляемый файл уценки помогает ядру Rasa связать различные возможные entities и соответствующие соответствующие actions или replies для закрытия цикла диалоговой системы. - person Sumanth Lazarus; 31.07.2020

Описание для начинающих: Rasa NLU - это интерпретатор, который понимает ввод. По сути, он определяет сущности и маркирует намерение.
Rasa Core выполняет остальную работу, которую вы хотите, чтобы ваш бот выполнял, а поток разговора является самым важным.

Например, вы здороваетесь с ботом. Rasa NLU будет понимать намерение ввода как приветствие, а Rasa Core скажет боту ответить приветствием.
Ответный ответ будет приветствием, если вы обучите своего бота для этого, или это может быть что-то еще.

person TBhavnani    schedule 05.03.2019

Ответ @ trinca правильный. Я просто немного перефразирую пункты

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

Нет, NLU / Core - это не разные подходы, а, скорее, разные компоненты механизма диспетчера диалогов.

  1. RASA NLU - это классификатор намерений / сущностей:

    Вы в автономном режиме обучаете классификатор с помощью ряда примеров предложений с прикрепленными тегами относительного намерения (и сущностей).

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

  2. RASA Core - это (вероятностный) диспетчер диалогов:

    Он решает / угадывает, какое следующее вероятное «состояние» (опять же просто намерение) разговора с чат-ботом. Он проходит офлайн-обучение по специальностям RASA: "рассказы". Это возможные последовательности намерений, следующие за примерами разговора, которые разработчики отправляют на этапе обучения.

    После этого, во время выполнения, ядро ​​RASA, когда пользователь отправляет предложение (так что соответствующее намерение угадывалось в предыдущем упомянутом компоненте NLU), он угадывает «вероятное» следующее состояние диалога (намерение).

Примечания:

ИММО, вы не можете создать чат-бота только с компонентом NLU (классификатор намерений), предложенным многими конкурентами в качестве «решения» для создания ботов), потому что с помощью только классификатора намерений (NLU) вы можете управлять только диалогами без сохранения состояния. (залпы в один ход без какого-либо контекста разговора).

В конце дня RASA является победителем по сравнению с другими упомянутыми фреймворками (часто это просто шлюзы каналов / классификаторы намерений), потому что компонент диспетчера диалогов и способ историй спроектировать / разработать беседу без жестко запрограммированных правил (если / тогда) .

person Giorgio Robino    schedule 30.04.2020