目 录CONTENT

文章目录

FuzzyWuzzy 使用说明

码农街
2025-08-12 / 0 评论 / 0 点赞 / 2 阅读 / 0 字 / 正在检测是否收录...

函数

说明

适用场景

公式核心

ratio

直接计算两个字符串的 Levenshtein 相似度(基于编辑距离)。

比较字符串完全顺序敏感、且不用处理乱序的情况。

1 - (编辑距离 / 最大长度)

partialRatio

在短字符串可能是长字符串子串时,取匹配度最高的部分再计算 ratio。

一个字符串可能包含另一个,比如 "Hello world" vs "world"

对滑动窗口的子串求 ratio 最大值

tokenSortRatio

把字符串按单词拆分、排序后再计算 ratio,忽略单词顺序差异。

单词顺序不重要,比如 "apple banana" vs "banana apple"

排序后拼接 → ratio

tokenSortPartialRatio

tokenSort + partialRatio,既忽略单词顺序,又只取最佳子串。

长文本里顺序无关的匹配,比如 "I like banana and apple" vs "banana apple"

排序 → 部分匹配

tokenSetRatio

拆成单词集合,求交集部分 + 各自剩余部分,拼接计算相似度。

比较“共有单词”匹配度,比如 "apple banana cherry" vs "banana apple"

交集 + 剩余部分组合计算

tokenSetPartialRatio

tokenSet + partialRatio,对集合匹配后取最佳子串。

长文本里包含短文本,且有多余单词的情况。

集合化 → 部分匹配

weightedRatio

上述几种方法加权组合,并对短字符串有额外加权,取综合最优结果。

不知道用哪个最合适时,作为自动选择版本。

ratio, partialRatio, tokenSortRatio 等加权


使用建议

  1. 如果字符串顺序固定且完整 → 用 ratio

    "hello world" vs "hello world"
    
  2. 如果短句可能是长句的子串 → 用 partialRatio

    "I love hello world" vs "hello world"
    
  3. 如果单词顺序可能不同 → 用 tokenSortRatio

    "banana apple" vs "apple banana"
    
  4. 如果顺序不重要且短句是长句子集的一部分 → 用 tokenSortPartialRatio

    "I like apple banana" vs "banana apple"
    
  5. 如果两个字符串共享部分单词 → 用 tokenSetRatio

    "apple banana cherry" vs "banana apple"
    
  6. 如果共享单词且短句嵌在长句中 → 用 tokenSetPartialRatio

    "I have apple banana and orange" vs "banana apple"
    
  7. 如果不确定选哪个 → 用 weightedRatio(FuzzyWuzzy 会帮你选最优)

0

评论区