И так – главная часть проекта "чат-бот".
Как он должен работать:
Есть два варианта:
1) Чат-бот будет работать с базой данных (далее БД) слов, а не готовых фраз. Каждое слово будет сопровождаться информацией о его части речи, что поможет при использовании слова в предложении. При ответе чат-бот будет составлять предложения из слов в его БД. Анализ введённых данных будет проводится не только на схожесть слов, но и на то, в какой последовательности эти слова расположены.
- Плюсы: больше схожести с ИИ.
- Минусы: труднореализуемо, возможны тупиковые ситуации со словами.
2) Чат-бот будет работать с БД готовых фраз (предложений, слов, словосочетаний). После анализа введённых данных чат-бот начинает перебирать БД на схожесть слов. Совпавшее слово (словосочетание или предложение) с каким-то из слов в ведённом тексте получает один бал. И так, пока слова во введённом тексте не закончатся. То слово (словосочетание или предложение), которое набрало большее количество балов, и будет ответом чат-бота.
- Плюсы: достаточно легко реализуемо, вероятности ошибок в ответах нет.
- Минусы: чат-бот ограничен запасом слов (словосочетаний или предложений) в своей БД.
Что он должен уметь делать:
Проект должен представлять из себя обычного чат-бота (возможно, с "TextToSpeech") – т.е. окно с двумя EDIT полями (ввод/вывод) и кнопкой "Сказать" (например). Код должен быть разделён на классы (класс для обработки введённых данных [clsInput], класс для работы с БД...[clsDatabase]). Позже, на стадии интеграции чат-бота с 3D интерфейсом, окно будет убрано, информация будет вводится с консоли. В код будут введены небольшие поправки для работы с 3D. Всё достаточно просто.
Как пример чат-бота, можно посмотреть этот:
http://nai.shergin.com
Какой вариант работы чат-бота выбрать? Можно взвесить все плюсы и минусы...
Теперь -
кто может подключиться и помочь реализовать такой проект (возможно с кем-то)?