2010-12-02 101 views
0

對於我正在編寫的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。我如何決定選擇哪兩對?這種問題是否有任何程序/理論?

謝謝。

+0

@ user528699你有問題嗎? – 2010-12-04 04:57:33

回答

0

總而言之,打破平局的方法將取決於問題的背景。在某些情況下,您想要報告所有搭售結果。在其他情況下,您可以使用任意選擇方式,例如首先按字母順序排列。最後,您可以選擇具有次要特徵,僅在主要特徵相關時才進行評估。

此外,您可以隨時報告一個或多個,然後提醒用戶有一條平行線讓他或她自己決定。

0

在這種情況下,你應該尋找的相似之處: - 價值 - 行 - 列

物體在任何共同之處以上的是「相似」。您可以爲每個屬性分配一個權重,以便具有相同值的對象與同一列中的對象相比更加相似。此外,具有相同值並且在同一列中的對象比具有相同值的對象更相似。

根據數據中是否存在自然範圍,還可以考慮比較範圍。例如0-0.5範圍內的兩個數字可能有點相似。