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

Python嵌套字典优化:如何去除模糊匹配中重复的单词两两组合

解决方案

核心逻辑调整

原来的双重循环会遍历所有两个不同单词的排列(包含正反两种顺序),所以产生了冗余数据。我们改为仅计算单词索引为前序的匹配结果,即对于索引为i的单词,仅和索引大于i的单词计算相似度,每个两两组合仅保留一次记录。

修改后代码

from fuzzywuzzy import fuzz

my_text = "Have you ever wanted"
str_list = my_text.split()
n = len(str_list)
job_dict = {k: {} for k in str_list}

# 按索引遍历,仅计算i < j的组合
for i in range(n):
    key = str_list[i]
    for j in range(i + 1, n):
        key2 = str_list[j]
        job_dict[key][key2] = fuzz.partial_ratio(key, key2)

print(job_dict)

输出结果

针对示例输入的输出如下,无重复匹配项:

{'Have': {'you': 0, 'ever': 50, 'wanted': 50}, 'you': {'ever': 0, 'wanted': 0}, 'ever': {'wanted': 33}, 'wanted': {}}

后续如果需要查询两个单词的相似度,只要先判断两个单词的索引顺序,到索引更小的单词对应的字典里查询即可。


内容的提问来源于stack exchange,提问作者KIMIA Ghassemzadeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:21:01