搜索选择

时间:2010-12-02 23:26:30

标签: search

对于我正在编写的C#程序,我需要比较两个实体(可以是文档,动物或几乎任何东西)中的相似之处。 基于某些属性,我计算文档(或实体)之间的相似性。 我把它们的相似之处放在下面的表格中

   X     Y   Z 
A|0.6 |0.5 |0.4 
B|0.6 |0.4 |0.2 
C|0.6 |0.3 |0.6 

我想根据最高相似度得分找到最佳匹配对(例如:AX,BY,CZ)。高分表示相似性较高。

当相似度值之间存在联系时,我的问题就出现了。例如,AX和CZ都有0.6。如何确定选择哪两对?对于这类问题,有没有任何程序/理论?

感谢。

2 个答案:

答案 0 :(得分:0)

一般而言,打破平局的方法将取决于问题的背景。在某些情况下,您希望报告所有绑定结果。在其他情况下,您可以使用任意选择方式,例如哪一​​个按字母顺序排在第一位。最后,您可以选择具有次要特征,仅在主要特征中出现平局的情况下进行评估。

此外,您可以随时报告一个或多个,然后提醒用户有一个平局,允许他或她自己决定。

答案 1 :(得分:0)

在这种情况下,您应该寻找的相似之处是:   - 价值   - 排   - 列

具有上述任何一个共同点的对象是“相似的”。您可以为每个属性分配权重,以便具有相同值的对象与同一列中的对象更相似。此外,具有相同值且位于同一列中的对象与具有相同值的对象更相似。

根据数据中是否存在任何自然范围,您还可以考虑比较范围。例如,0-0.5范围内的两个数字可能有些相似。