В современную цифровую эпоху компании постоянно стремятся повысить вовлеченность пользователей и предоставить персонализированный опыт. Один из эффективных способов добиться этого — включить в чат-ботов возможности распознавания эмоций. Rasa, платформа с открытым исходным кодом для создания диалоговых агентов на базе искусственного интеллекта, предоставляет разработчикам инструменты для создания чат-ботов, чувствительных к эмоциям. В этой статье мы рассмотрим различные методы реализации бота Rasa Emotion и предоставим примеры кода, которые помогут вам начать работу.
Метод 1: анализ настроений
Анализ настроений включает в себя анализ настроений или эмоций, выраженных в сообщениях пользователей. Rasa предоставляет компонент конвейера анализа настроений, который можно добавить к конвейеру NLU (понимание естественного языка). Вот пример конфигурации:
pipeline:
- name: WhitespaceTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
analyzer: "char_wb"
min_ngram: 1
max_ngram: 4
- name: DIETClassifier
epochs: 100
- name: EntitySynonymMapper
- name: ResponseSelector
epochs: 100
- name: SentimentAnalyzer
Метод 2: Классификация эмоций
Вместо анализа настроений вы можете напрямую классифицировать сообщения пользователей по различным эмоциям. Rasa предоставляет возможность обучить собственный классификатор эмоций с помощью DIETClassifier. Вот пример конфигурации:
pipeline:
- name: WhitespaceTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
analyzer: "char_wb"
min_ngram: 1
max_ngram: 4
- name: DIETClassifier
epochs: 100
- name: EntitySynonymMapper
- name: ResponseSelector
epochs: 100
- name: EmotionClassifier
Метод 3. Внешние API-интерфейсы Emotion
Интеграция внешних API-интерфейсов анализа эмоций может обеспечить более точное обнаружение эмоций. Вы можете использовать настраиваемые действия Rasa для вызовов API и извлечения эмоций из сообщений пользователей. Вот пример фрагмента кода с использованием API Affectiva Emotion:
import requests
def extract_emotion_from_text(text):
api_key = "<YOUR_API_KEY>"
url = "https://api.affectiva.com/v3/emotion"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"document": {
"text": text
}
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
result = response.json()
# Extract emotion from result
emotion = result["document"]["emotion"]
return emotion
return None
Метод 4. Обучение с подкреплением
Обучение с подкреплением можно использовать, чтобы научить чат-бота реагировать по-разному в зависимости от обнаруженных эмоций. Вы можете использовать функцию интерактивного обучения Rasa и вознаграждать бота за соответствующие ответы. Вот пример команды для запуска интерактивного обучения:
rasa interactive
Включение в чат-ботов функций распознавания эмоций может значительно улучшить взаимодействие с пользователем и повысить вовлеченность. В этой статье мы рассмотрели несколько методов реализации бота для эмоций Rasa, включая анализ настроений, классификацию эмоций, интеграцию с внешними API-интерфейсами эмоций и обучение с подкреплением. Понимая эмоции пользователей и реагируя на них, чат-боты могут обеспечить более персонализированное и чуткое взаимодействие. Так почему бы не воспользоваться мощными функциями Rasa и не создать собственного бота для эмоций уже сегодня?