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

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

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

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

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

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

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

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

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

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

Как оказалось развитие графа идет довольно занятное :)
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 18: ↑13 и ↓5+8
Комментарии7

Публикации

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