Здравствуйте Друзья!
Как извесно словарь пользователя в программе Max-reader,
при увеличении его объема, значительно увеличивает время ускоренной записи,
и эту проблему пытается решить Игорь Лисовой.
Для решения проблемы, как мне думается ему нужны апоненты, и советчики знакомые
с программированием, к коим меня отнести невозможно, а посему я обращаюсь к вам,
знатокам в этой области,
подключайтесь к решению этой проблемы а для затравки дискуссии предлагаю последнее
его письмо на эту тему,
"хочу высказать тебе мои соображения - принципа устройства скоростных словарей.
думал я, думал и ничего другого не придумал..
принцип скоростных словарей может быть примерно таков:
программа перед коррекцией ударений в словах текста, сначала - индексирует словарь
произношений по номеру.
например, буквы - " а б в " и так далее становятся под своими номерами.
каждая статья которая начинается с одной и той же буквы - имеет свой неповторимый
номер.
например статьи которые начинаются с буквы - "а", имеют номер 1.
с буквы - "б" , номер 2.
и так далее.
после того как считывается строка из текста, которую нужно обработать из файла
словаря, происходит следующее:
каждое слово в строке сканируется на принадлежность первой буквы.
потом алгоритм сопоставляет первые буквы слов с индексами в словаре.
например есть такое предложение в тексте "мама мыла раму".
при этом будут задействованы статьи из словаря , которые начинаются с букв -
м , р.
а остальные статьи из словаря при этом вообще не обрабатываются. теперь ты можешь
представить разницу между - тупым сканированием статей и избирательным!
думаю что это и есть принцип скоростных словарей.
точно подсчитать производительность не удастся, так как слова в строке текста
соответствуют множеству - x.
а вот если еще обрабатывать индексы с перых двух, или трех букв статей, то скорость
можно увеличить и еще в несколько раз.
вот тут самая сложная часть алгоритма. но думаю что теоритически мои выводы верны.
индексы нужны для того чтобы обработчик знал, где какая статья находится в файле
словаря и сколько их входит в количестве штук для одного индекса."
Думайте, критикуйте, предлагайте!
С уважением, Валерий Антоненков.