Облака тегов: существующие проблемы и их решение

30.12.2006

Попробовав самостоятельно организовать облако тегов, я обратил внимание на некоторые нюансы. О них и расскажу.

У современных облаков есть пара очевидных проблем. Самая заметная заключается в том, что популярные теги, выводимые крупными размерами шрифта, дают худшие результаты при поиске. Возможные способы решения:
* специализация облака,
* ручная модерация,
* возможность искать по наборам тегов. Формировать их можно, например, используя классический прием с зажатым Shift, или организовав «пошаговый набор», как на swik.net.

Другая проблема — порядок вывода тегов в облаке. Сейчас широко распространена сортировка в алфавитном порядке. Но такой подход годится лишь для тех случаев, когда человек ищет в облаке конкретное известное ему слово. Например, для массива на главной странице blogs.yandex.ru сортировка в алфавитном порядке, по-моему, не подходит.

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

При такой организации в облаке
* теги будут сгруппированы по предметным областям,
* синонимы будут выводиться рядом.

Примеры:
* рисунки 7 и 9 на страницах 8 и 10 в «Utilizing Folksonomy: Similarity Metadata from the Del.icio.us System»,
* рисунок 2 на странице 5 в «Improving Tag-Clouds as Visual Information Retrieval Interfaces».

Математическая модель вычисления релевантности между тегами приводится в «Improving Tag-Clouds as Visual Information Retrieval Interfaces».

Как отобразить облако в виде графа с дугами описано в Semidefinite Embedding Applied to Visualizing Folksonomies.

Я пока что не искал готовое ПО для рисования «умных» облаков на сайтах, но, думаю, оно существует. Был бы признателен, если бы кто-нибудь поделился ссылкой на хороший freeware open source модуль.

Комментарии

Reno Jimmy, 30.12.2006 11:50

По-хорошему синонимы нужно объединять. В том же облаке на blogs.yandex.ru по тегу "фото" ищутся посты и с "фото", и с "photo", и с "foto", и даже со словом "фотография".

Дмитрий Сергеев, 30.12.2006 12:17

2 Reno Jimmy: объединение синонимов может навредить. Например, человек ищет информацию о "кино", не думая о синониме "фильмы". А вы взяли да включили "кино" в "фильмы", и в облаке у вас только "фильмы". В результате некоторые пользователи будут недоумевать, где же "кино".

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

По-моему вопрос объединения синонимов достаточно тонкий, решаться должен с учетом специфики ситуации.

idcontent, 02.03.2007 15:21

Фолксономи - достаточно сложная тема.
ИМХО, сортировка в алфавитном порядке это =хорошо, ибо, действительно, человек знает, что ему нужно и алфавитную сортировку вычисляет сразу. То есть тут налицо принцип UX - простота.

А как может быть, что он "не знает", что он ищет?

Что касается синонимов - эта идея, очевидно, (для меня лично) - тупик.
Возьмите хотя бы слово design

Дмитрий Сергеев, 02.03.2007 18:45

Есть две известных модели поиска:
1. Человек точно знает, что он ищет, и как это называется.
2. Человек только догадывается о том, что же ему на самом деле нужно, и никаких специальных терминов и названий не знает.

Пример второго случая: я ищу способ качественно повысить скорость разработки веб-приложений на PHP. Но я никогда не слышал о фреймворках и генераторах кода. В этом случае поиск будет длительным и легко может не увенчаться успехом. А всё дело в том, что я не знаю, как называется то, что мне нужно.

Условные синонимы в этом деле могут помочь. То есть я могу знать, что такое «framework» в общем, но не знать о CakePHP. В этом случае хорошо бы эти понятия связать.