You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中实现适配OCR误差的模糊字符串搜索

OCR文本模糊匹配实现方案

前置依赖

Python标准库re不支持模糊匹配语法,需先安装第三方regex库:

pip install regex

实现代码

import regex
import pandas as pd

# 配置参数:允许的最大单字符替换次数,根据OCR误差程度调整,示例场景设为1即可
max_substitutions = 1
# 构造模糊匹配正则模式
pattern = '|'.join([f'({word}){{s<={max_substitutions}}}' for word in search_list])
# 对String列应用模糊匹配,overlapped=True保留重叠匹配结果,不需要可删除提升性能
df['Found'] = df['String'].apply(lambda x: regex.findall(pattern, x, overlapped=True))

注:如果你的文本数据源是df3,把代码中的df['String']替换为df3['String']即可对齐原有逻辑

效果验证

以你给出的示例测试:

输入字符串:eh house tree unicorn jantern s g w there was 123 treadmill fountain 1 5 funny grash cymbal shampoo
搜索列表:['crash cymbal','unicorn lantern']
执行代码后Found列输出为['unicorn jantern', 'grash cymbal'],成功识别到两处存在1个字符替换误差的匹配结果。

注意事项

  • 你的搜索词条长度为10-15字符,max_substitutions建议设为1或2,数值过大会大幅提升误匹配概率
  • 500条数据规模下该方案性能和原有精确匹配方案差距极小,无需额外优化
  • 若需返回匹配到的原搜索词而非实际识别文本,可在代码中增加映射逻辑即可

内容的提问来源于stack exchange,提问作者Mark Heptonstall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:54:03