CN116306594A - 一种医学ocr识别纠错方法 - Google Patents
一种医学ocr识别纠错方法 Download PDFInfo
- Publication number
- CN116306594A CN116306594A CN202310048317.1A CN202310048317A CN116306594A CN 116306594 A CN116306594 A CN 116306594A CN 202310048317 A CN202310048317 A CN 202310048317A CN 116306594 A CN116306594 A CN 116306594A
- Authority
- CN
- China
- Prior art keywords
- word
- medical
- text
- dictionary
- words
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000011218 segmentation Effects 0.000 claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000005516 engineering process Methods 0.000 claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 17
- 210000004072 lung Anatomy 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 13
- 102100032202 Cornulin Human genes 0.000 claims description 11
- 101000920981 Homo sapiens Cornulin Proteins 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000003058 natural language processing Methods 0.000 claims description 5
- 230000002685 pulmonary effect Effects 0.000 claims description 4
- 238000002271 resection Methods 0.000 claims description 4
- 238000010972 statistical evaluation Methods 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 230000009897 systematic effect Effects 0.000 claims 1
- 238000012015 optical character recognition Methods 0.000 description 61
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000007418 data mining Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 239000003814 drug Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000010186 staining Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
- G06V30/1801—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
- G06V30/18019—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
- G06V30/18038—Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters
- G06V30/18048—Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters with interaction between the responses of different filters, e.g. cortical complex cells
- G06V30/18057—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/26—Techniques for post-processing, e.g. correcting the recognition result
- G06V30/262—Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
- G06V30/274—Syntactic or semantic context, e.g. balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Character Discrimination (AREA)
Abstract
本发明提供的一种医学OCR识别纠错方法,根据医疗场景,利用医学生僻字合成的数据集结合现有通用语料微调现有OCR模型,使得OCR识别算法更适用于医学文本的识别;通过OCR识别文本图像的PDF版本,根据识别结果与真实文本做对比,构建出用于纠错的替换字符集,共包含混淆字典和形似字典两部分;通过中文分词技术,对未出现在现有词频表中的词语判断为疑似错词,若混淆字典中存在疑似错词将直接完成错词替换,若混淆字典中不存在疑似错词,便经过形似字典,给出疑似错词的候选纠错项作为后续语言模型的输入,让模型做出符合语义逻辑的判断。本发明中的方法可以与OCR识别相融合,将OCR识别结果中不符合语义的错误,进行纠正,最终给出正确的输出,大大提高了OCR识别的准确率。
Description
技术领域
本发明涉及医疗信息技术领域,具体涉及一种医学OCR识别纠错系统和方法。
背景技术
在医疗场景中,面对纸质、扫描版的医学病历和检验报告,如何能够轻松高效地将这些内容电子化存储是困扰临床医生的难题。随着人工智能技术在医疗行业的应用,OCR识别技术广泛应用在临床医疗领域。该技术通过拍照、扫描等方式获取纸质文档内容,再利用OCR识别算法得到计算机可存储的电子化数据,用于医院信息化建设和临床科学研究。
文本纠错是指对文本中出现的错字、错词进行纠正的过程,可作为后处理模块与文本识别完美衔接。通过文本纠错算法自动地将OCR识别结果中疑似错词修正为符合逻辑的内容,以减轻纸质文档电子化过程中人工参与的工作量,对自然语言理解有着重要意义。
OCR识别技术在医疗场景的应用,为纸质医学文档的电子化提供了新的解决方案。但是,OCR系统的运行效果严重依赖于识别图像的质量,一旦图像出现光照不均、模糊等情况,OCR识别效果将大打折扣;此外,临床数据中存在的极少见的医学生僻字也会对OCR识别带来干扰。为应对OCR识别出错的问题以及保证医疗领域本身的专业、严谨性,文本纠错技术应运而生。
国外相关研究已经将文本纠错应用在OCR识别中,并已经研发出基于BERT模型的文本纠错算法[Thi Tuyet Hai Nguyen etal.Neural Machine Translation with BERTfor Post-OCR Error Detection and Correction,JCDL 2020]。
国内在文本纠错方面也已有研究,证明了该技术方法对自然语言处理的重要意义,极大了减轻了人工校对的工作量。如基于语言模型文本纠错方法[陈乐清.基于语言模型的文本纠错方法、装置、终端设备及介质:中国平安人寿保险股份有限公司,CN113268977A,2021.08.17],使用专有名词库生成候选名词再进行文本比对的算法[张寅.一种基于中文字符级特征和语言模型的OCR纠错方法:浙江大学,CN113408535A,2021.09.17],通过中文字符本身的字形特征、读音特征的纠错算法[张睿卿.文本纠错的方法、装置及电子设备:北京百度网讯科技有限公司,CN113553833A,2021.10.26],[郑颖.一种基于校验规则的OCR识别结果纠错方法、设备:福州符号信息科技有限公司,CN113128504A,2021.07.16],结合语言模型和中文字符级特征的纠错方法[6],均可作为OCR后处理纠错模块服务于自然语言处理任务。
综上可知,国外现有的文本纠错方法,仅适用于英文为主体的文本,并不适应于中文语言场景。国内现有的方法通常关注的是通用自然文本的纠错,对医学等专业领域的支持较差,且在纠错时未充分结合混淆字典、易错字形似字典、语言模型三者的优势。
发明内容
为了应对图像质量和医学生僻字可能导致OCR识别出错的问题,本发明提出一种OCR识别纠错方法。通过中文分词技术判断出疑似识别错误的词语,通过构建大量医学易错生僻字混淆词典、形似字词典,对疑似错词生成纠正词候选项,后使用语言模型判断出候选项中的最佳值,完成文本纠错。由于医疗领域本身的专业性以及严谨性,医学OCR纠错方法是文本识别在医学领域的能否高效应用的重要保障,消除了费时费力的人工矫正成本。
本发明公开一种医学OCR识别纠错方法,具体包括以下步骤:
第一步、利用paddle OCR文本识别框架提供的服务器端预训练模型对含有中英文文字的医学图像进行识别,其中识别过程包含三个模块:文本检测、文本方向矫正、文本识别;针对第三个模块采用CRNN识别算法,利用Text Recognition Data Generator工具合成医学生僻字数据集结合现有通用语料,对CRNN算法进行改进,使得paddle OCR更适用于医学场景,完成对输入图像的文本识别。根据相关医学指南文献、临床医学电子病历、临床医学检查报告等电子文本内容,通过中文分词技术分词得到词频表,用于后续的文本错误词语检测,同时设置医学领域的混淆字典和易错字形似字典;
第二步、对初步识别结果进行文本切分,以标点符号为分隔符得到短文本集合,其中标点符号不包含单双引号、各类型括号,切分方式使用正则表达式:"([\u4E00-\u9Fa5a-zA-Z0-9+#&]+)";遍历短文本集合,使用分词工具将分词结果中未出现在词频表的列为未登录词,即疑似错词;
第三步、预设一用于纠错的替换字符集,包含形似字词典、混淆词典。将现有的医学电子文本转换为PDF格式,再通过中文OCR得到识别后的结果,与初始电子文本做比对,得到识别错误的词语与真实值,扩充替换字符集;
在构建医学领域的形似字词典和混淆词典时,针对医学使用频率最高的2000个汉字,进行单个汉字识别,统计每个汉字识别结果置信度高前五的汉字作为汉字相似度衡量的指标,Con(b/a)和Con(a/b)分别为汉字a和b出现在彼此的形近字候选值中的置信度,这里取平均值作为其训练过程中的汉字相似性计算公式:
Relevance1(a,b)=(Con(b/a)+Con(a/b))/2 (公式一)
此外,为了提高计算的准确性,从形似字词典和混淆词典中调取汉字a,b对应的特征向量a={a1,a2,a3…,ak}和b={a1,a2,a3…,ak},定义Dif i=ai-bi,i∈[1,k],汉字a,b对应的差值特征向量Dif={dif1,dif2,dif3…,difk},汉字a,b之间基于特征向量的字形相似度Relevance2(a,b)=(k-∑M I=1|Dif i|)/k, i∈[1,k] (公式二)
进一步的,计算基于笔画顺序的字形相似度,其中lengtha,lengthb分别为a和b的笔画顺序字符串的长度,c为a,b的笔画顺序字符串中匹配的字符数,m为匹配字符串中位置发生改变数目,若匹配的字符集在字符串中顺序一致,则m为0,否则为发生改变的位置的数目的一半,当c=0时,Relevance3=0,当c>0时,Relevance3(a,b =1/3(c/lengtha+c/lengthb+(c-m)c) (公式三)
基于公式一,公式二和公式三,得到医学领域汉字相似度的最终公式为:
Sim(a,b)=(Relevance1(a,b)+Relevance2(a,b)+Relevance3(a,b))/3(公式四)
第四步、统计学中常用的统计估算编程模型,起初被用于大词汇量连续语音识别,如今已被广泛应用于自然语言处理中的词法分析、句法分析、句法分析、连续拼音输入等各个方面;统计估算编程模型的基本原理是,自然语言被视为一个随机过程,每一个包含于其中的语言单元,如字、词、句、段落和篇章都被视为满足一定概率分布的随机变量,在面对众多候选词时,根据候选词在句子(文章的上下文语境)的合理程度择优选择,完成纠错;
假设文本T=(t1,t2,t3,…ti,…,tk),其中t1,t2,t3,…ti,…,tk是文本中所有候选词组成的序列。对于候选词ti序列t1,t2,t3,…ti,…,tk构成完整的上下文语境,ti的出现概率是由序列中所有词的出现概率决定,通过文章的上下文语境提供了对候选词ti的严格约束,也存在一定的问题:(1)参数过多,空间维度过大,导致计算量太大;(2)数量较大的上下文语境的约束,对于提供上下文的语料库要求也高;(3)数据的离散情况较为严重;
为解决上述问题,在计算中通常引入马尔科夫假设:任意一个词出现的概率只有它前面N个词有关;假设句子S是由序列t1,t2,t3,…ti,…,tk组成,候选词tk在真实语言环境下出现在句子S中的概率P(tk)可由下面的公式表示:
P(tk)=P(S)=P(t1,t2,t3,…ti,…,tk)=P(t1)*P(t2|t1)*...*P(tk|t1…tk-1)
=∏kP(tk|t1…tk-1) (公式五)
其中,P(S)为句子S出现在语料库中的概率,P(tk|t1…tk-1)表示在上下文条件t1,t2,t3,…ti,…,tk中,候选词tk出现的概率。即,候选词tk是否出现,取决于它前面k-1个词出现的概率;
使用大量临床医学电子文本训练以字粒度方式训练语言模型;采用困惑度指标衡量候选词句子中的合理程度,计算公式如下:
PP(T)=P(t1,t2,t3,…ti,…,tk)-1/k (公式六)
其中PP(T)表示困惑度指标,k为样本数量。
第三步生成的形似字候选纠错项集合送入统计估算编程模型,按公式(六)计算各自困惑度,得到得分最低的候选项替换原始文本;
第五步、各个短文本的纠错结果进行合并,长度与初始识别结果文本保持一致,初始识别结果经过长文本切分得到切分位置的坐标,按照各个坐标值对短文本进行拼接恢复至原始长度;
第六步,根据医疗场景,利用医学生僻字合成的数据集结合现有通用语料微调现有OCR模型,使得OCR识别算法更适用于医学文本的识别;通过OCR识别文本图像的PDF版本,根据识别结果与真实文本做对比,构建出用于纠错的替换字符集,共包含混淆字典和形似字典两部分;通过中文分词技术,对未出现在现有词频表中的词语判断为疑似错词,若混淆字典中存在疑似错词将直接完成错词替换,若混淆字典中不存在疑似错词,便经过形似字典,给出疑似错词的候选纠错项作为后续语言模型的输入,让模型做出符合语义逻辑的判断。
本发明公开的医学OCR识别纠错方法,进一步包括以下步骤:OCR识别结果“右肺沾位”经系统工具分词后得到分词集合【右肺,沾位】,但是“沾位”未出现在现有词频表中,便将其作为疑似错词。
本发明公开的医学OCR识别纠错方法,进一步包括以下步骤:正确图像文本为“患者于院内行胸腔镜下肺楔形切除术”,被OCR错误识别为“患者于院内行胸控镜下肺樊形切除术”,“胸腔”被错误识别为“胸控”,“楔形”被错误识别为“樊形”,这时将{“胸控”:“胸腔”,“樊形”:“楔形”}以字典的格式添加到混淆词典集中,此外将形似错字“控”和“樊”添加到现有形似字典,形成{“腔”:[控,崆,倥],“楔”:[樊,契,揳]},以后OCR识别结果中一旦出现“胸控”二字,便自动查找混淆字典将其替换为“胸腔”,同样地OCR识别结果中“樊形”也会被自动替换为“楔形”,完成对部分疑似错词的直接纠错,若OCR识别结果中出现“胸崆”且该词未出现在词频表和混淆字典中,将自动查找形似字典,生成形似字候选纠错项集合【胸腔、胸控、胸崆、胸倥】送入后续的语言模型。
本发明公开的医学OCR识别纠错方法,进一步包括以下步骤:OCR识别结果中“患者诊断为右肺沾位”,经S2错词检测得到未登录词“沾位”作为疑似错词,先查询混淆字典未发现“沾位”一词对应的正确值,便再经过形似字典查询“沾位”的形似字候选集【占位、站位、战位】,形似字候选集分别替换原文“沾位”的位置,经语言模型后得到困惑度分数,发现“患者诊断为右肺占位”的困惑度最低,说明该句更符合基于大量临床医学语料学到的语言规律,因此将疑似错词“沾位”修改为“占位”,完成纠错。
一种医学OCR识别纠错系统,其可执行如权利要求1-4之一所述的医学OCR识别纠错方法。
本发明中的方法专注垂直医学领域,通过中文分词技术判断出不在已有词频表的词语,列为疑似错词,通过医学混淆字典、形似字典生成疑似错词的候选纠错项,后将候选纠错项返回原始文本后通过语言模型判断得出上下文困惑度,得出最佳候选纠错词。
本发明中的方法可以与OCR识别相融合,将OCR识别结果中不符合语义的错误,进行纠正,最终给出模型的输出。
附图说明
图1是本发明的OCR识别流程图;
图2是CRNN网络结构图;
具体实施方式
下文将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显而易见的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获取的所有其他实施例,都属于本发明保护的范围。
根据合成的医学文字识别数据集结合现有通用语料微调现有OCR算法,完成模型迁移,使之更适应于医疗场景。根据相关医学电子文本内容,通过中文分词技术得到词频表,用于错词检测。
利用中文OCR算法识别输入医学文本图像得到初步识别结果,通过长文本切分,得到若干短文本。针对每个短文本,通过特定系统工具库进行中文分词,若分词结果不存在于词频表便认为该未登录词是疑似错词。
预设词频表和一用于纠错的替换字符集,其中替换字符集合包含形似字词典、混淆词典。第2步得到的疑似错词与替换字符集做交互,判断是否可以通过混淆字典直接替换或者通过形似字词典生成多个候选纠错项。
使用现有临床医学电子文本训练以字粒度训练医学术语语言模型,训练后得到具有能够针对医学场景的纠错模型,用于判断第4步多个候选纠错项的困惑度得分,确认最佳候选项,完成纠错。
将各个纠错后的短文本进行合并,得到最终输出结果。
医学OCR识别纠错方法在通过OCR算法识别图像中的文本得到初步识别结果,对初步识别结果进行长文本切分,通过中文分词技术检测出未在词频表出现的未登录词;随后通过已经构建的混淆字典完成一部分疑似错词的直接替换;通过形似字典对剩余疑似错词进行候选词的生成,再根据语言模型判断候选词在句子的困惑度得分,选择最佳候选词后完成纠错。
本方法的构建过程包括以下几个阶段:
利用paddle OCR文本识别框架提供的服务器端预训练模型对含有中英文文字的医学图像进行识别,识别过程包含三个模块:文本检测、文本方向矫正、文本识别。针对第三个模块采用的识别算法CRNN,利用Text Recognition Data Generator工具合成医学生僻字数据集结合现有通用语料,对CRNN算法进行改进,使得paddleOCR更适用于医学场景,完成对输入图像的文本识别。根据相关医学指南文献、临床医学电子病历、临床医学检查报告等电子文本内容,通过中文分词技术分词得到词频表,用于后续的文本错误词语检测。同时设置医学领域的混淆字典和易错字形似字典。
CRNN算法借鉴了语音识别中的解决不定长语音序列的思路,把字符识别问题看作时序依赖的词汇或者短语识别问题。CRNN把卷积神经网络在图像特征提取方面的应用和循环神经网络在序列化识别上的应用有机的结合在一起,既能够提取鲁棒的特征,又通过序列识别避免了传统算法中的单字符切割与识别,序列化识别是依赖于时序的,识别结果利用了上下文的特征信息。
CRNN的网络结构如图2所示,整个网络分为三部分,第一部分通过卷积神经网络从输入的图像中提取出特征,以序列的形式输出;第二部分将特征序列输入到循环神经网络,输出这个特征序列的标签分布。第三部分使用CTC损失函数,将循环神经网络获取的标签特征分布通过一系列的计算操作转换为真实的预测值。
基于医学生僻字数据集结合现有通用语料,对CRNN算法进行改进,首先,在特征提取阶段,额外增加了形近字汉字的训练输入,先使用医学领域容易混淆的字词和易错字,进行形近和易错汉字的特征提取,接着使用通用的汉字数据集进行训练,形成医学领域独有的混淆字典和易错字形似字典。接着将特征序列输入到循环神经网络,输出这个特征序列的标签分布。然后使用CTC损失函数,将循环神经网络获取的标签特征分布通过一系列的计算操作转换为真实的预测值。最后,增加一个识别结果检测阶段,利用句子的语义信息进行困惑度判断,使用候选形近字对可疑字替换重新计算句子的困惑度,选取困惑度最小的一组作为最终结果,大大提高了OCR识别的准确度。
具体步骤如下:
1.对初步识别结果进行文本切分,以标点符号为分隔符得到短文本集合,其中标点符号不包含单双引号、各类型括号,切分方式使用正则表达式:
"([\u4E00-\u9Fa5a-zA-Z0-9+#&]+)"。遍历短文本集合,使用词库将分词结果中未出现在词频表的列为未登录词,即疑似错词。例如OCR识别结果“右肺沾位”经系统工具分词后得到分词集合【右肺,沾位】,但是“沾位”未出现在现有词频表中,便将其作为疑似错词。
2.构建一用于纠错的替换字符集,包含形似字词典、混淆词典。
在构建医学领域的形似字词典和混淆词典时,针对医学使用频率最高的2000个汉字,进行单个汉字识别,统计每个汉字识别结果置信度高前五的汉字作为汉字相似度衡量的指标,Con(b/a)和Con(a/b)分别为汉字a和b出现在彼此的形近字候选值中的置信度,这里取平均值作为其训练过程中的汉字相似性计算公式:
Relevance1(a,b)=(Con(b/a)+Con(a/b))/2 (公式一)
此外,为了提高计算的准确性,从形似字词典和混淆词典中调取汉字a,b对应的特征向量a={a1,a2,a3…,ak}和b={a1,a2,a3…,ak},定义Dif i=ai-bi,i∈[1,k],汉字a,b对应的差值特征向量Dif={dif1,dif2,dif3…,difk},汉字a,b之间基于特征向量的字形相似度Relevance2(a,b)=(k-∑M I=1|Dif i|)/k, i∈[1,k] (公式二)
进一步的,计算基于笔画顺序的字形相似度,其中lengtha,lengthb分别为a和b的笔画顺序字符串的长度,c为a,b的笔画顺序字符串中匹配的字符数,m为匹配字符串中位置发生改变数目,若匹配的字符集在字符串中顺序一致,则m为0,否则为发生改变的位置的数目的一半,当c=0时,Relevance3=0,当c>0时,Relevance3(a,b =1/3(c/lengtha+c/lengthb+(c-m)c) (公式三)
基于公式一,公式二和公式三,得到医学领域汉字相似度的最终公式为:
Sim(a,b)=(Relevance1(a,b)+Relevance2(a,b)+Relevance3(a,b))/3(公式四)
将现有的医学电子文本转换为PDF格式,再通过中文OCR得到识别后的结果,与初始电子文本做比对,得到识别错误的词语与真实值,扩充替换字符集。例如,正确图像文本为“患者于院内行胸腔镜下肺楔形切除术”,被OCR错误识别为“患者于院内行胸控镜下肺樊形切除术”。可见“胸腔”被错误识别为“胸控”,“楔形”被错误识别为“樊形”。这时将{“胸控”:“胸腔”,“樊形”:“楔形”}以字典的格式添加到混淆词典集中,此外将形似错字“控”和“樊”添加到现有形似字典,形成{“腔”:[控,崆,倥],“楔”:[樊,契,揳]}。以后OCR识别结果中一旦出现“胸控”二字,便自动查找混淆字典将其替换为“胸腔”,同样地OCR识别结果中“樊形”也会被自动替换为“楔形”,完成对部分疑似错词的直接纠错。若OCR识别结果中出现“胸崆”且该词未出现在词频表和混淆字典中,将自动查找形似字典,生成形似字候选纠错项集合【胸腔、胸控、胸崆、胸倥】送入后续的语言模型。
3.统计学中常用的统计估算编程模型,起初被用于大词汇量连续语音识别,如今已被广泛应用于自然语言处理中的词法分析、句法分析、句法分析、连续拼音输入等各个方面。统计估算编程模型的基本原理是,自然语言被视为一个随机过程,每一个包含于其中的语言单元,如字、词、句、段落和篇章都被视为满足一定概率分布的随机变量,在面对众多候选词时,根据候选词在句子(文章的上下文语境)的合理程度择优选择,完成纠错。
假设文本T=(t1,t2,t3,…ti,…,tk),其中t1,t2,t3,…ti,…,tk是文本中所有候选词组成的序列。对于候选词ti序列t1,t2,t3,…ti,…,tk构成完整的上下文语境,ti的出现概率是由序列中所有词的出现概率决定,通过文章的上下文语境提供了对候选词ti的严格约束,也存在一定的问题:(1)参数过多,空间维度过大,导致计算量太大;(2)数量较大的上下文语境的约束,对于提供上下文的语料库要求也高;(3)数据的离散情况较为严重。
为解决上述问题,在计算中通常引入马尔科夫假设:任意一个词出现的概率只有它前面N个词有关。假设句子S是由序列t1,t2,t3,…ti,…,tk组成,候选词tk在真实语言环境下出现在句子S中的概率P(tk)可由下面的公式表示:
P(tk)=P(S)=P(t1,t2,t3,…ti,…,tk)=P(t1)*P(t2|t1)*...*P(tk|t1…tk-1)
=∏kP(tk|t1…tk-1) (1)
其中,P(S)为句子S出现在语料库中的概率,P(tk|t1…tk-1)表示在上下文条件t1,t2,t3,…ti,…,tk中,候选词tk出现的概率。即,候选词tk是否出现,取决于它前面k-1个词出现的概率。
在本实施例中,使用大量临床医学电子文本训练以字粒度方式训练语言模型。采用困惑度指标衡量候选词句子中的合理程度,计算公式如下:
PP(T)=P(t1,t2,t3,…ti,…,tk)-1/k (2)
其中PP(T)表示困惑度指标,k为样本数量。
4.生成的形似字候选纠错项集合送入统计估算编程模型,按公式(2)计算各自困惑度,得到得分最低的候选项替换原始文本。例如OCR识别结果中“患者诊断为右肺沾位”,经S2错词检测得到未登录词“沾位”作为疑似错词,先查询混淆字典未发现“沾位”一词对应的正确值,便再经过形似字典查询“沾位”的形似字候选集【占位、站位、战位】。形似字候选集分别替换原文“沾位”的位置,经语言模型后得到困惑度分数,发现“患者诊断为右肺占位”的困惑度最低,说明该句更符合基于大量临床医学语料学到的语言规律,因此将疑似错词“沾位”修改为“占位”,完成纠错。
5、各个短文本的纠错结果进行合并,长度与初始识别结果文本保持一致。初始识别结果经过长文本切分得到切分位置的坐标,按照各个坐标值对短文本进行拼接恢复至原始长度。
根据医疗场景,利用医学生僻字合成的数据集结合现有通用语料微调现有OCR模型,使得OCR识别算法更适用于医学文本的识别。
通过OCR识别文本图像的PDF版本,根据识别结果与真实文本做对比,构建出用于纠错的替换字符集,共包含混淆字典和形似字典两部分。
通过中文分词技术,对未出现在现有词频表中的词语判断为疑似错词,若混淆字典中存在疑似错词将直接完成错词替换,若混淆字典中不存在疑似错词,便经过形似字典,给出疑似错词的候选纠错项作为后续语言模型的输入,让模型做出符合语义逻辑的判断。
根据统计学规律,使用大量临床医学语料构建N-GRAM语言模型,使得具有判断语句是否符合医学语义的能力,在面对不同候选项的替换词时,计算不同替换词在原始文本中的困惑度得分,择优选择最佳项,自动完成文本替换。
与国外相关技术比较,本发明中方法主要考虑的是国内的汉语言规律;与国内现有的方法比较,国内现有方法对医学等专业领域的支持较差,且在纠错时未充分结合混淆字典、易错字形似字典、语言模型三者的优势。
本发明中的方法专注垂直医学领域,通过中文分词技术判断出不在已有词频表的词语,列为疑似错词。
通过混淆字典、形式字典与语言模型两路保证纠错的合理性,若疑似错词已然存在混淆字典中,将进行直接文本替换完成接错;若疑似错词未存在于混淆字典中,将通过形似字典生成候选纠错集合,后使用基于大量医学语料训练得到语言模型判断纠错集合中最佳候选项,完成纠错。
根据上述的OCR识别纠错方法,本领域普通技术人员容易想到,使用一种医学OCR识别纠错系统,来执行上述医学OCR识别纠错方法。
显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其它实施例,都属于本发明保护的范围。
本领域内的技术人员应当理解,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据挖掘设备的处理器以产生一个机器,使得通过计算机或其他可编程数据挖掘设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据挖掘设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据挖掘设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。
Claims (5)
1.一种医学OCR识别纠错方法,具体包括以下步骤:
第一步、利用paddle OCR文本识别框架提供的服务器端预训练模型对含有中英文文字的医学图像进行识别,其中识别过程包含三个模块:文本检测、文本方向矫正、文本识别;针对第三个模块采用CRNN识别算法,利用Text Recognition Data Generator工具合成医学生僻字数据集结合现有通用语料,对CRNN算法进行改进,使得paddle OCR更适用于医学场景,完成对输入图像的文本识别;
根据相关医学指南文献、临床医学电子病历、临床医学检查报告等电子文本内容,通过中文分词技术分词得到词频表,用于后续的文本错误词语检测,同时设置医学领域的混淆字典和易错字形似字典;
第二步、对初步识别结果进行文本切分,以标点符号为分隔符得到短文本集合,其中标点符号不包含单双引号、各类型括号;遍历短文本集合,使用分词工具将分词结果中未出现在词频表的列为未登录词,即疑似错词;
第三步、预设一用于纠错的替换字符集,包含形似字词典、混淆词典;将现有的医学电子文本转换为PDF格式,再通过中文OCR得到识别后的结果,与初始电子文本做比对,得到识别错误的词语与真实值,扩充替换字符集;
在构建医学领域的形似字词典和混淆词典时,针对医学使用频率最高的 2000 个汉字,进行单个汉字识别,统计每个汉字识别结果置信度高前五的汉字作为汉字相似度衡量的指标,Con(b/a)和Con(a/b)分别为汉字 a 和 b出现在彼此的形近字候选值中的置信度,这里取平均值作为其训练过程中的汉字相似性计算公式:
Relevance1(a,b)=(Con(b/a)+Con(a/b))/2 (公式一)
此外,为了提高计算的准确性,从形似字词典和混淆词典中调取汉字a,b对应的特征向量a={a1,a2,a3…,ak}和b={a1,a2,a3…,ak},定义Dif i=ai-bi,i∈[1,k],汉字a,b对应的差值特征向量Dif={dif1,dif2,dif3…,difk},汉字a,b之间基于特征向量的字形相似度
Relevance2(a,b)=(k-∑M I=1|Dif i|)/k, i∈[1,k] (公式二)
进一步的,计算基于笔画顺序的字形相似度,其中lengtha,lengthb分别为a和b的笔画顺序字符串的长度,c为a,b的笔画顺序字符串中匹配的字符数,m为匹配字符串中位置发生改变数目,若匹配的字符集在字符串中顺序一致,则m为0,否则为发生改变的位置的数目的一半,当c=0时,Relevance3=0,当c>0时, Relevance3(a,b =1/3(c/lengtha+c/lengthb+(c-m)c) (公式三)
基于公式一,公式二和公式三,得到医学领域汉字相似度的最终公式为:
Sim(a,b)= (Relevance1(a,b)+ Relevance2(a,b)+ Relevance3(a,b))/3 (公式四)
第四步、统计学中常用的统计估算编程模型,起初被用于大词汇量连续语音识别,如今已被广泛应用于自然语言处理中的词法分析、句法分析、句法分析、连续拼音输入等各个方面;统计估算编程模型的基本原理是,自然语言被视为一个随机过程,每一个包含于其中的语言单元,如字、词、句、段落和篇章都被视为满足一定概率分布的随机变量,在面对众多候选词时,根据候选词在句子(文章的上下文语境)的合理程度择优选择,完成纠错;
假设文本T=(t1,t2,t3,…ti,…,tk),其中t1,t2,t3,…ti,…,tk是文本中所有候选词组成的序列;
对于候选词ti序列t1,t2,t3,…ti,…,tk构成完整的上下文语境,ti的出现概率是由序列中所有词的出现概率决定,通过文章的上下文语境提供了对候选词ti的严格约束,也存在一定的问题:(1)参数过多,空间维度过大,导致计算量太大;(2)数量较大的上下文语境的约束,对于提供上下文的语料库要求也高;(3)数据的离散情况较为严重;
为解决上述问题,在计算中通常引入马尔科夫假设:任意一个词出现的概率只有它前面N个词有关;假设句子S是由序列t1,t2,t3,…ti,…,tk组成,候选词tk在真实语言环境下出现在句子S中的概率P(tk)可由下面的公式表示:
P(tk)=P(S)=P(t1,t2,t3,…ti,…,tk)=P(t1)* P(t2|t1) *... * P(tk|t1…tk-1)
=∏kP(tk|t1…tk-1) (公式五)
其中,P(S)为句子S出现在语料库中的概率, P(tk|t1…tk-1)表示在上下文条件 t1,t2,t3,…ti,…,tk中,候选词tk出现的概率;
即,候选词tk是否出现,取决于它前面k-1个词出现的概率;
使用大量临床医学电子文本训练以字粒度方式训练语言模型;采用困惑度指标衡量候选词句子中的合理程度,计算公式如下:
PP(T)=P(t1,t2,t3,…ti,…,tk)-1/k(公式六)
其中PP(T)表示困惑度指标,k为样本数量;
第三步生成的形似字候选纠错项集合送入统计估算编程模型,按公式(六)计算各自困惑度,得到得分最低的候选项替换原始文本;
第五步、各个短文本的纠错结果进行合并,长度与初始识别结果文本保持一致,初始识别结果经过长文本切分得到切分位置的坐标,按照各个坐标值对短文本进行拼接恢复至原始长度;
第六步,根据医疗场景,利用医学生僻字合成的数据集结合现有通用语料微调现有OCR模型,使得OCR识别算法更适用于医学文本的识别;通过OCR识别文本图像的PDF版本,根据识别结果与真实文本做对比,构建出用于纠错的替换字符集,共包含混淆字典和形似字典两部分;通过中文分词技术,对未出现在现有词频表中的词语判断为疑似错词,若混淆字典中存在疑似错词将直接完成错词替换,若混淆字典中不存在疑似错词,便经过形似字典,给出疑似错词的候选纠错项作为后续语言模型的输入,让模型做出符合语义逻辑的判断。
2.如权利要求1所属的医学OCR识别纠错方法,其特征在于, OCR识别结果“右肺沾位”经系统工具分词后得到分词集合【右肺,沾位】,但是“沾位”未出现在现有词频表中,便将其作为疑似错词。
3.如权利要求1所属的医学OCR识别纠错方法,其特征在于,正确图像文本为“患者于院内行胸腔镜下肺楔形切除术”,被OCR错误识别为“患者于院内行胸控镜下肺樊形切除术”,“胸腔”被错误识别为“胸控”,“楔形”被错误识别为“樊形”,这时将{“胸控”:“胸腔”,“樊形”:“楔形”}以字典的格式添加到混淆词典集中,此外将形似错字“控”和“樊”添加到现有形似字典,形成{“腔”:[控,崆,倥],“楔”:[樊,契,揳]},以后OCR识别结果中一旦出现“胸控”二字,便自动查找混淆字典将其替换为“胸腔”,同样地OCR识别结果中“樊形”也会被自动替换为“楔形”,完成对部分疑似错词的直接纠错,若OCR识别结果中出现“胸崆”且该词未出现在词频表和混淆字典中,将自动查找形似字典,生成形似字候选纠错项集合【胸腔、胸控、胸崆、胸倥】送入后续的语言模型。
4.如权利要求1所属的医学OCR识别纠错方法,其特征在于,OCR识别结果中“患者诊断为右肺沾位”,经S2错词检测得到未登录词“沾位”作为疑似错词,先查询混淆字典未发现“沾位”一词对应的正确值,便再经过形似字典查询“沾位”的形似字候选集【占位、站位、战位】,形似字候选集分别替换原文“沾位”的位置,经语言模型后得到困惑度分数,发现“患者诊断为右肺占位”的困惑度最低,说明该句更符合基于大量临床医学语料学到的语言规律,因此将疑似错词“沾位”修改为“占位”,完成纠错。
5.一种医学OCR识别纠错系统,其可执行如权利要求1-4之一所述的医学OCR识别纠错方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310048317.1A CN116306594A (zh) | 2023-01-31 | 2023-01-31 | 一种医学ocr识别纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310048317.1A CN116306594A (zh) | 2023-01-31 | 2023-01-31 | 一种医学ocr识别纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306594A true CN116306594A (zh) | 2023-06-23 |
Family
ID=86831346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310048317.1A Pending CN116306594A (zh) | 2023-01-31 | 2023-01-31 | 一种医学ocr识别纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306594A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117371445A (zh) * | 2023-12-07 | 2024-01-09 | 深圳市慧动创想科技有限公司 | 一种信息纠错方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111626048A (zh) * | 2020-05-22 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 文本纠错方法、装置、设备及存储介质 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
CN114387602A (zh) * | 2022-03-24 | 2022-04-22 | 北京智源人工智能研究院 | 医疗ocr数据优化模型训练方法、优化方法及设备 |
-
2023
- 2023-01-31 CN CN202310048317.1A patent/CN116306594A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111626048A (zh) * | 2020-05-22 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 文本纠错方法、装置、设备及存储介质 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
WO2021189803A1 (zh) * | 2020-09-03 | 2021-09-30 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
CN114387602A (zh) * | 2022-03-24 | 2022-04-22 | 北京智源人工智能研究院 | 医疗ocr数据优化模型训练方法、优化方法及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117371445A (zh) * | 2023-12-07 | 2024-01-09 | 深圳市慧动创想科技有限公司 | 一种信息纠错方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489760B (zh) | 基于深度神经网络文本自动校对方法及装置 | |
US8239188B2 (en) | Example based translation apparatus, translation method, and translation program | |
US10303761B2 (en) | Method, non-transitory computer-readable recording medium storing a program, apparatus, and system for creating similar sentence from original sentences to be translated | |
CN110427618B (zh) | 对抗样本生成方法、介质、装置和计算设备 | |
JP2006012168A (ja) | 翻訳メモリシステムにおいてカバレージおよび質を改良する方法 | |
CN105068997B (zh) | 平行语料的构建方法及装置 | |
CN111274827B (zh) | 一种基于词袋多目标学习的后缀翻译方法 | |
Zafarian et al. | Semi-supervised learning for named entity recognition using weakly labeled training data | |
JP2018055670A (ja) | 類似文生成方法、類似文生成プログラム、類似文生成装置及び類似文生成システム | |
KR20230009564A (ko) | 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치 | |
CN112447172B (zh) | 一种语音识别文本的质量提升方法和装置 | |
CN113408307B (zh) | 一种基于翻译模板的神经机器翻译方法 | |
CN116306594A (zh) | 一种医学ocr识别纠错方法 | |
Roy et al. | Unsupervised context-sensitive bangla spelling correction with character n-gram | |
JP3765801B2 (ja) | 対訳表現抽出装置、対訳表現抽出方法、および対訳表現抽出プログラム | |
Yang et al. | Spell Checking for Chinese. | |
Li et al. | Chinese spelling check based on neural machine translation | |
JP3309174B2 (ja) | 文字認識方法及び装置 | |
CN113128224A (zh) | 一种中文纠错方法、装置、设备以及可读存储介质 | |
CN116089569A (zh) | 样本构建方法、装置、电子设备及可读存储介质 | |
JP5298834B2 (ja) | 例文マッチング翻訳装置、およびプログラム、並びに翻訳装置を含んで構成された句翻訳装置 | |
Srigiri et al. | Spelling correction of OCR-generated hindi text using word embedding and levenshtein distance | |
CN115310433A (zh) | 一种针对中文文本校对的数据增强方法 | |
Laukaitis et al. | Sentence level alignment of digitized books parallel corpora | |
JP2006127405A (ja) | バイリンガルパラレルテキストをアライメントする方法及びそのためのコンピュータで実行可能なプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |