Подтвердить что ты не робот

Как создать смарт-чат-бот?

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

У меня есть модель (предположим, что это память бота), а разные слова связаны с разными объектами в модели. Говорить с ботом - это как выполнение sql-запросов с помощью БД. Язык - очень жесткий формализуемый протокол. И мы не можем просто написать миллион строк кода для реализации какого-то реального языка. Но я считаю, что абсолютно возможно реализовать некоторый механизм самообучения. Как это можно реализовать? Можно ли реализовать обучение "с нуля" или "от нескольких основных слов"? Просто хочу услышать ваши идеи.

Собственно, английский язык - очень строгий язык, и это один из самых простых языков для экспериментов с ИИ. Многие другие языки позволяют вам изменить порядок слов (например). И в некоторых случаях измененный порядок может изменить весь смысл или просто добавить некоторую интонацию. У меня действительно нет идей, как научить бота этим вещам.

4b9b3361

Ответ 1

Первый шаг, при принятии этой игры на следующий уровень,...

... иметь очень четкое представление об уровне техники!

(и простите меня, что вопрос не предполагает, что у вас есть такое обширное понимание этого вопроса [и вы не одиноки, посчитайте меня; -)])

Даже, возможно, в частности, если вы намерены применять совершенно новые методы и модели, важно просмотреть литературу о текущей и прошлой практике. Помимо возможных элементов, которые могут быть адаптированы или повторно использованы в новой реализации, обзор домена обеспечит четкое понимание природы проблемы [s].

Я лично пробовал - в разные и несколько раз! - либо наивный подход, либо второстепенный подход к решению широко определенных проблем. С наивным подходом у человека есть лишь небольшое представление об истинном характере и объеме проблемы. Софинор видит, что мы лучше оснащены знаниями о доменах, а также со связанными с ними инструментами, но это также может вводить в заблуждение, потому что без более глубокого понимания мы склонны неправильно читать/неправильно понимать новые материалы, предлагаемые нам, а также злоупотреблять некоторыми инструментами ( немного похоже на того, кто "хорош с молотом", для которого многие вещи похожи на гвоздь...)

Особенно легко сделать эти ошибки в области НЛП. Это потому, что

  • Здравый смысл кажется всем необходимым: ведь ребенок, который на родном языке - английский, понимает тонкости, как, например,   "Он не действительно эксперт"
      "Он действительно не эксперт"
    (немного подмигивает OP-ссылке на упорядочение слова на английском языке)
  • Мы живем в такие захватывающие моменты, технологии и знания: обработка мощности, язык программирования и инструменты, математические методы, доступность доступных корпусов... чтобы назвать некоторые из этих вещей, которые делают этот момент времени настолько особенным.

Вдали от меня идея обескуражить вас в вашей работе с бот-ботом, я просто надеюсь, что это длинное и универсальное exposé будет поощрять смотреть прежде, чем вы прыгаете, поскольку это действительно сэкономит вам время в долгосрочной перспективе, Я думаю двумя способами:

  • предоставит вам несколько ссылок (опять же, даже если ваше намерение "думать за пределами этих ящиков" )
  • может побудить вас переопределить проблему, например, ограничив ее конкретными доменами разговора (спортом или здоровьем или жизнью в конкретном университетском городке...) или сосредоточив внимание на конкретном аспекте проблемы (семантический осознание, гладкая, естественная грамматика звучания, использование разговорных форм...)

Удачи, -)

Ответ 2

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

Ответ 3

Вы "тренируете" бота - каждый раз, когда бот отвечает, вы оцениваете (или тестер) ответ - если ответ хороший/логичный - дайте высокий ранг, если ответ плох... низкий/отрицательный ранг.

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

Ответ 4

Там отличное описание Eliza в Парадигмы Программирование AI. Вы должны иметь возможность внедрить простого бота Элиза в течение нескольких дней работы.

Это не алгоритм обучения, но он удивляет, насколько реалистичные ответы могут быть от простого.

Ответ 5

Вы можете создать свой собственный бот-чат на BOT libre, http://www.botlibre.com.

Боты узнают, могут быть обучены, могут быть написаны сценарием, и вы можете запрограммировать их или позволить им сами программировать.

Thew сайт поддерживает встраивание вашего бота на ваш собственный сайт, имеет доступ REST API, Android, IRC, Twitter. Бесплатный хостинг, даже для коммерческих ботов.

Ответ 6

AIML из AliceBot может помочь вам. Это целая XML-схема (если это не отключает вас) для ветки AI, с которой она связана.

Пример из Википедии:

<category>
  <pattern>WHAT IS YOUR NAME</pattern>
  <template>My name is <bot name="name"/>.</template>
</category>

RebbeccaAIML - это довольно хорошо документированная реализация.