Comments 18

Красивее чем картины многих современных художников, продающихся за огромные деньги
Автору большое спасибо за хороший пример визуализации данных и подбор инструментов.
Я может быть не сильно явно ссылки в пост вставил, но по-моему очень удобно находить по интерактивному графу новые фильмы для просмотра. Мне казалось, что если результат потыкать, то будет понятно. В графе imdb я ещё и оценки отображаю цветами, поэтому легко находить сразу хорошие фильмы в конкретной области. Можно перейти к конкретному фильму в графе, а потом смотреть его связи и делать неожиданные открытия. Я много интересных нашёл. Это в чём польза для киноманов.
Для анализа данных визуализация тоже важна, потому что можно получить представление о структуре. Я потому и привёл пример с DBSCAN. Именно глядя на структуру можно предположить, что он подойдёт в этой задаче. Ещё можно делать вывод исходят из связности. Топ 250 входят в полностью связный граф, и у нас всегда есть связь плотного кластера очень похожих фильмов с каким-нибудь другим отдалённым кластером. Я не приводил здесь всё, что можно увидеть, потому что это тоже проще и нагляднее посмотреть самому, но например зависимость оценок от жанра тоже легко проследить. Самые популярные фильмы в основном драммы. Есть много выводов, которые не являются неожиданноми, но зато могут подтвердить предположения — например группировка по году выпуска. Зато фильмы одного режиссёра часто оказываются очень далеко друг от друга.
Если мы будем говорить о задаче построения рекомендаций, то помимо моего примера в статье, можно наглядно увидеть почему рекомендации получаются такими, а не другими, и также получить какую-то качественную наглядную оценку.
Но вообще статья больше задумывалась как обзор инструментов. С графовыми инструментами ситуация сложная, потому что часто оказывается, что хороший фреймворк или приложение уже 5-10 лет как заброшено разработчиками. На поиски подходящего уходит очень много времени. Мне хотелось бы чтобы подобных проектов было больше. Очень много данных, особенно в интернете, которые логично представить в виде графа. Музыка, фильмы, соцсети — это только то, что напрашивается сразу.
Это очень удобно, выбрав свой любимый фильм, можно посмотреть тематическую подборку к нему(всю ветвь).
Мы собрали базу в 182370 фильма за 1.5 часа, база в формате JSON доступна по линку в конце статьи
Скорость была обусловлена только тем, что я купил демо-доступ к сервису прокси на месяц за 11 USD, там был лимит на 10 одновременных запросов. Я поставил в своём пауке таймаут так, чтобы с запасом в этот лимит попадать. Если бы я был готов раскошелиться в тех же масштабах, что нужно для вашего сервиса, то можно было бы помериться скоростью. Я излагал в статье вариант близкий к бесплатному. То есть, если потратить ещё полчаса-час на прикручивание бесплатных прокси или тора, то можно заплатить временем и получить те же данные бесплатно. Для одноразовой задачи в самый раз.
Если нужно скрапить постоянно и быстро, то конечно пригодится какой-то сервис.
Есть у меня и несколько вопросов:
1. sigma.js на моих синтетических тестах показала себя намного слабее вашего результата, но возможно я пытался распасовать граф в динамике. В вашем варианте на сигме все 170к вершин?
2. Не нашёл в статье количества рёбер, сколько их? Удаляли лишние или прямо все на граф выводили?
3. Gephi сколько времени укладывал граф? На какой машине? Не было ли практики запускать его на сервере?
1. Через сигму я отрисовал только кинопоиск, там всего 12К вершин. IMDb тоже запускал локально, вывозил на своём домашнем ноуте, но со скрипом, для демо не годится.
2. В IMDb больше 1.54М рёбер. Очень хотелось поудалять слабые связи, но это противоречит цели наглядности, поэтому всё как есть.
3. Кинопоиск укладывался быстро, минут 5-10. IMDb подольше, тем более я его укладку тюнил на ходу, наверное полчаса до почти финального результата. Вот noverlap потом очень долго делал. Машина — домашний ноут, Thinkpad W510, core i7, 32GB RAM. На сервере даже не пытался. Если бы было больше времени на эксперименты, я бы попытался через sfdp всё сделать.
Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф