(计算机软件与理论专业论文)松下网络ocr后处理系统.pdf_第1页
(计算机软件与理论专业论文)松下网络ocr后处理系统.pdf_第2页
(计算机软件与理论专业论文)松下网络ocr后处理系统.pdf_第3页
(计算机软件与理论专业论文)松下网络ocr后处理系统.pdf_第4页
(计算机软件与理论专业论文)松下网络ocr后处理系统.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

松下网络o c r 后处理系统 摘要 本论文描述了一个专为松下网络o c r 引擎开发的o c r 后处理系 统。这个o c r 引擎使用的是比较新但还不成熟的技术,现在它的词 层识别正确率仅有5 0 。我们的o c r 后处理系统是用来提高o c r 引擎的识别正确率,提高o c r 引擎输出文本的质量。本o c r 后处理 系统需要从一个识别正确率很低的文本中发现识别错误,并从中获得 可以用来帮助改正这些错误的信息。本o c r 后处理系统的主要贡献 是通过语言学方法和知识库来提高o c r 识别正确率,这些方法和知 识库包括大的一个非常大的词条词典,字符转换混淆表,大规模加标 语料库和统计语言模型。实验结果表明术o c r 后处理系统可以在线 发现很多o c r 识别错误,可以使o c r 识别正确率总体提高超过1 1 。 关键词:o c r 后处理,统计语言模型,编辑距离,大规模加标语料 东北大学硕l j 论文 a b s t r a c t p a n a s o n i c n e t w o r k i n g o c r p o s t p r o c e s s i n gs y s t e m a b s t r a c t t h i sp a p e rd e s c r i b e san e w p o s t p r o c e s s i n ge n g i n ef o ra u t o m a t i c a l l y c o r r e c t i n g e r r o r sm a d e b y p a n a s o n i c n e t w o r k i n go p t i c a l c h a r a c t e r r e c o g n i t i o n ( o c r ) d e v i c e s t h i si s s t i l lay o u n gt e c h n o l o g y , a n dt o d a y , s t a t eo ft h ea r ts y s t e m s j u s tg i v e u sa b o u t5 0 c o r r e c t l yr e c o g n i z e dw o r d s s ot h e s y s t e m i s d e s i g n e d t o i m p r o v e t h e q u a l i t y o ft h ed o c u m e n t s p r o d u c e db y t h eo c rd e v i c e t h a tc a no b t a i ne r r o rd e t e c t i o n a n d c o 1 t e c t i o ni n f o r m a t i o nf r o mal o wa c c u r a c yo fn e t w o r k i n go c r d e v i c e s t h em a j o rc o n t r i b u t i o no ft h i sa p p r o a c hi st h eu s eo fl i n g u s t i cm e t h o d s a n d l m o w l e d g e b a s ef o ro c rp o s t - - p r o c e s s i n g w h i c h i m p r o v e s t h e a c c u r a c y c o r r e c t i o no fo c r e r r o r s ,t h r o u g ht h el a r g e v o c a b u l a r yb a s e , c o n f u s i o nm a t r i x ,c h u n kd i c t i o n a r y , m a t c h i n gp r o c e s s i n g ,v e r yl a r g e t a g g e dc o r p u sa n ds t a t i s t i c a ll a n g u a g em o d e la u t o m a t i c a l l y e x p e r i m e n t r e s u l t ss h o wt h a tt h es y s t e mc a nd e t e c tm a n y r e a le n g l i s hw o r de r r o r s ,i t i m p r o v e sm o r e t h a n11 o nt h ea c c u r a c y k e y w o r d s :o c rp o s t p r o c e s s i n g ,s t a t i s t i c a ll a n g u a g e m o d e l ,e d i t d i s t a n c e ,l a r g et a g g e dc o r p u s l i i 声明 本人声明所呈交的学位论文是在导师的指导下完成的。沦文中取 得的研究成果i 缘j j h 以标注和致谢的地方外,不包含其他人已经发表或 撰写过的研究成果,也不包括本人为获得其它学位而使用过的材料。 与我一同工作的同学和同事对本研究所做的任何贡献均已在论文中 作了明确的说明并表示谢意。 本人签名:壹确埘 e l期:。咿牛f 东北大学硕1 睦文 第一章前言 第一章:前言弟一早:月i j 苗 1 1o c r 及o c r 后处理概述 1 1 1o c r 概念 o c r 是o p t i c a l c h a r a c t e r r e c o g n i t i o n 的缩写,它是一种能将通过图象介质( 图 片,纸张等) 保存的文本转换成为计算机识别的电子文本格式的计算机软件。 1 1 ,2o c r 后处理概念 由于被识别图象本身的质量问题和o c r 技术本身的缺陷,o c r 引擎自动识 别出来的文本往往会带有些不可忽略的错误,这样就需要有一个专门的改错程 序来尽可能的改正o c r 引擎输出中的错误。这种专门的改错程序就是我们所完 成的o c r 后处理系统。 1 1 3o c r 后处理常用方法 人本身之所以能够阅读不同人的手写体文本就是归功于人在阅读时有很强 的阅读纠错能力,人在阅读时可以利用词汇信息,句法语义信息,语言习惯,浯 法约束等各种信息来对他们所阅读的文本来作出一个综合的判断。 我们把语言按照层次结构来进行分类 3 】,最底层是词层,在这一层上可以利 用的信息主要包含一些字符序列的前后约束关系。下一层是句子层,在这一层上 我们可以包括句法语义信息,句子中词和词类序列之闻的约束关系。更高的层次 呵能要用到更多的上下文信息,或者一些更加领域相关的知识。 东北大学碗_ _ l 论文 在词层和句子层上可以使用的典型方法和模型有词典词条匹配,n 元文法, 编辑距离计算技术,h m m 模型,以及其它一些字符,词类等的转换模型。 o c r 后处理系统的一个典型目标是保证o c r 后处理系统输出的纠正结果在 意义上符合o c r 所识别的语言,这种语言可能只是一个被预先定义为有效的词 的集合,也可能是一个没有任何约束的自然语言的句子。针对这个问题,相应的 处理方法有很多种,大致可以分为两类:确定性方法和非确定性方法。【7 确定性方法主要被使用在不太复杂的语言上,这是一种基于词条词她的方 法。它的丰要任务就是利用一个完整的词条词典,对o c r 引擎输出的一个原始 识别词t ,在词条词典中查找一个与该原始识别词t 最相似的词条c ,把c 作为 o c r 后处理系统对该词的纠正输出结果。 非确定性方法处理的对象不是一个一个的词,而是一个包含若干个词的词 串,例如句子。在这种方法中,一个o c r 识别出来的句子被整体分析后,我们 得到一个纠正的句子,使该纠正的句子中所有词和子串整体属于所处理语言的概 率最大。换句话说就是输出纠正的句子能更加满足所处理语言的语言模型本身。 实际上,这两类方法常常被合并使用,茸先使削确定性方法来对每一个o c r 的输出的原始识别词构造一个候选词集合,然后用非确定性方法来从候选词集合 中选取出最后的输出结果,从而可以得到更好的结果。 1 1 4 松下o c r 后处理系统简介 松下o c r 后处理系统是由东北大学计算机科学与技术学院设计和实现。此 后处理系统是p d m s ( 松下文档管理系统) 的一个组成部分,此系统是由松下信 息与网络技术实验室研发的。 木o c r 后处理系统开发过程中,我们主要完成了以下几个丰要工作: 第章前言 1 将“英国国家加标语料库b n c ”转换为“准美固国家j 日标语料库a n c ”。这 其中主要使用t ( ( b r i t i s h ,c a n a d i a na n d a m e r i c a n v o c a b u l a r y ) ) 作为单词对应表。 由丁二不存在一一对应关系,在英国英语和美国英语之间进行互换是一件很困 难的事情。我们使用了词法分析和词性匹配的方法来选取转换对,以提高转 换正确率。 2 通过i s p e l l ,w o r d n e t 和“准美国国家加标语料库a n c ”生成了一个容量超过 1 7 0 ,0 0 0 条的英语词条词典,这个词典主要用来做拼写检查。 3 一组最优候选词搜索算法。 4 设计并实现了六种单词匹配算法,包括基于编辑距离计算匹配算法,大写问 匹配算法,数字词匹配算法,单词切分错匹配算法,模式转换匹配算法,o c r 多维字符输出的词匹配算法。 5 一个数字字符串的识别与修改器。在真是文档中,各种符号都会出现,出现 大量的数字字符串是必然的,比如日期,时间,钱等等。而在许多前人的工 作中,数字字符串都没有做专门的处理,如k a z e mt a g h v a ( 1 9 9 4 ) 的 9 】中,数 字字符串就是直接被略过而不作任何更深层的处 罩。 6 一个字母大写词识别处理器。在许多现有的o c r 后处理系统中,这类词往律 被简单的当作被o c r 引擎“正确识别”而不作更多处理。针对p a n a s o n i co c r 引擎的特点,我们对这类词还是做了处理。 7 一个基于专有名词邻接词的专有名词识别处理器。有很多专有名词都是出现 在某些特定词周围,如m r w u ,m s l i 等等。我们可以通过这些特定的词来 识别跟在其前后的专有名词。前人处理这种问题的方法主要是通过词形信息 来识别专有名词,比如单词中是否出现大写字母,特殊符号等等。这类方法 对于识别专有名词来说太有限。 东北大学硕士论文第一章前言 8 基于c h u m k 的候选词选取算法。1 9 8 3 年,c h u n k 是作为一个语言学感念提出 来。c h u n k 这个概念在机器翻译的论文经常出现,但是在o c r 后处理系统中, 是我们首先使用这种方法。我们把c h u n k 作为上下文来在一个被o c r 引擎错 误识别的词的候选词集合中选取一个合理的候选词作为最后的输出。 东北大学硕士论文第章项目总观 第二章:项目总观 强一早:圳日思犹 2 1 开发环境和平台 本系统在w i n d o w s 2 0 0 0 下开发。o c r 后处理系统采用模块设计,扩展和维 护性很高。整个o c r 后处理系统是用c c + + 语言开发,由v i s u a lc + + 6 0 编泽。 整个系统以d l l 动态库形式提供,并附有测试程序。 2 2 系统结构 = = = = : :菌i z = ;攀罕西藿磊辐翁6 琶莨谮疆莲禁巍菇藉苗= = = = “:= = = = = = := = | = = = = = = := = := = :。:= := = = :黝g 燃! :熬! i 里! ! 宝曼黪璺:煦熙哇:贬臻。p o s t - p r o c e s s i n g ! 氍! ! 黔! ! 臻= = :。:= :。= = = = = 二; 东北大学硕l 论文 第= 章项目总观 以上是系统结构图: 整个o c r 后处理系统分为四层结构,它们分别是区块处理层p r o c e s s z o n el e v e l ( p z l ) ,词处理层p r o c e s sw o r d l e v e l ( p w l ) ,匹配引擎层 m a t c he n g i n el e v e l ( m e l ) 和候选词消歧层w o r dd i s a m b i g u i t y l e v e l ( w d l ) 。 松下o c r 引擎提供的输出是一个区块一个区块的多维字符流。首先,一个 区块的多维字符流被区块处理层p z l 切分成一个原始识别词词串,再由词处弹 层p w l 对这个词串中的每个原始识别词进行检查并对识别错误进行分类,然后 根据不同的错误类别调用匹配引擎层m e l 中的不同错误类别的匹配引擎产生原 始识别词的候选词集合,最后由候选词消歧层w d l 使用语言学方法来从每个原 始识别词的候选词集合中选出一个最合适的候选词作为该原始识别词的最后输 出。 2 3 开发资源 住我们的四层系统结构中,各个层中都包含了很多的处理算法,它们需要使 用大量的知识资源,我们把这些知识资源统称为知识库。它们包括:一个1 7 0 ,0 0 0 词的词条词典,一个字符转换混淆表,一个词性词频词典,词三元文法数据库, 专有名词邻接词表,高频c h m k 库,h m m 词性标注数据库。这些资源大多是通 过t r e e b a n k 和准美国国家加标语料库统计训练生成的。 东j 匕大学硕h 论文 第三幸分层详细介绍 第三章:分层详细介绍 3 1 构建知识库 3 1 1 训练语料 本o c r 后处理系统需要使用许多的后台知识库,这些知识库中有许多都是 通过大的加标语料库中训练获得。我们可以获得的加标语料库资源是 t r e e - b a n k 和英围围家加标语料库。由于p d m s 松下文档管理系统是针对美 围市场开发,所以我们需要对英国国家加标语料库做相应转换处理,使它在一定 程度上符合美圈英语的特点。处理后我们就得到了准美国国家加标语料库。 3 1 2 词条词典 词条词典中的基础词条主要来自于两个免赀词典i s p e l l 和w o r d n e t 。众所周 知,英语单词有各种变化形式,比如名词有名词复数形,动词有现在进行式,单 数第三人称一般现在式,动词过去式,动词过去分式,形容词副词有比较级和最 高级,还有各种前缀后缀等。在i s p e l l 和w o r d n e t 中,针对英语单词词形变化给 出j 许多转换规则,我们通过计算机程序自动运用这些规则,将英语单词原形词 转换成该词的变化形式。i s p e l l 和w o r d n e t 的原形词和变化形一起组成了词条词 典的基础词条部分。为了获取更多的常用词条,我们对t r e e b a n k 和准美国 闭家加标语料库中每个出现的词的词频进行了统计,我们把词频较高的词与 i s p e l l 和w o r d n e t 生成的基础词典合并得到了最终的含有1 7 万词条的词条词典。 1 7 万的词条词典是一个很大的词典,为了节省o c r 后处理系统内存使用量, 我们选用了一种压缩格式来存放该词条词典。词条词典的结构分为两部分,词典 头部分和词典数据部分。 尔北大学硕l 论文 第三章分层详细介绍 词典头部分: 词典头部分丰要存放与词典相关的信息,主要包含四个信息:词条词典文件 签名( m a g i cn u m b e r ) ,用来标识词典文件格式;词典头部分大小( h e a d e r s i z e ) , 记录文件头的部分按字节计算的大小,这个值实际设置为1 0 2 4 ,预留部分将来 可以扩展存放其它信息;词条词典数据部分开始位置便宜( d a t ao f f s e t ) ,这个值 必须与词典头部分大小的值相同;数据部分大小( d a t as i z e ) ,记录整个数据部分 按字节计算的大小。 表3 1 词典头格式 t a b l e31 d i c t i o n a r yh e a d e rf o r m a t f i e l do f f e ts i z ec o n t e n t s m a g i cn u m b e r 02p d h e a d e rs i z e24 d a t ao f h e t64m u s tb es a m ea sh e a d e rs i z e d a t as i z el o4 词典数据部分: 词条词典数据部分是由所有词条的润条条目组成,每个词条条目都由个 “# ”号领头,后面紧跟词条条目的数据,最后以换行符“恤”结束。词条条目 的数据采用了“打包”( f o l d i n gt e c h n i q u e ) 的压缩技术。大家知道,词表中的相 邻的若干个词条可能共有一个词干,更实际特殊的情况是,在一个按照字符顺序 排序的词表中,若干个相邻的词条间可能共有一部分相同的领头字母序列。举个 例子,在我们的词条词典中单词“i n f o r m a t i o n ”的前面一个词是“i n f o r m ”,这两 个相邻词条头六个字母完全一样。所渭“打包”技术就是在词条条目中的一个域 用来保存本词条与其前一个词条相同领头字母数目信息。由于英文单词的长度不 会很长,所有这个信息域用一个字节来存放就够了,这样整个词表数据部分就被 压缩_ 。 下表是从我们实际的词表中截取出来的一段,第- - n 是词条本身,第- - 一j u 是 该词条对应的词条条目。x d d 是一个1 6 进制数,表示的是该词与前词相同的领 东j 匕大学硕l 沦文 第三章分层洋细介绍 头字母数目,n 是还行符。 表3 2 词典数据格式 t a b l e3 2 d i c t i o n a r yd a t af o r m a t 【a b a c k # x oa b a c kk n ia b a f t# x 3f t n a b a l o n e# x 3l o n e n a b a l o n e l s撑x 7 s n a b a l o n e s# k 7s n a b a n d o n拌x 3n d o n n a b a n d o n e d撑x 7e d n a b a n d o n e r岸x 8r n 3 1 3 字符转换混淆表 字符转换混淆表或者叫转换表之类的技术已经在许多o c r 后处理系统中使 用过。我在f 9 】和f 1 2 这两篇论文中找到了类似的技术。在第一篇论文中是用来减 少原始识别词候选词集大小并且处理被错误识别的短词。第二篇论文中用混淆表 来选择错误识别的字符的候选转换。而我们是在拼写检查过程中使用字符转换混 淆表以下将做详细描述。 字符转换混淆表技术与实际使用的环境相关,它可以用来描述o c r 引擎本身 一些特性的。在研究了松下o c r 引擎的输出后,我们发现了四种错误:1 ) 字符 删除 “d e l t i o n ”) ,2 ) 字符插入( c h a r a c t e ri n s e r t i o n i n s e r t i o n ” “i n s e r i t i o n ”) 3 )字符替换( c h a r a c t e r s u b s t i t u t i o n s u b s t i t u t i o n ”一 “s u b s t i t u t i o n ”)和4 ) 字符合并( c h a r a c t e r m e r g e “r e t u r n ”y r e t u m ”) 。根据这四种错误,我们定义了四种相应的拼写检查转换操作。 宁符转换混淆表存放的就是这四种操作的操作代价。字符转换混淆表丰要是在编 辑距离计算匹配引擎中用到,我们将在匹配引擎层( m e l ) 具体谈到如何使用它 东北大学硕l 沱文 第三章分层详细介绍 的来得到原始识别词的候选词集合。 为了方便获得字符转换混淆表,我们编写了一个自动获取混淆表的工具。它 以o c r 引擎的输出文本和对应的原始的扫描文档的电子版文本组成的测试集作 为输入,通过比较两个文本中的对应词来获得可能的替换,合并,插入,删除转 换操作。这里我们以一个例子来具体说明一下比较过程。原是文本中的词 “r e t l t l - n ”,被o c r 弓 擎识别为“r e t u r n ”,我们可以看到“r r l ”被合并成了“m ”, u 被替换成了“u ”。侦测到这两个转换后,“r n 一,m ”和“u - u ”就被保存了起 来,并且它们的出现频次也同时进行统计。在整个测试集都被处理了之后,我们 得到一个带有出现频次的转换操作列表文件。把列表中的所有转换操作按照频次 进行分级,并按照这个分级来对每个转换操作的代价权值进行评估,基术是按照 频次越高,代价权值越小的原则进行。还有一些转换操作无法由程序自动侦测识 别的,这类转换操作会被保存到另一个文件由人来作出判断。最后将程序自动乍 成的混淆表与人工生成的混淆表合并就得到了最终的字符转换混淆表。 3 - 1 4 词性词频词典 词性词频词典中保存的是词条列表中所有词的词性序列和该词在大的加标 语料库中出现的频次。我们使用的加标语料库是t r e e b a n k 和准美国国家加 标语料库。虽然我们使用的加标语料库很大,但还是不足以覆盖词条列表中所有 词,也不足以覆盖每个词的所有词性,所以每个词条的词性序列是i s p e l l 和 w o r d n e t 中的缺省词性序列和加标语料库中该词条出现的词性序列的并集。 3 1 5 专有名词邻接词表 在实际文本中会出现大量的专有名词,如人名,地名,机构名等,这些专有 名词是无法全部收录到词条词典中的,而“m r ”“m s c o ”这类称谓,头衔 的词经常出现在人名,地名,机构名这类专有名词的前后上下文中,我们把这类 东北大学硕l 论文 笫三章分层详细介绍 词叫做专有名词邻接词。在大的加标语料库t r e e b a n k 和准美围围家加标语 料库中,这类专有名词都已经被加有特殊标记,那么我们可以通过对加标语料进 行统汁得到一个专有名词邻接词表。我们以“m e ”这个词为例说明一下统计过程, 通过对大加标语料的统计,我们在语料中统计出“m l ”出现了1 9 7 7 1 次,在这 1 9 7 7 1 次中,有1 6 1 0 7 次“m l ”后紧跟的是一个人名专有名词,我们计算得到个 概率值( 1 6 1 0 7 1 9 7 7 1 = 0 8 1 4 6 7 8 ) ,用这个概率值可以描述“m n ”后紧跟的是人名 专有名词的可能性。同样,对其它专有名词邻接词我们也可以得到一个概率值。 专有名词邻接词词表中收录的是加标语料库中统计出来的这个概率值大于0 6 的 所有邻接词。 3 1 6c h u n k 库 c h u n k 方法是主要是用来用来弥补词三元文法和h m m 词性标注方法时问复 杂度过高的不足。c h u n k 可以看作是一种词语搭配形式,是多个单词构成的词汇 序列,表达一个相对完整独立的语义概念,c h u n k 这个概念已经在自然语言处理 领域有广泛的应用。我们这里认为的c h u n k 与自然语言中的c h u n k 有所不同,我 们所认为的c h u n k 是语料库中高频的三词序列,而不考虑它是否表达个完整独 立的语义概念。那么我们构建c h u n k 库的方法就非常简单,我们只要对整个 t r e e b a n k 和准美国国家加标语料库进行了一次词层的三元组统计,把所有出 现频率超过3 的三元组都视为一个c h u n k 保存起来就得到了c h u n k 库。 3 1 7 词三元文法数据库 n g r a i n 统计语言模型被广泛应用于语音识别和自然语言处理中,但该模型存 在个问题,当语料库的规模尚不足够大的条件下,大多数词或邻接词的搭配在 语料中出现的次数都很少,甚至根本不出现。这样就形成了数据稀疏现象,造成 知识短缺。虽然我们使用了大的加标语料进行统计,但是数据稀疏现象仍然是一 个问题。此时严重影响n g r a m 统计语言模型的性能,因此必须进行参数空间的 米北大学顺士论文 第三章分层详细介绍 平滑处理。它是在训练数据不充分的条件下,采用某种方式对统计结果及概率评 估进行必要的调整和修补。对于n g r a i n 模型,训练数据稀疏容易导致两种错误 的概率评估,一种是小概率事件,即语词之间的n 元联结在训练语科中出现的 频度极小,不能反映实际的语词联结关系:另一种则是零概率事件,即一些可能 的语词联结关系在训练语料中从未出现过,但很可能在实际语料中出现。 我这里就描述一下我们的三元文法转移概率值的平滑方法。假定abc 是语 料库中的一个三词序列,在一个大语料库中三词序列abc 有很多,我们用n ( a ,b ,c ) 来代表三词序列abc 在语制库中出现的频次,同样n ( a ,b ) 矛l l n ( a ) 分别代表二:词 序列ab 和单问a 在大语料库中出现的频次。我们用符号+ 来代表任意单词,那 么n ( + ) 表示整个语料库的单词总计数。p ( c l a b ) = n ( a ,b 、c ) n ( a ,b ) ,p ( b a ) = n ( a ,b ) n ( a ) ,p ( b ) = n ( b ) n ( 。) ,p 0 = 1 n ( + ) 。由于数据稀疏问题,这里的p ( c l a b ) 是不能 被直接用来作为转移概率使用,我们采用线性插值的方法,用3 - g r a m 概率和更 低阶的2 - g r a m ,1 一g r a i n 和0 - g r a m 概率的加权和来作为三词序列abc 的转移概率 p ( c l a b ) 。我们得到了下面的转移概率计算公式: p ( c l a b ) = 九3 p ( c a b ) + 九2 p ( c b ) + l p ( c ) + o p 0 3 + 九2 + 九l + 九0 = 1( 3 1 ) 3 1 8h m m 词性标注数据库 词性标注主要用到两个相关数据,词性序列的转移概率和单词的词性的发射 概率。计算词陡序列的转移概率也会遇到数据稀疏问题,我们的平滑方法与前面 词的三元文法数据中的转移概率的平滑方法完全一样,只是把词序列换成了同性 序列,这里1 j 作更多描述。对于发射概率,我们可以简单的把小概率事件和零概 率事件的发射概率设成个给定的小概率值来进行平滑。 3 2 系统总体流程 东北大学硕l 论文 第二二章分层详细介绍 o c r ,e dz o n e p z i+ 1 w 。r n s 。m e n t a t t 。n n s ;。 l 匕 1 p w ll 】 r e t r i e v ea 1 1w o r d sf r o m w o r d ss t r i n go n eb yo n e l e x - w o r d o o 士 u n k n o w nw o r d w o r d c h e c k i n ga n d l u n k n o w nw o r da r b i t r a g e l w r o n go c r e dw 。r d l l e r r o r t y p ea r b i t r a g e r ilifli m e l j rj rj rj rj ri r 墨e d i td i $ t5 l n e eo c r o u t p u t ; m a t c he n g i n eb a s e dm a t c h 兰 e n g i n e 0 。_ _ _ _ _ _ c a n d i d h t es e t sc o m b i n a t i o n 0上0上 l + l s e n t e n c es e s m e n t a t o ne n g i n e j w d l p r o p e rn o u na d j a c e n t w o r dr e c o g n i z e r c h u n km e t h o d h m mp o s t a g g i n g m e t h o d w o r db a s e dt r i g r a mm e t h o d + l p r i o r i t yb a s e dm e t h o d l + 陀3 : :系统流程嘣 i o u t u t t oo c r engifigu 1 s y s t e mf l o wc h a r t i n e li 东北大学硕士论文 第二三章分层洋细介绍 图3 f 是松下o c r 后处理系统的一个总体流程图。从流程图我们可以看出, 松下o c r 引擎的输出作为o c r 后处理器( p o s tp r o c e s s o r ) 的输入被处理后,结 果返回到输出设备上。输出设备可以是多种多样的,包括数据存储设备,电脑系 统或者打印机。o c r 后处理器由若干处理模块一起来完成整个后处理过程,它 们是:词切分引擎,词层处理器,旬切分引擎,词消歧处理器。 o c r 后处理系统以o c r 引擎输出的一个区块的多维字符流数据作为输入, 该多维字符流数据首先由词切分引擎进行分词,把o c r 引擎输出的字符流数据 切分成词串,词串中的每个词我们都nl l 做个原始识别词。此切分引擎切分得到 的词串后,交由词层处理器处理,词串中的每个原始识别词在两层处珲器中进行 一次拼写错误检奄,判别出每个原始识别词的错误类型,并根据不同的错误类型, 调用相应的匹配引擎,构造该原始识别词的候选词集合。词层处理器为所有原始 识别词构造了候选词集台后。 带有候选集合的原始识别词词串然后由旬切分引擎切分成了一个个的句 子。般情况n 句子是按照标点符号来切分的,在我们的o c r 后处理系统中 【i 王可能是根据词的数目来切分的。比如,在一个英文句子中,平均有4 到1 5 个 词。因此,两个标点符号问的英文词串词的数目小于4 时,该词串可能是一个从 旬,并与该词串的前后句子相关联。类似的,长度超过1 5 的英文词串可能被切 分为两个或者更多的句子。 切分好的句子紧接着由词消歧处珲器处理。词消歧处理器包含一些语言学的 方法,它们是:基于c h u n k 的候选词选择方法,基于h m m 词性标注的候选词选 择方法,基于词的三元文法候选词选择方法,基于转换规则的候选词选择方法。 这些语言学方法后面将具体阐述。这些语言学的候选词选取方法在句子层上被用 来更进一步的提高o c r 的识别正确率。这些词消歧方法基本处理过程都是从原 始识别词候选词集合中选择出一个最合适的候选词作为最后的输出。整个消歧过 程是一句一句完成的。 东北大学硕l 沦文 第三章分层详细介绍 在某些情况下,一个o c r 引擎输出的原始识别词在经过词层处理之后得到 的候选集合巾只含有一个候选词,这类词我们认为是被“正确识别”的词,这类 词在后续模块中不会对它做更多处理,而是直接把该候选词作为最终输出。 在上述的那些语言学方法中,只要有一个方法能够从某个原始识别词候选集 合中选出认为正确的候选词,那么后续语言学方法将不再被调用来处理该原始识 别词的候选集合,也就是说这些语言学方法是按照一定的顺序被调用,它们都不 是能够确定给出一个原始识别词的候选集合的最终输出。换句话1 说就是它们都是 基于“尽晟大努力,但是不确保有输出”的原则工作。 一个被处理的句子中的所有候选集都已经选定了候选词后,整个句子就处理 完成,不再使用句子层的任何语言学方法,句子选择器会选择下一个待处理的旬 。f 进行处理。如果上述这些语言学方法都不能作出最后的选择,那么候选集中的 第一个候选词将被作为最后的输出。 所有旬f 都被句子层消歧处理器处理之后,这些最终被选中的候选词作为最 后输出交由输出设备保存或者输出给用户。 3 3 分模块介绍 1 、面我们更详细的介绍各个处理模块的处理过程和各个模块中所使用的处 理方法。 3 3 1 词切分引擎 松下o c r 引擎的输出字符数据是一个多维的字符流数据,简而言之就是每 个被识别的字符o c r 引擎都会给出若干个候选输出字符。举个例子,真实文本 尔北大学硕士沦文 第三章分层详细介绍 中的一个字符c ,松下o c r 引擎可能输出三个字符c l ,c 2 ,c 3 作为待识别 的字符“c ”的候选输出。这三个字符是按照它们与待识别字符“c ”的相似度 排序的。第维字符数据是由所有的c l 组成,相似度最高,第二维由c 2 组成, 相似度次之,第三维由c 3 组成,相似度最低。 o c r 引擎输出的多维字符流数据被词切分引擎切分成了一组“原始识别词词 串”。切分过程以第一维字符串为基准,按照英文单词分隔符来把字符流数据切 分成原始识别词词串,单词分隔符一般是空格,“( ”,“) ”,“ ”等和a s c i i 码中的非打印字符。当标点符号在词尾出现时,标点符号也被视为单词分隔符。 下表是o c r 引擎输出的一个字符流数据的例子: 表3 3o c r 引擎输多维出 t a b l e3 3o c r e n g i n em u l t i d i m e n s i o no u t p u t | g n dt h i si sas a m p l ez o r l e i ti sav e r ys m a l lo n e j c 1 。t h l s 0 x f f l sas o m p l e o x f f z o n e l t1 so 0 x f f v e r ys m a l lo n e c 2 。 7 b i s 0 x f f i sos a n p l a 0 x f f z o m a ,i bi sa 0 x f f v a t ys n o l lo m a , l c 3 。y k l 5 0 x f f l 5e5 e m r l o 0 x f f 2 a n o 。i k1 5e 0 x f f u o f qs n e l la r o 其中g n d 行表示真实原始文本,也就是我们所希望得到的正确输出,c 1 s , c 2 s ,c 3 s 分别是第一维,第二维和第三维的o c r 输出字符流数据。字符流数据 被切词后我们得到了下表中的原始识别词词串: 表3 4 词切分结果 t a b l e34r e s u l to f w o r ds e g m e n t a t i o n lg n dt h i s1 sa s a m p l e z o n eni sa v e r y s m a l 】0 n e t c 1 。t h l s1 sas o m p l ez o n e1 t1 s0v e r ys m a l lo n e s n o l lo m ac 2 s7 b i s1 so s a n p l a z o m ai bi sa v a t y c 3 sy k l 51 5e5 e m r l 02 a n oi k1 5eu o f qs n e l i a r 0 3 3 2 词层处理器( 匹配引擎层) 东北人学硕l 沧文第二章分层详细介绍 乐北大学硕l 沦文第三章分层详细介绍 切好词的原始识别词词串交由词层处理器处理,词层处理器会给每个原始识 别词产牛一个候选词集合,候选词集合中的候选词按照从原始识别词转换成该候 选词的转换代价来排学。这个转换代价包含若干个用来描述候选词是正确文本的 可能性的标准。这些标准包括:编辑距离计算( e d i t d i s t a n c ec a l c u l a t i o n ,e d i s t ) , 描述从o c r 引擎输出的原始识别词转换成该候选词所需的编辑步骤的总代价; 原始识别词与候选词中所包含的相同字符数目( s a m ec h a r a c t e rc o u n t ,s a m e c ) ; 候选词在大规模语料中的词频信息( w o r df r e q u e n c y ,f r ) 。一般情况下,仪仪编 辑距离计算就足以把原始识别词候选集合中的所有候选词进行排序,但也会有两 个候选词的编辑距离相同的情况,在两个候选词编辑距离相同的情况下,我们会 进而使用相同字符数目s a m e c 来对候选词集合进行排序,若s a m e c 还相同,就进 而候选词的词频信息f r 进行排序。 图3 2 是词层处理器的详细流程图。松下o c r 引擎输出的第一维字符流数据 被切分成原始识别词词串,每个原始识别词首先与一个预先生成的词条词典进行 比对,并由未登录词判别器判别是否为未登录词。如果该原始识别词与词条词典 比对并匹配成功,我们把该词视为“正确识别”的词,此时该原始识别词的候选 集中仅有一个候选词就是该词本身。“未登录词”我们这里这里的定义与语言学 中的未登录词有所不同,我们这里所说的未登录词是指无法在词条词典中匹配成 功,又无法被词层处理器的各种匹配引擎处理的词。我们把这类无法处理的词也 按照“正确识别”的词一样处理,直接把原始识别词作为该词的候选集合。我们 是根据构成原始识别词的字符序列的特征来判别它是不是“未登录词”。其中。 条判断原则是看原始词中是否包含“- ”这些字符,包含这些字符的词我们视 为未登录词,不作处理。另条判断原则是看原始词中是否包含少于两个“构词 宁符”或者超过两个“非构词字符”。所渭“构词字符”苗。先就是那些大小写字 母,还包括了数字和一些特殊符号“$ 1 2 3 4 5 6 7 8 9 0 , 。包含数字是因为我们 的词层处理器中有专i 1 处理数字的匹配引擎,包含这些特殊符号是因为根据松下 o c r 引擎的特点,松下o c r 引擎会把某些字母错误的识别成这些符号。“构词 字符”以外的其它切符号都是“非构词字符”。 东北大学硕l 论文第三章分层详细介绍 当原始识别词没有在词条词典中匹配成功又不是“未登录词”时,该词就由 错误类型判别器来判断错误类型,然后根据该原始识别词的错误类型,我们有不 同的匹配引擎来处理构建它的候选词集合。如图31 中所示,我们有五种不同的 词层匹配引擎,它们分别对应了五种不同的原始识别词错误类型:大写字母词错 c a p i t a l w o r de r r o r ( c p w e ) ,数字词错d i g i t a lw o r de r r o r ( d w e ) ,分词错w o r d s e g m e n t a t i o ne r r o r ( w s e ) ,模式转换规则p a t t e r nt r a n s f o r m s ( p t ) 和普通词错 c o m m o nw o r de r r o r ( c w e ) 。 大写字母词错: 英文字母中有些字母的大小写在外形上是非常象的,比如“c f i l j k o p s u v w x y z ” 和“c f i l j k o p s u v w x y z ”。这类字母对o c r 引擎来说是难以分辨和识别的, 松下的o c r 引擎也是这样。这类字母识别错误就是我们所说的大写字母倒错 ( c p w e ) 。举两个明显的例子:“p a n a s o n i c ”可能被o c r 引擎被识别成 “p a n a s o n i c ”,“e r r o r ”被识别成“e r r o r ”。错误类型判别器怎么判别这类错误 呢? 我们检查原始识别词中的每个字母,如果原始词中有若_ t 大写字母又有若t 小写字母,并且所有的小写字母都是这类大小写相似的字母或者所有大写字母都 是这类字母,错误类型判别器就判别该原始识别词是大写字母词错。被判别为大 写字母词错的原始识别词进而由大写字母词错匹配引擎处理改正这类错误,这个 匹配引擎的所作的操作很简单,只是简单的把这类大小写相似的字母转换为与原 始识别词中其它字母相同的大写或者小写形式,如果该原始识别词以大写字母为 丰,就把这类字母都改成大写形式,反之就改成小写形式,然后把它作为该原始 识别词的候选词集合。 数字词错: 真实文本中有很多表达数字的形式,比如年份( 1 9 9 8 ) ,钱( $ 2 5 ,0 0 0 ) ,曰期 ( 2 0 0 1 1 2 2 6 ) 等等。这些数字词是不可能收录到词条词典中的。一般情况下, 有些数字字符是很容易被o c r 引擎错误的识别成字母,如2 容易被识别成z , “5 ,被识别成s ,“o ”被识别成“o ”。这就会导致我们所说的数字词错。我 东北大学硕l 沦文 第三章分层弹细介绍 们把这些容易被互相错误识别的字母和数字字符对叫做数字字母转换对。同样, o c r 引擎容易把哪些数字字符互相识别错,与o c r 引擎本身的特性有关。为_ r 获得这些数字字母转换对。我们需要对o c r 引擎的输出数据进行统计分析,把 o c r 引擎的输出数据和原始文档的正确电子文本进行对比,从中找出出现频率 较高的数字字母转换对,这个工作可以由计算机自动完成。通过对松下o c r 引 擎输出数据的统计,我们得到的转换对包括:a 一 0 ,一 ,f b ,一 一6 ,c - 一 一0 ,g 9 - , i 一 1 。,l 。一 1 ,o 一 0 ,q 一 一9 ,s 一 5 ,5 u 一 4 ,1 z 一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论