票据识别方法及装置与流程

文档序号:20353044发布日期:2020-04-10 23:08阅读:234来源:国知局
票据识别方法及装置与流程

本公开实施例涉及人工智能(artificialintelligence,ai)技术领域,尤其涉及一种票据识别方法及装置。



背景技术:

目前,人们在日常生活和工作会涉及各种票据,如银行回单、发票、行程单、保险单、火车票、快递单等,这使得金融、教育、企业记账、审计、保险等行业对票据识别的需求越来越强烈。

票据识别也称之为票据结构化,票据结构化是指利用预先设定的模板,从票据中提取出数据,并将提取出的数据填充到模板中得到结构化信息的过程,其中,模板是按照票据的排版样式设定的。以票据为银行回单为例,模板包含收款人姓名、付款人姓名、金额等字段,从银行回单中提取出具体的收款人姓名、付款人姓名、具体金额等,并填充在模板的相应位置,从而得到结构化信息。目前,互联网公司提供的票据识别包括银行回单识别、增值税发票识别、火车票识别、定额发票识别等。

但是,对于同一类发票而言,属于该类别的票据的排版样式可能有多个,且不同排版样式中的关键字段(key)不同。例如,同是银行回单,不同银行的银行回单的排版样式不同,甚至同一银行的各个分行的银行回单的排版样式也不同。此时,如果针对每种排版样式设定模板,则成本高、过程复杂、容易出错,进而导致票据识别容易出错。



技术实现要素:

本公开实施例提供一种票据识别方法及装置,基于可覆盖同一类别的多个排版样式的弱模板识别票据,从而提高票据识别的准确性。

第一方面,本申请实施例提供一种票据识别方法,包括:接收票据识别请求指令;响应所述票据识别请求指令,对待识别票据的光学字符识别ocr文本进行预处理,以得到第一集合,所述第一集合包含所述ocr文本的至少一个字段;根据所述第一集合和第二集合,确定第三集合,所述第二集合包含至少一个关键字段,所述第三集合是所述第一集合和所述第二集合的交集,所述第二集合是根据多个样本票据得到的,所述待识别票据与所述样本票据属于同一种类型但排版样式不同;从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值;根据所述第三集合中的各个关键字段和各个关键字段分别对应的值,生成所述待识别票据的结构化信息并显示。采用该种方案,预先从多个排版样式不同的票据中,提取出名称不同但含义相同的字段,将该些字段存储在第一集合中,需要票据识别时,利用该关键字段集合,自动将待识别的票据中的含义相似的字段提取出来作为关键字段,进而得到待识别票据的结构化信息,票据识别准确度高。

一种可行的设计中,所述根据所述第一集合和第二集合,确定第三集合,包括:对于所述第二集合中的每一个关键字段,判断所述第一集合包含的至少一个字段中是否存在所述关键字段;若所述第一集合包含的至少一个字段中存在所述关键字段,则判断所述关键字段与标志性词语之间的距离是否小于第一阈值,所述标志性词语用于区分名称相同但含义不同的关键字段,所述标志性词语位于所述第一集合;若所述关键字段与所述标志性词语与之间的距离小于所述第一阈值,则将所述关键字段存储至所述第三集合。采用这种方案,实现准确的从第一集合中确定出key的目的。

一种可行的设计中,所述从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值,包括:按照所述待识别票据的排版样式对所述第一集合包含的至少一个字段排序,得到第一字段队列;按照所述第一字段队列对所述第三集合中的关键字段进行排序,得到第二字段队列;从所述第一集合中确定出第一关键字段和第二关键字段之间的中间字段,所述第一关键字段和所述第二关键字段是所述第二字段队列中相邻的两个关键字段,且所述第二关键字段在所述第一关键字段的后面;根据所述中间字段,确定所述第一关键字段对应的值。采用该种方案,实现快速确定出第三集合中的关键字段对应的值的目的。

一种可行的设计中,所述从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值之后,还包括:根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值;切分所述第四集合中的各个字段,以得到多个子字段;确定所述多个子字段中的每个子字段对应的关键字段。采用该种方案,电子设备对第三集合中的每个关键字段确定可能的存值区域,在该存值区域搜索对应关键字段的值,并按照类型和过滤正则表达式过滤无关字段,进而通过二次识别提示准确率。

一种可行的设计中,所述根据所述第一集合和第二集合,确定第三集合之后,还包括:根据所述第四集合和所述第一字段,确定第五集合,所述第五集合是所述第四集合的子集,且所述第五集合不包含所述第一字段;确定所述第五集合中第二字段是否为文字类型的字段;若所述第二字段是文字类型的字段,则确定所述第二字段对应的文字类型,并将所述文字类型作为关键字段增加至所述第二集合;若所述第二字段不是文字类型的字段,则利用正则表达式确定所述第二字段对应关键字段,并将所述关键字段增加至所述第二集合。采用该种方案,实现将新的排版样式中的无key字段对应的关键字段增加至第二集合的目的。

一种可行的设计中,所述响应所述票据识别请求指令,对待识别票据的光学字符识别ocr文本进行预处理,以得到第一集合,包括:响应所述票据识别请求指令,切分所述ocr文本,以得到至少一个字符;将所述至少一个字中相邻的字符根据语义合并,以得到所述第一集合。采用该种方案,实现对待识别票据的ocr文本进行预处理以得到第一集合的目的。

第二方面,本申请实施例提供一种票据识别装置,包括:

接收模块,用于接收票据识别请求指令;

预处理模块,用于响应所述票据识别请求指令,对待识别票据的光学字符识别ocr文本进行预处理,以得到第一集合,所述第一集合包含所述ocr文本的至少一个字段;

第一确定模块,用于根据所述第一集合和第二集合,确定第三集合,所述第二集合包含至少一个关键字段,所述第三集合是所述第一集合和所述第二集合的交集,所述第二集合是根据多个样本票据得到的,所述待识别票据与所述样本票据属于同一种票据,所述待识别票据与所述样本票据属于同一种类型但排版样式不同;

第二确定模块,用于从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值;

第一生成模块,用于根据所述第三集合中的各个关键字段和各个关键字段分别对应的值,生成所述待识别票据的结构化信息;

显示模块,用于显示待识别票据的结构化信息。

一种可行的设计中,所述第一确定模块,对于所述第二集合中的每一个关键字段,判断所述第一集合包含的至少一个字段中是否存在所述关键字段,若所述第一集合包含的至少一个字段中存在所述关键字段,则判断所述关键字段与标志性词语之间的距离是否小于第一阈值,所述标志性词语用于区分名称相同但含义不同的关键字段,若所述关键字段与所述标志性词语与之间的距离小于所述第一阈值,则将所述关键字段存储至所述第三集合,所述标志性词语位于所述第一集合。

一种可行的设计中,所述第二确定模块,用于按照所述待识别票据的排版样式对所述第一集合包含的至少一个字段排序,得到第一字段队列,按照所述第一字段队列对所述第三集合中的关键字段进行排序,得到第二字段队列,从所述第一集合中确定出第一关键字段和第二关键字段之间的中间字段,所述第一关键字段和所述第二关键字段是所述第二字段队列中相邻的两个关键字段,且所述第二关键字段在所述第一关键字段的后面,根据所述中间字段,确定所述第一关键字段对应的值。

一种可行的设计中,上述的装置还包括:

切分模块,用于在所述第二确定模块从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值之后,根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,切分所述第四集合中的各个字段,以得到多个子字段,确定所述多个子字段中的每个子字段对应的关键字段。

一种可行的设计中,述样本票据至少为两个,不同的样本票据的排版样式不同,所述装置还包括:

第二生成模块,用于在所述第一确定模块根据所述第一集合和第二集合,确定第三集合之前,从每个所述样本票据中提取出目标关键字段,各所述样本票据的目标关键字段的名称不同但含义相同,根据各所述样本票据的名称不同但含义相同的目标关键字段生成所述第二集合,以使得所述第二集合包含的关键字段中的至少两个关键字段的名称不同但含义相同。

一种可行的设计中,上述的装置还包括:

更新模块,用于在所述第一确定模块根据所述第一集合和第二集合,确定第三集合之后,根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,确定所述第四集合中的第一字段与所述第三集合中第三关键字段之间的词向量距离,所述第一字段是所述第四集合中的任意一个字段,所述第三关键字段是所述第三集合中的任意一个关键字段,若所述词向量距离小于第二阈值,则将所述第一字段增加至所述第二集合。

一种可行的设计中,所述更新模块,用于在所述第一确定模块根据所述第一集合和第二集合,确定第三集合之后,根据所述第四集合和所述第一字段,确定第五集合,所述第五集合是所述第四集合的子集,且所述第五集合不包含所述第一字段,确定所述第五集合中第二字段是否为文字类型的字段,若所述第二字段是文字类型的字段,则确定所述第二字段对应的文字类型,并将所述文字类型作为关键字段增加至所述第二集合;若所述第二字段不是文字类型的字段,则利用正则表达式确定所述第二字段对应关键字段,并将所述关键字段增加至所述第二集合。

一种可行的设计中,所述预处理模块,用于响应所述票据识别请求指令,切分所述ocr文本,以得到至少一个字符,将所述至少一个字中相邻的字符根据语义合并,以得到所述第一集合。

第三方面、本申请实施例提供一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面或第一方面任意可能实现的方法。

第四方面,本申请实施例提供一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备计算机执行上述第一方面或第一方面的各种可能的实现方式中的方法。

第五方面,本申请实施例提供一种存储介质,所述存储介质中存储有指令,当其在电子设备上运行时,使得电子设备执行如上述第一方面或第一方面的各种可能的实现方式中的方法。

第六方面,本申请实施例提供一种票据识别方法,包括:

对待识别票据的光学字符识别ocr文本进行预处理,得到至少一个字段;根据预设的关键字段列表,从所述至少一个字段中确定出所述待识别票据的关键字段,所述关键字段列表包含的关键字段是根据类别相同但排版样式不同的多个样本票据得到的;从所述至少一个字段中确定出所述待识别票据的每个关键字段的值;组合所述待识别票据的每个关键字段与所述待识别票据的每个关键字段对应的值,以得到所述待识别票据的结构化信息。

上述申请中的一个实施例具有如下优点或有益效果:预先从多个排版样式不同的票据中,提取出名称不同但含义相同的字段,将该些字段存储在第一集合中,需要票据识别时,利用该关键字段集合,自动将待识别的票据中的含义相似的字段提取出来作为关键字段,进而得到待识别票据的结构化信息,票据识别准确度高。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1a是本申请实施例提供的票据识别方法的运行环境示意图;

图1b是本申请实施例提供的票据识别方法的运行环境示意图;

图2是本公开实施例提供的一种能票据识别方法的流程图;

图3a是本公开实施例提供的票据识别方法中待识别票据示意图;

图3b是本公开实施例提供的票据识别方法中根据ocr文本识别出的字段的示意图;

图3c是本公开实施例提供的票据识别方法中结构化信息的示意;

图4是本公开实施例提供的票据识别方法中弱模板和结构化信息的示意图;

图5是本申请实施例提供的票据识别方法适用的电子设备的运行环境架构图;

图6本申请实施例提供的票据识别方法的结构化流程图;

图7为本申请实施例提供的票据识别装置的一种结构示意图;

图8为本申请实施例提供的票据识别装置的另一种结构示意图;

图9是用来实现本申请实施例的票据识别方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

目前,很多互联网公司提供一些票据垂直类识别接口等进行票据识别,常见的票据识别包括银行回单识别、增值税发票识别、火车票识别、定额发票识别等。所垂直类识别接口,是指一个接口仅识别一类通用的票据,即识别排版样式相同的一类票据。但是,很多情况下,同一类票据具有多种不同的排版样式,例如,同是银行回单,不同银行的银行回单的排版样式不同,甚至同一银行的各个分行的银行回单的排版样式也不同。此时,可通过如下几种方式解决:

方式一、针对每种排版样式设定模板,票据识别时调用相应的模板。也就是说,对于同一类别不同排版样式的票据,分别设定模板,模板上保存对应排版样式的票据的关键字段。然而,属于同一类别但排版样式不同的票据无法穷举,而且排版样式会不断的增加,如果针对每种排版样式设定模板,则成本高、过程复杂、容易出错,进而导致票据识别容易出错。

方式二、对同一类别的票据设定一个统一模板。该方式需要收集属于同一类别且足够多的排版样式的票据,根据该些票据得到统一模板,使其能够覆盖多种排版样式。如果新增排版样式,则由专业人员对同一模板进行优化。显然,该种方式的开发成本和维护成本非常高。

方式三、智能结构化方案,该种方式无需设定模板,比较灵活。但是,对于同一类别排版样式不同的票据,关键字段很能是同义词,采用该种方式提取出的关键(key)字缺少与其他排版样式的关键字段的对应关系,即缺少归一化字段,使用起来比较麻烦。

有鉴于此,本公开实施例提供一种票据识别方法及装置,预先从多个排版样式不同的票据中,提取出名称不同但含义相同的字段,将该些字段存储在关键字段集合中,需要票据识别时,利用该关键字段集合,自动将待识别的票据中的含义相似的字段提取出来作为关键字段,进而得到待识别票据的结构化信息。

图1a是本申请实施例提供的票据识别方法的运行环境示意图。请参照图1a,该运行环境包括光学字符识别(opticalcharacterrecognition,ocr)设备1、终端设备2和服务器3。服务器3上加载票据识别装置,终端设备2分别于ocr设备1和服务器3建立网络连接。ocr设备识别电子票据或者纸制票据得到ocr文本,将该ocr文本通过终端设备2发送给服务器,由服务器根据ocr文本得到票据的结构化信息。例如,银行的终端设备2与ocr设备1连接,服务器3为该银行的云服务器,终端设备2提供用户界面,用户将电子票据发送至ocr设备1,或者将纸质票据放置在ocr设备1的识别范围内,使得ocr设备得到待识别票据的ocr文本,进而由终端设备将该ocr文本发送给服务器3,由服务器进行票据识别。

图1b是本申请实施例提供的票据识别方法的运行环境示意图。请参照图1b,该运行环境包括光学字符识别(opticalcharacterrecognition,ocr)设备1和终端设备2,ocr设备获得待识别票据的ocr文本后,将该ocr文本发送给终端设备2,由3终端设备执行票据识别。另外,终端设备2与ocr设备1可独立设置也可以集成设置。

图2是本公开实施例提供的一种能票据识别方法的流程图,本实施例的执行主体是电子设备,本实施例包括:

101、接收票据识别请求指令。

例如,电子设备为终端设备时,用户通过点击操作、触摸操作或语音输入等方式向电子设备输入请求指令,电子设备接收并识别该请求指令。

再如,电子设备为服务器时,用户通过点击操作、触摸操作或语音输入等方式向终端设备输入请求指令,以使得终端设备将该指令发送给服务器。

102、响应所述票据识别请求指令,对待识别票据的光学字符识别ocr文本进行预处理,以得到第一集合,所述第一集合包含所述ocr文本的至少一个字段。

电子设备接收到请求指令后,响应该请求指令以对待识别票据进行识别,以下将待识别票据称之为待识别票据。识别过程中,电子设备先对ocr文本进行预处理,以得到包含多个字段的第一集合。示例性的,可参见图3a-图3c,图3a是本公开实施例提供的票据识别方法中待识别票据示意图,图3b是本公开实施例提供的票据识别方法中根据ocr文本识别出的字段的示意图,图3c是本公开实施例提供的票据识别方法中结构化信息的示意图。

请参照图3a-图3c,待识别票据例如为一个银行回单,ocr识别扫描该待识别票据得到的ocr文本实质上包含一系列无意义无结构的字符的文本。电子设备获取到该ocr文本后,利用自然语言处理方法,将该无意义无结构的文本切分成一个个独立含义的字段,从而得到第一集合。

103、根据所述第一集合和第二集合,确定第三集合。

其中,所述第二集合包含至少一个关键字段,所述第三集合是所述第一集合和所述第二集合的交集,所述第二集合是根据样本票据得到的,所述待识别票据与所述样本票据属于同一种票据,所述待识别票据与所述样本票据的排版样式不同。

本公开实施例中,样本票据与待识别票据属于同一类票据,但是样本票据与待识别票据的排版样式不同,该样本票据可以为多个,多个样本票据中的任意两个样本票据的排版样式可以相同或不同,排版样式也可以称之为版型、版式等。可预先从每个样本票据中提取出目标关键字段,各样本票据的目标关键字段的名称不同但含义相同,根据各样本票据的名称不同但含义相同的目标关键字段生成第二集合,以使得第二集合包含的关键字段中的至少两个关键字段的名称不同但含义相同。例如,样本票据包括银行回单a、银行回单b和银行回单c,该三张票据中的目标关键字段分别为收款人姓名、收款人名称、收款方,该三个目标关键字段的名称不同但含义相同,即都是指代收款人。因此,可以将收款人姓名、收款人名称、收款方和收款人以列表的方式存储在第二集合中。该过程相当于一个建立模板的过程,相较于一个排版样式对应一个模板,本公开实施例提供的模板能够覆盖多个排版样式的票据,因此,本公开实施例中的模板称之为弱模板,而现有技术中与排版样式一一对应的模板称之为强模板。该过程中,实现设置可覆盖同一类别的多个排版样式的弱模板的目的。

本公开实施例中,弱模板的配置除了第二集合外,还包括其他内容。配置好弱模板的第二集合后,即可根据第一集合和第二集合确定第三集合。确定过程中,用第二集合中的关键字段,遍历第一集合,直到找到第一集合中的可能的关键字段,该些可能的关键字段构成第三集合。

104、从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值。

示例性的,电子设备从第一集合中剔除属于第三集合的字段,从剩余的字段中可确定出第三集合中的各个关键字段对应的值。

105、根据所述第三集合中的各个关键字段和各个关键字段分别对应的值,生成所述待识别票据的结构化信息。

示例性的,第二集合中,名称不同但含义相同的多个关键字段对应弱模板上的同一个位置,识别出关键字段和该关键字段对应的值后,电子设备将该关键字段和该关键字段对应的值填充到弱模板中,其中,关键字段可以沿用弱模板显示的关键字段,也可以用户识别出的关键字段替换弱模板中的关键字段。示例性的,可参见图4,图4是本公开实施例提供的票据识别方法中弱模板和结构化信息的示意图。

请参照图4,以收款人姓名为例,弱模板中显示的是收款方,而待识别票据中是收款人姓名。则最终得到的结构化信息中,可以是“收款方”,或者,“收款人姓名”。

本公开实施例提供的票据识别方法,电子设备接收到票据识别请求,响应该票据识别请求后,对待识别票据的ocr文本进行预处理,得到包含至少一个字段的第一集合,然后,利用预设训练得到的第二集合中的关键字段遍历第一集合,得到一集合和第二集合的交集,即第三集合,之后,确定出第三集合中的各个关键字段的值,并根据第三集合中的各个关键字段和各个关键字段分别对应的值,得到待识别票据的结构化信息。采用该种方案,预先从多个排版样式不同的票据中,提取出名称不同但含义相同的字段,将该些字段存储在第一集合中,需要票据识别时,利用该关键字段集合,自动将待识别的票据中的含义相似的字段提取出来作为关键字段,进而得到待识别票据的结构化信息,票据识别准确度高。

上述实施例中,预先根据多个样本票据设定弱模板的第二集合,该第二集合能够覆盖一类不同排版样式的样本票据。这是因为同一类票据虽然版式不同,但是基本内容相似,关键字段(key)和值(value)的结构也相似。每个样本票据的ocr文本中的字段包括两种字段:存在key的字段和不存在key的字段。

对于存在key的字段,定义第二集合时,需要定义每个字段可能的key的列表。对待识别票据进行识别时,利用key列表去匹配待识别票据对应的ocr文本,从而确定出第三集合。第二集合中存在多个key列表,每个key列表中的key的名称不同但是含义相同。新增排版样式时,需要度该第二集合进行更新。以新增排版样式为待识别票据的排版样式为例,更新过程中,电子设备根据所述第一集合和第二集合,确定第三集合之后,还根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,确定所述第四集合中的第一字段与所述第三集合中第三关键字段之间的词向量距离,所述第一字段是所述第四集合中的任意一个字段,所述第三关键字段是所述第三集合中的任意一个关键字段,若所述词向量距离小于第二阈值,则将所述第一字段增加至所述第二集合。

示例性的,第四集合和第三集合没有任何交集,也就是说,第四集合中的每个字段在第二集合中没有对应的key,此时,对于第四集合中的每一个字段,以下称之为第一字段,电子设备确定该第一字段与第三集合中的每一个关键字段的之间的词向量距离,并根据词向量的大小判断该第一字段是否与该关键字段是否为名称不同但含义相同的词。示例性的,电子设备通过自然语言处理方式,确定第一字段的词向量与第三关键字段的词向量经过嵌入(embedding)之后得到的非稀疏矩阵之间的词性距离,即第一字段和第三关键字段之间的词向量距离。若该词向量距离小于第二阈值,则说明该第一字段和第三关键字段的词性很近,第一字段和第三关键字段属于名称不同但换衣相同的词,因此,将该第一字段加入到第二集合中,使其成为第二集合中的一个key。若词向量距离大于或等于第二阈值,则说明该第一字段和第三关键字段的词性很远,即第一字段和第三关键字段名称不同且含义也不同,不能将该第三关键字段加入到第二集合中。另外,当自然语言处理方式添加的key不正确时,需要手动添加并纠正。

采用该种方案,实现利用自然语言处理方式增加新的排版样式的目的。

对于不存在key的字段,定义第二集合时,需要定义每个字段可能的类型。对待识别票据进行识别时,先从待识别票据的ocr文本中找到key,即确定出第三集合,之后,第一集合中的剩余字段,即第四集合,通过自然语言处理方式进一步的找到可能是key的第一字段。之后,电子设备根据所述第四集合和所述第一字段,确定第五集合,所述第五集合是所述第四集合的子集,且所述第五集合不包含所述第一字段,确定所述第五集合中第二字段是否为文字类型的字段,若所述第二字段是文字类型的字段,则确定所述第二字段对应的文字类型,并将所述文字类型作为关键字段增加至所述第二集合;若所述第二字段不是文字类型的字段,则利用正则表达式确定所述第二字段对应关键字段,并将所述关键字段增加至所述第二集合。

示例性的,对于剩余字段,即第五集合中的字段,电子设备确定该字段对应的类型,根据类型进行不同的处理。例如,对于文字的类型的第二字段,电子设备将该文字类型作为关键字段增加至第二集合,比如,待识别票据的ocr文本中包含的一个第二字段为“捌佰捌拾元”,该第二字段不存在于第三集合中,且该第二字段不是第三集合中的某个关键字段的值,电子设备确定出该第二字段为大写金额,则将大写金额作为该第二字段的key存储在第二集合中。另外,对于非文字类型,则电子设备可以通过正则表达式匹配该字段的类型。

采用该种方案,实现将新的排版样式中的无key字段对应的关键字段增加至第二集合的目的。

根据上述对存在key的字段以及不存在key的字段的处理,可以设定第二集合并优化第二集合,从而使得第二集合适用于同一类别但排版样式不同的票据。上述的第二集合属于弱模板的一部分配置,配置弱模板时除了需要配置第二集合外,还需要配置其他一些内容,下面,对整个弱模板的配置规则进行说明。该些规则如下:

1、从样本票据中提取名称不同但含义相同的key,根据该些key建立key列表,根据key列表得到第二集合,第二集合中的key用于匹配待识别票据中存在key的字段。

2.常见的键值对,适用于比较简单的票据的无key字段,如定额发票的金额字段,可通过枚举可能值的方式直接提取。

3、字段值的类型,该配置用于无key字段的匹配,以及部分识别得不好的字段切成小图后,用比较有针对性的ocr模型再识别一遍。

4、字段可能满足的正则表达式,该配置用于无key字段的匹配,通过正则表达式搜索符合的值(value)。

5、用于过滤的正则表达式,该配置用于过滤掉字段中不可能的值,如数字类型字段中的汉字等。例如,样本票据被打了水印,使得ocr文本中包含水印中的文字,若一个数据字段中包含了文字,则该文字需要被过滤掉。

6、归一化,该配置用于归一化字段名,将票据上含义相似但实际名称不同的key归一化,例如,收款人名称和收款名称等。

7、字段名周围的标志性词语,该配置用于在搜索key时区分名称相同但实际含义不同的key值,例如,名称,有可能对应收款人名称,也有可能对应付款人名称。

8、结尾词,该配置用于将字段的值案结尾词与无关的识别结果分开。

下面,基于弱模板的上述8个配置,对电子设备如何根据待识别票据的ocr文本,对待识别票据进行结构化进行详细说明。示例性的,可参见图5和图6。

图5是本申请实施例提供的票据识别方法适用的电子设备的运行环境架构图。请参照他5,该运行环境架构包括flask框架、服务层和ocr层,其中,flask框架主要包括twisted框架,该twisted框架主要用于负载均衡和流量控制。服务层主要用于模板配置加载/更新、语言模型加载、结构化提取和后处理等;ocr层主要用于通用识别、各类垂类识别等,该运行环境架构的历史行为均存储在日志记录中。

图6本申请实施例提供的票据识别方法的结构化流程图。请参照图6,该流程主要包括ocr文本预处理、确定第二集合、确定第二集合中每个key的值、得到结构化信息等。下面,对该些主要步骤进行详细说明。

首先,ocr文本预处理。

电子设备接收到票据识别请求指令后,响应所述票据识别请求指令,切分所述ocr文本,以得到至少一个字符,将所述至少一个字中相邻的字符根据语义合并,以得到所述第一集合。

示例性的,ocr文本包含的内容是无意义无结构的,电子设备首先用中文分词将ocr文本包含的内容切分成一个个有意义的词,根据二元语言模型,尝试将切分开的词合并成一个个有意义的字段从而得到第一集合。另外,词合并后,按照样本格式对合并后的字段按从左到又从上到下的顺序排序。

采用该种方案,实现对待识别票据的ocr文本进行预处理以得到第一集合的目的。

其次,确定第三集合。

确定第二集合时,对于所述第二集合中的每一个关键字段,电子设备判断所述第一集合包含的至少一个字段中是否存在所述关键字段,若所述第一集合包含的至少一个字段中存在所述关键字段,则判断所述关键字段与标志性词语之间的距离是否小于第一阈值,所述标志性词语用于区分名称相同但含义不同的关键字段,若所述关键字段与所述标志性词语与之间的距离小于所述第一阈值,则将所述关键字段存储至所述第三集合。

示例性的,电子设备利用第二集合中的key的列表,在第一集合中寻找可能的key,每找到一个可能的key,判断该字段周围是否存在标志性词,若该字段周围存在标志性词语,则判断该字段与标志性词语的距离是否合理,若该字段与标志性词语的距离合理,则认为该字段是一个key,将其存储至第三集合,否则,若该字段与标志性词语的距离不合理,则不能将该字段作为key存储在第三集合内。另外,若该字段周围不存在标志性词语,则也不能将该字段存储至第三集合内。例如,一个字段为“名称”,若周围有付款方等标志性词语,则判断“名称”和“付款方”的距离是否合理,进而判断“名称”是否为一个key需要存储在第三集合中,若“名称”周围无标志性词语,则认为该字段不是一个key,不属于第三集合。

采用该种方案,实现准确的从第一集合中确定出key的目的。

接着,确定第三集合中每个key的值。

确定第三集合中的每个key的值时,需要先确定出可能存在值的区域。一般来说,第一集合中除去第三集合中元素外的其他元素,都有可能是值所在的区域。因此,电子设备从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值时,按照所述待识别票据的排版样式对所述第一集合包含的至少一个字段排序,得到第一字段队列,按照所述第一字段队列对所述第三集合中的关键字段进行排序,得到第二字段队列,从所述第一集合中确定出第一关键字段和第二关键字段之间的中间字段,所述第一关键字段和所述第二关键字段是所述第二字段队列中相邻的两个关键字段,且所述第二关键字段在所述第一关键字段的后面,根据所述中间字段,确定所述第一关键字段对应的值。

示例性的,经过排序后,对于第三集合中的每个关键字段,电子设备在该关键字段的周围寻找对于的值(value),每找到一个值,确定该值与key的距离,根据该距离确定找到的值是否为该关键字段的值。之后,利用过滤正则表达式,将需要过滤的信息过滤掉。

采用该种方案,实现快速确定出第三集合中的关键字段对应的值的目的。

上述实施例中,对于第一集合除去第三集合后剩余的字段,需要对该些字段进行二次识别。此时,电子设备根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,切分所述第四集合中的各个字段,以得到多个子字段,确定所述多个子字段中的每个子字段对应的关键字段。

示例性的,电子设备按照字段的类型,将需要切片识别的字段,即第四集合中的字段,按照该字段的坐标,切成小图再识别一次。另外,对于第三集合中没有找到值的关键字段,也可以继续将该关键字段切片并对切片后的子字段进行识别。

另外,对于第四集合中的字段,以及第三集合中没有找到值的关键字段,电子设备还可以先尝试用正则表达式搜索匹配,若还是未对应的关键字段(对于第四集合中的字段而言)或者未找到值(对于第三集合中的关键字段而言),可能存在正则表达式有误的问题,此时,电子设备用文本分类的方式进行处理。

采用该种方案,电子设备对第三集合中的每个关键字段确定可能的存值区域,在该存值区域搜索对应关键字段的值,并按照类型和过滤正则表达式过滤无关字段,进而通过二次识别提示准确率。

最后,返回结构化信息。

示例性的,电子设备除了将第三集合中的各个关键字段和各个关键字段分别对应的值组合外,还将通过二次识别等的字段对应关键字段进行组合,并将根据该些组合结果生成待识别票据的结构化信息。

上述介绍了本申请实施例提到的票据识别方法的具体实现,下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

图7为本申请实施例提供的票据识别装置的一种结构示意图。该装置可以集成在电子设备中或通过电子设备实现,电子设备可以终端设备或服务器等。如图7所示,在本实施例中,该票据识别装置100可以包括:

接收模块11,用于接收票据识别请求指令;

预处理模块12,用于响应所述票据识别请求指令,对待识别票据的光学字符识别ocr文本进行预处理,以得到第一集合,所述第一集合包含所述ocr文本的至少一个字段;

第一确定模块13,用于根据所述第一集合和第二集合,确定第三集合,所述第二集合包含至少一个关键字段,所述第三集合是所述第一集合和所述第二集合的交集,所述第二集合是根据多个样本票据得到的,所述待识别票据与所述样本票据属于同一种票据,所述待识别票据与所述样本票据属于同一种类型但排版样式不同;

第二确定模块14,用于从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值;

第一生成模块15,用于根据所述第三集合中的各个关键字段和各个关键字段分别对应的值,生成所述待识别票据的结构化信息;

显示模块16,用于显示待识别票据的结构化信息。

一种可行的设计中,所述第一确定模块13,对于所述第二集合中的每一个关键字段,判断所述第一集合包含的至少一个字段中是否存在所述关键字段,若所述第一集合包含的至少一个字段中存在所述关键字段,则判断所述关键字段与标志性词语之间的距离是否小于第一阈值,所述标志性词语用于区分名称相同但含义不同的关键字段,若所述关键字段与所述标志性词语与之间的距离小于所述第一阈值,则将所述关键字段存储至所述第三集合,所述标志性词语位于所述第一集合。

一种可行的设计中,所述第二确定模块14,用于按照所述待识别票据的排版样式对所述第一集合包含的至少一个字段排序,得到第一字段队列,按照所述第一字段队列对所述第三集合中的关键字段进行排序,得到第二字段队列,从所述第一集合中确定出第一关键字段和第二关键字段之间的中间字段,所述第一关键字段和所述第二关键字段是所述第二字段队列中相邻的两个关键字段,且所述第二关键字段在所述第一关键字段的后面,根据所述中间字段,确定所述第一关键字段对应的值。

图8为本申请实施例提供的票据识别装置的一种结构示意图,本实施例提供的票据识别装置100在上述图7的基础上还包括:

切分模块17,用于在所述第二确定模块14从所述第一集合中确定出所述第三集合包含的各个关键字段分别对应的值之后,根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,切分所述第四集合中的各个字段,以得到多个子字段,确定所述多个子字段中的每个子字段对应的关键字段。

一种可行的设计中,再请参照图8,所述样本票据至少为两个,不同的样本票据的排版样式不同,所述装置还包括:第二生成模块18,用于在所述第一确定模块13根据所述第一集合和第二集合,确定第三集合之前,从每个所述样本票据中提取出目标关键字段,各所述样本票据的目标关键字段的名称不同但含义相同,根据各所述样本票据的名称不同但含义相同的目标关键字段生成所述第二集合,以使得所述第二集合包含的关键字段中的至少两个关键字段的名称不同但含义相同。

一种可行的设计中,再请参照图8,上述的装置还包括:

更新模块19,用于在所述第一确定模块13根据所述第一集合和第二集合,确定第三集合之后,根据所述第一集合和所述第三集合,确定第四集合,所述第四集合是所述第一集合的子集、所述第四集合与所述第三集合的交集为空、且所述第四集合不包含所述第三集合中的各个关键字段对应的值,确定所述第四集合中的第一字段与所述第三集合中第三关键字段之间的词向量距离,所述第一字段是所述第四集合中的任意一个字段,所述第三关键字段是所述第三集合中的任意一个关键字段,若所述词向量距离小于第二阈值,则将所述第一字段增加至所述第二集合。

一种可行的设计中,所述更新模块19,用于在所述第一确定模块13根据所述第一集合和第二集合,确定第三集合之后,根据所述第四集合和所述第一字段,确定第五集合,所述第五集合是所述第四集合的子集,且所述第五集合不包含所述第一字段,确定所述第五集合中第二字段是否为文字类型的字段,若所述第二字段是文字类型的字段,则确定所述第二字段对应的文字类型,并将所述文字类型作为关键字段增加至所述第二集合;若所述第二字段不是文字类型的字段,则利用正则表达式确定所述第二字段对应关键字段,并将所述关键字段增加至所述第二集合。

一种可行的设计中,所述预处理模块12,用于响应所述票据识别请求指令,切分所述ocr文本,以得到至少一个字符,将所述至少一个字中相邻的字符根据语义合并,以得到所述第一集合。

图9是用来实现本申请实施例的票据识别方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图9所示,该电子设备包括:一个或多个处理器21、存储器22,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器21为例。

存储器22即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的票据识别方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的票据识别方法。

存储器22作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的票据识别方法对应的程序指令/模块(例如,附图7或附图8所示的接收模块11、预处理模块12、第一确定模块13、第二确定模块14、第一生成模块15、显示模块16、切分模块17、第二生成模块18、更新模块19)。处理器21通过运行存储在存储器22中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的票据识别方法。

存储器22可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据票据识别电子设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至票据识别电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的用于票据识别的电子设备还可以包括:输入装置23和输出装置24。处理器21、存储器22、输入装置23和输出装置24可以通过总线或者其他方式连接,图9中以通过总线连接为例。

输入装置23可接收输入的数字或字符信息,以及产生与票据识别电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置24可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

本申请实施例还提供一种票据识别方法,该方法包括:对待识别票据的光学字符识别ocr文本进行预处理,得到至少一个字段;根据预设的关键字段列表,从所述至少一个字段中确定出所述待识别票据的关键字段,所述关键字段列表包含的关键字段是根据类别相同但排版样式不同的多个样本票据得到的;从所述至少一个字段中确定出所述待识别票据的每个关键字段的值;组合所述待识别票据的每个关键字段与所述待识别票据的每个关键字段对应的值,以得到所述待识别票据的结构化信息。

本申请实施例提供的技术方案,电子设备接收到票据识别请求,响应该票据识别请求后,对待识别票据的ocr文本进行预处理,得到包含至少一个字段的第一集合,然后,利用预设训练得到的第二集合中的关键字段遍历第一集合,得到一集合和第二集合的交集,即第三集合,之后,确定出第三集合中的各个关键字段的值,并根据第三集合中的各个关键字段和各个关键字段分别对应的值,得到待识别票据的结构化信息。采用该种方案,预先从多个排版样式不同的票据中,提取出名称不同但含义相同的字段,将该些字段存储在第一集合中,需要票据识别时,利用该关键字段集合,自动将待识别的票据中的含义相似的字段提取出来作为关键字段,进而得到待识别票据的结构化信息,票据识别准确度高。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1