python - 如何向输入搜索引擎添加容差
问题描述
我有这个代码来搜索大文本文件中的文本:
y = input("Apellido/s:").upper()
for line in fread:
if y in line:
print(line)
如果找不到任何东西,我该如何实现搜索类似文本/自动更正的方法。不像谷歌那样广泛,但只需搜索可能有1个字母或单词中的重音的文本。我无法想象算法可以自己完成。
我现在必须添加一个 if 但我要求逻辑
解决方案
您可以使用模糊搜索中的find_near_matches来完成
from fuzzysearch import find_near_matches
y = input("Apellido/s:").upper()
for line in fread:
if find_near_matches(y, line, max_l_dist=2):
print(line)
find_near_matches
如果找到匹配项,则返回匹配列表,如果未找到匹配项,则返回一个空数组,该数组被评估为 false。
max_l_dist
选项表示替换、插入和删除的总数(又名Levenshtein 距离)
推荐阅读
- html - v-list-item-title 不显示标题 vuetify
- r - 从r中的字符串中提取一个数字
- django - 如何在 Django 中测试 CBV 返回的查询集的数量
- javascript - Node.js 如何在没有任何信息的情况下静默崩溃?
- c# - 2个图片框坐标相交时如何在c#中创建事件
- javascript - 根据对象值过滤嵌套的对象数组Javascript ES6
- electron - 电子无框
- amazon-web-services - 跨账户使用 AWS cognito 用户池进行登录
- python - 在 python 3 中获得正确的输出
- javascript - 最大长度的快速高效排列