模糊字串比對與去重

當文字來自 OCR 或時常變動的 UI 文案時,精確字串比對很脆弱。這些輔助函式為相似度評分、 從清單中挑出最佳候選,並收合近似重複項 —— 讓流程可以針對「看起來像 Submit 的按鈕」 動作,而非精確標籤。

預設後端為標準函式庫 difflib,因此本功能**無需任何額外相依**即可運作。若安裝了 選用的 rapidfuzz 套件(pip install je_auto_control[fuzzy])則改用其以加速;無論 何者,分數皆正規化為 0.0..1.0,故呼叫端永不依賴實際執行的後端。BACKEND 標示目 前作用中的後端。不匯入 PySide6

無頭 API

from je_auto_control import (
    fuzzy_ratio, fuzzy_best_match, fuzzy_matches, fuzzy_dedupe)

fuzzy_ratio("Sumbit", "Submit")          # ~0.83(預設不分大小寫)

fuzzy_best_match("Sve", ["Cancel", "Save", "Submit"])
# -> ("Save", 0.86, 1)   (choice, score, index) —— 低於 score_cutoff 則為 None

fuzzy_matches("login", ["login", "logon", "logout"], limit=2)
# -> [("login", 1.0, 0), ("logon", 0.8, 1)]  由高分至低分排序

fuzzy_dedupe(["Invoice", "invoice ", "Receipt"], threshold=0.85)
# -> ["Invoice", "Receipt"]   近似重複收合,保留第一個

所有函式皆接受 ignore_case``(預設 ``True);``fuzzy_best_match`` / fuzzy_matches 接受 score_cutoff 以濾除弱候選。

執行器指令

指令

效果

AC_fuzzy_ratio

兩字串相似度的 {score}

AC_fuzzy_best_match

從候選中取 ``{match, score, index}``(或 null)。

AC_fuzzy_dedupe

收合近似重複後的 {unique}

choices / items 接受清單或 JSON 字串清單(因此視覺化建構器可用)。相同操作亦提供 為 MCP 工具(ac_fuzzy_ratio / ac_fuzzy_best_match / ac_fuzzy_dedupe),以及 Script Builder 中 Data 分類下的指令。