From f17646aaa5e410a2e673e0de69358c9d5e09f63b Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 9 Jul 2012 06:47:31 +0000 Subject: Boltun: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@866 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Boltun/docs/TODO.txt | 35 +++++++ plugins/Boltun/docs/boltun-translation.txt | 23 +++++ plugins/Boltun/docs/mind.txt | 142 +++++++++++++++++++++++++++++ plugins/Boltun/docs/readme.txt | 124 +++++++++++++++++++++++++ 4 files changed, 324 insertions(+) create mode 100644 plugins/Boltun/docs/TODO.txt create mode 100644 plugins/Boltun/docs/boltun-translation.txt create mode 100644 plugins/Boltun/docs/mind.txt create mode 100644 plugins/Boltun/docs/readme.txt (limited to 'plugins/Boltun/docs') diff --git a/plugins/Boltun/docs/TODO.txt b/plugins/Boltun/docs/TODO.txt new file mode 100644 index 0000000000..6ea2151d2d --- /dev/null +++ b/plugins/Boltun/docs/TODO.txt @@ -0,0 +1,35 @@ +TODO list: + +-------------------------------------------------------- +Release-critical: + +- Add study capability to engine + +Done: +- Add reaction for duplicate phrases. +- Add aliases. +- Check for critical section double enter +- Multicontact talk support in engine +- Add "Start talking" option to cantact menu. +- Check bot warning. +- Add "be silent, not stupid" to options +- Add start answers with a little letter. +- Add README about bot algorithm. +- Add README for mind file format. +- Add "don't use "don't understand"" option +- Division between question and non-question sentenses +- Empty keywords or specials should not be loaded +- Check "каким-либо" +- Check :-) on "ок" +- Add answer-on status info to the readme. +- Make AI options dependent. +- Update mind.txt with UpdateStartChar +- Sort keywords matches by priority +- Use chooser everywhere + +-------------------------------------------------------- +Future: +- Speed-up loading +- Load mind from UTF8 files +- Expert mode support +- Add different choises of reaction for message series. diff --git a/plugins/Boltun/docs/boltun-translation.txt b/plugins/Boltun/docs/boltun-translation.txt new file mode 100644 index 0000000000..c3bce4a2f2 --- /dev/null +++ b/plugins/Boltun/docs/boltun-translation.txt @@ -0,0 +1,23 @@ +; Common strings that belong to many files +;[] + +; ../../plugins/Boltun/Boltun.rc +;[Base of remarks] +;[Boltun] +;[Boltun Autochat everybody] +;[Boltun Autochat everybody not in contact list] +;[Boltun Autochat everybody while away] +;[Don't use \"I don't understand\"-like answers] +;[Engine] +;[Mark replied messages as read] +;[Reload] +;[Start answers with a lowercase letter] +;[Stay silent, if have no good aswers] +;[Thinking time:] +;[Time before the answer] +;[Typing and thinking time can be much longer] +;[Typing time (for a message of 4 words):] +;[Typing time depends on message length (in chars)] +;[Warn contacts Boltun is chatting] +;[Warning text] +;[sec] diff --git a/plugins/Boltun/docs/mind.txt b/plugins/Boltun/docs/mind.txt new file mode 100644 index 0000000000..01dcd6e5ba --- /dev/null +++ b/plugins/Boltun/docs/mind.txt @@ -0,0 +1,142 @@ +В этом файле описан формат файла базы реплик и принцип работы Болтуна. + +============================================================== +Формат файла. +Файл базы реплик имеет кодировку UNICODE и состоит из пар строк. +Такие пары строк являются допустимыми: + +1) Фразы обучения: + +"Фраза" +"Ответ" + +2) Ответы по ключевым словам: + + ("список ключевых слов") +"Ответ" + +При этом список ключевых слов состоит из слов, ОБЯЗАТЕЛЬНО должен заканчиваться символом +типа предложения ('?' - вопросительное, '.' - любое другое). Если список предваряется +символом '~', то это является разрешением нечеткого совпадения. + +3) Ответы по специальным словам: + + {"список специальных слов"} +"Ответ" + +4) Часто используемые фразы: + + ["Фраза"] +"Ответ" + +5) Слова-признаки вопросительного предложения: + + +"слово" + +6) Специальные слова: + + +"Специальное слово" + +7) Общие ответы: + + +"Общий ответ" + +8) Начальные фразы (Для начала разговора): + + +"Начальная фраза" + +9) Общие ответы (то же, что и 7): + + +"Общий ответ" + +10) Алиасы + +@"привет" +"превед прю прифф" + +11) Ответы на повторы + + +"Я уже сказал." + +============================================================== + +Припцип работы движка бота: + +Во время работы движку передается реплика клиента, а движок на основе реплики формирует ответ. +Нахождение ответа имеет такие фазы: + +0) Если эта реплика совпадает с предыдущей (точное совпадение), сказанной не более 30 мин. назад +- выдается одна из реплик-ответов на повторы (11). После 2-3 повторов Болтун перестает реагировать +на повторы этой реплики и просто не отвечает. После 30 мин Болтун нормально реагирует на эту же +реплику, но на повтор сразу будет молчать. Так будет до первой реплики, отличной от уже +повторенной. + +1) Поиск реплики целиком среди часто используемых (4) реплик. При нахождении реплики ее ответ +возвращается как ответ бота. Если ответов для этом реплики несколько, то выбирается +один из них. + +Если реплика не найдена среди (4), то поиск ответов продолжается. +Далее все найденные ответы запоминаются с учетом их приоритета и в конце осуществляется +выбор. 0 - наивысший приоритет. + +2) Далее происходит поиск среди реплик обучения (1) аналогично пункту 1). Результаты имеют +приоритет 1. + +3) Производится разбиение реплики на предложения. Разделителями предложений являются симолы +'.' '!' '?', при этом игнорируется '!' в составе смайлика ':-!'. + +Следующие действия производятся для каждого предложения: + + 4) Поиск предложения целиком среди часто используемых (4) фраз. Результаты имеют + приоритет 0. + + 5) Поиск среди фраз обучения (1). Результаты имеют приоритет 1. + + 6) Далее происходит разделение предложения на слова. При этом в предложении выделяются + как слова все смайлики, а также скобки количеством больше двух ( "))" ). + Производится определение типа предложения: вопросительное или нет. Вопросительное + предложение или имеет в конце восклицательный знак, или содержит хотя бы одно слово, + которое относится к вопросительным (5). + Отдельно записываются слова, которые относятся к специальным (6). + + 7) Поиск совпадения среди ключевых слов (2). Все ключевые слова должны присутствовать в + предложении и тип предложения должен совпадать. Результаты имеют приоритет 1. + Предпочтительным является совпадение как можно большего количества ключевых слов. + + 8) Поиск совпадения среди специальных слов (3). Специальные - это слова из (6). + Подразумевается, что они не несут особой смысловой нагрузки и по ним возможны только + обобщенные ответы. В предложении должно присутствовать не менее одного специального + слова (как правило, присутствует только одно). Также, тип предложения должен совпадать. + Результаты имеют приоритет 2. + +Результаты, полученные от разных предложений, имеют одинаковый приоритет и только один из +них может стать ответом. + +Пункты 9 и 10 ипользуются, только если опция "Молчать, если нету хороших ответов" +(aka "Иногда лучше жевать") отключена. + +9) Выбор одного случайного ответа среди общих ответов (7). Результаты имеют приоритет 3. + +10) Выбор одного случайного ответа среди общих ответов (9). Обычно (9) - это несколько +реплик в духе "не понял". Результаты имеют приоритет 3. + +Таким образом, в случае непонятной фразы используется или 9 или 10 с равной вероятностью. + +После этого производится замена алиасов (10) в исходной реплике на соответствующие слова и +повторение пунктов 1-10 для такой реплики. + +Как ответ бота выбирается случайный ответ с наименьшим значением приоритета. При нескольких +ответах одинакового приоритета выбирается тот, который не использовался до этого +(учитываются предыдушие ответы Болтуна этому контакту за последние 30 минут). +Если никаких вариантов ответа нет (например, для пустой базы реплик), то ответа и не +следует. + +Если ответ должен начинаться с маленькой буквы, то первая найденная буква в ответе +заменяется на маленькую. Этого не происходит, если ответ начинается с пробела. +При этом пробел удаляется. \ No newline at end of file diff --git a/plugins/Boltun/docs/readme.txt b/plugins/Boltun/docs/readme.txt new file mode 100644 index 0000000000..f20c3ec466 --- /dev/null +++ b/plugins/Boltun/docs/readme.txt @@ -0,0 +1,124 @@ +Болтун 0.3.0 Unicode Alpha 7 + +08.01.2009. + +Плагин предназначен только для тестирования. +И нечего его распостранять без приметки "beta" + +================================================ + +Список файлов: + +readme.txt - Этот файл +boltunw.dll - Собственно плагин +boltun.mindw - База реплик для плагина +lang_pack.txt - Файл с переводом интерфейса Болтуна на русский язык. +mind.txt - Описание формата файла базы реплик и принципа работы Болтуна. + +================================================ + +Установка: + +Скопировать файлы boltunw.dll и boltun.mindw в папку Plugins Миранды. +Строки из lang_pack.txt могут быть использованы для русификации интерфейса. + +================================================ + +Описание настроек: + +Основные настройки: +"Болтун говорит со всеми" - Болтун говорит абсолютно со всеми контактами +"Болтун говорит со всеми, кто не в списке контактов" - Болтун говорит с теми, кто отсутствует в вашем списке контактов +"Болтун говорит со всеми, когда меня нет" - Болтун говорит абсолютно со всеми контактами, когда статус отличается от "невидимый" или "в сети" +"Предупреждать о разговоре с Болтуном" - Каждый контакт один раз в жизни будет предупрежден о разговоре с Болтуном. +"Отмечать сообщения как прочитанные" - Отмечать сообщения контакта, с которым говорит Болтун, как прочитанные. Таким образом вы не увидите уведомлений о них. +"Текст предупреждения" - Сообщение, которое Болтун передает контакту в качестве предупреждения. +"Время печати" - время набора сообщения, в секундах. +"Время печати зависит от длины сообщения (в буквах)" - время набора зависит от длины сообщения. "Время печати" тогда указывает время набора сообщения из 25 символов. +"Время обдумывания ответа" - время паузы перед началом набора сообщения, в секундах. +"Время печати и обдумывания может увеличиваться" - Время набора и обдумывания случайным образом может быть до 4-х раз больше заданного. + +Установки движка: +"База реплик" - имя файла, с которого будет загружаться и в который будет сохраняться база реплик. +Кнопка "..." - выбор файла базы реплик в диалоге. +Кнопка "Сохранить" - сохранение базы реплик в файл, не дожидаясь автосохраниния при выходе из Миранды. +Кнопка "Перегрузить" - загрузка базы реплик из файла. +"Молчать, если нету хороших ответов" - Для непонятной реплики не используются общие ответы, а Болтун просто молчит. +"Начинать ответы с маленькой буквы" - Заменыть в ответе первую букву на маленькую. Но если ответ начинается с пробела, то замены не происходит, а пробел удаляется. +"Не испольозвать ответы типа "Не понял?"" - Пытаться ответить общими фразами вместо проявления непонимания. + +================================================ + +Список изменений: + +08.01.2009: +- Добавлена реакция на повторяющиеся реплики +- Исправления ошибок в ядре движка. +- При ошибке загрузки базы теперь приблизительно указывается строка с ошибкой в файле базы (не верьте ему!!!!). + +04.01.2009: +- Удалена утечка памяти при загрузке базы +- Поддержка алиасов +- Небольшие оптимизации + +30.09.2008: +- Исправлены некоторые недочеты, которые вызывали повторяемость бота. +- Обновлен файл описания базы (т.к. добавлены начальные фразы в базу реплик). + +29.09.2008: +- Устранено влияние истории одного контакта на разговор с другим. +- Убрано запоминание не отосланных ответов. + +28.09.2008: +- Болтун теперь в случае нескольких реплик подряд отвечает только на последнюю. +- Предотвращены возможные проблемы при одновременном разговоре с несколькими контактами. +- Болтун теперь отслеживает историю каждого контакта отдельно, чтобы лучше избегать повторений. + +19.09.2008: +- Добавлена возможность Болтуна начинать разговор. + +14.09.2008: +- Улучшен алгоритм выбора во избежание повторяющихся ответов. + +13.09.2008: +- Переделано определение текущего каталога. +- Убрано сохранение базы, чтобы никто не строил иллюзий касательно самообучения. +- Изменены настройки выбора файла базы, исправлено некоторые ошибки в диалоге настроек. +- Добавлена смена курсора на песочные часы на время загрузки базы. + +12.09.2008: +- Исправлена ошибка, приводившая к исчезновению значков статусов в плагине MRA. + +10.08.2008: +- Предупреждение о разговоре с Болтуном теперь работает не только когда включен "Болтун разговаривает со всеми" +- Изменено расширение файла базы, чтобы не путать его с файлом профиля. +- Исправлены ошибки с включением кнопки "Применить" в настройках при отсутствии изменений. +- Создан файл перевода интерфейса Болтуна на русский язык. +- Добавлена опция "Молчать, если нет хорошего ответа" +- Добавлена опция "Отвечать с маленькой буквы" +- Исправлен поиск предложения без финальной точки среди часто используемых. +- Исправлен алгоритм работы движка для разных типов предложений. +- Поиск среди ключевых слов теперь более лояльный. +- Добавлен файл с описанием формата файла базы реплик и принципа работы бота. +- Пустые списки ключевых и специальных слов теперь удаляются при загрузке. +- Исправлена ошибка при ответе английскими символами. +- Исправлена ошибка при разделении предложения на слова для слов типа "каким-нибудь". +- Исправлена ошибка, связанная с обработкой перевода стоки в реплике. +- Разбиение совпадений по ключевым словам на приоритеты и выбор согласно им. +- Болтун теперь старается меньше повторяться. + +28.07.2008: +- Переписан движок по образу и подобию старого (скорее всего, он несколько потупел). +- Добавлена поддержка Unicode (для чего и переписан движок) +- Добавлено время "обдумывания" ответа, предваряющее процесс написания. +- Добавлено оповещение "набирает текст" при ответе бота. +- Время "набора" зависит от длины сообщения. +- Исправлена ошибка с появлением сообщения пользователя при установленной задержке ответа +- Изменен порядок добавления сообжений в историю так, что теперь всегда ответы идут после вопросов (было не всегда так). +- Файл базы реплик теперь чем-то отличается от предыдушего формата (не помню так навскидку чем...). Как минимум тем, что он в Unicode-кодировке. + +================================================ + +Контакты: + +valentin.pavlyuchenko@gmail.com \ No newline at end of file -- cgit v1.2.3