Детектор символов, слов и фраз
Распознаватель слов и фраз по типу зоны Вернике в мозге.
Для распознавания слов используется дерево слов, ветки которого состоят из символов слова.
Для распознавания фраз используется дерево фраз, ветки которого состоят из отдельных распознанных слов.
Память о воспринятых фразах в текущем активном контексте (Vernike_detector.go): var MemoryDetectedArr []MemoryDetected
Распознавание фраз начинается в main.go с word_sensor.VerbalDetection(text_dlg, is_input_rejim, moodID)
С ПУльта приходит текст, который в VerbalDetection() разбирается на фрзацы (\r\n):
абзацы в PhraseSeparator() разбираются на фразы по разделителям (знаки препинания)
фразы в WordDetection() разбиваются на слова.
Распознанные (и нераспознанные) последовательности сохраняются в оперативной памяти Beast MemoryDetectedArr, где распознанный текст представлен в виде уникального laslID фразы
ОПИСКИ при вводе слова. Если слово не распознается и оно имеет более 3-х символов,
то делается предположение об описке внутренних символов
(в природном распознавателе слово узнается если точно совпали первая и последняя буквы,
а внутренние буквы могут быть как угодно перемешаны)
Если слово распознается, то подставляется ID слова.
Тон фразы можно задать 1) с помощью знаков ! и ? в конце фразы
или задать преимущественно - выбрав Тон под окном ввода фразы.
SetNewTextBlock - Новая порция текста для формирования дерева слов
addNewtempArr - добавляются как целиком фраза, так и все слова во фразе. Тут же дозаполняется дерево слов уже многократно повторяющимися элементами.
createNewNodeWordTree - создать новый узел дерева слов
loadWordTree - загрузить дерево слов из файла
SaveWordTree - сохранить дерево слов
SetNewWordTreeNode - вставить новое слово в дерево слов
WordDetection - распознаватель слова
getAlternative - попробовать найти подходящее слово с альтрнативными ID. Первые буквы должны совпадать, а остальные, кроме последней (разные окончания),
быть перемешаны, но в наличии >80%
addNewMemoryDetected - добавить строку в массив памяти о воспринятых фразах в текущем активном контексте
VerbalDetection - распознаватель образов фраз
updateWordTreeFromTempArr - переносим в дерево слов достаточно повторяющиеся
createNewNodePhraseTree - создать новый узел дерева фраз
loadPhraseTree - Загрузка дерева фраз из файла
SavePhraseTree - Сохранить дерево фраз
SetNewPhraseTreeNode - вставка новой фразы со вставкой новых слов фразы, так что фраза будет распознана всегда.
PhraseDetection - проход одной фразы - распознавание ID слов фразы
GetPhraseStringsFromPhraseID - строка из ID фразы дерева фраз