【问题标题】:Strange behaviour in FuzzyWuzzy extractFuzzyWuzzy 提取物中的奇怪行为
【发布时间】:2018-11-01 06:08:03
【问题描述】:

我正在尝试使用 FuzzyWuzzy 来纠正文本中拼写错误的名称。但是,我无法让 process.extract 和 process.extractOne 以我期望的方式行事。

from fuzzywuzzy import process

the_text = 'VICTOR HUGO e MARIANA VEIGA'
search_term = 'VEYGA'

the_text = the_text.split()
found_word = process.extract(search_term, the_text)

print(found_word)

这会导致:

[('e', 90), ('VEIGA', 80), ('HUGO', 22), ('VICTOR', 18), ('MARIANA', 17)]

如何让 FuzzyWuzzy 正确地将“VEIGA”识别为正确响应?

【问题讨论】:

    标签: python fuzzy-search fuzzywuzzy


    【解决方案1】:

    你可以尝试使用:fuzz.token_set_ratio 或 fuzz.token_sort_ratio 这里的答案:When to use which fuzz function to compare 2 strings 给出了很好的解释。

    这里有一些代码:

    from fuzzywuzzy import process
    from fuzzywuzzy import fuzz
    
    the_text = 'VICTOR HUGO e MARIANA VEIGA'
    search_term = 'VEYGA'
    
    the_text = the_text.split()
    found_word = process.extract(search_term, the_text, scorer=fuzz.token_sort_ratio)
    
    print(found_word)
    

    输出:

    [('VEIGA', 80), ('e', 33), ('HUGO', 22), ('VICTOR', 18), ('MARIANA', 17)]

    【讨论】:

    • 非常感谢。另一个答案的链接非常有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多