Разница между ядром Rasa и Rasa nlu

Я пытался понять rasa из официальной документации ядра Rasa и Rasa nlu, но не смог вывести многое. Что я могу понять, так это

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

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

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

Ответ 1

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

О вашем втором вопросе:

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

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

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

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

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

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

Ответ 2

Добавьте к хорошему ответу выше, вы правы.

Если вы хотите получить лучшее понимание, построив его самостоятельно на очень простом примере, посмотрите эту кулинарную книгу здесь:

https://hackernoon.com/build-simple-chatbot-with-rasa-part-1-f4c6d5bb1aea

Ответ 3

Очень непрофессиональное описание для начинающих: Rasa NLU: Это интерпретатор, который понимает ввод. В основном выясняет сущности и обозначает намерение.

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

Например: вы говорите "Привет" боту. Rasa NLU будет понимать намерение ввода как "приветствие", а Rasa Core скажет боту ответить приветствием.

PS *: ответом будет приветствие, если вы тренируете своего бота для него или это может быть что-то еще.

Ответ 4

Чтобы объяснить простыми словами, Rasa NLU использует NLP (Natural Language Processing), чтобы понять, что вы говорите боту.
Он понимает, что вы говорите, и сопоставляет его с определенным намерением.
Rasa Core, с другой стороны, управляет потоком разговоров. Файл уценки историй перечисляет намерения и действия для них.
Следовательно, когда NLU дает намерение, Ядро выполняет соответствующее ему действие, и бот отвечает этим действием.