Для исследования рынка иногда нужно найти все сайты заданной тематики. Например, все сайты, про лекарства такие как med.sputnik.ru, aptekamos.ru и poisklekarstv.ru или все новостные сайты похожие на lenta.ru, vedomosti.ru или meduza.io.

За разумное время такую задачу можно решить с помощью графа похожих сайтов.



Идея такая: вручную набираем несколько сайтов, которые точно нам подходят, как-то для каждого находим похожие, проверяем их вручную, подходящие добавляем в набор, повторяем процедуру. Если на каждом шаге аккуратно отбирать сайты, то процесс рано или поздно сойдётся, граф похожих сайтов замкнётся.


Похожие сайты можно искать в Гугле c помощью ключевого слова related, брать у Алексы и Similarweb.

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

Потом граф можно использовать, чтобы примерно понять структуру тематики. Например, новостные сайты бывают про игры:

Про религию:

Про науку:

Комментарии (33)


  1. Milfgard
    17.08.2015 03:17
    +8

    Хорошее вступление, а дальше?


  1. zmey2
    17.08.2015 08:09
    +5

    Да, огласите пожалуйста инструменты, алгоритмы и результаты


  1. BigD
    17.08.2015 09:41

    А можете показать для примера сайты, похожие на вышеупомянутые med.sputnik.ru, aptekamos.ru и poisklekarstv.ru?


  1. kentastik
    17.08.2015 09:46
    +1

    Такое ощущение, что черновик случайно опубликовали :) где собственно дальше?


  1. alexkuku
    17.08.2015 10:30
    -10

    Я считаю, что статья вполне закончена. Инструменты — Питон, Jupyter, Гефи. Алгоритм описан. Больше результатов показать не могу и не считаю нужным.


  1. ser0t0nin
    17.08.2015 10:31

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

    «Как-то находим похожие» — основная суть задачи, можно поподробнее о ваших идеях по этому поводу?


    1. alexkuku
      17.08.2015 10:54
      -4

      1. ser0t0nin
        17.08.2015 12:04

        как насчет выкладок кода и сравнения результатов, каких то примеров?


        1. alexkuku
          17.08.2015 12:20
          -1

          Код про то как прокачивать Гугл, Алексу и Симиларвеб не очень интересный, непонятно зачем его выкладывать. Результаты этих источников я не сравнивал, просто объединял списки сайтов, которые они отдают. Например, пишите в Гугле «related:lenta.ru» и получаете другие отечественные новостные сайты.


  1. mephistopheies
    17.08.2015 11:02

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


    1. alexkuku
      17.08.2015 11:14
      -2

      Нужно вручную проверять результаты работы алгоритма на каждом итерации, создавать рёбра надо автоматически, цвета назначаются Гефи автоматически.


      1. mephistopheies
        17.08.2015 11:16

        какого алгоритма? я вот честно прочитал статью раза три только что, не нашел


        1. alexkuku
          17.08.2015 11:26
          -2

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


          1. mephistopheies
            17.08.2015 11:27
            +1

            1 — а как создаются ребра?
            2 — а как происходит раскраска?


            1. alexkuku
              17.08.2015 12:11
              -4

              1. Информация о том, что ребро нужно создать (что сайты похожи) берётся из Гугла, Алексы и Similarweb. Если вопрос про техническую реализацию, то берётся библиотека networkx, создаётся граф и для него вызывается метод add_edge.
              2. Исполуется стандартный алгоритм Лоувейна. Если вопрос для технологию, то открывается Гефи и жмётся кнопочка «Modularity».


              1. mephistopheies
                17.08.2015 12:14
                +2

                1 — т.е. вы предлагаете парсить гугл алексу и симиларвеб и на основе спарсенного добавлять ребро?
                2 — а ясно, нужно было догадаться конечно же про алгоритм Лоувейна и кнопку модулярити, ну наверное я не ЦА аудитории раз не догадался


                1. alexkuku
                  17.08.2015 12:21

                  1. Верно


                  1. mephistopheies
                    17.08.2015 12:21
                    +3

                    1 — ясно


  1. knagaev
    17.08.2015 11:50

    Это статья про кластеризацию что ли?


    1. alexkuku
      17.08.2015 12:24

      Вообще, статья про поиск всех сайтов заданой тематики.


      1. ser0t0nin
        17.08.2015 12:48

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


        1. alexkuku
          17.08.2015 13:37

          Если предполагать, что источники похожих сайтов содержать все сайты по теме (а Гугл наверное содержит все сайты по теме), то рано или поздно найдутся все сайты. Берутся зелёные ссылки с первой страницы. С Алексы берут 10 результатов. Примерно по 20 похожих находится, из них примерно 60% подходящие.


          1. ser0t0nin
            17.08.2015 14:25

            1) А как вы планируете хранить полученный граф?
            2) Получается, кроме google:related никаких алгоритмов автоматизированного выделения сходства не применяется? Тогда «все сайты» найдутся скорее поздно — лет эдак через тыщу


            1. alexkuku
              17.08.2015 17:55

              1. Как угодно. Число вершин — максимум несколько тысяч. Такой граф можно хранить в текстовом файлике. Я вообще храню всё в памяти и выгружаю только в .gexf, чтобы посмотреть в Гефи.
              2. На практике скорость примерно 200 сайтов в час. Обычно достаточно набрать максимум 1000-2000 сайтов. Поэтому время получается адекватное.


      1. knagaev
        17.08.2015 17:35

        А если сайт относится к разным тематикам? Как в таком случае?
        Что вы делаете с фасетной классификацией?


        1. alexkuku
          17.08.2015 17:58

          Речь идёт о поиске сайтов заданной тематики. То есть классификация на «подходит», «не подходит». Обычно проблем не возникает. Что делать если «вроде бы подходит, а вроде бы и нет»? Считать, что не подходит. Обычно важнее точность.


  1. Nord001
    17.08.2015 11:51
    +2

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


    1. minime
      18.08.2015 00:47

      А мне кажется это анти-реклама себя. Судя по оформлению статьи и по тону ответов автора — не думаю, что он поимеет профит.


  1. dmOx
    17.08.2015 13:16

    А я уж понадеялся, что Вы разработали свой аналог «related:» от Google.

    Может кто поделится ссылками на опенсорс, занимающийся поиском похожего друг на друга контента на сайте?


    1. alexkuku
      17.08.2015 13:38
      -1

      Чтобы сделать аналог Гугл related, нужно работать в Гугле или Яндексе. Наверняка они используют информацию о кликах с выдачи.


  1. danaki
    17.08.2015 13:23

    Нарисовал сову, блин


  1. elingur
    17.08.2015 13:49
    +1

    А при чем тут Data Mining & Big Data? С таким же успехом можно поставить тег Искусственный Интеллект.


    1. alexkuku
      17.08.2015 17:59
      -1

      По-моему, они лучше всего подходят