Если я понимаю проблему, у вас есть текст, и вы хотите определить ключевые слова, наиболее соответствующие тексту.
Три подхода:
1) Пользователь должен ввести ключевые слова
2) Статистический анализ текста, например, определяет слова, которые встречаются в тексте гораздо чаще, чем в языке в целом. Любой хороший текст по поиску информации будет иметь несколько алгоритмов.
3) Если у вас есть набор документов, которые уже классифицированы (возможно, ранее классифицированы людьми), вы можете использовать алгоритм машинного обучения (возможно, байесовский классификатор) для обучения системы классификации новых документов. Если вы позволите пользователям переопределять / исправлять предложенные ключевые слова, система может учиться со временем.
Лично я бы сделал # 3, так как он более адаптивный.