Rin
Слияние нескольких словарей в один создаст проблему с предсказанием. Суть в том, что словообразование в разных языках происходит по-разному, потому необходимо явно указать язык или будет порождено слово по правилам (потенциально) любого языка из словаря. По любому оно того не стоит. Производительности это сильно не прибавит т.к. отсечение слов отсутствующих в словаре происходит на ранней стадии и оверхед не очень большой.
А зачем тебе снимать омонимию? Для поиска, это может привести к нехорошим последствиям (что будет, если откинем верный вариант?).
Насчет utf-8 Wicked все сказал. В юникоде кириллическим символам присвоены codepoint`ы 0x400 - 0x4FF в utf-8 они кодируются как двухбайтные последовательности (соотв. 1 символ = 2 байта). Т.к. скорость поиска зависит от длины строки, то скорость поиска в словаре снизится в два раза, общая скорость поменьше конечно.
phprus
Да, в узле дерева хранится один байт. В принципе ничто не мешает засунуть туда любые данные, к примеру для поддержки utf-16 в узле будет храниться два байта(больше сделать сложнее, т.к. придется использовать т.н. опорную кодировку, чего я делать не хочу). utf-8 строка по любому интерпретируется как массив байтов.. Честно говоря, я не знаю, откуда может взяться utf-16 в вебе? Имхо актуальность utf-16 возникнет, когда прикрутят icu к php (там внутренняя кодировка utf-16). Вообще идея в том, чтобы искать строку без перекодирования (т.е. подготовить словарь в нужной кодировке и работать с ним без издержек на перекодирование)
В языке-же базовый (слово не очень удачное, но другое подобрать не могу) элемент - это символ, а не байт.
Это смотря где
. По любому каждый символ надо как-то надо кодировать.
С юникодом возникнет еще проблема - нормализация. Что с этим делать я не знаю..
berkut
Похоже слово предсказывается по известному окончанию,
Constanza:
отсекаем Con, в словаре слово stanza есть. Используем модель словообразования как у stanza. Con - это приставка
. Вообще getPseudoRoot возвращает longest common substring (почти всегда =]) для множества словоформ слова.