ЗодчийТеней

ЗодчийТеней
Рейтинг
11
Регистрация
13.02.2006
itman:
достаточно, чтобы хеш попадал в диапазон скажем от нуля до одного миллиарда, а всем новым словам можно выдавать айди, начиная с миллиарда.

из 750 тыс проиндексированных страниц удалось собрать словарь размером в 138 тыс. уникальных слов, поэтому думаю что цифра в 1 миллиард очень уж избыточная

itman:
О опять кто-то шлет отрицательные отзывы. Боюсь, что теперь уж точно кой у кого репутация окажется нулевой.

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

отступление от темы, а как в этом случае быть бедным китайцем с их 100 тысячным списком базовых иероглифов?

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

з.ы. интересно кто это на меня так обиделся что ежедневно добавляет мне минусы в репутацию на основании темы о размере словаря? ;-)

InSAn:
Я это тоже утверждаю.

my $id = join '', map {ord($_)} split //, $word;

Задача решена? ;)

PS: О "длине" айди в утверждении ничего не было сказано.

оригинальный метод, но тогда стоит вернуться к первоначальному вопросу, а именно методе позволяющем впихнуть в 300Кб словарь с учетом морфологии русского языка, и именно алгоритм позволяющий реализовать это по утверждениям Артизана им и упоминался.

Хотя с моей точки зрения обе темы уже утратили свою актуальность и перешли в плоскость обсуждения "необоснованных" высказыванию некоторых форумян, это уже просто ребячество. ИМХО.

itman:
при этом я ни за что не поверю, что алгоритм генерации уникальных айди на основе строк настолько важен, что его нельзя рассекретить :-)

любая реализация идеи имеет свою цену, но вот когда человек говорит что я знаю как но никак не может подтвердить свои слова это уже наводит на нехорошие мысли :-(

!Иван FXS:
... понятна одна банальная вещь: хранить нужно инкрементально, то есть6
- если в словаре после "дом" идет "дон", то при переходе от первого ко второму нужно хранить только "н";
- а если после "ключик" идет "ключом", то при переходе от первого ко второму нужно хранить только "ом";
- а если после "ключа" идет "ключик", то при переходе от первого ко второму нужно хранить "ик" и - в какой-то нотации - указание на то, что одна буква заменяется на две.

примерно такую схему я и пытаюсь релизовать сейчас, каждое словоформ апредставлена примерно следующей матрицей {приставка|основа|окончание}, именно такой массив матриц я и хочу получить на выходе после фильтрации запроса через словарь

Artisan:
Оба утверждения неправильные, ...

вы опять говорите "а" но не говорите "б", думаю что из вас вышелбы неплохой адвокат

itman:
Вот и кстати, тов Зодчий на тему компактного представления словаря. СЕЙЧАС эта задача уже не актуальна, в отличие от компактного представления инвертированного индекса. Потому что словарь по сравнению с этим самым индексом мааахонький.

насчет индекса согласен, но насчет компактности словаря не согласен, при работе с озу вы всегда получите большую скорость, поэтому загрузив все исходные данные в озу вы получите неплохой прирост производительности

itman:
Дык спать семь часов в день все равно надо, башка иначе перестанет варить.

всегда есть вариации, у каждого свои нюансы

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

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

Artisan:
Выспитесь а потом внимательно прочитайте эту тему, ...

это увы малорельно :-(, думаете что сегодня человек при здравом уме затеит эксперемент с созданием поискового сервиса?

!Иван FXS:
Чем сложнее задача, те сложнее написать для нее компактный алгоритм!

я же не прошу писать алгоритм :-)

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

для упрощения обсуждаемой задачи давайте остановимся на получении на выходе идентификатора основы слова, идентификаторов приставки и окончания, это если брать грубую модель

itman:
Процесс "умещения" большего количества данных в ОЗУ и называется сжатием.

дык это и ежу понятно. Положим, что на данный момент я располагаю 4 Гб озу в которые вполне свободно могу впихнуть все свои 1,5 Гб распакованных данных, но ведь это не выход? данные будут расти, а объем озу конечен в отличие от объема пзу, так зачем я все доступные данные буду грузить в озу? я пытаюсь ограничиться лишь словарем на основании которого получу идентификаторы всех возможных словоформ из поискового запроса

Artisan:
Я могу но Вы не очень внимательны, ...

тогда акцентируйте наконец внимание на своей мысли, я всего лишь человек, к тому же человек который уже пятые сутки не спит, я могу и упустить что то

Всего: 95