为什么当测试的字符串100%包含查询字符串时,fuzzywuzzy的process.extractBests没有给出100%的分数?

问题描述 投票:0回答:1

我正在测试

fuzzywuzzy
process.extractBests()
如下:

from fuzzywuzzy import process

# Define the query string
query = "Apple"

# Define the list of choices
choices = ["Apple", "Apple Inc.", "Apple Computer", "Apple Records", "Apple TV"]

# Call the process.extractBests function
results = process.extractBests(query, choices)

# Print the results
for result in results:
    print(result)

它输出:

('Apple', 100)
('Apple Inc.', 90)
('Apple Computer', 90)
('Apple Records', 90)
('Apple TV', 90)

既然所有字符串都 100% 包含查询字符串(“Apple”),为什么评分者不给 100 分?

我在 Python 3.11.7 中使用 fuzzywuzzy==0.18.0。

python nlp string-matching fuzzywuzzy
1个回答
0
投票

fuzzywuzzy
extractBests()
函数不会给出100%,因为它不检查匹配,它检查相似性,例如字符串长度、与查询相比的字符串内容、查询字符串的位置,以及其他一些因素。在您的情况下,它不会输出 100%,因为“Apple Inc.”。与您的查询“Apple”不完全匹配。这就是为什么只有“Apple”选项输出 100%,因为它与查询“Apple”100% 匹配。我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.