2010-11-10 45 views
1

假設你需要在2個文件之間進行某種比較。換句話說,您不需要將JSON文件與屬性文件或.txt文件與.jar文件進行比較巧妙比較「喜歡」

此外,假設您有適當的機制進行排序所有這些東西都出來了,它到底是什麼是實際的文件名。你會想比較「myFile.txt」和「myFile.txt」,但不是「somethingElse.txt」。目標是儘可能地接近「蘋果和蘋果」規則。

所以在這裏,我們是一方面你有「myFile.txt」,另一方面你有「_myFile.txt」,「_m_y_f_i_l_e.txt」和「somethingReallyClever.txt」。

任務是挑選最近的名稱以便以後比較。不幸的是,沒有找到相同的名字。看看人物構圖,並不難弄清楚這種關係是什麼。我的算法中說:

 
_myFile.txt to _m_y_f_i_l_e.txt     0.312 
_myFile.txt to somethingReallyClever.txt   0.16 

所以_m_y_f_i_l_e.txt是那麼接近to_myFile.txt somethingReallyClever.txt。太棒了。但也表示,這個距離只有2倍,因爲實際上我們可以查看這2個文件,並且永遠不會想到將_RealClever.txt與_myFile.txt進行比較。

爲什麼?

你會建議什麼邏輯我申請不僅在同一個地方有個字符弄清楚可能性,同時也測試確定重量是否有意義?

在我的例子,somethingReallyClever.txt應該有0.0

重量我希望我是清楚的。

請分享你的經驗和想法。 (無論方法,你認爲不應該依賴於字符的文件名的數量由出)

+0

可能重複修飾的字比較算法(HTTP:/ /stackoverflow.com/questions/473522/word-comparison-algorithm) – MartinodF 2010-11-10 01:09:29

回答

2

可能有幫助前面的問題,其突出了幾個可能的算法:

Word comparison algorithm

這些算法都基於有多少變化會需要從一個字符串到另一個字符串 - 更改是添加字符,刪除字符或替換字符。

當然,任何明智的度量這裏應該有低的分數爲意味着接近(認爲兩個字符串之間的距離)和更大的成績作爲意思不是如此接近。

0

聽起來像你想的Levenshtein distance,也許preconverting兩個單詞相同的情況下和規範空間(如更換所有的空間,並與空字符串下劃線)的