本發明涉及字符校對技術領域,特別是涉及一種ocr識別結果的糾正方法和裝置。
背景技術:
光學字符識別(opticalcharacterrecognition,ocr)技術,是指電子設備(例如掃描儀或數碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字符,采用光學的方式將紙質文檔中的文字轉換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉換成文本格式,供文字處理軟件進一步編輯加工的技術。
由于光學字符識別往往需要識別很多字符,即使單個字符的識別準確率較高,但是若要識別包含成百上千個字符的圖像,將會造成圖像識別的準確率較低。而且,在光學字符識別過程中,因個別字符識別錯誤所導致的整個字符串錯誤是一種常見現象。這種情況會很大程度上會影響針對整體待識別字符的識別準確率。
因此,在現有技術中,當采用ocr技術對待識別字符識別完成后,為了保證識別準確率,還需要人工的對識別結果進行糾正,從而降低了字符識別的自動化程度,增加了人工校對成本,影響了交互體驗。
技術實現要素:
本發明提供了一種ocr識別結果的糾正方法和裝置,以解決現有技術中對識別準確率較低的ocr識別結果進行人工校正時所存在的自動化識別程度低、人工校對成本高的問題。
為了解決上述問題,根據本發明的一個方面,本發明公開了一種ocr識別結果的糾正方法,包括:
采用ocr技術對紙質文檔中目標區域內的待識別字符進行識別,獲取初始識別結果字符串str;
根據所述待識別字符在所述紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍,構造符合所述預先設定字符范圍的多個候選字符串stri以構成候選字符串集合;
依次計算所述初始識別結果字符串str與所述候選字符串集合中的每個候選字符串stri的最小編輯距離dmin;
利用所述最小編輯距離dmin,按照以下相似度公式計算所述初始識別結果字符串str與每個候選字符串stri的相似度si,相似度si=1-dmin/max(p,q),其中,p為所述初始識別結果字符串str的字符串長度,q為所述候選字符串集合中每個候選字符串stri的字符串長度,其中,不同字符串長度的候選字符串的q值不同;
將最大的相似度smax所對應的候選字符串strj輸出為對所述初始識別結果字符串str的糾正結果。
根據本發明的另一方面,本發明還公開了一種ocr識別結果的糾正裝置,包括:
ocr識別模塊,用于采用ocr技術對紙質文檔中目標區域內的待識別字符進行識別,獲取初始識別結果字符串str;
候選字符串構造模塊,用于根據所述待識別字符在所述紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍,構造符合所述預先設定字符范圍的多個候選字符串stri以構成候選字符串集合;
距離計算模塊,用于依次計算所述初始識別結果字符串str與所述候選字符串集合中的每個候選字符串stri的最小編輯距離dmin;
相似度計算模塊,用于利用所述最小編輯距離dmin,按照以下相似度公式計算所述初始識別結果字符串str與每個候選字符串stri的相似度si,相似度si=1-dmin/max(p,q),其中,p為所述初始識別結果字符串str的字符串長度,q為所述候選字符串集合中每個候選字符串stri的字符串長度,其中,不同字符串長度的候選字符串的q值不同;
結果糾正輸出模塊,用于將最大的相似度smax所對應的候選字符串strj輸出為對所述初始識別結果字符串str的糾正結果。
與現有技術相比,本發明包括以下優點:
這樣,本發明實施例利用字符串間的最小編輯距離來對ocr識別結果進行糾正,從而提升了ocr識別準確率;而在計算最小編輯距離時,則是計算ocr識別結果字符串與構造的候選字符串集合中的各個候選字符串之間的最小編輯距離,而該候選字符串集合中的候選字符串則是依據待識別字符在紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍而構造的,從而可以保證候選字符串集合中的候選字符串與真實的待識別字符串相符,從而進一步保證了糾正后輸出的字符串與待識別字符串相符,實現了對ocr識別結果的自動化糾正,并提升了糾正準確率,并減少了人工校正的成本。
附圖說明
圖1是本發明的一種ocr識別結果的糾正方法實施例的步驟流程圖;
圖2是本發明的一種ocr識別結果的糾正裝置實施例的結構框圖。
具體實施方式
為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
參照圖1,示出了本發明的一種ocr識別結果的糾正方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟101,采用ocr技術對紙質文檔中目標區域內的待識別字符進行識別,獲取初始識別結果字符串str;
其中,可以采用ocr技術對紙質文檔(例如發票)中某個需要識別字符的區域(即目標區域)內的字符進行識別,從而得到初始識別結果的字符串str。
步驟102,根據所述待識別字符在所述紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍,構造符合所述預先設定字符范圍的多個候選字符串stri以構成候選字符串集合;
其中,由于需要識別字符的紙質文檔中的目標區域內的字符一般是具有候選范圍的,因此,可以根據待識別字符在該紙質文檔中的屬性以及該屬性的屬性值的預設字符范圍來構造符合該預設字符范圍的多個候選字符串stri,從而構成該目標區域的候選字符串集合。
舉例來說,例如用戶需要識別增值稅專用發票中某個條目內的字符。
那么由于發票中納稅人名稱,納稅人地址、電話,納稅人開戶行及賬號,發票金額等屬性的屬性值的文字數目較多,且屬性值的打印字體普遍偏小,導致部分文字難以識別,通過ocr識別的結果存在一定錯誤,那么現有技術則是對識別的結果進行人工糾正。
而本發明實施例中,為了提升字符識別的自動化,可以預先構造上述各屬性的屬性值的候選字符串,以發票金額屬性為例,其屬性值只能由大寫零、壹、貳、叁、肆、伍、陸、柒、捌、玖、角、拾、佰、千、萬、圓、整等金額大寫字符構成,而該屬性值又具有一定的范圍,例如在1~10萬之間,那么該發票金額對應的字符就是具有一定范圍的,從而可以構造該發票金額對應的目標區域的候選字符串集合,其中,例如壹仟萬元整這個字符串必然不再該候選字符串集合中。
步驟103,依次計算所述初始識別結果字符串str與所述候選字符串集合中的每個候選字符串stri的最小編輯距離dmin;
然后,就可以將初始識別結果的字符串str與目標區域的候選字符串集合中的每個候選字符串stri進行最小編輯距離的計算。
其中,編輯距離的定義為:從一個字符串按限定的操作(增加一個字符,刪除一個字符,修改一個字符)改為另一個字符串所需要的步驟數。
而最小編輯距離的定義則是:通過不同的操作次序按限定的操作(增加一個字符,刪除一個字符,修改一個字符)把一個字符串變為另一個字符串所需要的最小步驟數。最小編輯距離越小,表明兩個字符串越相似。最小編輯距離為0表示兩個字符串完全相同。例如字符串abc到字符串bcd的最小編輯距離為2。
步驟104,利用所述最小編輯距離dmin,按照以下相似度公式計算所述初始識別結果字符串str與每個候選字符串stri的相似度si,相似度si=1-dmin/max(p,q);
其中,p為所述初始識別結果字符串str的字符串長度,q為所述候選字符串集合中每個候選字符串stri的字符串長度,其中,不同字符串長度的候選字符串的q值不同;
例如,初始識別結果字符串abc到第一個候選字符串bcde的最小編輯距離為3,則p=3,q=4,那么兩個字符串的相似度s1=1-3/4=0.25;
初始識別結果字符串abc到第二個候選字符串bc的最小編輯距離為1,則p=3,q=2,那么兩個字符串的相似度s1=1-1/3=0.67。
步驟105,將最大的相似度smax所對應的候選字符串strj輸出為對所述初始識別結果字符串str的糾正結果。
那么候選字符串集合中與初始識別結果的字符串相似度最大的候選字符串就是對該初始識別結果的字符串的糾正結果。例如上述候選字符串集合中只有兩個候選字符串bcde和bc,那么最大的相似度0.67對應的候選字符串bc就是初始識別結果abc的糾正結果,也即,ocr識別到的abc存在一定的錯誤,實質上正確的待識別字符串為bc。這時,就可以將糾正過的字符串bc輸出。
這樣,本發明實施例利用字符串間的最小編輯距離來對ocr識別結果進行糾正,從而提升了ocr識別準確率;而在計算最小編輯距離時,則是計算ocr識別結果字符串與構造的候選字符串集合中的各個候選字符串之間的最小編輯距離,而該候選字符串集合中的候選字符串則是依據待識別字符在紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍而構造的,從而可以保證候選字符串集合中的候選字符串與真實的待識別字符串相符,從而進一步保證了糾正后輸出的字符串與待識別字符串相符,實現了對ocr識別結果的自動化糾正,并提升了糾正準確率,減少了人工校正的成本。
其中,在一個實施例中,在執行步驟103時,可以采用如下方式來實現:
獲取所述初始識別結果字符串str的字符串長度p;
例如,候選字符串集合為strn(str0,str1,str2……,strn),獲取當前計算的候選字符串stri(例如為str0)的字符串長度q,;
若p=0且q≠0,則所述初始識別結果字符串str與當前計算的候選字符串stri的最小編輯距離dmin=q;
若q=0且p≠0,則所述初始識別結果字符串str與當前計算的候選字符串stri的最小編輯距離dmin=p;
若p≠0且q≠0,則構造矩陣d[p+1][q+1],即,構造(p+1)行(q+1)列的矩陣d;
其中,所述矩陣d[p+1][q+1]的第0行從左至右的元素的賦值以及第0列從上至下的元素的賦值均從0開始依次遞增,每次加1,使得元素d[0][q]=q,元素d[p][0]=p;
舉例來說,例如初始識別結果字符串str為abc,當前計算的候選字符串str0為bcd,則p=3,q=3,那么構造4x4的矩陣d,并首先對第0行和第0列的各元素進行賦值,其中矩陣d中未賦值的元素以“?”代替;
然后,需要對矩陣中未賦值的剩余元素分別進行賦值,即掃描所述初始識別結果字符串str中的每個字符str[j]和當前計算的候選字符串stri中的每個字符stri[i]分別進行比較,若stri[i]=str[j],則參數temp=0,否則temp=1,同時,針對矩陣d[p+1][q+1]中的元素d[i][j]進行如下賦值:
d[i][j]=﹛(d[i-1][j])+1,(d[i][j-1])+1,(d[i-1][j-1]+temp)﹜min;
那么繼續以上述實例為例進行說明,首先將abc中的str[1]=a與字符串bcd中的str0[1]=b進行比較,發現不同,因此temp=1,則
d[1][1]=﹛(d[0][1])+1,(d[1][0])+1,(d[0][0]+1)﹜min=﹛1+1,1+1,0+1﹜min=1,因此,可以對矩陣d的d[1][1]元素賦值1,得到如下矩陣d:
然后,將abc中的str[1]=a與字符串bcd中的str0[2]=c進行比較,發現不同,因此temp=1,則
d[1][2]=﹛(d[0][2])+1,(d[1][1])+1,(d[0][1]+1)﹜min=﹛2+1,1+1,1+1﹜min=2,因此,可以對矩陣d的d[1][2]元素賦值2,得到如下矩陣d:
接著,按照上述公式來對矩陣d中其他未賦值的元素進行賦值,從而可以得到全部元素賦值后的如下矩陣d:
在對矩陣d中的全部元素賦值完成后,就可以將矩陣d[p+1][q+1]中的元素d[p+1][q+1]的賦值確定為所述初始識別結果的字符串str與當前計算的候選字符串stri的最小編輯距離dmin。
這里即為,將元素d[4][4]的賦值確定為初始識別結果的字符串abc與當前的候選字符串bcd之間的最小編輯距離(這里為2)。
針對候選字符串集合中的其他候選字符串,同樣采用上述構造矩陣d的方式來確定初始識別結果的字符串str與各個其他候選字符串之間的最小編輯距離dmin,矩陣的構造方法相同,在此不再贅述。
綜上,借助于本發明實施例的上述方法,能夠對各種需要識別字符的紙質文檔的ocr識別結果進行自動化糾正,而且糾正結果的準確度高,進一步提升了ocr識別結果的準確率。
當然,上述紙質文檔并不限于上述實例中的發票,還可以是個人信息表、戶口本信息等等各種需要識別字符的紙質文檔,即,本發明對于所識別的紙質文檔的類型并不作具體限制。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例并不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作并不一定是本發明實施例所必須的。
與上述本發明實施例所提供的方法相對應,參照圖2,示出了本發明一種ocr識別結果的糾正裝置實施例的結構框圖,具體可以包括如下模塊:
ocr識別模塊21,用于采用ocr技術對紙質文檔中目標區域內的待識別字符進行識別,獲取初始識別結果字符串str;
候選字符串構造模塊22,用于根據所述待識別字符在所述紙質文檔中的屬性以及所述屬性的屬性值的預先設定字符范圍,構造符合所述預先設定字符范圍的多個候選字符串stri以構成候選字符串集合;
距離計算模塊23,用于依次計算所述初始識別結果字符串str與所述候選字符串集合中的每個候選字符串stri的最小編輯距離dmin;
相似度計算模塊24,用于利用所述最小編輯距離dmin,按照以下相似度公式計算所述初始識別結果字符串str與每個候選字符串stri的相似度si,相似度si=1-dmin/max(p,q),其中,p為所述初始識別結果字符串str的字符串長度,q為所述候選字符串集合中每個候選字符串stri的字符串長度,其中,不同字符串長度的候選字符串的q值不同;
結果糾正輸出模塊25,用于將最大的相似度smax所對應的候選字符串strj輸出為對所述初始識別結果字符串str的糾正結果。
可選地,所述距離計算模塊23包括:
第一獲取子模塊,用于獲取所述初始識別結果字符串str的字符串長度p;
第二獲取子模塊,用于獲取當前計算的候選字符串stri的字符串長度q;
第一計算子模塊,用于若p=0且q≠0,則所述初始識別結果字符串str與當前計算的候選字符串stri的最小編輯距離dmin=q;
第二計算子模塊,用于若q=0且p≠0,則所述初始識別結果字符串str與當前計算的候選字符串stri的最小編輯距離dmin=p;
矩陣構造子模塊,用于若p≠0且q≠0,則構造矩陣d[p+1][q+1],其中,所述矩陣d[p+1][q+1]的第0行從左至右的元素的賦值以及第0列從上至下的元素的賦值均從0開始依次遞增,每次加1,使得元素d[0][q]=q,元素d[p][0]=p;
比較賦值子模塊,用于掃描所述初始識別結果字符串str中的每個字符str[j]和當前計算的候選字符串stri中的每個字符stri[i]分別進行比較,若stri[i]=str[j],則參數temp=0,否則temp=1,同時,針對矩陣d[p+1][q+1]中的元素d[i][j]進行如下賦值:
d[i][j]=﹛(d[i-1][j])+1,(d[i][j-1])+1,(d[i-1][j-1]+temp)﹜min;
確定子模塊,用于將矩陣d[p+1][q+1]中的元素d[p+1][q+1]的賦值確定為所述初始識別結果的字符串str與當前計算的候選字符串stri的最小編輯距離dmin。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本發明實施例的實施例可提供為方法、裝置、或計算機程序產品。因此,本發明實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理終端設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理終端設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發明實施例的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發明所提供的一種ocr識別結果的糾正方法和一種ocr識別結果的糾正裝置,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。