AlexA

Рейтинг
70
Регистрация
16.04.2001
Должность
корпорация Галактика
Интересы
Поисковые системы

Снова не могу не согласиться с Вами, Artisan. И распределение CRC неравновероятное, и ключевое слово правильное.

Для начала обычно принимается, что задача обычная и решается обычными известными и очевидными методами, а вот если они не проходят, тогда уже можно пытаться внести модификации в велосипед.

CRC действительно хорош быстродействием, что в методе шинглов (пересекающихся покрытий) совсем не лишнее.

Согласен, можно верить и не верить.

А система ловли дублей, в одной из частей которой применен CRC32, работает у нас уже довольно давно. На базе - около сотни гиг.

Ну не так уж все страшно.

Все это задачи решаемые (и, главное, решенные).

Верно, как и для многих других хэш-функций.

Другое дело, насколько это важно для поставленной задачи, декодирование в нее, кажется, не входило.

Можно также взять CRC32. Число коллизий будет чуть меньше, чем у обрезанного до 4-х байт MD5.

При хэшировании вероятность коллизий в любом случае ненулевая. Для CRC32 ~ 0,002 (Влад Шабанов).

А можно завести словарь (отсортированный список), тогда номер будет определяться абсолютно однозначно.

Малый объем - где-то до 10 тыс. слов.

Средний объем - до нескольких сот тысяч слов.

Что до классического русского языка (например, словаря Зализняка), здесь зависит от того, сводим словоформы или нет.

Хэш-алгоритм с разрешением коллизий (тем более, с деревом в конце) во многих случаях не проще и не быстрее собственно дерева, и даже простого плоского списка с бинарным поиском.

Мне кажется так:

- для малых объемов словаря - плоский список;

- для средних объемов - тот же список с хэшем (когда бинарный поиск становится менее эффективным);

- для больших объемов - дерево.

Смысл? В 16 байт и само слово влезет.

Цитирую Влада Шабанова (да простит автор):

"Для 30 миллионов слов CRC32 дает примерно

тысяч 50 коллизий. Максимальное количество

слипаний в одной коллизии ~ 150."

Оригинал - 404

Для начала прочтите Сегаловича - обзор по большинству вопросов построения поисковой системы. Конкретно по Вашему вопросу попробуйте метод tf*idf.

Всего: 166