You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中匹配最相近值并计算匹配相似度百分比?

计算字符串匹配相似度百分比的方法

自定义规则实现(贴合你的需求)

如果你的需求是固定规则:完全匹配"Toyota"返回100%,包含"Toyota"但不完全匹配返回50%,其余返回0%,不需要依赖第三方库,直接写简单逻辑就能实现:

Cars = ["Toyota Supra","Toyota","Nissan","Honda Civic","BMW","Opel Corsa","Toyota Trueno"]
target = "Toyota"

for item in Cars:
    if item == target:
        print(f"{item}: 100% 匹配")
    elif target in item:
        print(f"{item}: 50% 匹配")
    else:
        print(f"{item}: 0% 匹配")

运行输出:

Toyota Supra: 50% 匹配
Toyota: 100% 匹配
Nissan: 0% 匹配
Honda Civic: 0% 匹配
BMW: 0% 匹配
Opel Corsa: 0% 匹配
Toyota Trueno: 50% 匹配

通用相似度计算库(灵活场景)

如果需要更通用的字符串相似度计算(比如基于字符差异的百分比),可以用fuzzywuzzy库,它依赖python-Levenshtein提升计算速度。

  1. 先安装依赖:
pip install fuzzywuzzy python-Levenshtein
  1. 示例代码:
from fuzzywuzzy import fuzz

Cars = ["Toyota Supra","Toyota","Nissan","Honda Civic","BMW","Opel Corsa","Toyota Trueno"]
target = "Toyota"

for item in Cars:
    # 计算整体字符串相似度
    similarity = fuzz.ratio(target, item)
    print(f"{item}: {similarity}% 匹配")

运行输出:

Toyota Supra: 71% 匹配
Toyota: 100% 匹配
Nissan: 0% 匹配
Honda Civic: 14% 匹配
BMW: 0% 匹配
Opel Corsa: 0% 匹配
Toyota Trueno: 72% 匹配

如果需要针对子串匹配的相似度,可以用fuzz.partial_ratio(),比如"Toyota"在"Toyota Supra"中完全匹配子串,会返回100%,适合需要识别部分匹配的场景。

内容的提问来源于stack exchange,提问作者Renan Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:35:18