За разумное время такую задачу можно решить с помощью графа похожих сайтов.
Идея такая: вручную набираем несколько сайтов, которые точно нам подходят, как-то для каждого находим похожие, проверяем их вручную, подходящие добавляем в набор, повторяем процедуру. Если на каждом шаге аккуратно отбирать сайты, то процесс рано или поздно сойдётся, граф похожих сайтов замкнётся.
Похожие сайты можно искать в Гугле c помощью ключевого слова related, брать у Алексы и Similarweb.
Чтобы не тратить время на выгребание подходящих, но мелких сайтов, нужно следить за тем, как меняется суммарный трафик на сайты из набора. Обычно он выходит на плато гораздо раньше, чем число сайтов в наборе.
Потом граф можно использовать, чтобы примерно понять структуру тематики. Например, новостные сайты бывают про игры:
Про религию:
Про науку:
Комментарии (33)
BigD
17.08.2015 09:41А можете показать для примера сайты, похожие на вышеупомянутые med.sputnik.ru, aptekamos.ru и poisklekarstv.ru?
kentastik
17.08.2015 09:46+1Такое ощущение, что черновик случайно опубликовали :) где собственно дальше?
alexkuku
17.08.2015 10:30-10Я считаю, что статья вполне закончена. Инструменты — Питон, Jupyter, Гефи. Алгоритм описан. Больше результатов показать не могу и не считаю нужным.
ser0t0nin
17.08.2015 10:31Идея такая: вручную набираем несколько сайтов, которые точно нам подходят, как-то для каждого находим похожие, проверяем их вручную, подходящие добавляем в набор, повторяем процедуру.
«Как-то находим похожие» — основная суть задачи, можно поподробнее о ваших идеях по этому поводу?alexkuku
17.08.2015 10:54-4Похожие сайты можно искать в Гугле c помощью ключевого слова related, брать у Алексы и Similarweb.
ser0t0nin
17.08.2015 12:04как насчет выкладок кода и сравнения результатов, каких то примеров?
alexkuku
17.08.2015 12:20-1Код про то как прокачивать Гугл, Алексу и Симиларвеб не очень интересный, непонятно зачем его выкладывать. Результаты этих источников я не сравнивал, просто объединял списки сайтов, которые они отдают. Например, пишите в Гугле «related:lenta.ru» и получаете другие отечественные новостные сайты.
mephistopheies
17.08.2015 11:02мне кажется я что то упустил, нужно вручную отбирать сайты, создавать ребра графа, отмечать цветами? или у меня не отображает процентов 80 статьи?
alexkuku
17.08.2015 11:14-2Нужно вручную проверять результаты работы алгоритма на каждом итерации, создавать рёбра надо автоматически, цвета назначаются Гефи автоматически.
mephistopheies
17.08.2015 11:16какого алгоритма? я вот честно прочитал статью раза три только что, не нашел
alexkuku
17.08.2015 11:26-2вручную набираем несколько сайтов, которые точно нам подходят, как-то для каждого находим похожие, проверяем их вручную, подходящие добавляем в набор, повторяем процедуру.
mephistopheies
17.08.2015 11:27+11 — а как создаются ребра?
2 — а как происходит раскраска?alexkuku
17.08.2015 12:11-41. Информация о том, что ребро нужно создать (что сайты похожи) берётся из Гугла, Алексы и Similarweb. Если вопрос про техническую реализацию, то берётся библиотека networkx, создаётся граф и для него вызывается метод add_edge.
2. Исполуется стандартный алгоритм Лоувейна. Если вопрос для технологию, то открывается Гефи и жмётся кнопочка «Modularity».mephistopheies
17.08.2015 12:14+21 — т.е. вы предлагаете парсить гугл алексу и симиларвеб и на основе спарсенного добавлять ребро?
2 — а ясно, нужно было догадаться конечно же про алгоритм Лоувейна и кнопку модулярити, ну наверное я не ЦА аудитории раз не догадался
knagaev
17.08.2015 11:50Это статья про кластеризацию что ли?
alexkuku
17.08.2015 12:24Вообще, статья про поиск всех сайтов заданой тематики.
ser0t0nin
17.08.2015 12:48получается, найдутся не все сайты заданной тематики, а лишь некоторые. Насколько глубоко парсятся результаты google? а алкесы? сколько похожих на заданный сайт удается найти?
alexkuku
17.08.2015 13:37Если предполагать, что источники похожих сайтов содержать все сайты по теме (а Гугл наверное содержит все сайты по теме), то рано или поздно найдутся все сайты. Берутся зелёные ссылки с первой страницы. С Алексы берут 10 результатов. Примерно по 20 похожих находится, из них примерно 60% подходящие.
ser0t0nin
17.08.2015 14:251) А как вы планируете хранить полученный граф?
2) Получается, кроме google:related никаких алгоритмов автоматизированного выделения сходства не применяется? Тогда «все сайты» найдутся скорее поздно — лет эдак через тыщуalexkuku
17.08.2015 17:551. Как угодно. Число вершин — максимум несколько тысяч. Такой граф можно хранить в текстовом файлике. Я вообще храню всё в памяти и выгружаю только в .gexf, чтобы посмотреть в Гефи.
2. На практике скорость примерно 200 сайтов в час. Обычно достаточно набрать максимум 1000-2000 сайтов. Поэтому время получается адекватное.
knagaev
17.08.2015 17:35А если сайт относится к разным тематикам? Как в таком случае?
Что вы делаете с фасетной классификацией?alexkuku
17.08.2015 17:58Речь идёт о поиске сайтов заданной тематики. То есть классификация на «подходит», «не подходит». Обычно проблем не возникает. Что делать если «вроде бы подходит, а вроде бы и нет»? Считать, что не подходит. Обычно важнее точность.
dmOx
17.08.2015 13:16А я уж понадеялся, что Вы разработали свой аналог «related:» от Google.
Может кто поделится ссылками на опенсорс, занимающийся поиском похожего друг на друга контента на сайте?alexkuku
17.08.2015 13:38-1Чтобы сделать аналог Гугл related, нужно работать в Гугле или Яндексе. Наверняка они используют информацию о кликах с выдачи.
Milfgard
Хорошее вступление, а дальше?