Размер словаря

ЗодчийТеней
На сайте с 13.02.2006
Offline
11
#21
Artisan:
То что пишу я тоже основано на практике,
только в отличии от Вас я эту задачу решил,
но такие знания бесплатно не раздаются, ...

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

Я, однако, не скажу, что все иллюзии или бред нашего ума нужно называть сумасшествием. Эразм Роттердамский "Похвала глупости".
Artisan
На сайте с 04.03.2005
Offline
375
#22
ЗодчийТеней:
я оплачу ваши знания, и может быть но их основе
произойдет прорыв в микропроцессорной технике?

При чем здесь микропроцессорная техника?

Задача умять словарь в 300kb оперативной памяти,

причем насколько я помню что написано у Yandex это

для одного пользователя на локальной машине.

Такую задачу я решил и могу объяснить как.

ЗодчийТеней:
Назовите вашу цену

Чем больше будет с Вашей стороны тем

лучше будет с моей, предлагайте в приват, ...

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
I
На сайте с 22.10.2005
Offline
58
Iso
#23

Как я понял, нужен пример эффективного алгоритма, который использует кодированные (сжатые) данные, лежащие в оперативной памяти.

Могу привести в качестве иллюстрации свою давнюю реализацию игрока в одну игру для двух человек (Реверси). В памяти я хранил сжатые сценарии (насчитанные на тренировках или в процессе текущей партии), разворачивая на лету только те, которые мне нужны в данный момент. За игру обрабатывалось не более 15 процентов всех сценариев, поэтому это был вполне эффективный подход (т.к. декомпрессия была очень быстрой).

Можно предположить, что и со словарями аналогично - нам ведь под каждый запрос нужен не весь словарь, а только его часть - эта часть и будет "собираться" по необходимости.

Так что не вижу проблемы. Бывают ситуации, когда в оперативной памяти совершенно нормально хранятся сжатые данные. Это не всегда имеет смысл, но для словарных задач, мне кажется, что это весьма распространённый подход. Во всяком случае, в те времена, когда 2 Мб оперативки были пределом мечтаний :) А ради 4 Мб можно было даже жениться :)

Artisan
На сайте с 04.03.2005
Offline
375
#24
Iso:
Бывают ситуации, когда в оперативной памяти совершенно нормально хранятся сжатые данные. Это не всегда имеет смысл, но для словарных задач, мне кажется, что это весьма распространённый подход. Во всяком случае, в те времена, когда 2 Мб оперативки были пределом мечтаний :)

Я это делал на ЕС-1841 у которой

было 640kb оперативной памяти, ...

I
На сайте с 22.10.2005
Offline
58
Iso
#25
Artisan:
Я это делал на ЕС-1841 у которой
было 640kb оперативной памяти, ...

Круто! А я ЕСы потрогать не успел... :( Руки коротки были.

Начинал с Электроники-УКНЦ с 64К - тоже большая радость :)

(трудный день пятница - на оффтоп в серьёзных темах тянет. прошу простить)

ЗодчийТеней
На сайте с 13.02.2006
Offline
11
#26
Iso:
Могу привести в качестве иллюстрации свою давнюю реализацию игрока в одну игру для двух человек (Реверси).

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

Iso:
Можно предположить, что и со словарями аналогично - нам ведь под каждый запрос нужен не весь словарь, а только его часть - эта часть и будет "собираться" по необходимости

как вы собираетесь найти соответствия поисковому запросу в словаре кроме как развернув его весь?

Artisan:
Задача умять словарь в 300kb оперативной памяти,
причем насколько я помню что написано у Yandex это
для одного пользователя на локальной машине.

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

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

Artisan:
Такую задачу я решил и могу объяснить как.

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

Artisan:
Чем больше будет с Вашей стороны тем
лучше будет с моей, предлагайте в приват, ...

я готов легально купить технологию которая меня интересует, не вижу смысла прятаться в приват

I
На сайте с 22.10.2005
Offline
58
Iso
#27
ЗодчийТеней:
а теперь пробуем применить это все на поисковый сервер, а не на локального пользователя, пусть даже это крупный сервер с распределением запросов на разные машины, какие процессорные ресурсы вам понадобятся для обеспечения декомпрессии при каждом запросе?
как вы собираетесь найти соответствия поисковому запросу в словаре кроме как развернув его весь?

Ладно, пробуем сначала простую задачу: пусть есть словарь вообще всех слов. На вход поступает слово, а надо понять, есть ли оно в словаре. От полученного на вход слова вычисляем несколько разных хэш-функций (дурной пример: пусть функция одна - остаток от деления на 256 суммы номеров букв слова). После этого имеет смысл распаковывать только ту часть словаря, для которой этот остаток такой же, причём длина слова тоже должна быть такой же.

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

Короче, мысль в том, что задача решаемая, но чтобы её ъорошо решить надо приложить много усилий.

Я в своё время писал поиск по сайту, используя самописную "добывалку" корней слов где-то строк на 30. Работала вполне хорошо. Иногда приходилось просматривать первую тысячу популярных запросов к машине, чтобы внести новые исключения в алгоритм. Это я к тому, что можно и что-то корявое, но сносно работающее сделать на 30 строках. А уж в 300 Кб можно и получше что-то было сделать. Тем более, у них команда не самоучек, и не из одного человека.

Artisan
На сайте с 04.03.2005
Offline
375
#28
ЗодчийТеней:
а теперь пробуем применить это все на поисковый сервер, а не на локального пользователя, пусть даже это крупный сервер с распределением запросов на разные машины, какие процессорные ресурсы вам понадобятся для обеспечения декомпрессии при каждом запросе?

Это было практически без задержек для пользователя

даже на ЕС-1841 с тактовой частотой 4.5 MHz а насколько

быстро получится на современных гигагерцах с Pentium

распараллеливанием при компиляции оптимизирующим

компилятором надо пробовать, ...

ЗодчийТеней:
как вы собираетесь найти соответствия поисковому запросу в словаре кроме как развернув его весь?

Разворачивать словарь можно по разному, ...

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

Как я уже писал один пользователь на одной машине, ...

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

Похоже что Вы не очень внимательны, ...

I
На сайте с 26.05.2001
Offline
64
#29

Размер словаря в студию!!! Потому как задача размещения словаря в памяти в сжатом виде в некотором роде эквивалентна задачи сжатия вообщеи. Итого если достаточно "разнородные" текстовые данные, которые в несжатом виде занимают три Мб сжимаются до 0.3 Мб, то это больше на похоже на прорыв в области сжатия данных, чем в области морфологического разбора. А потом если размер словаря хотя бы сравним с испелловским, тогда было бы интересно узнать алгоритм.

Artisan:
При чем здесь микропроцессорная техника?

Задача умять словарь в 300kb оперативной памяти,
причем насколько я помню что написано у Yandex это
для одного пользователя на локальной машине.

Такую задачу я решил и могу объяснить как.



Чем больше будет с Вашей стороны тем
лучше будет с моей, предлагайте в приват, ...
Приходите завтра, завтра будет! (http://itman666.livejournal.com)
euhenio
На сайте с 21.09.2001
Offline
357
#30
В частности, словарь, обеспечивающий поиск с учетом морфологии русского языка, занимал всего 300Кб

-есть вероятность, что это не про все слова, а только про самые употребительные.

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий