Технология
Концепция.
Система изначально создавалась как универсальный самообучающийся механизм.
В ней взаимосвязаны три основных сущности: Пользователи, Сообщения, Связи.
Пользователи.
Пользователи представляют основной источник информации для пополнения определённого раздела базы знаний.
Разделы базы делятся по рейтингам (от -300 до 300), пользователи также имеют такие рейтинги, благодаря чему определяется их принадлежность разделу.
Рейтинг определяет вежливость, если у пользователя низкий рейтинг то робот будет общаться с ним на матах и все его фразы будут регистрироваться с низким рейтингом.
Каждый пользователь имеет "лог" сообщений, это своеобразное дерево хранящее весь диалог.
Пользователь может быть связан с другим пользователем, если их темы общения переплетаются. Это сделано для поддержания системой беседы начатой пользователем на тему уже обсуждаемую ранее с другим пользователем.
Сообщения.
Сообщение представляет собой структуру, хранящую содержание сообщения (фразы), его маску, рейтинг и количество произношений.
Для поиска сообщения (ответов на реплику пользователя) используется маска.
Маска вычисляется путём вырезания из сообщения всех символов не являющихся буквами русского и английского алфавита (знаки препинания, смайлы и т.п.), также вырезаются повторяющиеся символы и происходит преобразование по алгоритму DarkTeacher. (прим. "Агаааа сцучко!!!" конвертирует в "ага схчхо").
Связи.
Связь образует пара сообщений, называемых "вопрос - ответ". Образуется при ответе пользователя на реплику бота.
Сообщения, не имеющие связей, могут считаться переходами на новые темы беседы.
Вспомогательные элементы:
SplitHead
Это система создана для увеличения скорости адекватного обучения робота.
Работает по следующему принципу:
Робот завязывает общение с несколькими пользователями. Это общение происходит не долго (3-4 фразы), затем робот делит людей по парам. И перекидывает сообщения от них друг другу. Так начинается общение, в котором робот играем посредническую роль, передавая в паре сообщение от одного пользователя к другому и обратно (система: человек-робот-человек).
Пользователи же в качестве собеседника видят одного и тогоже апонента - робота.
Это общение происходит до того момента пока среднее кол.-во сообщений во всех парах не равно определённому пределу. Как только это происходит пары перемешиваются (без предупреждения) и происходит дальнейшее общение.
Эта дискусия учитывается роботом и всё что пишут пользователи запоминается.
Системные сообщения.
Системные сообщения делятся на фразы приветствия, случайные и опросы.
Приветствия - используются для приветствия новых пользователей.
случайные - используются когда робот незнает что сказать.
опросы - тоже что и случайные, только идут в первую очередь.



