Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_替换类似文本的会计处理_Php_Regex_Levenshtein Distance_Sentence Similarity - Fatal编程技术网

Php preg_替换类似文本的会计处理

Php preg_替换类似文本的会计处理,php,regex,levenshtein-distance,sentence-similarity,Php,Regex,Levenshtein Distance,Sentence Similarity,我试图做一个preg_替换,考虑到模式中类似的文本。 我的目标是从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); $

我试图做一个preg_替换,考虑到模式中类似的文本。 我的目标是从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='Vioolo San Vincenzo的sito公寓,n.4 e censito al;
preg#u replace(“#\bVicolo San Vincenzo[,]+([0-9]+|n[\.]?[0-9]+)?\b#,”,“$ocr);
注意:OCR将第三个字母a
c
o
混淆

在这里,提高OCR不是一种选择,也不可能

输入字符串:

维奥洛圣文琴佐西托公寓,北4东censito al

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

西托公寓酒店

实际结果:

维奥洛圣文琴佐西托公寓,北4东censito al

在PHP函数的意义上,文本应该被认为是相似的,比如
levenshtein()
相似的文本()
(而我不考虑
soundex()
变音()
,因为文本不是英文的)


使用
preg\u replace
不是强制性的,但我至少需要能够根据与该模式等效的内容计算字符串。

您希望得到什么?看起来你正在删除大部分字符串。这是一个例子@Michael。在我试图删除的部分前后都有文本。你能用这个例子更新问题吗?显示输入数据,好结果,坏结果日期问题@MichaelI以另一种方法结束,删除地址的主要原因是在尝试识别对我们有特殊意义的数字之前清除文本。您希望最终得到什么?看起来你正在删除大部分字符串。这是一个例子@Michael。在我试图删除的部分前后都有文本。你能用这个显示输入数据、好结果、坏结果的示例更新问题吗?Dated question@MichaelI以另一种方法结束,因为删除地址的主要原因是在试图识别对我们有特殊意义的数字之前清除文本。