使用fuzzyfuzzy中的Process.extract和所有最大相似选项

2024-06-25 22:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下意见-

query = 'Total replenishment lead time (in workdays)'
choices = ['PLANNING_TIME_FENCE_CODE', 'BUILD_IN_WIP_FLAG','Lead_time_planning', 'Total replenishment lead time 1', 'Total replenishment lead time  2']
print(process.extract(query, choices))

我得到以下输出-

[('Total replenishment lead time 1', 92), ('Total replenishment lead time  2', 92), ('Lead_time_planning', 50), ('PLANNING_TIME_FENCE_CODE', 36), ('BUILD_IN_WIP_FLAG', 26)]

但我只想要所有的最佳选择,具有最大的相似性比率,即使两个选择的比率相似

请帮忙


Tags: inbuildtimecodequerywipchoicestotal
1条回答
网友
1楼 · 发布于 2024-06-25 22:45:04

如果我理解您的问题正确,您希望收到以下输出:

[('Total replenishment lead time 1', 92), ('Total replenishment lead time  2', 92)]

您可以通过过滤process.extract的结果来实现这一点

matches = process.extract(query, choices, limit=None)
max_ratio = matches[0][1]
best_matches = []
for match in matches:
  if match[1] != max_ratio:
    break
  best_matches.append(match)

相关问题 更多 >