Классификация является широкой проблемой в области машинного обучения / статистики.После прочтения вашего вопроса, что я чувствую, вы использовали вид SQL group group (хотя в Lucene).Если вы хотите, чтобы машина классифицировала документы, вам необходимо знать алгоритмы машинного обучения, такие как нейронные сети, байесовский метод, SVM и т. Д. Для этих задач в Java имеются отличные библиотеки.Чтобы это работало, вам понадобятся функции (набор атрибутов, извлеченных из данных), по которым вы можете обучить свой алгоритм, чтобы он мог предсказать вашу классификационную метку.
В Java есть несколько хороших API (которые позволяют вам сконцентрироваться на коде, не вдаваясь в понимание математической теории этих алгоритмов, хотя, если вы знаете, это было бы очень полезно).Века это хорошо.Я также натолкнулся на пару книг Мэннинга, которые хорошо справились с этими задачами.Вот вам:
Глава 10 (Классификация) Коллективного разума в действии: http://www.manning.com/alag/
Глава 5 (Классификация) алгоритмов интеллектуальной сети: http://www.manning.com/marmanis/
Это абсолютно фантастический материал (для Java-людей) по классификации, особенно подходящий для людей, которые просто не хотят углубляться в теорию (хотя и очень важны :)) и просто хотят быстро получить работающий код.
Коллективный разумв действии решил проблему классификации с использованием JDM и Weka.Итак, взгляните на эти два для ваших задач.