Реализация системы тагов (тэгов)

Bermuda

Новичок
Реализация системы тэгов (тагов)

Стоит задача реализации системы тэгов для контента который юзеры постят на сайте.
Если позволить пользователям самим безконтрольно вводить любые тэги, то ничего путного не выйдет, потому как один введет "кошка", а другой "кошки", что скорее всего является "синонимами" и должна будет реализоваться связь по этому тэгу, но этого не произойдет.
Мой параноидальный мозг подсказывает реализации на основании словарей, синонимов и нормализации слов.
Таг введенный пользователем нужно нормализовать, т. е. привести в нормальную форму (например для русского это будет единственное число, мужской род, именительный падеж, неопределенное время). Опционально можно поискать синонимы и заменить слова на наиболее часто употребимое. Язык -- нерусский :)
В этом месте мне становится страшно.

Подскажите, где посмотреть правильные системы реализации тэгов?
Можно ли реализовать "правильную" систему тэгов без словаря?
Есть ли какая-либо теория нормализации слов для произвольного языка?
 

Kelkos

Сам себе программер
Bermuda
а ты не подумал ещё о "пересечении тэгов"? например "ангорские кошки" и "кошки".. тэги пересекаются.. какой выбрать?
 

Bermuda

Новичок
Kelkos
например "ангорские кошки" и "кошки".. тэги пересекаются.. какой выбрать?
Тут можно поспорить.

Тэги могут пересекаться только в контексте. Если контекст разный, то "кошки" и "ангорские кошки" могут не пересекаться.

Кошка — хищное млекопитающее из семейства кошачьих.
Кошка — мех или шкура кошки и других кошачьих (например, «шинель с воротником из кошки»).
Кошка — упраздненное созвездие.
Кошка — штурмовой якорь на канате, забрасываемый на вражеское судно при абордаже, а также на стену крепости при штурме.
Кошки — приспособление для перемещения по вертикальным мачтам (освещения, линий электропередач и др.) при высотных монтажных работах.
Кошка — насадка на ногу для передвижения по льду и плотному снегу, используемая альпинистами.
Кошка (устар.) — плеть о девяти и более хвостах.
Кошка (устар.) — мель у берега, узкая полоска суши, коса, пахотное угодье на бывшей мели.
Что выливается в явный минус тэгов
While using tags in such an organizational system is flexible and easy, tagging is not without its drawbacks. Typically there is no information about the meaning or semantics of a tag. For example, the tag "apple" might refer to the fruit, Apple Computer, the Beatles' music label, or Gwyneth Paltrow's baby. This lack of semantic distinction in tags can lead to inappropriate connections between items. Additionally, selection of "tag terms" is highly individualistic. Different people may use drastically different terms to describe the same concept: for example items related to a version of Apple Computer's operating system might be tagged both "Mac OS X", "Tiger", and possibly many other terms. Users of tagging systems must make judgments, based on the number of connections and the choices of "tag terms", whether possible connections between items are valid for their interests.
Но вопрос, собственно, не в этом.

Подскажите, где посмотреть правильные системы реализации тэгов?
Можно ли реализовать "правильную" систему тэгов без словаря?
Есть ли какая-либо теория нормализации слов для произвольного языка?
 

Гравицапа

elbirret elcno
Bermuda
Ну вот на del.icio.us по поводу
Если позволить пользователям самим безконтрольно вводить любые тэги, то ничего путного не выйдет, потому как один введет "кошка", а другой "кошки", что скорее всего является "синонимами" и должна будет реализоваться связь по этому тэгу, но этого не произойдет.
не заморачиваются и "полёт нормальный". И даже вроде как Cat и cat будут разными тегами.
Думаю, что и тебе не стоит.
 

Bermuda

Новичок
Может быть кому знаком online словарь с открытым API? Ты ему слово, а он тебе нормальную форму.

-~{}~ 11.03.07 18:10:

И даже вроде как Cat и cat будут разными тегами
Проверил -- одинаковые.
 

dark-demon

d(^-^)b
можно позволить вводить произвольные теги, но при этом выдавать список список похожих тегов, получаемых по словарю и/или нормализацией. если пользователь посчитает, что ни одно из них не подходит - регистрировать новый тег.
 

Dreammaker

***=Ф=***
Эх... Веб 2.0 на дворе :)

Регить все теги, но позволить пользователям (например, зарегистрированным) отмечать, что такой-то тег является синонимом другого, когда набирается определённое количество "голосов" объединять данные двух тегов и "проигравший" удалять...
 

Bermuda

Новичок
Пока буду делать без нормализации. Тему придется доиследовать позже.
 

Лысый

Новичок
жаль, что никто не откликнулся на предмет примеров (или рассказов о) реализаций...

Dreammaker - это излишняя сложность + уязвимое место для всяких флешмобов
 
Сверху