1

我正在尝试做一个 preg_replace 考虑到模式中的类似文本。我的目标是从 OCR 软件输出的文本中删除给定的字符串(某些字母可能会混淆)。

让我们举一个代码示例:

$ocr = 'Appartamento sito in Vioolo San Vincenzo, n.4 e censito al ;
preg_replace('#\bVicolo San Vincenzo[, ]+([0-9]+|n[\.]? ?[0-9]+)?\b#', '<removed text>', $ocr);

注意: OCR 将第三个字母 a与 an混淆了co

在这里改进 OCR 不是一种选择或可能。

输入字符串:

Appartamento sito in Vioolo San Vincenzo, n.4 e censito al

上述调用 preg_replace 后的预期结果:

Appartamento sito in e censito al

实际结果:

Appartamento sito in Vioolo San Vincenzo, n.4 e censito al

在 PHP 函数的含义中,文本应该被认为是相似的,例如levenshtein(), similar_texts()(虽然我没有考虑soundex()或者metaphone()文本不是英文的)。

使用preg_replace不是强制性的,但我至少需要能够根据与该模式等效的东西来评估字符串。

4

0 回答 0