Можно ли автоматически классифицировать посты на форумах или 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. Обучите его на корпусе уже отмеченных сообщений, а затем попросите его предсказать теги новых сообщений.