diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2017-12-06 00:32:04 +0300 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2017-12-06 00:33:49 +0300 |
commit | 79effcc630cf9264206d892b2e3791d67813257f (patch) | |
tree | 345f5098fd17e15f223cdc8115f6fbb8ab53c6f3 /plugins/Boltun/docs/mind.txt | |
parent | 7cf8ea2d9817e729af3a5596c34bee17a2bfe163 (diff) |
convert txt files to utf-8
Diffstat (limited to 'plugins/Boltun/docs/mind.txt')
-rw-r--r-- | plugins/Boltun/docs/mind.txt | 176 |
1 files changed, 88 insertions, 88 deletions
diff --git a/plugins/Boltun/docs/mind.txt b/plugins/Boltun/docs/mind.txt index 01dcd6e5ba..208834e884 100644 --- a/plugins/Boltun/docs/mind.txt +++ b/plugins/Boltun/docs/mind.txt @@ -1,142 +1,142 @@ - .
+В этом файле описан формат файла базы реплик и принцип работы Болтуна.
==============================================================
- .
- UNICODE .
- :
+Формат файла.
+Файл базы реплик имеет кодировку UNICODE и состоит из пар строк.
+Такие пары строк являются допустимыми:
-1) :
+1) Фразы обучения:
-""
-""
+"Фраза"
+"Ответ"
-2) :
+2) Ответы по ключевым словам:
- (" ")
-""
+ ("список ключевых слов")
+"Ответ"
- ,
- ('?' - , '.' - ).
- '~', .
+При этом список ключевых слов состоит из слов, ОБЯЗАТЕЛЬНО должен заканчиваться символом
+типа предложения ('?' - вопросительное, '.' - любое другое). Если список предваряется
+символом '~', то это является разрешением нечеткого совпадения.
-3) :
+3) Ответы по специальным словам:
- {" "}
-""
+ {"список специальных слов"}
+"Ответ"
-4) :
+4) Часто используемые фразы:
- [""]
-""
+ ["Фраза"]
+"Ответ"
-5) - :
+5) Слова-признаки вопросительного предложения:
<QUESTION>
-""
+"слово"
-6) :
+6) Специальные слова:
<IGNORED>
-" "
+"Специальное слово"
-7) :
+7) Общие ответы:
<ESCAPE>
-" "
+"Общий ответ"
-8) ( ):
+8) Начальные фразы (Для начала разговора):
<INITIAL>
-" "
+"Начальная фраза"
-9) ( , 7):
+9) Общие ответы (то же, что и 7):
<FAILURE>
-" "
+"Общий ответ"
-10)
+10) Алиасы
-@""
-" "
+@"привет"
+"превед прю прифф"
-11)
+11) Ответы на повторы
<REPEAT>
-" ."
+"Я уже сказал."
==============================================================
- :
+Припцип работы движка бота:
- , .
- :
+Во время работы движку передается реплика клиента, а движок на основе реплики формирует ответ.
+Нахождение ответа имеет такие фазы:
-0) ( ), 30 .
-- - (11). 2-3
- . 30
-, . ,
-.
+0) Если эта реплика совпадает с предыдущей (точное совпадение), сказанной не более 30 мин. назад
+- выдается одна из реплик-ответов на повторы (11). После 2-3 повторов Болтун перестает реагировать
+на повторы этой реплики и просто не отвечает. После 30 мин Болтун нормально реагирует на эту же
+реплику, но на повтор сразу будет молчать. Так будет до первой реплики, отличной от уже
+повторенной.
-1) (4) .
- . ,
- .
+1) Поиск реплики целиком среди часто используемых (4) реплик. При нахождении реплики ее ответ
+возвращается как ответ бота. Если ответов для этом реплики несколько, то выбирается
+один из них.
- (4), .
-
-. 0 - .
+Если реплика не найдена среди (4), то поиск ответов продолжается.
+Далее все найденные ответы запоминаются с учетом их приоритета и в конце осуществляется
+выбор. 0 - наивысший приоритет.
-2) (1) 1).
- 1.
+2) Далее происходит поиск среди реплик обучения (1) аналогично пункту 1). Результаты имеют
+приоритет 1.
-3) .
-'.' '!' '?', '!' ':-!'.
+3) Производится разбиение реплики на предложения. Разделителями предложений являются симолы
+'.' '!' '?', при этом игнорируется '!' в составе смайлика ':-!'.
- :
+Следующие действия производятся для каждого предложения:
- 4) (4) .
- 0.
+ 4) Поиск предложения целиком среди часто используемых (4) фраз. Результаты имеют
+ приоритет 0.
- 5) (1). 1.
+ 5) Поиск среди фраз обучения (1). Результаты имеют приоритет 1.
- 6) .
- , ( "))" ).
- : .
- , ,
- (5).
- , (6).
+ 6) Далее происходит разделение предложения на слова. При этом в предложении выделяются
+ как слова все смайлики, а также скобки количеством больше двух ( "))" ).
+ Производится определение типа предложения: вопросительное или нет. Вопросительное
+ предложение или имеет в конце восклицательный знак, или содержит хотя бы одно слово,
+ которое относится к вопросительным (5).
+ Отдельно записываются слова, которые относятся к специальным (6).
- 7) (2).
- . 1.
- .
+ 7) Поиск совпадения среди ключевых слов (2). Все ключевые слова должны присутствовать в
+ предложении и тип предложения должен совпадать. Результаты имеют приоритет 1.
+ Предпочтительным является совпадение как можно большего количества ключевых слов.
- 8) (3). - (6).
- ,
- .
- ( , ). , .
- 2.
+ 8) Поиск совпадения среди специальных слов (3). Специальные - это слова из (6).
+ Подразумевается, что они не несут особой смысловой нагрузки и по ним возможны только
+ обобщенные ответы. В предложении должно присутствовать не менее одного специального
+ слова (как правило, присутствует только одно). Также, тип предложения должен совпадать.
+ Результаты имеют приоритет 2.
-, ,
- .
+Результаты, полученные от разных предложений, имеют одинаковый приоритет и только один из
+них может стать ответом.
- 9 10 , ", "
-(aka " ") .
+Пункты 9 и 10 ипользуются, только если опция "Молчать, если нету хороших ответов"
+(aka "Иногда лучше жевать") отключена.
-9) (7). 3.
+9) Выбор одного случайного ответа среди общих ответов (7). Результаты имеют приоритет 3.
-10) (9). (9) -
- " ". 3.
+10) Выбор одного случайного ответа среди общих ответов (9). Обычно (9) - это несколько
+реплик в духе "не понял". Результаты имеют приоритет 3.
- , 9 10 .
+Таким образом, в случае непонятной фразы используется или 9 или 10 с равной вероятностью.
- (10)
- 1-10 .
+После этого производится замена алиасов (10) в исходной реплике на соответствующие слова и
+повторение пунктов 1-10 для такой реплики.
- .
- ,
-( 30 ).
- (, ),
-.
+Как ответ бота выбирается случайный ответ с наименьшим значением приоритета. При нескольких
+ответах одинакового приоритета выбирается тот, который не использовался до этого
+(учитываются предыдушие ответы Болтуна этому контакту за последние 30 минут).
+Если никаких вариантов ответа нет (например, для пустой базы реплик), то ответа и не
+следует.
- ,
- . , .
- .
\ No newline at end of file +Если ответ должен начинаться с маленькой буквы, то первая найденная буква в ответе
+заменяется на маленькую. Этого не происходит, если ответ начинается с пробела.
+При этом пробел удаляется.
\ No newline at end of file |