2012-04-27 80 views
3

是否有任何算法可以找到與字符串集合中字符串最接近的匹配?例如:是否有任何算法可以找到與字符串集合中字符串最接近的匹配?

string_to_match = 'What color is the sky?' 

strings = [ 
    'What colour is the sea?', 
    'What colour is the sky?', 
    'What colour is grass?', 
    'What colour is earth?' 
] 

answer = method_using_string_matching_algorithm(string_to_match, strings) 
answer # returns strings[1] 'What colour is the sky?' 
+2

請定義您的「親密度」指標。 – Skiminok 2012-04-27 10:21:11

+2

可能的重複:http://stackoverflow.com/questions/49263/approximate-string-matching-algorithms – DhruvPathak 2012-04-27 10:21:42

+0

你試過[維基百科](http://en.wikipedia.org/wiki/Approximate_string_matching)嗎? – 2012-04-27 10:22:29

回答

4

您正在尋找的搜索字詞是「字符串距離算法」和「近似字符串匹配」。谷歌的快速檢查變成了有趣的選項,如:

  • Sift3距離
  • Levenshtein距離
  • 優化線對齊距離
  • Damerau-Levenshtein距離
  • QWERTY鍵盤的距離

一些有用的鏈接包括:

在撰寫本文時,基於Debian的Linux發行版還包括AGREP並在他們的倉庫TRE-agrep

+1

感謝您的關鍵字和鏈接。我一直在使用Ruby Amatch的寶石,其中包括Levenshtein http://flori.github.com/amatch/ – Neil 2012-05-31 17:40:19

+1

@尼爾不客氣。我總是樂於提供幫助。如果您發現它有用,請接受答案。 – 2012-05-31 18:38:53

相關問題