Правила применяются в порядке убывания длин их левых частей
Добавлено: 28 июн 2018 16:16
tonio_k писал(а): May 17 2018
На сайте Демагог написано:Такой же метод применяется и в Балаболке. (в части импорта правил из словаря dic в словарь bxd или отсутствие возможности отсортировать тем, кто уже перевел свои словари в bxd)"Каждое правило из словаря применяется ко всему тексту. Правила применяются в порядке убывания длин их левых частей. Т.е. первым будет проверяться правило с самой длинной левой частью. Это логично: сперва в тексте должны заменены самые большие фрагменты. "
Возможно, такой метод и логичен, но только с точки зрения технического подхода. На практике же, по мере роста словаря, по смыслу всё меняется с точностью до наоборот!
И вот я решил оспорить данный подход.
Смысл вот в чем. Как сейчас происходит:
допустим правило:
дома=дОма. Как часто это правило сработает? - Всегда!
теперь такое правило:
их дома=их домА, т.е. мы как бы делаем уточнение. Оно попадается реже и мы как бы уточняем, что при такой более сложной комбинации надо слово озвучивать уже по-другому
их дома=их домА.
теперь такое правило:
я решил их оставить дома одних=я решил их оставить дОма одних. Это правило как бы уточняет предыдущее, что с такой более сложной комбинацией нужно исправить их домА на их дОма
То есть получается, что чем длинее левая часть правила - тем более "исключительным" это правило становится, по отношению к более короткому дома=дОма
А на практике же получается, что все "особые случаи словосочетаний со словом дома сводятся на нет более коротким и статистически более ошибочным правилом дома=дОма.
Но если изменить подход и применять правила от короткого к более длинной левых частей, то сработают сначала короткие сочетания, как "общие" - более часто встречающиеся. Затем более длинные словосочетания, как "исключения" - которые будут корректировать короткие (общие) правила.
Прошу высказать свое мнение по этому поводу, как формучан, так и разработчиков. Может я слишком линейно смотрю на проблему, и что то не учел в своей категоричности?
flegont писал(а):В следующей версии Демагога будет добавлена опция:
"Сервис - Общие настройки... - Чтение - Правила из dic-словарей применяются в порядке убывания длины".
По умолчанию: включено.
Это - тот самый алгоритм, который применяется сейчас.
А если галку убрать, то будет в порядке следования правил в словаре.
И там уже - ответственность пользователя. Как он правила расположит, такой результат и получит. (В rex-словарях, кстати - именно так - порядок правил определяет пользователь).