[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN116663507A - 一种读取表格、校对支付数据的方法、设备及存储介质 - Google Patents

一种读取表格、校对支付数据的方法、设备及存储介质 Download PDF

Info

Publication number
CN116663507A
CN116663507A CN202310634759.4A CN202310634759A CN116663507A CN 116663507 A CN116663507 A CN 116663507A CN 202310634759 A CN202310634759 A CN 202310634759A CN 116663507 A CN116663507 A CN 116663507A
Authority
CN
China
Prior art keywords
filter
cells
text information
character strings
row
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
Application number
CN202310634759.4A
Other languages
English (en)
Inventor
黎升杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Quyan Network Technology Co ltd
Original Assignee
Guangzhou Quyan Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Quyan Network Technology Co ltd filed Critical Guangzhou Quyan Network Technology Co ltd
Priority to CN202310634759.4A priority Critical patent/CN116663507A/zh
Publication of CN116663507A publication Critical patent/CN116663507A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Character Input (AREA)

Abstract

本发明公开了一种读取表格、校对支付数据的方法、设备及存储介质,该方法包括:从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串;识别位于同一行单元格的原始文本信息,作为目标文本信息;针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格;合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的业务数据。本实施例直可以保证后续业务数据的准确性,保证业务的正常运行,避免或减缓字符串错位的情况,大大减少人工校正的操作,减少耗时,降低成本,在整体上高读取表格的效率。

Description

一种读取表格、校对支付数据的方法、设备及存储介质
技术领域
本发明涉及表格处理的技术领域,尤其涉及一种读取表格、校对支付数据的方法、设备及存储介质。
背景技术
在多种业务中,往往会使用表格记录各数据,例如,账单信息、报名人员信息、项目信息、零件信息,等等,便于统计分析。
这些表格多记录在PDF(Portable Document Format,便携式文档格式)文件,方便不同系统之间交互。
目前主要使用OCR(Optical Character Recognition,光学字符识别)技术从PDF文件获取表格中的数据,OCR技术将PDF文件转换为图像,再从图像中识别字符,这个过程会丢失部分信息,存在一定的错误率。
在核对账单信息等业务中,即便错误率再小,也会导致业务出错,影响较大,为保证数据的准确性,在这些业务中会直接从PDF文件中读取数据。
但是,业务数据因表格的格式限制,存在长度不等、分行等情况,直接读取数据会存在错位的问题,此时,主要是依赖人工进行校正,耗时较长,成本较高,整体效率偏低。
发明内容
本发明提供了一种读取表格、校对支付数据的方法、设备及存储介质,以解决如何在保证从PDF文件读取表格中的数据的精确度的条件下、提高读取的效率。
根据本发明的一方面,提供了一种读取表格的方法,包括:
从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的业务数据。
根据本发明的另一方面,提供了一种校对支付数据的方法,包括:
加载过滤器链,所述过滤器链中分布有多个链式的过滤器,所述过滤器至少包括清洗过滤器与核对过滤器;
在所述清洗过滤器中,从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
在所述清洗过滤器中,识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
在所述清洗过滤器中,针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
在所述清洗过滤器中,合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的支付数据;
在所述清洗过滤器中,将所述支付数据传输至所述过滤器链中位于所述清洗过滤器之后的下一个所述过滤器;
在所述核对过滤器中,核对出与目标支付业务相关的所述支付数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的读取表格的方法或者校对支付数据的方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本发明任一实施例所述的读取表格的方法或者校对支付数据的方法。
在本实施例中,从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串;识别位于同一行单元格的原始文本信息,作为目标文本信息;针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格;合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的业务数据。本实施例直接从便携式文档格式的文件中读取原始文本信息,可以保证后续业务数据的准确性,保证业务的正常运行,此外,在既定的业务下,各列单元格中内容具有特定语义、各列单元格中的内容具有一定的规范,使得各列单元格中的内容在分布上具有一定的分布规律,依据字符串的分布规律对列进行校准,可以避免或减缓字符串错位的情况,大大减少人工校正的操作,减少耗时,降低成本,在整体上高读取表格的效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种读取表格、校对支付数据的方法的流程图;
图2A-图2D是根据本发明实施例一提供的一种从PDF文件读取表格中的业务数据的示例图;
图3是根据本发明实施例一提供的一种匹配字符砝码的示意图;
图4是根据本发明实施例二提供的一种校对支付数据的方法的流程图;
图5是根据本发明实施例三提供的一种校对支付数据的方法的流程图;
图6是根据本发明实施例三提供的一种校对支付数据的架构示意图;
图7是根据本发明实施例四提供的一种读取表格的装置的结构示意图;
图8是根据本发明实施例五提供的一种校对支付数据的装置的结构示意图;
图9是实现本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种读取表格的方法的流程图,本实施例可适用于在PDF文件中直接读取表格中的业务数据、依赖业务特性下数据分布对业务数据进行校准的情况,该方法可以由读取表格的装置来执行,该读取表格、校对支付数据的装置可以采用硬件和/或软件的形式实现,该读取表格的装置可配置于电子设备中。如图1所示,该方法包括:
步骤101、从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息。
在本实施例中,在PDF文件中具有至少一个表格,表格中分布多行多列单元格,除了表格之外,PDF文件中还可以存在其他内容,如文件名称等,本实施例对此不加以限制。
为便于读取表格中的内容,可以在读取表格的内容之前清洗除表格之外的其他内容。
一般情况下,表格具有N行M列的单元格,N与M均为正整数,即,表格中具有N×M个单元格。
在每一行单元格中,同一行中、各个单元格的高度相同,在不同行的单元格中,各个单元格的高度可以相同,也可以不同。
在每一列单元格中,同一列中、各个单元格的宽度相同,在不同列的单元格中,各个单元格的宽度可以相同,也可以不同。
在不同的业务场景中,可以将表格中记录在同一行单元格的内容记为业务数据,即,具有该业务场景中特性的数据。
例如,若业务场景为新闻媒体,则PDF文件又称新闻纪要,以表格的形式记录新闻数据的日期、地点、标题、摘要、作者等业务数据;若业务场景为展会,则PDF文件又称报名名单,以表格的形式记录报名人员的姓名、报名人员所在单位、报名人员的身份证明文件及其编号等业务数据;若业务场景为支付客服,则PDF文件又称支付账单,以表格的形式记录交易单号、交易时间、交易类型、交易方式等业务数据,此时,业务又称支付数据,等等。
为使本领域技术人员更好地理解本发明,在本实施例中,将支付账单及其支付数据作为PDF文件及其业务数据的一种示例进行说明。
在表格中,不同的单元格记录不同的内容,不同内容的长度有所不同,某些长度较长的内容在同一个单元格中会分换行填写。
在本实施例中,可以使用PDFBox(读取和创建PDF文件的Java类库)等工具,自左向右、自上至下从PDF文件中读取位于表格内的内容,由于分行填写内容的缘故,可以将多行内容记为多排原始文本信息。
由于表格中的内容字体大小一致,因而表格中各个单元格的内容在水平上可以对齐,那么,每一排原始文本信息可以指一行原始文本信息。
各个单元格的内容之间会被表格的线条切分,使得每排原始文本信息具有多个单元格的内容,考虑到单元格的内容换行的数量并不一致,使得部分单元格在某排的内容为空,在列上,不同单元格的内容之间被PDFBox等工具以空字符等符号分割,如果将每个单元格的内容记为一份独立的字符串,那么,每排原始文本信息中具有至少一份独立的字符串。
例如,如图2A所示的表格,共8列3行单元格,使用被PDFBox等工具读取的内容,得到如3所示的内容,共6排原始文本信息。
在第3排原始文本信息中,具有“11111111111111”、“15:27:56”、“对方1”、“333”共4份独立的字符串。
步骤102、识别位于同一行单元格的原始文本信息,作为目标文本信息。
在不同的业务场景中,对不同单元格记录的内容的要求有所不同,将不同的要求归纳为出不同的记录规则,按照该记录规则遍历各排原始文本信息,识别在表格中实际位于同一行单元格的至少一排原始文本信息,将至少一排原始文本信息记为目标文本信息。
在一个示例中,如果某个业务场景中要求表格无空的单元格,且所有单元格的内容顶格开始记录,除首行单元格使用一行文本信息记录项目名称之外,非首行单元格中,部分单元格有换行、部分单元格无换行,那么,可以针对每排原始文本信息,在该排原始文本信息中统计所有字符串的数量。
表格中列的数量已知,将某排原始文本信息中所有字符串的数量与表格中列的数量进行比较。
若该排原始文本信息中所有字符串的数量小于表格中列的数量,则可以确定该排原始文本信息属于某行单元格中换行记录的内容。
若该排原始文本信息中所有字符串的数量等于表格中列的数量,则可以确定原始文本信息之上存在切分点。
确定位于相邻两个切分点之间的原始文本信息位于表格中同一行单元格,作为目标文本信息。
例如,如图2A所示,支付账单的表格中共8列单元格,如图2B所示,第2排原始文本数据与第4排原始文本数据中字符串的数量均为8,那么,在第1排原始文本数据与第2排原始文本数据之间、在第3排原始文本数据与第4排原始文本数据之间均存在切分点,第2排原始文本数据与第3排原始文本数据位于两个切分点之间,属于同一行单元格记录的内容,将第2排原始文本数据与第3排原始文本数据分别记为目标文本信息,在默认第1排原始文本数据之上具有切分点、最后1排原始文本数据之下具有切分点,那么,第1排原始文本数据位于两个切分点之间,属于同一行单元格记录的内容,将第1排原始文本数据记为目标文本信息,第4排原始文本数据至第6排原始文本数据位于两个切分点之间,属于同一行单元格记录的内容,将第4排原始文本数据至第6排原始文本数据分别记为目标文本信息。
当然,上述识别目标文本信息的方式只是作为示例,在实施本发明实施例时,可以根据实际情况设置其它识别目标文本信息的方式,例如,在某些业务场景中,某列单元格在开头或结尾具有特殊字符,则可以以该特殊字符定位切分点,等等,本发明实施例对此不加以限制。另外,除了上述识别目标文本信息的方式外,本领域技术人员还可以根据实际需要采用其它识别目标文本信息的方式,本发明实施例对此也不加以限制。
步骤103、针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格。
使用PDFBox等工具读取原始文本信息时,相邻字符串之间的空字符表示字符串在不同列的单元格中,并未表明相邻字符串所在列的单元格之间的关系,因而在同一排目标文本信息排序的顺序并不代表其所在列的单元格的具体位置。
如果直接按照字符串在同一排目标文本信息排序的顺序定位字符串所在列的单元格,将同一行同一列单元格内的字符串合并,会造成字符串错位。
示例性地,如图2B所示,在第3排目标文本信息中,字符串“11111111111111”所在列的单元格与字符串“15:27:56”所在列的单元格相邻,字符串“15:27:56”所在列的单元格与字符串“对方1”所在列的单元格之间间隔了4列单元格,字符串“对方1”所在列的单元格与字符串“333”所在列的单元格相邻,但字符串“11111111111111”、“15:27:56”、“对方1”、“333”之间均表现为一个空字符。
在第5排目标文本信息中,字符串“22222222222222”所在列的单元格与字符串“15:27:33”所在列的单元格相邻,字符串“15:27:33”所在列的单元格与字符串“对方2”所在列的单元格之间间隔了4列单元格,字符串“对方2”所在列的单元格与字符串“4444444444444444”所在列的单元格相邻,但字符串“22222222222222”、“15:27:33”、“对方2”、“4444444444444444”之间均表现为一个空字符。
在第6排目标文本信息中,“444444”处于第8列单元格中,由于第1-7列单元格在第6排目标文本信息中的内容为空,因而“444444”排序第一位。
如图2C所示,在第3排目标文本信息中,如果认为“11111111111111”位于第1列单元格、“15:27:56”位于第2列单元格、“对方1”位于第3列单元格、“333”位于第4列单元格,在合并同一行同一列单元格中的字符串时,会造成“对方1”与“333”错位。
在第5、6排目标文本信息中,如果认为“22222222222222”位于第1列单元格、“15:27:33”位于第2列单元格、“对方2”位于第3列单元格、“4444444444444444”位于第4列单元格,“444444”位于第1列单元格,在合并同一行同一列单元格中的字符串时,会造成“对方2”、“4444444444444444”与“444444”错位。
在既定的业务场景下,表格中各列单元格均有固定的语义,如图2A所示的交易单号、交易时间等,在固定的语义下往往会制定各列单元格记录内容的规范,此时,按照该规范,同一排目标文本信息中的字符串可以表现出一定的分布规律,本实施例中,可以遍历各排目标文本信息,以字符串的分布规律为参考,校准各个字符串在列上所处的单元格,即,定位各个字符串属于某列的单元格。
在本发明的一个实施例中,步骤103可以包括如下步骤:
步骤1031、在目标文本信息中统计字符串的数量。
在遍历每排目标文本信息的过程中,对目标文本信息中统计所有字符串的数量。
表格中列的数量已知,将每排原始文本信息中所有字符串的数量与表格中列的数量进行比较。
步骤1032、若字符串的数量小于列的数量,则查询为字符串的数量配置的各个分布场景及字符砝码。
在本实施例中,可以针对表格构建各种分布场景,其中,分布场景表示指定数量的字符串分布在各列的单元格的场景。
例如,若表格中具有8列单元格,遍历各行单元格,寻找出某排文本信息上存在4份字符串的情况,记为分布场景。
在分布场景A中,在第1列单元格、第2列单元格、第7列单元格与第8列单元格中分布有4份字符串。
在分布场景B中,在第2列单元格、第4列单元格、第5列单元格与第7列单元格中分布有4份字符串。
那么,对数量为4份字符串配置的分布场景包括分布场景A(即第1列单元格、第2列单元格、第7列单元格与第8列单元格)、分布场景B(即第2列单元格、第4列单元格、第5列单元格与第7列单元格)。
在实际的业务场景中,每列单元格固定语义,该语义下的内容具有一种或多种格式,每种格式的长度是固定的,例如,如图2A所示,“交易时间”使用年月日时分秒的格式记录内容,“交易类型”为转账、商户消费等几种选择,“交易方式”为零钱、储蓄卡、信用卡等几种选择,等等。
那么,每列单元格中的内容换行的情况是有限的,使得每行内容,穷举各个字符串的长度的组合,对组合提取特征、作为分布场景的字符砝码,即,字符砝码为分布场景中的字符串在长度上的特征。
示例性地,在既定的分布场景下,对每种组合下的各个字符串的长度求和,考虑到字符串可能为数字、汉字、英文、符号等,各个字符串的长度之和会存在一定的波动,因而可以针对各个字符串的长度之和生成合适的范围,记为波动范围,将波动范围设置为字符砝码,即,在既定的分布场景下,各个字符串的长度之和在该波动范围内。
当然,上述字符砝码只是作为示例,在实施本发明实施例时,可以根据实际情况设置其它字符砝码,例如,对各个字符串的长度加权求和(和值以范围表示),作为字符砝码,或者,计算各个字符串的长度之间的比值(比值以范围表示),作为字符砝码,等等,本发明实施例对此不加以限制。另外,除了上述字符砝码外,本领域技术人员还可以根据实际需要采用其它字符砝码,本发明实施例对此也不加以限制。
如果当前排目标文本信息中字符串的数量小于表格中列的数量,部分列的单元格中并无内容,此时,查询为字符串的数量配置的各个分布场景及字符砝码,等待校准字符串在列上所处的单元格。
步骤1033、将字符串分布至各列单元格中,得到候选场景。
在本实施例中,可以通过穷举等方式将当前排目标文本信息中的字符串分布在各列的单元格中,将此事字符串分布在各列单元格的情况记为候选场景,以检测这种分布的合理性。
在具体实现中,可以对字符串添加约束条件;在该约束条件的限制下,将字符串排列至各列单元格中,得到候选场景,以减少排列组合的数量,减少运算量。
其中,约束条件包括如下至少一条:
1、字符串维持在同一排目标文本信息排序的顺序
在同一排目标文本信息中,字符串在同一排目标文本信息排序的顺序是一个相对位置,其表达了字符串所在列的单元格之间相对的顺序,因此,在将字符串排列至各列单元格时,应保持在同一排目标文本信息排序的顺序。
例如,如图2B所示,在第3排目标文本信息中,将字符串“11111111111111”、“15:27:56”、“对方1”、“333”排列至各列单元格时,自左向右应保持“11111111111111”排序第1位、“15:27:56”排序第2位、“对方1”排序第3位、“333”排序第4位。
2、在排列至某列单元格时,字符串的长度小于或等于同一列单元格的长度的上限范围。
由于单元格的内容可能为数字、汉字、英文、符号等,因而该单元格可容纳的内容的长度的上限存在波动,对此生成上限范围,内容超过该上限范围会换行继续记录。
针对某列单元格,将待排列至该列单元格的字符串的长度与该列单元格的长度的上限范围进行比较。
如果待排列至该列单元格的字符串的长度大于该列单元格的长度的上限范围,此时并不符合换行的要求,该字符串并不属于该列单元格。
如果待排列至该列单元格的字符串的长度小于或等于该列单元格的长度的上限范围,此时符合换行的要求,该字符串有可能属于该列单元格。
例如,如图2B所示,在第3排目标文本信息中,字符串“11111111111111”的长度大于第2-7列单元格可容纳内容的长度的上限范围,且小于第1、8列单元格可容纳内容的长度的上限范围,在此约束条件下,字符串“11111111111111”可以排列至第1、8列单元格,禁止排列至第2-7列单元格。
3、在排列至某列单元格时,同一列单元格中位于上一排的字符串的长度等于同一列单元格的长度的上限范围。
如果将某个字符串待排列至某列单元格,将同一列单元格中位于上一排的字符串的长度与该列单元格的长度的上限范围进行比较。
一般情况下,上一排的字符串已校准其所处列的单元格。
如果同一列单元格中位于上一排的字符串的长度大于该列单元格的长度的上限范围,此时并不符合换行的要求,当前字符串并不属于该列单元格。
如果同一列单元格中位于上一排的字符串的长度小于或等于该列单元格的长度的上限范围,此时符合换行的要求,当前字符串有可能属于该列单元格。
例如,如图2B所示,在第1-7列单元格中,第5排的目标文本信息中各字符串的长度(某排目标文本信息在某列单元格无分布字符串时,长度可视为0)均小于其所处列的单元格可容纳内容的长度的上限范围,第8列单元格中,第5排的目标文本信息中的字符串的长度等于第8列单元格可容纳内容的长度的上限范围,在此约束条件下,第6排目标文本信息中的字符串“444444”可以排列至第8列单元格,禁止排列至第1-7列单元格。
当然,上述约束条件只是作为示例,在实施本发明实施例时,可以根据实际情况设置其它约束条件,本发明实施例对此不加以限制。另外,除了上述约束条件外,本领域技术人员还可以根据实际需要采用其它约束条件,本发明实施例对此也不加以限制。
步骤1034、若候选场景与分布场景相同,则将字符串的长度与字符砝码进行匹配。
在本实施例中,依次将候选场景与各个分布场景进行对比。
如果某个候选场景与任一分布场景均不同,表示该候选场景在既定的业务场景下并不合理,则可以忽略该候选场景。
如果某个候选场景与任一分布场景均相同,表示该候选场景在既定的业务场景下可能合理,则可以将当前排目标文本信息中各个字符串的长度统计出特征值,将该特征值与该分布场景对应的各个字符砝码进行匹配。
进一步而言,如图3所示,同一分布场景会可能存在多个字符砝码,形成一组字符砝码301。
如果将候选场景各列单元格的位置当作天平左侧的物品的位置,将当前排目标文本信息中各个字符串的长度当作天平左侧的物品的重量,将字符砝码当作天平右侧的砝码,那么,可以将既定候选场景下、当前排目标文本信息中各个字符串的长度与分布场景对应的各个字符砝码进行匹配的过程当作天平称量的过程。
在候选场景C下、当前排目标文本信息中各个字符串的长度与分布场景对应的各个字符砝码匹配失败,天平处于失衡的状态302。
调整物品的位置,天平继续进行称量,即切换至候选场景D,在候选场景D下、当前排目标文本信息中各个字符串的长度与分布场景对应的各个字符砝码匹配失败,天平处于失衡的状态303。
调整物品的位置,天平继续进行称量,即切换至候选场景E,在候选场景E下、当前排目标文本信息中各个字符串的长度与分布场景对应的各个字符砝码匹配成功,天平达到平衡状态304,此时,停止进行称量。
示例性地,字符砝码为分布场景中的所有字符串的长度之和所处的波动范围;那么,在本示例中,对当前排目标文本信息中各个字符串的长度求和,得到总长度,并将总长度与波动范围进行比较。
若总长度在波动范围内,即,总长度大于或等于波动范围的下限值,并且,总长度小于或等于波动范围的上限值,则可以确定字符串的长度与字符砝码匹配成功。
若总长度在波动范围外,即,总长度小于波动范围的下限值或者总长度大于波动范围的上限值,则可以确定字符串的长度与字符砝码匹配失败。
当然,上述匹配方式只是作为示例,在实施本发明实施例时,可以根据字符砝码的实际情况设置其它匹配方式,例如,对当前排目标文本信息中各个字符串的长度加权求和,并与字符砝码进行比较,或者,对当前排目标文本信息中各个字符串的长度计算比值,并与字符砝码进行比较,等等,本发明实施例对此不加以限制。另外,除了上述匹配方式外,本领域技术人员还可以根据实际字符砝码的需要采用其它匹配方式,本发明实施例对此也不加以限制。
如果当前排目标文本信息中各个字符串的长度与任一分布场景对应的任一字符砝码匹配失败,表示当前排目标文本信息中各个字符串并不分布在候选场景下各列单元格。
步骤1035、若匹配成功,则确定字符串已校准在列上所处的单元格。
如果当前排目标文本信息中各个字符串的长度与任一分布场景对应的任一字符砝码匹配成功,则可以确定候选场景合理,当前排目标文本信息中各个字符串分布在候选场景中的各列单元格中,此时,前排目标文本信息中各个字符串已校准在列上所处的单元格。
在本发明的另一个实施例中,步骤103还可以包括如下步骤:
步骤1036、若字符串的数量等于列的数量,则查询字符串在原始文本信息中排序的顺序。
步骤1037、按照顺序依次将字符串划分至各列的单元格。
如果当前排目标文本信息中字符串的数量等于表格中列的数量,所有列的单元格中全部具有内容。
由于在同一排目标文本信息中,各个字符串在同一排目标文本信息排序的顺序是一个相对位置,表达了字符串所在列的单元格之间相对的顺序,在所有列的单元格中全部具有内容时,字符串所在列的单元格之间相对的顺序属于绝对的顺序,此时,按照字符串排序的顺序依次将各个字符串划分至各列的单元格中,例如,将第1位的字符串划分至第1列单元格中,将第2位的字符串划分至第2列单元格中,等等。
步骤104、合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的业务数据。
针对各个字符串,在识别其在行上所处的单元格、在列上所处的单元格时,可以将同时同一行及同一列单元格的字符串按照顺序(自上到下)首尾连接,完成合并。
那么,同一个行各个单元格合并之后的字符串为一条完整的业务数据。
示例性地,如图2D所示,校准“11111111111111”位于第1列单元格、“15:27:56”位于第2列单元格、“对方1”位于第7列单元格、“333”位于第8列单元格,在合并同一行同一列单元格中的字符串时,“对方1”与“333”无错位,可以得到准确的支付数据。
校准“22222222222222”位于第1列单元格、“15:27:33”位于第2列单元格、“对方2”位于第7列单元格、“4444444444444444”位于第8列单元格,“444444”位于第8列单元格,在合并同一行同一列单元格中的字符串时,“对方2”、“4444444444444444”与“444444”无错位,可以得到准确的支付数据。
在本实施例中,从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串;识别位于同一行单元格的原始文本信息,作为目标文本信息;针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格;合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的业务数据。本实施例直接从便携式文档格式的文件中读取原始文本信息,可以保证后续业务数据的准确性,保证业务的正常运行,此外,在既定的业务下,各列单元格中内容具有特定语义、各列单元格中的内容具有一定的规范,使得各列单元格中的内容在分布上具有一定的分布规律,依据字符串的分布规律对列进行校准,可以避免或减缓字符串错位的情况,大大减少人工校正的操作,减少耗时,降低成本,在整体上高读取表格的效率。
实施例二
图4为本发明实施例二提供的一种校对支付数据的方法的流程图,本实施例可适用于链式校对PDF格式的支付账单中的支付数据,在清洗时,在支付账单中直接读取表格中的支付数据、依赖业务特性下数据分布对支付数据进行校准的情况,该方法可以由校对支付数据的装置来执行,该校对支付数据的装置可以采用硬件和/或软件的形式实现,该校对支付数据的装置可配置于电子设备中。如图4所示,该方法包括:
步骤401、加载过滤器链。
在本实施例中,设计了应用责任链模式的过滤器链,过滤器链中分布有多个链式的过滤器,每个过滤器负责校对支付数据中的一项独立的业务操作,责任链模式可以解耦校对支付数据的逻辑和具体的过滤器实现。
所谓链式,可以指在过滤器链中,前一个过滤器的输出为后一个过滤器的输入。
在实际应用中,过滤器至少包括清洗过滤器与核对过滤器,在过滤器链中,核对过滤器位于清洗过滤器之后,其中,清洗过滤器负责从PDF格式的支付账单中读取准确的支付数据,核对过滤器负责核出指示目标支付业务的支付数据。
在本发明的一个实施例中,过滤器链应用过滤器可插拔的责任链模式,对过滤器实现热插拔的功能,方便扩展和修改过滤器的处理逻辑。
在清洗过滤器与核对过滤器的基础上,过滤器还包括筛选过滤器,在过滤器链中,筛选过滤器位于清洗过滤器之后,核对过滤器位于筛选过滤器之后,其中,筛选过滤器负责筛选与支付对象相关的支付数据。
那么,在本实施例中,步骤401可以包括如下步骤:
步骤4011、启动过滤器链。
在本实施例中,定义一个过滤器链类,用于管理所有的过滤器,在过滤器链类中,包含一个指向第一个过滤器的指针,以及一个添加或删除过滤器的方法。
对过滤器链类实例化,得到过滤器链对象,从而启动过滤器链。
步骤4012、创建清洗过滤器、筛选过滤器与核对过滤器。
步骤4013、在过滤器链中添加清洗过滤器、筛选过滤器与核对过滤器。
在本实施例中,定义一个过滤器接口,其中包含一个处理请求的方法,以及设置下一个过滤器的方法。
另外,实现多个过滤器类(如清洗过滤器、筛选过滤器与核对过滤器等),这些过滤器类均实现了过滤器接口,可以根据自身的逻辑来判断是否能够处理请求。如果能够处理该请求,则处理该请求,并将处理该请求的结果传递给下一个过滤器,如果不能处理该请求,则直接将该请求传递给下一个过滤器。
对多个过滤器类实例化,得到多个过滤器对象,从而创建清洗过滤器、筛选过滤器与核对过滤器,并将清洗过滤器、筛选过滤器与核对过滤器添加至过滤器链中进行管理。
在实际应用中,可以在启动过滤器链时,创建清洗过滤器与核对过滤器,筛选过滤器可以通过懒加载的方式进行创建,以合理分配资源的占用,减少前期对资源的占用,提高前期校对支付数据的效率。
进一步而言,可以启动第一线程池,在第一线程池中启动清洗过滤器,此外,启动第二线程池,在第二线程池中启动筛选过滤器与核对过滤器。
其中,第一线程池与第二线程池均为线程池,可以实现批处理,减少了各个过滤器执行业务操作时创建销毁线程开销的代价,也减少了各个过滤器执行业务操作时线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。
考虑到清洗过滤器的运算量较大,为保证清洗过滤器的正常运行,可以分配一个独立的线程池,而筛选过滤器与核对过滤器的逻辑相近且运算量较少,可以分配一个共同的线程池,降低资源的占用。
步骤4014、将起始指针指向清洗过滤器。
在过滤器链中,将起始指针指向清洗过滤器,其中,起始指针为指向第一个过滤器的指针,那么,清洗过滤器位于过滤器链上的首个过滤器,输入过滤器链的数据将输入清洗过滤器。
步骤4015、在插入筛选过滤器时,在清洗过滤器中将下一个过滤器设置为筛选过滤器,在筛选过滤器中将下一个过滤器设置为核对过滤器。
如果要在过滤器链中插入筛选过滤器、使筛选过滤器上线,此时,调用清洗过滤器的过滤器接口中设置下一个过滤器的方法,将清洗过滤器下一个过滤器设置为筛选过滤器,调用筛选过滤器中的过滤器接口中设置下一个过滤器的方法,将筛选过滤器下一个过滤器设置为核对过滤器。
步骤4016、在拔出筛选过滤器时,在清洗过滤器中将下一个过滤器设置为核对过滤器。
如果要在过滤器链中拔出筛选过滤器、使筛选过滤器离线,此时,调用清洗过滤器的过滤器接口中设置下一个过滤器的方法,将清洗过滤器下一个过滤器设置为核对过滤器。
步骤402、在清洗过滤器中,从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息。
其中,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串。
在实际应用中,表格具有N行M列的单元格,每一行单元格中,各个单元格的高度相同,每一列单元格中,各个单元格的宽度相同。
步骤403、在清洗过滤器中,识别位于同一行单元格的原始文本信息,作为目标文本信息。
示例性地,在原始文本信息中统计字符串的数量;若原始文本信息中字符串的数量等于表格中列的数量,则确定原始文本信息之上存在切分点;确定位于相邻两个切分点之间的原始文本信息位于同一行单元格,作为目标文本信息。
步骤404、在清洗过滤器中,针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格。
在本发明的一个实施例中,步骤404可以包括如下步骤:
步骤4041、在目标文本信息中统计字符串的数量。
步骤4042、若字符串的数量小于列的数量,则查询为字符串的数量配置的各个分布场景及字符砝码。
其中,分布场景表示指定数量的字符串分布在各列的单元格的场景,字符砝码为分布场景中的字符串在长度上的特征。
步骤4043、将字符串分布至各列单元格中,得到候选场景。
在具体实现中,对字符串添加约束条件;在约束条件的限制下,将字符串排列至各列单元格中。
其中,约束条件包括如下至少一条:
字符串维持在同一排目标文本信息排序的顺序。
在排列至某列单元格时,字符串的长度小于或等于同一列单元格的长度的上限范围。
在排列至某列单元格时,同一列单元格中位于上一排的字符串的长度等于同一列单元格的长度的上限范围。
步骤4044、若候选场景与分布场景相同,则将字符串的长度与字符砝码进行匹配。
示例性地,字符砝码为分布场景中的所有字符串的长度之和所处的波动范围,在本示例中,对字符串的长度求和,得到总长度;若总长度在波动范围内,则确定字符串的长度与字符砝码匹配成功。
步骤4045、若匹配成功,则确定字符串已校准在列上所处的单元格。
在本发明的另一个实施例中,步骤404可以包括如下步骤:
步骤4046、若字符串的数量等于列的数量,则查询字符串在原始文本信息中排序的顺序。
步骤4047、按照顺序依次将字符串划分至各列单元格。
步骤405、在清洗过滤器中,合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的支付数据。
在本实施例中,由于清洗过滤器处理请求的方法与实施例一的应用基本相似,所以描述的比较简单,相关之处参见实施例一的部分说明即可,本实施例在此不加以详述。
步骤406、在清洗过滤器中,将支付数据传输至过滤器链中位于清洗过滤器之后的下一个过滤器。
在清洗过滤器中,查询过滤器接口中设置下一个过滤器的方法,按照过滤器接口中设置下一个过滤器的方法将支付数据传输至下一个过滤器。
若过滤器接口中设置下一个过滤器的方法设置为核对过滤器,则清洗过滤器可以将支付数据传输至核对过滤器。
步骤407、在核对过滤器中,核对出与目标支付业务相关的支付数据。
核对过滤器将某些支付业务为目标支付业务,在接收到清洗过滤器输出的支付数据时,对支付数据进行核对,寻找与目标支付业务相关的支付数据,并将这些支付数据保存至数据库中。
以与退款相关的支付业务作为目标支付业务的示例,预先记录用户在申请退款时提供的商户单号与金额,将商户单号、金额分别与支付数据进行比较,如果支付数据中含有相同的商户单号与金额,则可以认为该支付数据为与目标支付业务相关的支付数据。
在本实施例中,加载过滤器链,过滤器链中分布有多个链式的过滤器,过滤器至少包括清洗过滤器与核对过滤器;在清洗过滤器中,从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串;在清洗过滤器中,识别位于同一行单元格的原始文本信息,作为目标文本信息;在清洗过滤器中,针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格;在清洗过滤器中,合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的支付数据;在清洗过滤器中,将支付数据传输至过滤器链中位于清洗过滤器之后的下一个过滤器;在核对过滤器中,核对出与目标支付业务相关的支付数据。本实施例直接从便携式文档格式的支付账单中读取原始文本信息,可以保证后续支付数据的准确性,保证支付业务的正常运行,此外,在既定的支付业务下,各列单元格中内容具有特定语义、各列单元格中的内容具有一定的规范,使得各列单元格中的内容在分布上具有一定的分布规律,依据字符串的分布规律对列进行校准,可以避免或减缓字符串错位的情况,大大减少人工校正的操作,减少耗时,降低成本,在整体上高读取表格的效率。
此外,过滤器链中可以解耦校对支付数据的逻辑和具体的过滤器实现,方便过滤器链管理各个过滤器,提高校对支付数据的效率。
实施例三
图5为本发明实施例三提供的一种校对支付数据的方法的流程图,本实施例在实施例的基础上增加缓存队列、筛选过滤器。如图5所示,该方法包括:
步骤501、加载过滤器链。
如图6所示,过滤器链中分布有多个链式的过滤器,过滤器包括清洗过滤器、筛选过滤器与核对过滤器。
其中,筛选过滤器属于可拔插的过滤器,在本实施例中,插入筛选过滤器,因而线上链式依次应用清洗过滤器、筛选过滤器与核对过滤器。
当然,在拔出筛选过滤器时,线上链式依次应用清洗过滤器与核对过滤器。
步骤502、若接收到属于便携式文档格式的支付账单,则将支付账单写入预设的缓冲队列中。
步骤503、在缓冲队列满足预设的条件时,触发清洗过滤器。
在本实施例中,如图6所示,可以使用线程池接收用户601(如客服)上传的PDF格式的支付账单,针对该支付账单生成校对支付数据的任务,该任务属于离线任务,用户在上传完支付账单后立即返回,并不等待校对支付数据的任务完成,那么,该线程池可记为离线任务线程池。
同时,校对支付数据的任务采用异步非阻塞的方式执行,支持连续上传多个支付账单进行处理,支付账单会写入缓冲队列602中等待执行,在缓冲队列602满足预设的条件时,延时触发过滤器链中第一个过滤器,此时,在过滤器链中查询到起始指针指向清洗过滤器,此时,触发清洗过滤器,从缓冲队列中读取支付账单。
其中,条件包括缓冲队列的容量超过预设的第一阈值、或者,缓冲队列存储支付账单的时长超过预设的第二阈值。
步骤504、在清洗过滤器中,从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息。
其中,表格中分布多行多列单元格,每排原始文本信息中具有至少一份字符串。
步骤505、在清洗过滤器中,识别位于同一行单元格的原始文本信息,作为目标文本信息。
步骤506、在清洗过滤器中,针对每排目标文本信息,依据字符串的分布规律校准字符串在列上所处的单元格。
步骤507、在清洗过滤器中,合并位于同一行及同一列单元格的字符串,得到位于同一行单元格的支付数据。
步骤508、在清洗过滤器中,按页切分支付账单的支付数据。
一般情况下,支付账单中是包含多页内容的,在合并位于同一行及同一列单元格的字符串时,可以得到一个按照页、行和列组成的三维数组。
由于每一行的支付数据是相互独立的,并且,后续处理的过程也不会相互影响,因此,可以按页切分支付账单的支付数据,将三维数组按页分割成多个部分,每个部分为按行和列组成的二维数组,减少了数据量,可以大大提高账单核实的效率。
步骤509、在清洗过滤器中,将支付数据传输至过滤器链中位于清洗过滤器之后的下一个过滤器。
如图6所示,在清洗过滤器中,查询过滤器接口中设置下一个过滤器的方法,按照过滤器接口中设置下一个过滤器的方法将支付数据传输至下一个过滤器。
若过滤器接口中设置下一个过滤器的方法设置为筛选过滤器,则清洗过滤器可以将支付数据传输至筛选过滤器。
步骤510、在筛选过滤器中,查询支付对象的标识信息,滤除未包含标识信息的支付数据,保留包含标识信息的支付数据。
在实际应用中,支付账单中包含了大量与支付对象无关的支付数据,那么,在筛选过滤器中,可以预先设置查询支付对象的标识信息,如公司的名称等。
如图6所示,第二线程池中提供多个线程实现筛选过滤器,每个线程负责将一条支付数据与各个支付对象的标识信息进行比较,滤除未包含支付对象的标识信息的支付数据,保留包含支付对象的标识信息的支付数据,减少支付数据的数量,提高后续处理的效率。
步骤511、在筛选过滤器中,将支付数据传输至过滤器链中位于清洗过滤器之后的下一个过滤器。
如图6所示,在筛选过滤器中,查询过滤器接口中设置下一个过滤器的方法,按照过滤器接口中设置下一个过滤器的方法将支付数据传输至下一个过滤器。
若过滤器接口中设置下一个过滤器的方法设置为筛选过滤器,则筛选过滤器可以将支付数据传输至筛选过滤器。
步骤512、在核对过滤器中,核对出与目标支付业务相关的支付数据。
如图6所示,核对过滤器在接收到筛选过滤器输出的支付数据时,对支付数据进行核对,寻找与目标支付业务相关的支付数据,并将这些支付数据保存至数据库中,实现支付数据的持久化,以便后续用户查看与提取。
实施例四
图7为本发明实施例四提供的一种读取表格的装置的结构示意图。如图7所示,该装置包括:
原始文本信息读取模块701,用于从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
目标文本信息识别模块702,用于识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
列校准模块703,用于针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
字符串合并模块704,用于合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的业务数据。
在实际应用中,所述表格具有N行M列的单元格,每一行所述单元格中,各个所述单元格的高度相同,每一列所述单元格中,各个所述单元格的宽度相同。
在本发明的一个实施例中,所述目标文本信息识别模块702包括:
数量统计模块,用于在所述原始文本信息中统计所述字符串的数量;
切分点确定模块,用于若所述原始文本信息中所述字符串的数量等于所述表格中列的数量,则确定所述原始文本信息之上存在切分点;
切分点划分模块,用于确定位于相邻两个所述切分点之间的所述原始文本信息位于同一行所述单元格,作为目标文本信息。
在本发明的一个实施例中,所述列校准模块703包括:
数量统计模块,用于在所述目标文本信息中统计所述字符串的数量;
分布信息查询模块,用于若所述字符串的数量小于所述列的数量,则查询为所述字符串的数量配置的各个分布场景及字符砝码,所述分布场景表示指定数量的字符串分布在各列的单元格的场景,所述字符砝码为所述分布场景中的字符串在长度上的特征;
字符串分布模块,用于将所述字符串分布至各列所述单元格中,得到候选场景;
字符砝码匹配模块,用于若所述候选场景与所述分布场景相同,则将所述字符串的长度与所述字符砝码进行匹配;
列确定模块,用于若匹配成功,则确定所述字符串已校准在列上所处的所述单元格。
在本发明的一个实施例中,所述字符串分布模块包括:
约束条件添加模块,用于对所述字符串添加约束条件;
约束条件配列模块,用于在所述约束条件的限制下,将所述字符串排列至各列所述单元格中;
其中,所述约束条件包括如下至少一条:
所述字符串维持在同一排所述目标文本信息排序的顺序;
在排列至某列所述单元格时,所述字符串的长度小于或等于同一列所述单元格的长度的上限范围;
在排列至某列所述单元格时,同一列所述单元格中位于上一排的所述字符串的长度等于同一列所述单元格的长度的上限范围。
在本发明的一个实施例中,所述字符砝码为所述分布场景中的所有字符串的长度之和所处的波动范围;
所述字符砝码匹配模块包括:
总长度计算模块,用于对所述字符串的长度求和,得到总长度;
匹配结构生成模块,用于若所述总长度在所述波动范围内,则确定所述字符串的长度与所述字符砝码匹配成功。
在本发明的一个实施例中,所述列校准模块703还包括:
顺序查询模块,用于若所述字符串的数量等于列的数量,则查询所述字符串在所述原始文本信息中排序的顺序;
顺序排列模块,用于按照所述顺序依次将所述字符串划分至各列所述单元格。
本发明实施例所提供的读取表格的装置可执行本发明任意实施例所提供的读取表格的方法,具备执行读取表格的方法相应的功能模块和有益效果。
实施例五
图8为本发明实施例五提供的一种校对支付数据的装置的结构示意图。如图8所示,该装置包括:
过滤器链800,所述过滤器链中分布有多个链式的过滤器,所述过滤器至少包括清洗过滤器801与核对过滤器802;
所述清洗过滤器801用于:
从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的支付数据;
将所述支付数据传输至所述过滤器链中位于所述清洗过滤器之后的下一个所述过滤器;
所述核对过滤器802,用于核对出与目标支付业务相关的所述支付数据。
在实际应用中,所述表格具有N行M列的单元格,每一行所述单元格中,各个所述单元格的高度相同,每一列所述单元格中,各个所述单元格的宽度相同。
在本发明的一个实施例中,所述清洗过滤器801还用于:
在所述原始文本信息中统计所述字符串的数量;
若所述原始文本信息中所述字符串的数量等于所述表格中列的数量,则确定所述原始文本信息之上存在切分点;
确定位于相邻两个所述切分点之间的所述原始文本信息位于同一行所述单元格,作为目标文本信息。
在本发明的一个实施例中,所述清洗过滤器801还用于:
在所述目标文本信息中统计所述字符串的数量;
若所述字符串的数量小于所述列的数量,则查询为所述字符串的数量配置的各个分布场景及字符砝码,所述分布场景表示指定数量的字符串分布在各列的单元格的场景,所述字符砝码为所述分布场景中的字符串在长度上的特征;
将所述字符串分布至各列所述单元格中,得到候选场景;
若所述候选场景与所述分布场景相同,则将所述字符串的长度与所述字符砝码进行匹配;
若匹配成功,则确定所述字符串已校准在列上所处的所述单元格。
在本发明的一个实施例中,所述清洗过滤器801还用于:
对所述字符串添加约束条件;
在所述约束条件的限制下,将所述字符串排列至各列所述单元格中;
其中,所述约束条件包括如下至少一条:
所述字符串维持在同一排所述目标文本信息排序的顺序;
在排列至某列所述单元格时,所述字符串的长度小于或等于同一列所述单元格的长度的上限范围;
在排列至某列所述单元格时,同一列所述单元格中位于上一排的所述字符串的长度等于同一列所述单元格的长度的上限范围。
在本发明的一个实施例中,所述字符砝码为所述分布场景中的所有字符串的长度之和所处的波动范围;
所述清洗过滤器801还用于:
对所述字符串的长度求和,得到总长度;
若所述总长度在所述波动范围内,则确定所述字符串的长度与所述字符砝码匹配成功。
在本发明的一个实施例中,所述清洗过滤器801还用于:
若所述字符串的数量等于列的数量,则查询所述字符串在所述原始文本信息中排序的顺序;
按照所述顺序依次将所述字符串划分至各列所述单元格。
在本发明的一个实施例中,还包括:
离线任务线程池,用于若接收到属于便携式文档格式的支付账单,则将所述支付账单写入预设的缓冲队列中;
在所述缓冲队列满足预设的条件时,触发所述清洗过滤器;
其中,所述条件包括所述缓冲队列的容量超过预设的第一阈值、或者,所述缓冲队列存储所述支付账单的时长超过预设的第二阈值。
在本发明的一个实施例中,所述过滤器还包括筛选过滤器803,所述过滤器链800用于:
创建清洗过滤器、筛选过滤器与核对过滤器;
在所述过滤器链中添加所述清洗过滤器、所述筛选过滤器与所述核对过滤器;
将起始指针指向所述清洗过滤器,所述起始指针为指向第一个所述过滤器的指针;
在插入所述筛选过滤器时,在所述清洗过滤器中将下一个所述过滤器设置为所述筛选过滤器,在所述筛选过滤器中将下一个所述过滤器设置为所述核对过滤器;
在拔出所述筛选过滤器时,在所述清洗过滤器中将下一个所述过滤器设置为所述核对过滤器。
在本发明的一个实施例中,所述过滤器链800还用于:
启动第一线程池;
在所述第一线程池中启动清洗过滤器;
启动第二线程池;
在所述第二线程池中启动筛选过滤器与核对过滤器。
在本发明的一个实施例中,所述清洗过滤器801还用于:
按页切分所述支付账单的所述支付数据。
在本发明的一个实施例中,所述过滤器还包括筛选过滤器803,所述筛选过滤器803用于:
查询支付对象的标识信息,滤除未包含所述标识信息的所述支付数据,保留包含所述标识信息的所述支付数据;
将所述支付数据传输至所述过滤器链中位于所述清洗过滤器之后的下一个所述过滤器。
本发明实施例所提供的校对支付数据的装置可执行本发明任意实施例所提供的校对支付数据的方法,具备执行校对支付数据的方法相应的功能模块和有益效果。
实施例六
图9示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,如读取表格方法或者校对支付数据的方法。
在一些实施例中,读取表格方法或者校对支付数据的方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的读取表格方法或者校对支付数据的方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行读取表格方法或者校对支付数据的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
实施例七
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时实现如本发明任一实施例所提供的读取表格方法或者校对支付数据的方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种读取表格的方法,其特征在于,包括:
从属于便携式文档格式的文件中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的业务数据。
2.根据权利要求1所述的方法,其特征在于,所述表格具有N行M列的单元格,每一行所述单元格中,各个所述单元格的高度相同,每一列所述单元格中,各个所述单元格的宽度相同。
3.根据权利要求1所述的方法,其特征在于,所述识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息,包括:
在所述原始文本信息中统计所述字符串的数量;
若所述原始文本信息中所述字符串的数量等于所述表格中列的数量,则确定所述原始文本信息之上存在切分点;
确定位于相邻两个所述切分点之间的所述原始文本信息位于同一行所述单元格,作为目标文本信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格,包括:
在所述目标文本信息中统计所述字符串的数量;
若所述字符串的数量小于所述列的数量,则查询为所述字符串的数量配置的各个分布场景及字符砝码,所述分布场景表示指定数量的字符串分布在各列的单元格的场景,所述字符砝码为所述分布场景中的字符串在长度上的特征;
将所述字符串分布至各列所述单元格中,得到候选场景;
若所述候选场景与所述分布场景相同,则将所述字符串的长度与所述字符砝码进行匹配;
若匹配成功,则确定所述字符串已校准在列上所处的所述单元格。
5.根据权利要求4所述的方法,其特征在于,所述将所述字符串分布至各列所述单元格中,包括:
对所述字符串添加约束条件;
在所述约束条件的限制下,将所述字符串排列至各列所述单元格中;
其中,所述约束条件包括如下至少一条:
所述字符串维持在同一排所述目标文本信息排序的顺序;
在排列至某列所述单元格时,所述字符串的长度小于或等于同一列所述单元格的长度的上限范围;
在排列至某列所述单元格时,同一列所述单元格中位于上一排的所述字符串的长度等于同一列所述单元格的长度的上限范围。
6.根据权利要求4所述的方法,其特征在于,所述字符砝码为所述分布场景中的所有字符串的长度之和所处的波动范围;
所述将所述字符串的长度与所述字符砝码进行匹配,包括:
对所述字符串的长度求和,得到总长度;
若所述总长度在所述波动范围内,则确定所述字符串的长度与所述字符砝码匹配成功。
7.根据权利要求4所述的方法,其特征在于,所述针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格,还包括:
若所述字符串的数量等于列的数量,则查询所述字符串在所述原始文本信息中排序的顺序;
按照所述顺序依次将所述字符串划分至各列所述单元格。
8.一种校对支付数据的方法,其特征在于,包括:
加载过滤器链,所述过滤器链中分布有多个链式的过滤器,所述过滤器至少包括清洗过滤器与核对过滤器;
在所述清洗过滤器中,从属于便携式文档格式的支付账单中读取位于表格内的多排原始文本信息,所述表格中分布多行多列单元格,每排所述原始文本信息中具有至少一份字符串;
在所述清洗过滤器中,识别位于同一行所述单元格的所述原始文本信息,作为目标文本信息;
在所述清洗过滤器中,针对每排所述目标文本信息,依据所述字符串的分布规律校准所述字符串在列上所处的所述单元格;
在所述清洗过滤器中,合并位于同一行及同一列所述单元格的所述字符串,得到位于同一行所述单元格的支付数据;
在所述清洗过滤器中,将所述支付数据传输至所述过滤器链中位于所述清洗过滤器之后的下一个所述过滤器;
在所述核对过滤器中,核对出与目标支付业务相关的所述支付数据。
9.根据权利要求8所述的方法,其特征在于,还包括:
若接收到属于便携式文档格式的支付账单,则将所述支付账单写入预设的缓冲队列中;
在所述缓冲队列满足预设的条件时,触发所述清洗过滤器;
其中,所述条件包括所述缓冲队列的容量超过预设的第一阈值、或者,所述缓冲队列存储所述支付账单的时长超过预设的第二阈值。
10.根据权利要求8所述的方法,其特征在于,所述过滤器还包括筛选过滤器,所述加载过滤器链,包括:
启动过滤器链;
创建清洗过滤器、筛选过滤器与核对过滤器;
在所述过滤器链中添加所述清洗过滤器、所述筛选过滤器与所述核对过滤器;
将起始指针指向所述清洗过滤器,所述起始指针为指向第一个所述过滤器的指针;
在插入所述筛选过滤器时,在所述清洗过滤器中将下一个所述过滤器设置为所述筛选过滤器,在所述筛选过滤器中将下一个所述过滤器设置为所述核对过滤器;
在拔出所述筛选过滤器时,在所述清洗过滤器中将下一个所述过滤器设置为所述核对过滤器。
11.根据权利要求10所述的方法,其特征在于,所述创建清洗过滤器、筛选过滤器与核对过滤器,包括:
启动第一线程池;
在所述第一线程池中启动清洗过滤器;
启动第二线程池;
在所述第二线程池中启动筛选过滤器与核对过滤器。
12.根据权利要求8所述的方法,其特征在于,还包括:
在所述清洗过滤器中,按页切分所述支付账单的所述支付数据。
13.根据权利要求8-12中任一项所述的方法,其特征在于,所述过滤器还包括筛选过滤器,还包括:
在所述筛选过滤器中,查询支付对象的标识信息,滤除未包含所述标识信息的所述支付数据,保留包含所述标识信息的所述支付数据;
在所述筛选过滤器中,将所述支付数据传输至所述过滤器链中位于所述清洗过滤器之后的下一个所述过滤器。
14.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的读取表格的方法,或者,权利要求8-13中任一项所述的校对支付数据的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现权利要求1-7中任一项所述的读取表格的方法,或者,权利要求8-13中任一项所述的校对支付数据的方法。
CN202310634759.4A 2023-05-31 2023-05-31 一种读取表格、校对支付数据的方法、设备及存储介质 Pending CN116663507A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310634759.4A CN116663507A (zh) 2023-05-31 2023-05-31 一种读取表格、校对支付数据的方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310634759.4A CN116663507A (zh) 2023-05-31 2023-05-31 一种读取表格、校对支付数据的方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116663507A true CN116663507A (zh) 2023-08-29

Family

ID=87723702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310634759.4A Pending CN116663507A (zh) 2023-05-31 2023-05-31 一种读取表格、校对支付数据的方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116663507A (zh)

Similar Documents

Publication Publication Date Title
US5394487A (en) Forms recognition management system and method
EP1004073B1 (en) Method and apparatus for concurrent data processing
CN111428599A (zh) 票据识别方法、装置和设备
CN108376364B (zh) 一种支付系统对账的方法、设备及终端设备
CN112016273A (zh) 文档目录生成方法、装置、电子设备及可读存储介质
CN101216783A (zh) 一种针对多事务进行优化排序处理的方法
CN106294125A (zh) 银行核心系统数据处理方法
US10438282B2 (en) Computerized invoice record and receipt record matching utilizing best match criteria
CN113269101A (zh) 一种票据识别方法、装置和设备
CN112926299B (zh) 一种文本比对方法、合同审阅方法、审核系统
CN111340323B (zh) 一种投诉服务请求自动派单方法及系统
CN111144963A (zh) 一种自动化开票方法及系统
CN114612905A (zh) 基于rpa和ai的发票处理方法、装置、设备和介质
CN116663507A (zh) 一种读取表格、校对支付数据的方法、设备及存储介质
CN111292068B (zh) 一种合同信息审核方法、装置、电子设备及存储介质
CN111914008A (zh) 工单数据批量导出的方法、装置、电子设备以及介质
CN112183037A (zh) 一种平行企业财税SaaS系统中数据分类汇总方法及系统
CN109324963B (zh) 自动测试收益结果的方法及终端设备
CN116503878A (zh) 一种业务决策处理方法及装置
CN116775575A (zh) 一种文件合并方法、装置、电子设备及存储介质
CN109829769A (zh) 一种电子发票查重方法及系统
CN112651725B (zh) 电子发票解析方法和装置
CN116976800A (zh) 数据处理方法、装置、存储介质及电子设备
CN115294586A (zh) 一种识别发票的方法、装置、存储介质及电子设备
CN115357367B (zh) 费用支付任务调度方法及计算机设备

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