Как реализовать функцию связанных тегов, которая используется в Stackoverflow.com? - PullRequest
6 голосов
/ 14 января 2009

Как реализовать функцию «связанных тегов», которая используется на многих веб-сайтах, таких как stackoverflow.com и http://tagexplorer.sandbox.yahoo.com/.

Ответы [ 5 ]

10 голосов
/ 14 января 2009

Я предполагаю, что это корреляция между тегами, которые чаще всего используются вместе.

Например:

  • Вопрос A отмечен тегом tag1, tag2
  • Вопрос B с тегом tag1, tag3
  • Вопрос C, помеченный тегом tag1, tag2

Тогда естественно предположить, что tag2 "связан с" tag1.

Я бы сказал, что лучшим местом для изучения будет Книга Коллективного Разума О'Рейли по программированию .

1 голос
/ 14 января 2009

На ум приходит пара способов. Вы можете просто сделать быстрый запрос, чтобы выбрать связанные имена тегов:

SELECT * FROM tags WHERE tag_name LIKE '%$current_tag%'

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

Я уверен, что кто-то придет с лучшим ответом, поэтому мне тоже любопытно.

0 голосов
/ 02 июня 2010

Использование:

(DataAccessDataContext db = new DataAccessDataContext())
        {
            Repeater1.DataSource = from rt in db.RelatedTags where st.ITEMID == itemid select new TagView() { ID = rt.Tag.ID, NAME = rt.Tag.NAME };
            Repeater1.DataBind();            
        }

///:)
0 голосов
/ 14 июня 2009

Может быть, кто-то отслеживает, сколько временных меток собираются вместе

  1. Я вставляю Q1 с тегами A + B, так отношение вес (A, B) = 1

  2. Я вставляю Q2 с тегами A + B, чтобы отношение вес (A, B) = 2

  3. Теперь я удаляю Q1 и Q2. Мне пришлось знать "отношение веса" к отсоединять теги, когда отношение вес = 0

0 голосов
/ 14 января 2009

Хм, я не очень хорош в математике :-), но похоже, что вы ищете корреляцию между двумя тегами. Моим первым инстинктом было бы установить ожидаемое значение в 50% (ожидая, что каждый тег появится в 50% статей - это может быть далеко), рассчитать коэффициент корреляции тегов в парах и решить, что если корреляция выше С определенным значением (которое вы должны определить, экспериментируя) они связаны.

В качестве альтернативы вы можете использовать простую меру, например (количество статей, в которых они появляются) / (общее количество статей, в которых появляется хотя бы один тег).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...