首页 > 解决方案 > 如何向输入搜索引擎添加容差

问题描述

我有这个代码来搜索大文本文件中的文本:

y = input("Apellido/s:").upper()
    for line in fread:

        if y in line:
            print(line)

如果找不到任何东西,我该如何实现搜索类似文本/自动更正的方法。不像谷歌那样广泛,但只需搜索可能有1个字母或单词中的重音的文本。我无法想象算法可以自己完成。

我现在必须添加一个 if 但我要求逻辑

标签: pythonpython-3.xsearchlogic

解决方案


您可以使用模糊搜索中的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 距离


推荐阅读