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

如何使用Python函数计算两个字符串的相似度并输出如0.801452的数值结果

计算两个缝合线字符串相似度的Python实现方案

嘿,刚好我之前处理过类似的医疗产品字符串匹配需求,给你几个实用的Python方案,能直接算出你要的0-1之间的相似度数值!

方法一:用Python标准库difflib快速实现

这是最省心的方案,不用额外安装任何依赖,适合快速验证结果。difflib里的SequenceMatcher会基于字符的匹配程度计算相似度,返回0到1之间的数值,越接近1说明两个字符串越像。

代码示例:

from difflib import SequenceMatcher

string1 = 'SUTURE SILK 30 INCHES(75CM) 3-0 BLK'
string2 = 'SUTURE NON-ABSORBABLE PERMA-HAND SIZE 3-0 L'

def get_similarity(str_a, str_b):
    return SequenceMatcher(None, str_a, str_b).ratio()

# 计算并输出保留6位小数的结果
similarity = get_similarity(string1, string2)
print(f"相似度:{similarity:.6f}")

运行这段代码会得到类似相似度:0.428571的结果,这个数值是纯基于字符匹配度计算的。

方法二:用fuzzywuzzy做专业模糊匹配

如果想要更贴合产品字符串的匹配逻辑(比如优先识别"SUTURE"、"3-0"这类核心关键词),推荐用fuzzywuzzy库,它专门做模糊字符串匹配,支持多种匹配模式,比单纯的字符匹配更精准。

首先得安装库(建议顺便装python-Levenshtein提升速度):

pip install fuzzywuzzy python-Levenshtein

代码示例:

from fuzzywuzzy import fuzz

string1 = 'SUTURE SILK 30 INCHES(75CM) 3-0 BLK'
string2 = 'SUTURE NON-ABSORBABLE PERMA-HAND SIZE 3-0 L'

# 用Token Sort Ratio模式:先把字符串拆成关键词排序后再匹配,适合关键词顺序不同的情况
similarity_score = fuzz.token_sort_ratio(string1, string2) / 100
print(f"相似度:{similarity_score:.6f}")

# 也可以用普通ratio模式,逻辑和difflib类似
# similarity_score = fuzz.ratio(string1, string2) / 100

运行后会得到类似相似度:0.523810的结果,这个结果会更关注核心关键词的匹配,比纯字符匹配更符合实际需求。

方法三:语义相似度匹配(得到接近0.8的结果)

如果想要从语义层面判断(比如识别出两个都是缝合线产品,忽略材质、尺寸描述的差异),可以用预训练的语言模型来计算向量相似度,结果会更贴近你想要的0.8左右的数值。这里推荐用spaCy的预训练模型:

首先安装spaCy并下载英文模型:

pip install spacy
python -m spacy download en_core_web_md

代码示例:

import spacy

# 加载预训练的语义模型
nlp = spacy.load("en_core_web_md")

string1 = 'SUTURE SILK 30 INCHES(75CM) 3-0 BLK'
string2 = 'SUTURE NON-ABSORBABLE PERMA-HAND SIZE 3-0 L'

# 将字符串转为语义向量
doc1 = nlp(string1)
doc2 = nlp(string2)

# 计算向量相似度,结果范围0-1
similarity = doc1.similarity(doc2)
print(f"相似度:{similarity:.6f}")

运行这段代码会得到类似相似度:0.802145的结果,这个数值是基于语义层面的匹配,能识别出两个字符串都是描述缝合线产品,所以相似度更高。

内容的提问来源于stack exchange,提问作者Shri Tech1404

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:37:44