?

Log in

No account? Create an account
 
 
04 Март 2012 @ 15:57
Про чат-бота  
Предыстория: как-то раз в начале июня 2009 г. (помнится, дело было перед зачетом по построению трансляторов) поздно вечером я ходила по педивикии и после нескольких переходов со статьи про искусственный интеллект перешла на статью про Ту Самую Страшную Четырехбуквенную Аббревиатуру (имеет отношение к роботам и киборгам, гггггг; Инка знает, о чем я :D ). И тут мне в голову ВНЕЗАПНО пришла идея: а что, если мне попробовать написать чат-бота? Тогда писать его я собиралась на Паскале, но времени не было - уже шла зачетная неделя, а на следующей неделе началась сессия - в общем, дел было по горло, не до чат-ботов.
О боте я постоянно помнила, но до конца прошлого года все никак не могла к нему подступиться. В итоге я начала изучать C# (дада, я знаю, какое к нему отношение; ИМХО совсем не язык в этом виноват...) и как-то раз решила попробовать все-таки написать самого простенького чат-бота. Получилось, правда, бот был консольным. Однако уже в начале этого года я начала изучать средства создания приложений с графическим интерфейсом (дада, у нас визуального программирования не было ни в школе, ни в универе - правда, в универе был Turbo Vision и крохотная лекция по Делфи, но на самом Делфи мы ничего не писали, а преподы считали, что мы должны были еще до поступления в универ знать визуальное программирование) - все оказалось намного проще, чем я думала. В итоге бот получил графический интерфейс и помаленьку стал получать все новые и новые функции.
В планах: сделать бота обучаемым - это как минимум. Уж как он будет обучаться - пока не знаю (если что - с искусственными нейронными сетями работала (можно использовать библиотеку FANN - она есть для C#)). Еще двоюродный брат порекомендовал в будущем приделать к боту распознавание речи :D Также уже два человека просят сделать сетевую версию бота.
Бот пишется на C# (пока с .NET 4.0; если не буду использовать какие-то супер-пупер-функции, доступные только для четвертого дотнета, переведу его на более раннюю версию; скорее всего, так и будет). Пока бота никуда не выкладываю - он все-таки еще сыроват для релиза, но могу дать кому-либо на пробу.
В будущем выложу много скриншотов проги.

Выложу тут историю версий и список изменений:
Версия 0.2.10.1 (27 февраля 2012 г.)
Улучшения:
- если не найден словарь, то выдается окно с предупреждением.
Исправления:
- немного подправлен интерфейс.

Версия 0.2.10 (10 февраля 2012 г.)
Улучшения:
- выбор файла для сохранения лога чата стал проще и нагляднее: в диалог сохранения лога добавлена кнопка "Обзор", при щелчке по которой открывается стандартный диалог выбора файла для сохранения.

Версия 0.2.9 (9 февраля 2012 г.)
Улучшения:
- выбор словаря стал проще и нагляднее: в диалог загрузки словаря добавлена кнопка "Обзор", при щелчке по которой открывается стандартный диалог выбора файла.

Версия 0.2.8 (8 февраля 2012 г.)
Исправления:
- исправлен баг, из-за которого после создания словаря по умолчанию не происходило подключения к нему.

Версия 0.2.7 (27 января 2012 г.)
Улучшения:
- добавлена базовая версия механизма реакции на пустые фразы (пока фразы берутся из массива в теле программы).

Версия 0.2.6 (26 января 2012 г.)
Новые возможности:
- добавлена справка по программе; она содержит разделы "Общие сведения о программе", "Меню "Файл"" и "Меню "Помощь"".
Улучшения:
- расширен базовый словарь.

Версия 0.2.5 (25 января 2012 г.)
Улучшения:
- теперь программа будет работать даже в том случае, если в каталоге с основным исполнимым файлом нет файлов конфигурации и словаря; в этом случае вышеназванные файлы будут созданы автоматически, причем в файле конфигурации будут прописаны имена пользователя и бота по умолчанию ("Я" и "Ботег") и имя файла словаря по умолчанию (dict01.txt), а в файле словаря будет прописана только одна фраза, рекомендующая пользователю заполнить словарь;
- расширен базовый словарь.

Версия 0.2.4 (24 января 2012 г.)
Новые возможности:
- добавлена возможность выбирать имя бота (через пункт меню "Файл" - "Настройки");
- добавлена возможность сохранять лог чата в файл (по умолчанию файл имеет имя chatlog.txt и создается в том же каталоге, что и основной исполнимый файл программы; вы можете ввести адрес своего файла для сохранения лога);
- добавлена возможность загружать свой словарь; программа запоминает выбор словаря и при следующем запуске использует его, а не словарь по умолчанию (dict01.txt).
Изменения в интерфейсе:
- изменен значок программы (пришлось нарисовать свой примитивный смайлик - пусть и кривой, зато свой). В будущем, возможно, значок будет изменен на более хороший.
Улучшения:
- расширен базовый словарь.

Версия 0.2.3 (23 января 2012 г.)
Улучшения:
- теперь информация об истории версий подгружается не из внешнего файла, а из ресурсов самой программы, что очень сильно ускоряет ее работу;
- словарь бота в этой версии грузится из файла, находящегося в том же каталоге, что и основной исполнимый файл программы; при большом словаре возможны тормоза. В будущем планируется сделать возможность загрузки своего словаря.
Новые возможности:
- добавлен пункт меню "Помощь" - "Информация о лицензии";
- добавлена возможность выбирать свое имя (через пункт меню "Файл" - "Настройки"). Файл настроек имеет имя config.cfg и находится в том же каталоге, что и основной исполнимый файл программы. Не удаляйте этот файл, иначе программа перестанет работать.
Изменения в интерфейсе:
- добавлена линия-разделитель между окном диалога и окном ввода;
- размер окна немного увеличен; также немного увеличен размер окна диалога;
- добавлена строка состояния, в которой отображаются подсказки к пунктам меню.

Версия 0.2.2 (20 января 2012 г.)
Новые возможности:
- добавлены полноценные пункты меню "История версий" и "О программе";
- расширен встроенный словарь.
Примечания:
- пока история версий читается из файла, в связи с чем возможны тормоза; в ближайшем будущем планируется решить эту проблему.

Версия 0.2.1 (19 января 2012 г.)
Изменения в интерфейсе:
- теперь у программы есть графический интерфейс; разработка бота с консольным интерфейсом прекращена;
- добавлен временный значок программы; в будущем он будет изменен для того, чтобы избежать возможных проблем с авторскими правами на awesome.jpg :)
- убрана строка приветствия (и так понятно, что большое верхнее окно - окно диалога, а нижнее, поменьше, - окно ввода).
Примечания:
- пока нет возможности выбирать свое имя, но в ближайшем будущем она будет добавлена (как и возможность выбирать имя бота, но надо подумать над целесообразностью этого момента);
- также пока нет поддержки команд (надо подумать и над целесообразностью их "возвращения").

Версия 0.1.2 (30 декабря 2011 г.)
Изменения в интерфейсе:
- изменена и улучшена строка приветствия;
- теперь можно выбирать свое имя перед началом разговора;
- в строках с именами говорящего и бота пишутся текущие дата и время.
Новые возможности:
- новая команда: !datetime - получение текущих даты и времени;
- расширен встроенный словарь.

Версия 0.1.1 (29 декабря 2011 г.)
Первый релиз.
Возможности:
- консольный интерфейс;
- пока бот случайным образом берет фразы из массива строк, встроенного в код;
- поддержка команд: !help - получение списка команд, !end - закончить разговор с ботом.
 
 
Настроение: amusedизумлен(а)
Музыка: Life Cried - Stale | Powered by Last.fm
 
 
 
Sla: Десептиконstrannik8 on Апрель, 13, 2012 14:50 (UTC)
Завидую...