Яндекс Лабс в Palo Alto набирает С++ developers

User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

Ljolja wrote:
crypto5 wrote: А алгоритмически - посортировать, пройтись по сортированному списку, посчитать каунты, потом еще раз пройтись и найти десять самых больших каунтов, потом еще раз пройтись, и найти запросы для этих каунтов.
дорогое решение, даже если в процессе сортировки повторения убирать и счетчик увеличивать. имхо лучше сначала кластеризовать по некот. признаку подобия. потом отсортировать только кластер с наименьшей дисперсией, если там в итоге окажется < 10 запросов, отсортировать следуюший. Так же подход будет хорош, если соответствие 2-х (одинаковых) запросов не 100%
Осталось узнать хороший принцип подобия, и хороший алгоритм кластеризации, а там может и тунели сойдутся.
Именно поэтому в гугле просят на доске код написать, что-бы туман мудрости развеять. :umnik1:
In vino Veritas!
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by stenking »

crypto5 wrote:
stenking wrote:
crypto5 wrote:
stenking wrote:Ну если это яндекс то памяти много и нужно быстро. Можно такое дерево например составить.

А => 1000 => АА => 500
Б => 9999 АБ => 4
С => 100
А как именно это дерево строится?
Если это http://en.wikipedia.org/wiki/Trie то тоже может быть одной из оптимизаций.
Ну берём например запрос "Почему путин краб" http://www.youtube.com/watch?v=2ZFCXV7w9NM

"П" => 1
"ПО" => 1
"ПОЧ" => 1
И что дальше? :radio%:

Ну берём например запрос "Почему путин краб" http://www.youtube.com/watch?v=2ZFCXV7w9NM

"П" => 1
"ПО" => 1
"ПОЧ" => 1

Потом второй запрос "Почему нужны трусы"

"П" => 2
"ПО" => 2
"ПОЧ" => 2
...

"ПОЧЕМУ" => 2


ПОЧЕМУНУЖНЫТРУСЫ => 1

Зачем сохранять части а не сразу использовать хеш поиска как ключ? Для последующего поиска самых больших запросов например что бы не искать весь миллиард а скорее пройтись по П => "ПО" => "ПОЧЕМУ" нет?
Бога нет.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by dotcom »

Я бы все-таки дождался точного вопроса. А то диапазон решений может быть от подсчета частоты появления слова из словаря до теории, как делать map-reduce. А, может, и все сразу. :)
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

stenking wrote:
crypto5 wrote:
stenking wrote:
crypto5 wrote:
stenking wrote:Ну если это яндекс то памяти много и нужно быстро. Можно такое дерево например составить.

А => 1000 => АА => 500
Б => 9999 АБ => 4
С => 100
А как именно это дерево строится?
Если это http://en.wikipedia.org/wiki/Trie то тоже может быть одной из оптимизаций.
Ну берём например запрос "Почему путин краб" http://www.youtube.com/watch?v=2ZFCXV7w9NM

"П" => 1
"ПО" => 1
"ПОЧ" => 1
И что дальше? :radio%:

Ну берём например запрос "Почему путин краб" http://www.youtube.com/watch?v=2ZFCXV7w9NM

"П" => 1
"ПО" => 1
"ПОЧ" => 1

Потом второй запрос "Почему нужны трусы"

"П" => 2
"ПО" => 2
"ПОЧ" => 2
...

"ПОЧЕМУ" => 2


ПОЧЕМУНУЖНЫТРУСЫ => 1

Зачем сохранять части а не сразу использовать хеш поиска как ключ? Для последующего поиска самых больших запросов например что бы не искать весь миллиард а скорее пройтись по П => "ПО" => "ПОЧЕМУ" нет?
Я совершенно не понял мысли, что означает "хеш поиска" в частности, и как именно предлагается найти 10 самых часто встречающихся запросов вообще.
Т.е. я согласен, что если заюзать trie вместо сортировки в моем алгоритме, то оно бусет работать. Вы это предлагаете?
In vino Veritas!
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Komissar »

если подразумевается "точная" (буква к букве, пробел к пробелу) идентичность 2х запросов, то кластеризуем по длине строки сначала, а там уже делаем субкластеризацию самого большого кластера.
Berlaga
Уже с Приветом
Posts: 1008
Joined: 24 Mar 2010 21:14
Location: SFBA

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Berlaga »

dotcom wrote:Я бы все-таки дождался точного вопроса.
А это и был точный вопрос. Ну еще в качестве разъяснения добавили, что это массив реальных запросов к поисковой системе Яндекса за некоторый период времени, допустим одну неделю. Все.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

Komissar wrote:если подразумевается "точная" (буква к букве, пробел к пробелу) идентичность 2х запросов, то кластеризуем по длине строки сначала, а там уже делаем субкластеризацию самого большого кластера.
Ну можно по многим разным признакам покластеризовать, только вы никак не сможете прикинуть какая окуратность вашего решения в конце концов получится.
In vino Veritas!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by dotcom »

Berlaga wrote:
dotcom wrote:Я бы все-таки дождался точного вопроса.
А это и был точный вопрос. Ну еще в качестве разъяснения добавили, что это массив реальных запросов к поисковой системе Яндекса за некоторый период времени, допустим одну неделю. Все.
Ну тогда это открытый вопрос на смекалку и общие знания.
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Ljolja »

crypto5 wrote: Осталось узнать хороший принцип подобия, и хороший алгоритм кластеризации, а там может и тунели сойдутся.
Именно поэтому в гугле просят на доске код написать, что-бы туман мудрости развеять. :umnik1:
на вскидку параметры: количество символов в запросе, их распределение (частота встречаемости символа), символы рассматривать не все, ограничится например "a", "t", etc. (based on prior knowledge regarding what symbols discriminate better)
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

Ljolja wrote:
crypto5 wrote: Осталось узнать хороший принцип подобия, и хороший алгоритм кластеризации, а там может и тунели сойдутся.
Именно поэтому в гугле просят на доске код написать, что-бы туман мудрости развеять. :umnik1:
на вскидку параметры: количество символов в запросе, их распределение (частота встречаемости символа), символы рассматривать не все, ограничится например "a", "t", etc. (based on prior knowledge regarding what symbols discriminate better)
А откуда вы узнали что это именно хорошие признаки подобия? и алгоритм выдаст хорошую точность?
И не могли бы вы как то оценить, почему все ваши манипуляции будут работать быстрее моего алгоритма? Я тоже могу наповыдумывать много необычных штук, но это все будет пальцем в небо.
In vino Veritas!
scorpion
Уже с Приветом
Posts: 3435
Joined: 16 Dec 2003 06:23
Location: SF Bay Area

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by scorpion »

crypto5 wrote:Задача не очень точно поставлена...
Задача, если мне не изменяет склероз, модификация "стандартной", удалите(найдите) дубликаты строк из ну очень большого и несортированного массива. И в зависимости от положения звезд на небе, сделать это надо с имеющимися ограничениями по объему используемой памяти или времени, или того и другого одновременно, или как-нибудь, но с "изюминкой", например, в одну строчку. :-)
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by stenking »

А если случайно взять скажем миллион samples?
Бога нет.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Интеррапт »

А еще вопрос - список хоть отсортирован, уже хеширован и т.п.? Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

stenking wrote:А если случайно взять скажем миллион samples?
Ну тогда можно и случайный результат получить :D
In vino Veritas!
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Komissar »

good question
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

Интеррапт wrote:А еще вопрос - список хоть отсортирован, уже хеширован и т.п.? Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
А что такое - хешированный список? :radio%:
In vino Veritas!
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by stenking »

crypto5 wrote:
stenking wrote:А если случайно взять скажем миллион samples?
Ну тогда можно и случайный результат получить :D
А там теория вероятности говорить по этому поводу?)
Бога нет.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

stenking wrote:
crypto5 wrote:
stenking wrote:А если случайно взять скажем миллион samples?
Ну тогда можно и случайный результат получить :D
А там теория вероятности говорить по этому поводу?)
Говорит что можно :umnik1:
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Интеррапт »

crypto5 wrote:
Интеррапт wrote:А еще вопрос - список хоть отсортирован, уже хеширован и т.п.? Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
А что такое - хешированный список? :radio%:
Не список хеширован, а элементы в нем. По большому счету, должны же как минимум сразу хеш запроса (записи) калькулировать, как это делают обычные базы данных при индексации, а не просто тупо сохранять миллиарды записей в файл, а потом с ними манипулировать.
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Komissar »

во-во.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:
Интеррапт wrote:А еще вопрос - список хоть отсортирован, уже хеширован и т.п.? Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
А что такое - хешированный список? :radio%:
Не список хеширован, а элементы в нем. По большому счету, должны же они сразу хеш запроса (записи) калькулировать, как это делают обычные базы данных при индексации, а не просто тупо сохранять миллиарды записей в файл, а потом с ними манипулировать.
Ну вот в разных хадупах так и делают, просто сохраняют записи в файлах, и потом их мепредьюсят, без всяких хешей.
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Интеррапт »

crypto5 wrote:Ну вот в разных хадупах так и делают, просто сохраняют записи в файлах, и потом их мепредьюсят, без всяких хешей.
Начал уже было про mapreduce писать, но вы опеределили. Все-равно массу прекалькуляций наверняка можно сделать на этапе получения данных.
scorpion
Уже с Приветом
Posts: 3435
Joined: 16 Dec 2003 06:23
Location: SF Bay Area

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by scorpion »

Интеррапт wrote:Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
Манипуляции проделываются, но не совсем в реальном времени, т.е. можно считать, что все валится в кучу.
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Komissar »

ну тут, как всегда, вопрос в востребованности хешированных данных. На этом вся БЫГ ДАТА и построена, что, как оказалось, вся data integrity, indexing, etc - в 99% никому не нужны, потому все проще сваливать в одну помойку, а уж если потребуется, потом в той помойке что-то конкретное искать. Я вот все хочу такое же применить к моим tax-supporting documents.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Яндекс Лабс в Palo Alto набирает С++ developers

Post by Интеррапт »

scorpion wrote:
Интеррапт wrote:Как-то ведь слабо верится, что они просто тупо скидывают все запросы в один, условно говоря файл, без того, чтобы проделывать все эти манипуляции по мере поступления данных?
Манипуляции проделываются, но не совсем в реальном времени, т.е. можно считать, что все валится в кучу.
Да понятное дело, что можно манипулировать как угодно, пусть даже не в реальном времени. Но определенный препроцессинг можно делать уже на этапе получения данных (пусть даже определенными бакетами). Ну вот вряд-ли просто тупо выкатят тебе миллиарды записей и скажут, а ну посчитай что тут и как. Умнее же должно это быть.

Return to “Работа и Карьера в IT”