Comments 18
image
Красивее чем картины многих современных художников, продающихся за огромные деньги
я бы только с цветами поигрался, а то немного грязновато. Ну или конвертировать скопления точек в что-то более крупное для облегчения восприятия
Ну не идеально конечно, есть над чем поработать, но всё-равно лучше :)
Согласен. В целом здесь вопрос задачи. Если нужно получить красивую картинку, то нужно совсем с другой стороны заходить, экспортировать svg и потом дорабатывать в AI или Inkscape. Прямой экспорт из gephi в png не предназначен для произведений искусства. А грязь скорее из-за контуров вершин, которые чёрные. Сама палитра выглядит чисто, но если не рисовать контуры, то из-за огромного числа рёбер вершины вовсе не будет видно, даже если долго играть с прозрачностью. Я решил остановиться на таком промежуточном варианте между информативностью и красотой. Может быть я найду время на то, чтобы добить картинку и делать принты.
Залип в картинку минут на 5, разглядывая «перчатки Пьеро» (слева внизу), античную вазу (справа наверху) и млечный путь в центре.
Автору большое спасибо за хороший пример визуализации данных и подбор инструментов.
А в чем все-таки состояла предметная, а не программистская задача? Что показывает этот граф зрителю? В каких практических ситуациях и кто (обычный киноман, аналитик данных) может использовать этот граф с пользой для себя?
Как рекомендательная система — выбираете любимые фильмы и исследуете кластер куда они входят для подбора чего бы посмотреть похожего.

Я может быть не сильно явно ссылки в пост вставил, но по-моему очень удобно находить по интерактивному графу новые фильмы для просмотра. Мне казалось, что если результат потыкать, то будет понятно. В графе imdb я ещё и оценки отображаю цветами, поэтому легко находить сразу хорошие фильмы в конкретной области. Можно перейти к конкретному фильму в графе, а потом смотреть его связи и делать неожиданные открытия. Я много интересных нашёл. Это в чём польза для киноманов.


Для анализа данных визуализация тоже важна, потому что можно получить представление о структуре. Я потому и привёл пример с DBSCAN. Именно глядя на структуру можно предположить, что он подойдёт в этой задаче. Ещё можно делать вывод исходят из связности. Топ 250 входят в полностью связный граф, и у нас всегда есть связь плотного кластера очень похожих фильмов с каким-нибудь другим отдалённым кластером. Я не приводил здесь всё, что можно увидеть, потому что это тоже проще и нагляднее посмотреть самому, но например зависимость оценок от жанра тоже легко проследить. Самые популярные фильмы в основном драммы. Есть много выводов, которые не являются неожиданноми, но зато могут подтвердить предположения — например группировка по году выпуска. Зато фильмы одного режиссёра часто оказываются очень далеко друг от друга.


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


Но вообще статья больше задумывалась как обзор инструментов. С графовыми инструментами ситуация сложная, потому что часто оказывается, что хороший фреймворк или приложение уже 5-10 лет как заброшено разработчиками. На поиски подходящего уходит очень много времени. Мне хотелось бы чтобы подобных проектов было больше. Очень много данных, особенно в интернете, которые логично представить в виде графа. Музыка, фильмы, соцсети — это только то, что напрашивается сразу.

Это очень удобно, выбрав свой любимый фильм, можно посмотреть тематическую подборку к нему(всю ветвь).

Отличное решение! Я тоже люблю забавляться с графами и рекомендациями. Как раз работую сейчас над рекомендательной системой на основе данных кинопоиска. Немного на других принципах, но будет очень интересно сравнить то что получится с теми рекомендациями, которые отображены на вашем графе.
Для всех кто хочет упростить себе жизнь и получать данные проще и быстрее — наша команда подготовила статью по сбору данных с IMDB с помощью A-Parser: a-parser.com/resources/269

Мы собрали базу в 182370 фильма за 1.5 часа, база в формате JSON доступна по линку в конце статьи
Не в претензии, но как разработчику мне в своё время быстрее вышло написать свой «скальпель» на python async/await который за те же полтора часа спарсил имдб, чем курить маны по вашей системе и писать те же обработчики в пресетах =)
Спасибо за базу, открытые данные — это круто.
Скорость была обусловлена только тем, что я купил демо-доступ к сервису прокси на месяц за 11 USD, там был лимит на 10 одновременных запросов. Я поставил в своём пауке таймаут так, чтобы с запасом в этот лимит попадать. Если бы я был готов раскошелиться в тех же масштабах, что нужно для вашего сервиса, то можно было бы помериться скоростью. Я излагал в статье вариант близкий к бесплатному. То есть, если потратить ещё полчаса-час на прикручивание бесплатных прокси или тора, то можно заплатить временем и получить те же данные бесплатно. Для одноразовой задачи в самый раз.
Если нужно скрапить постоянно и быстро, то конечно пригодится какой-то сервис.
Отличная статья! Отдельное спасибо за shinglejs — сам долго бился над задачей запилить интерактивный большой граф, но в итоге пришёл к статическому на тайлах.
Есть у меня и несколько вопросов:
1. sigma.js на моих синтетических тестах показала себя намного слабее вашего результата, но возможно я пытался распасовать граф в динамике. В вашем варианте на сигме все 170к вершин?
2. Не нашёл в статье количества рёбер, сколько их? Удаляли лишние или прямо все на граф выводили?
3. Gephi сколько времени укладывал граф? На какой машине? Не было ли практики запускать его на сервере?
Я тоже нашёл shinglejs когда уже отчаялся и думал, что никуда такой граф не впихну. Разработчик оставил на форуме Gephi упоминание об этой штуке, и я случайно на него наткнулся. Думаю, что если мы его поддержим, то он сможет сделать плагин для Gephi. Он уже писал о таких намерениях.
1. Через сигму я отрисовал только кинопоиск, там всего 12К вершин. IMDb тоже запускал локально, вывозил на своём домашнем ноуте, но со скрипом, для демо не годится.
2. В IMDb больше 1.54М рёбер. Очень хотелось поудалять слабые связи, но это противоречит цели наглядности, поэтому всё как есть.
3. Кинопоиск укладывался быстро, минут 5-10. IMDb подольше, тем более я его укладку тюнил на ходу, наверное полчаса до почти финального результата. Вот noverlap потом очень долго делал. Машина — домашний ноут, Thinkpad W510, core i7, 32GB RAM. На сервере даже не пытался. Если бы было больше времени на эксперименты, я бы попытался через sfdp всё сделать.
а сайтик с этим интерактивным графом не планируете случайно запилить?
Ладно, наверное ссылки в статье действительно слишком незаметны. Сайт с обоими графами здесь: iggisv9t.github.io
Only those users with full accounts are able to leave comments. Log in, please.
Information
Founded

12 April 2015

Location

Россия

Website

ods.ai

Employees

5,001–10,000 employees

Registered

16 February 2017