close
from fuzzysearch import find_near_matches
sentence = "有空就說你好"
keyword = "你好"
keypoint = find_near_matches(keyword, sentence, max_l_dist=1, max_substitutions=1, max_insertions=2, max_deletions=4)
max_l_dist: maximum Levenshtein distance 最大編輯距離,代表str1要變成str2需要多少編輯步驟,允許的編輯為將a字符改為b字符、刪除字符、插入字符
https://www.cnblogs.com/ivanyb/archive/2011/11/25/2263356.html
max_substitutions: 最大允許的替換次數
max_insertions:最大允許的插入次數
max_deletions: 最大允許的刪除次數
因此可以看出,理論上來說 max_substitutions、max_insertions、max_deletions <= max_l_dist
但我設超過它也可以跑,有沒有真的執行我是不知道,還沒測試
舉例:
>>> from fuzzysearch import find_near_matches >>> find_near_matches('PATTERN', 'aaaPATERNaaa', max_l_dist=1) [Match(start=3, end=9, dist=1)]
PATTERN與PATERN最大允許相差一個字符
https://fuzzysearch.readthedocs.io/en/latest/readme.html#features
若有搜尋到符合字串,輸出為
[Match(start=3, end=24, dist=1)]
keypoint [0].end表示為結束index
文章標籤
全站熱搜
留言列表