2014-01-09 58 views
1

例如,我有一個名爲referenceArray的字符串數組。我現在有一個字符串str。我想檢查referenceArray中的任何元素是否與str類似。我可以計算referenceArray和str的每個元素之間的Levenshtein距離,並選擇距離最小的元素。 但是,這種方法的問題是我還需要知道referenceArray中的元素是否都與str類似。所以在這種情況下選擇距離最小的元素將是錯誤的。使用Levenshtein距離確定數組中是否存在相似的字符串

例如,

referenceArray = ['saint louis','new york'] 
str='st. louis' 

在這種情況下,我挑'saint louis' since it has minimum L distance of 4.

但如果str='toronto',一個與minimum L distance is 'new york',但字符串是ofcourse完全不同。我如何確定referenceArray中的元素是否都不匹配str或者是否有類似的字符串?

謝謝

回答

4

如何設置可接受的距離閾值?例如,只有在距離低於10sqrt(len(str))或類似的地方時,您才接受距離最短的字符串。

+0

非常感謝:)。 sqrt(len(str))應該工作我認爲 – Jim

1

嘗試設置一個上限閾值len(str)/x,其中x是一個適當的常數。我會嘗試2-4的x。

用一些示例輸入嘗試一下,看看最適合你的是什麼。

相關問題