Соответствие между информацией о продукте и клиенте - PullRequest
0 голосов
/ 04 января 2011

Я пишу какое-то приложение, которое находит (по какому-то вопросу) информацию о каком-то человеке (скажем, что это вес, рост и возраст человека).

С другой стороны, у меня есть список продуктов(может быть очень большим) и в соответствии с информацией о продукте мне нужно найти наилучшее соответствие между информацией о человеке и продуктом (у меня есть информация о продукте: вода, азот и др.)

Я не могу использовать алгоритм блок-схемы или поиск в ширину, потому что номер продукта динамически (читать список продуктов из БД ...)


добавлена ​​дополнительная информация, предоставленная в ответе

Дополнительная информация: у меня есть таблица соответствия для каждого поля продукта.Я могу сказать, что если человек field_X имеет значение A =>, то продукт, который соответствует, является product_1.

Это просто, и я могу использовать хеш-таблицу - но мне нужно лучшее соответствие по всем полям.

Использование эвристики может быть полезным в этом случае - но в случае, если у меня есть некоторая мера, все поля человека =>, и у меня есть также мера полей продукта ... я могу найти лучшее соответствие - но каждыйцикл, у меня есть новый продукт, и сканирование всего продукта может быть тяжелой работой и займет время.

Я ищу (если есть) какой-то лучший способ.

Ответы [ 2 ]

1 голос
/ 05 января 2011

Это может быть очень похоже на то, что называется "Проблема ближайшего соседа" .

Представьте, что вы можете превратить каждое поле / атрибут в число.Тогда каждый человек и каждый продукт могут быть представлены в виде точки в N-мерном пространстве.Поэтому, если вашими двумя атрибутами были вес и рост, вы могли бы сделать человека точкой (x, y), где x - это вес, а b - это рост.

Затем вам нужно определить, как вы определяете «лучший»,Это определяет расстояние между двумя точками и называется метрикой.Таким образом, расстояние между (x1, y1) и (x2, y2) может быть (x1-x2) + (y1-y2) для очень простой метрики.

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

1 голос
/ 04 января 2011

Прежде всего, вам нужны некоторые атрибуты (в соответствии с характеристиками ваших людей), которые позволяют "сопоставлять" товары с людьми. Таким образом, вам также нужен какой-то показатель для этого. Затем вы можете найти продукты, которые лучше всего соответствуют данному человеку по метрике и основаны на определенных атрибутах. И, может быть, вы можете попробовать некоторые методы Data Mining, такие как поддержка / доверие или около того. Я не знаю, для более подробных советов, вы должны предоставить больше информации ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...