Какой механизм можно использовать для количественной оценки сходства между нечисловыми списками?

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

Текущая стратегия заключается в выполнении нескольких внутренних соединений для комбинаций основных ингредиентов, но это может быть чрезвычайно медленным с большой базой данных. Есть другой способ сделать это? Что-то вроде эквивалента перцептивного хеширования было бы идеальным!


person Peter Pudaite    schedule 16.06.2017    source источник


Ответы (1)


Как насчет косинусного сходства?

Этот метод обычно используется в машинном обучении для распознавания текста в качестве меры сходства. С его помощью вы можете рассчитать расстояние между двумя текстами (фактически, между любыми двумя векторами), которое можно интерпретировать как насколько эти тексты похожи (чем ближе, тем больше похожи).

Взгляните на этот замечательный вопрос, который просто объясняет косинусное сходство. В общем, вы можете использовать любую меру сходства, чтобы получить расстояние для сравнения вашего рецепта. В этой статье рассказывается о различных мерах сходства, вы можете проверить это, если хотите знать более.

person DarkCygnus    schedule 16.06.2017