Попробовав самостоятельно организовать облако тегов, я обратил внимание на некоторые нюансы. О них и расскажу.
У современных облаков есть пара очевидных проблем. Самая заметная заключается в том, что популярные теги, выводимые крупными размерами шрифта, дают худшие результаты при поиске. Возможные способы решения:
* специализация облака,
* ручная модерация,
* возможность искать по наборам тегов. Формировать их можно, например, используя классический прием с зажатым 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. В этом случае хорошо бы эти понятия связать.