在产品和客户个人信息之间进行匹配

时间:2011-01-04 07:05:30

标签: c# c++ algorithm

我写了一些应用程序,找到(根据一些问题)关于某人的信息(假设信息是人的体重,身高和年龄)。

另一方面我有产品清单(可能非常大)并根据产品信息我需要找到人信息和产品之间的最佳匹配  (我所拥有的产品信息是水部分,氮部分和分机)

我不能使用流程图算法或广度优先搜索,因为产品的编号是动态的(从DB读取产品列表...)


添加了作为答案提供的更多信息

更多信息:我为每个产品领域都有一些匹配表。我可以告诉我,如果人物field_X的值为A =>所以匹配的产品是product_1。

这很简单,我可以使用哈希表 - 但我需要根据所有字段进行最佳匹配。

在这种情况下使用启发式方法可能会很好 - 但是如果我有一些措施所有人员字段=>我也有产品领域的衡量标准......我可以找到最佳匹配 - 但每个周期我都有新产品,扫描所有产品可能会很费力,需要时间。

我正在寻找(如果有的话)一些更好的方法。

2 个答案:

答案 0 :(得分:1)

首先,您需要一些属性(根据您的人员的属性),允许与人匹配“产品”。所以,你还需要某种指标。然后,您可以根据指定的属性找到与指定人员最匹配的产品。也许您可以尝试一些数据挖掘技术,如支持/信心等。我不知道,对于更详细的建议,您必须提供更多信息......

答案 1 :(得分:1)

这可能与名为"The Nearest neighbour problem"的东西非常相似。

想象一下,您可以将每个字段/属性转换为数字。然后,每个人和每个产品可以表示为N维空间中的点。因此,如果你的两个属性是重量和高度,那么你可以使这个人成为一个(x,y)点,其中x是重量,b是高度。

然后,您必须确定如何定义“最佳”。这定义了两点之间的距离,称为度量。因此,对于非常简单的度量,(x1,y1)和(x2,y2)之间的距离可能是(x1-x2)+(y1-y2)。

确定了您的空间和指标后,您可以使用维基百科页面(上面链接)中描述的算法之一来解决问题。