При создании чат-бота обычно используются методы обработки естественного языка (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