Как стать автором
Обновить

Граф ключевых слов

Время на прочтение2 мин
Количество просмотров1.6K
В начале мая этого года в разговоре с коллегой по работе (в ходе обсуждения одной задачи на практическое применение множеств) вспыл вопрос о построении связей между объектами одного сайта. Этот сайт представлял собой каталог аналогов Windows и Linux программ, и одной из «фишек» этого каталога была выборка ПО по разделам а-ля фасет (визуально фасет, а внутри все на множествах реализовано насколько я понял из обсуждения (реализацию сайта делал другой человек – нужно будет еще и с ним обсудить этот вопрос)). В общем говоря я несколько удивился задаче и… заявил, что она довольно тривиальна, и если при проектировании базы данных связи между таблицами делать как многое-к-многому, то решается все одним запросом. Поговорили и разошлись, но идея сидела в подсознании и долбила «можно же и лучше сделать».

И вот к 10-у мая я «созрел»: решил построить неориентированный граф всех связей между ключевыми словами в проекте "Медиарепозиторий", потому что с одной стороны задача очень похожа на описанную выше, с другой стороны есть достаточно приличное количество этих слов, чтобы можно было что-то строить и с третьей стороны, количество слов не настолько большое, чтобы очень долго ждать построение графа.

Сказано – сделано. Для начала был реализован функционал «связанные ключевые слова», а потом я несколько озадачился. Консультации со специалистом по SQL дал неутешительный ответ – средствами одного только SQL на существующей СУБД (MySQL 5) задача не решается. Пришлось все выносить на «клиентскую часть» – скрипт, работающий с БД.

Немного ранее я работал с набором утилит graphviz для построения графов, поэтому решил использовать его для визуализации графа и на этот раз. Средствами PHP и SQL я подготовил соответствующий .dot-файл для graphviz'а и построил необходимый граф, используюя метод fdp (neato давал сильно «скученную» картинку, а dot слишком большую).

Результат – ниже:
Граф ключевых слов

На графе ясно видно несколько «очагов кристаллизации» ключевых слов, но если честно, то я удивился именно такому виду графа – мне думалось, что он будет более «размытым» :)

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

Результат повторного построения:
Граф ключевых слов

Как оказалось развитие графа идет довольно занятное :)
Теги:
Хабы:
Всего голосов 18: ↑13 и ↓5+8
Комментарии7

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область