最重要的字符提取

Most important characters extraction

我正在通过 OCR 从身份证中提取字符。我有 4 张不同的图像,但所有图像都是针对 1 个人(我)的。有 4 种不同的文本提取结果。比如名字提取

[' BEYHAN', ' S BEYHAN h of', ' 2EYHAN', ' B3YHAN U']

这种数组是returning。所以我想提取 BEYHAN,但缺少一些部分。

我可以在数组中做最常用的单词,当然 return BEYHAN 也可以,但这只适用于这种情况。我想获取 '2EYHAN''B3YHAN' 的信息。这不是 BEYHAN,但它有一些信息 (2-EYHAN) 和 (B-3-YHAN)。那么你知道有没有什么算法或方法可以使用这种结果?

首先,有特定的数字代表字母。因此,在 wordt 中输入您需要提取的单词,并在 wordn 中输入代表的数字。下面的代码试图逐个字母地匹配单词,并检查它是否与字母或代表的数字匹配。如果以后所有匹配,那么他们将打印整个单词,否则他将从头开始。 我只是举个例子。 运行代码https://onlinegdb.com/BJaknZFbE

words = ['BEYHAN', ' S BEYHAN h of', '2EYHAN', 'B3YHAN U']
wordt='BEYHAN';
wordn=["2","3","4","6","7","8"];
m=0
c=''
n=0
for word in words:
    c=''
    m=0
    n=0
    for letter in word: 

        if letter==wordt[n] or letter==wordn[n]:

            m=m+1
            c=c+letter;
        else :
            if  len(wordt)!=m:
               m=0
               n=n-1
               c=''
            else:
               print(c) ;
               c=''
               m=0
               n=0   
        if len(wordt)-1>n:  
            n=n+1
        else:
           n=0
    if len(wordt)==m:
       print(c) ;
       c=''
       m=0
       n=0