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

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

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

1 ответ

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

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

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

Другие вопросы по тегам