python - FuzzyWuzzy 提取物中的奇怪行为
问题描述
我正在尝试使用 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”识别为正确响应?
解决方案
您可以尝试使用: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)]
推荐阅读
- php - 将表单 1.9.3 迁移到 2.3.4 后,Magento 2 基本图像和缩略图图像未显示在前端
- javascript - Javascript 自动完成下拉菜单作为用户类型
- angular - Angular rxjs 到 rxjs 6 和 rxrs-compat
- flutter - 如何在 Flutter 中创建自定义 InlineSpan?
- javascript - 制作一个 Class 或 ID 以停止监听全局滚动事件
- ios - SwiftUI:是否可以从 .OnTapGesture 中触发 set PreferenceKey()?
- android - ExifInterface FileNotFoundException /storage/emulated/0/DCIM/Camera/IMG_20200319_211738.jpg
- realm - 无法获取由集合属性 swift 的属性的最新(nsdate)值过滤的对象的领域结果(示例更清晰)
- amazon-web-services - 多个 S3 事件一起触发一个 lambda 函数
- python - 更新 s3 策略