При создании чат-бота обычно используются методы обработки естественного языка (NLP). Наиболее популярные алгоритмы - Seq2seq и RNN. Алгоритм Seq2seq изначально предназначен для выполнения переводов. он состоит из декодера, кодировщика и модели. Кодировщик принимает последовательность входных данных, например предложение, изображение и т. Д., И создает представление объекта в непрерывном пространстве. Декодер используется для прогнозирования выходных данных на основе представления функций, предоставленных кодировщиком. Модель определяет, как собрать кодер и декодер, чтобы минимизировать потерянную функцию.

На приведенном выше кодировке вводятся следующие данные: «Как дела?» и выход декодера у меня хороший.

Кодер-декодер 1

Ниже приведен пример перевода с английского на китайский.

Существуют различные проекты с открытым исходным кодом, которые используют seq2seq и RNN для реализации чат-бота. Мы провели простое тестирование некоторых примеров.

Результат тестирования различных чат-ботов:

Cakechat: https://github.com/lukalabs/cakechat

Chatlearner: https://github.com/bshao001/ChatLearner

Chatbot-rnn: https://github.com/pender/chatbot-rnn

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

Мы обнаружили, что следующие проблемы важно решить, прежде чем у нас появится надежный чат-бот.

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

С учетом контекста: большая часть корпуса обучающих чат-ботов находится в формате QA и предназначена для ответов на вопросы. Они сопоставляют представление функций с помощью лучевого поиска для получения ответа. Чат-бот не принимает во внимание контекст предыдущего разговора, чтобы произвести ответ, который выглядит как непрерывный разговор. Чтобы решить проблему контекстной осведомленности, необходимо добавить тренинг, чтобы реакция была более близкой к реальной ситуации.

Запоминание: когда мы общаемся с чат-ботом, мы выпускаем много информации и ожидаем, что чат-бот запомнит ее, чтобы нам не приходилось повторять ее снова и снова, например Как меня зовут, мой возраст, мой день рождения и, может быть, то, что я сделал вчера и т. Д. Но похоже, что очень маленький чат-бот может это реализовать. Чудо - чат-бот, который может что-то запоминать, но, к сожалению, это не лучшая реализация:

Система реализована в виде справочных таблиц «ключ-значение». Вы используете «запомнить» в качестве командного слова для сохранения пары «ключ-значение», а когда вы задаете вопросы, она просто находит ответ в таблице. Кажется, его нужно улучшить, чтобы он действительно понимал предложения.

Конец первой части… продолжение следует.

Присоединяйтесь к нам в сообществе:

Facebook: https://www.facebook.com/groups/577370715964985/

Twitter: https://twitter.com/Astrominde11

Telegram: https://t.me/vrastromind

Insgram: https://www.instagram.com/astromind1/?hl=zh-cn