Проблема в том, что существует, очевидно, бесконечное количество способов решения этой проблемы.
Прежде всего, определите меру сходства для каждого из ваших атрибутов (сходство тегов, сходство категорий, сходство описаний, ...)
Затем попытайтесь нормализовать все эти сходства, чтобы использовать общую шкалу, например, От 0 до 1, где 0 является наиболее похожим, а значения имеют аналогичное распределение.
Далее присвойте каждой функции вес. Например. сходство тегов важнее описания сходства.
Наконец, вычислите комбинированное сходство как взвешенную сумму индивидуальных сходств.
Существует бесконечное количество способов, поскольку вы, очевидно, можете назначать произвольные веса, уже есть различные варианты сходства с одним атрибутом, бесконечное количество способов нормализации отдельных значений. И так далее.
Существуют методы для изучения весов. См. методы ансамбля . Однако, чтобы узнать вес, вам нужно знать, что является хорошим результатом, а что нет. У вас есть такие тренировочные данные ?