Можно ли автоматически классифицировать посты на форумах или BBS?

Если у меня есть форум, использующий теги для классификации сообщений, можно ли автоматически добавлять теги в соответствии с содержимым и заголовками после создания сообщений?

большое спасибо

3 ответа

Решение

Самый простой способ сделать это - иметь таблицу известных тегов. Перебирайте каждое слово в сообщении, и, если слово находится в таблице тегов, добавьте его в список. Чтобы сделать это немного более эффективным, вы можете сохранить тег как в его отображаемой, так и в стеблированной версии (например, алгоритмы и алгоритм). Затем сравнил слова в стебле с названием тега. См. Алгоритм определения портера для простого способа сделать это (для английских слов).

Более эффективное решение будет использовать что-то вроде TF-IDF и ассоциировать векторы с каждым тегом. Создайте вектор для нового поста и сравните его с каждым вектором тегов, используя косинусное сходство. Любые теги выше определенного порога будут добавлены в сообщение. Я никогда не использовал его для автоматической пометки, но по моему опыту это очень эффективный инструмент сопоставления при работе с несанкционированными данными. (то есть люди не пытаются обмануть или обмануть систему.)

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

Попробуйте этот код PHP с автоматической пометкой:

http://www.dangrossman.info/2008/04/07/auto-tagging-content-with-open-calais/

Есть несколько способов сделать это. Простое сопоставление ключевых слов или TF-IDF, как предлагает konforce, являются приемлемыми вариантами. Другие включают в себя:

  • Используйте веб-сервис извлечения терминов в Yahoo для извлечения значимых терминов из текста.
  • Используйте API Google Prediction. Обучите его на корпусе уже отмеченных сообщений, а затем попросите его предсказать теги новых сообщений.
Другие вопросы по тегам