gpt4 book ai didi

mysql - 根据给定的词群,根据 OCR 错误自动构建可能词的输出列表

转载 作者:行者123 更新时间:2023-11-29 01:04:01 26 4
gpt4 key购买 nike

我想知道在 Perl/MySQL 中是否有可能根据给定的单词构建一个变体单词列表,该单词可能会出现常见的 OCR 错误(即 8 而不是 b)?换句话说,如果我有一个单词列表,并且该列表中有单词“Alphabet”,那么有没有办法扩展或构建一个新列表以包含我的原始单词加上“Alphabet”的 OCR 错误变体?所以在我的输出中,我可能会有以下 Alphabet 变体:

Alphabet
A1phabet
Alpha8et
A1pha8et

当然,如果不是所有出现在 OCR 文本中的常见错误,那么编写代码将很有用。像 8 而不是 b,或 1 而不是 l。我不打算修复错误,因为在我的数据本身中我可能有 OCR 错误,但我想根据我作为输入提供的单词列表创建一个变体单词列表作为我的输出。所以在我的数据中,我可能有 Alpha8et,但如果我对 Alphabet 进行简单搜索,它不会发现这个明显的错误。

我快速而肮脏的 MySQL 方法

Select * from   
(SELECT Word
FROM words
union all
-- Rule 1 (8 instead of b)
SELECT
case
when Word regexp 'b|B' = 1
then replace(replace(Word, 'B','8'),'b','8')
end as Word
FROM words
union all
-- Rule 2 (1 instead of l)
SELECT
case
when Word regexp 'l|L' = 1
then replace(replace(Word, 'L','1'),'l','1')
end as Word
FROM words) qry
where qry.Word is not null
order by qry.Word;

我在想必须有一个更自动化和更清洁的方法

最佳答案

如果您有扫描文本的示例,同时包含扫描(原始)版本和更正版本,生成字符更正列表应该相对简单。从足够多的文本中收集这些数据,然后按频率对其进行排序。确定要使其成为“常见”的更正频率,然后仅在列表中保留常见更正。

将列表转换为以正确字母为键的 map ;该值是该字母的常见错误扫描数组。使用递归函数获取单词并生成其所有变体。

这个用 Ruby 编写的例子展示了递归函数。收集可能的错误扫描取决于您:

VARIATIONS = {
'l' => ['1'],
'b' => ['8'],
}

def variations(word)
return [''] if word.empty?
first_character = word[0..0]
remainder = word[1..-1]
possible_first_characters =
[first_character] | VARIATIONS.fetch(first_character, [])
possible_remainders = variations(remainder)
possible_first_characters.product(possible_remainders).map(&:join)
end

p variations('Alphabet')
# => ["Alphabet", "Alpha8et", "A1phabet", "A1pha8et"]

原始单词包含在变体列表中。如果您希望 可能的错误扫描,则删除原始单词:

def misscans(word)
variations(word) - [word]
end

p misscans('Alphabet')
# => ["Alpha8et", "A1phabet", "A1pha8et"]

命令行程序的快捷(且未经测试)版本会将上述功能与此“主要”功能相结合:

input_path, output_path = ARGV
File.open(input_path, 'r') do |infile|
File.open(output_path, 'w') do |outfile|
while word = infile.gets
outfile.puts misscans(word)
end
end
end

关于mysql - 根据给定的词群,根据 OCR 错误自动构建可能词的输出列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824461/

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