Чатбот


Предыдущая | Следующая

Русскоязычный набор инструментов,  позволяющих организовывать диалоговые сессии c машиной.

Данный чатбот архитектурно сочетает два подхода: 
▫️retrieval-based архитектура:  ответ на заданный вопрос ищется в базе знаний с помощью набора NLP моделей. 
▫️rule-based подход:  чатбот может генерировать реплики и управлять диалогом помощью описанный вручную правил,  сценариев и веб-форм

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

Правила и вербальные формы описываются вручную,  но также опираются на несколько NLP моделей.  Модель синонимичности и классификатор интента позволяют выбирать подходящее правило.  Named Entity Recognition модуль извлекает из реплики человека необходимую ключеую информацию. 

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

https://github.com/Koziev/chatbot