2016-06-10 75 views
-1

我有多個PDF轉換成文本文件,我想搜索可能在文件中的某個短語。我的問題是,PDF和文本文件之間的轉換並不完美,所以有時會出現文本錯誤(例如字之間缺失空格; i,l,1之間的混淆等)如何匹配可能的拼寫錯誤的字符串?

I想知道是否有任何共同的技術給我一個「軟」的搜索,例如看看兩個詞之間的漢明距離。

if 'word' in sentence: 

VS

if my_search('word',sentence, tolerance): 
+0

這裏有一個叫做dista的圖書館nce:https://pypi.python.org/pypi/Distance/0.1 – dagrha

+0

嘗試谷歌搜索字符串距離算法 – user853710

回答

1

你可以使用這樣的事情:

from difflib import SequenceMatcher 

text = """there are 
some 3rrors in my text 
but I cannot find them""" 

def fuzzy_search(search_key, text, strictness): 
    lines = text.split("\n") 
    for i, line in enumerate(lines): 
     words = line.split() 
     for word in words: 
      similarity = SequenceMatcher(None, word, search_key) 
      if similarity.ratio() > strictness: 
       return " '{}' matches: '{}' in line {}".format(search_key, word, i+1) 

print fuzzy_search('errors', text, 0.8) 

這應該輸出這樣的:

'errors' matches: '3rrors' in line 2 
+1

這工作,謝謝! – kkawabat