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

arrow
arrow
    文章標籤
    fuzzysearch python
    全站熱搜
    創作者介紹
    創作者 KR 的頭像
    KR

    漫漫長路

    KR 發表在 痞客邦 留言(0) 人氣()