gpt4 book ai didi

PHP 修复错误文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:37 29 4
gpt4 key购买 nike

这是我正在做的事情,我希望 StackOverflow 上的聪明人能提供意见。

我正在尝试的是一种基于组契约(Contract)一文本页面的各种错误版本来修复文本的功能。基本上,这可用于将不同的 OCR 结果组合成一个结果,其准确度高于任何单独的结果。

我从一本包含 600,000 个英语单词的词典开始,这几乎是所有内容,包括法律和医学术语以及常用名称。我已经有了这个。

然后我有 4 个版本的文本示例。

像这样:

$text[0] = 'Fir5t text sample is thisline';
$text[1] = 'Fir5t text Smplee is this line.';
$text[2] = 'First te*t sample i this l1ne.';
$text[3] = 'F i r st text s ample is this line.';

我试图将以上内容结合起来得到如下所示的输出:

$text = 'First text sample is this line.';

别告诉我不可能,因为肯定不是,只是很难。

我非常感谢任何人对此有任何想法。

谢谢!

我目前的想法:

仅仅对照字典检查单词是行不通的,因为有些空格在错误的位置,有时单词不会出现在字典中。

主要关注的是修复损坏的间距,一旦修复,则可以选择最常出现的字典单词(如果存在),否则选择最常出现的非字典单词。

最佳答案

您是否尝试过使用最长公共(public)子序列算法?这些在源代码管理应用程序和一些文本编辑器中使用的“diff”文本比较工具中很常见。差异算法有助于识别两个文本样本中已更改和未更改的字符。 http://en.wikipedia.org/wiki/Diff

几年前,我开发了一个类似于您的 OCR 应用程序。我没有将多个 OCR 引擎应用于一张图像,而是使用一个 OCR 引擎来分析同一图像的多个版本。每张经过处理的图像都是对原始图像应用不同去噪技术的结果:一种技术在低对比度时效果更好,另一种技术在字符形成不良时效果更好。比较每个图像的 OCR 结果的“投票”方案提高了任意文本字符串(例如“BQCM10032”)的读取率。 OCR 的学术文献中描述了其他投票方案。

有时,您可能需要匹配一个 OCR 结果组合无法生成所有字母的单词。例如,可能缺少中间字母,如“w rd”或“c tch”(可能是“word”和“catch”)。在这种情况下,它可以帮助您使用三个键中的任何一个来访问您的字典:首字母、中间字母和末尾字母(或字母组合)。每个键都与按语言中出现频率排序的单词列表相关联。 (我使用这种多键查找来提高填字游戏生成应用程序的速度;可能还有更好的方法,但这个方法很容易实现。)

为了节省内存,您可以只对语言中前几千个常用词应用多键方法,然后只对不太常用的词使用一种查找技术。

有几个在线词频列表。 http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists

如果你想花哨一些,你也可以依赖文本中出现的先验频率。例如,如果“Byrd”出现多次,那么如果 OCR 引擎报告“bird”或“bard”的置信度较低,则它可能是更好的选择。仅当同一页上的医学术语在统计上不太可能出现时,您才可以将医学词典加载到内存中——否则将医学术语从您的工作词典中排除,或者至少为它们分配合理的可能性。 “假肢”是一个常用词; “前列腺炎”不那么重要。

如果您熟悉去噪和形态学操作等图像处理技术,您还可以尝试在将图像传递给 OCR 引擎之前对其进行预处理。在您的软件识别出 OCR 引擎表现不佳的单词或区域后,图像处理也可以应用于选定区域。

某些字母/字母和字母/数字替换很常见。数字 0(零)可能与字母 O、C 与 O、8 与 B、E 与 F、P 与 R 等混淆。如果发现一个词的置信度较低,或者如果有两个常见词可以匹配一个未完全阅读的词,那么特别的形状匹配规则可能会有所帮助。例如,“bcth”可以匹配“both”或“bath”,但对于许多字体(和上下文)“both”更可能匹配,因为“o”在形状上更类似于“c”。在一长串单词中,例如小说或杂志文章中的一段,“bath”比“b8th”更适合匹配。

最后,您可能会编写一个插件或脚本将结果传递到拼写检查引擎中,以检查名词-动词一致性和其他语法检查。这可能会捕获一些额外的错误。也许您可以尝试使用 VBA for Word 或目前流行的任何其他脚本/应用程序组合。

关于PHP 修复错误文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518396/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com