我想知道是否有某种方法可以在 PHP 中进行模糊字符串匹配。在长字符串中查找单词,即使拼写错误也能找到潜在的匹配项;如果由于 OCR 错误而偏离一个字符,它会找到它。
我在想正则表达式生成器也许能够做到这一点。因此,如果输入“crazy”,它将生成以下正则表达式:
.*((crazy)|(.+razy)|(c.+azy)|cr.+zy)|(cra.+y)|(craz.+)).*
然后,它将返回该单词或该单词的变体的所有匹配项。
如何建造发电机:我可能会将搜索字符串/单词拆分为一个字符数组,并构建正则表达式,对新创建的数组执行 foreach 操作,用“.+”替换键值(字符串中字母的位置)。
这是进行模糊文本搜索的好方法还是有更好的方法?是否可以进行某种字符串比较,根据其接近程度来给我一个分数?我正在尝试查看某些转换错误的 OCR 文本是否包含简短的单词。
当您不知道正确的单词是什么时,字符串距离函数毫无用处。我建议 pspell 函数:
$p = pspell_new("en");
print_r(pspell_suggest($p, "crazzy"));
http://www.php.net/manual/en/function.pspell-suggest.php http://www.php.net/manual/en/function.pspell-suggest.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)