银行流水数据解析方法与流程

文档序号:37751939发布日期:2024-04-25 10:38阅读:7来源:国知局
本发明属于数据解析,特别是涉及一种银行流水数据解析方法。
背景技术
::1、目前各个银行企业系统已十分成熟,企业银行流水包含了大量企业资金的信息,可以从流水中实时了解资金健康状况,分析收入支出规模,还可以发现异常交易等问题。但是由于各个银行系统的不一致导致了企业获取到的银行流水文件从文件格式,文件内容和字段名称等都不一样,由于不同银行流水样式众多,需要进行标准化解析,统一数据格式才能实现资金自动化管理。2、目前已有的银行流水解析方法对常见的excel格式和有边框表格pdf格式的流水,能够比较好的解析,因为对于这两种格式,其内部本身就是结构化的数据。但对于无边框表格pdf格式的流水,因为内部是非结构化的数据,目前并没有比较好的解析方法,特别是多行数据的情况下,解析结果的准确性较差,无法满足资金自动化管理的需要。技术实现思路1、本发明主要解决的技术问题是提供一种银行流水数据解析方法,能够全面的、准确的,快捷的解析目前不同银行不同格式的流水数据,特别是对无边框表格pdf流水格式的准确解析,为后续资金自动化管理提供数据支持。2、为解决上述技术问题,本发明采用的一个技术方案是:一种银行流水数据解析方法,包括以下步骤:3、s1:通过上传模块获取各类银行流水数据文件;4、s2:通过上传文件后缀名或文件特征区分流水文件格式;5、s3:针对上传文件格式加载对应的格式转换模块;6、s31:对txt、csv类型文件加载文本文件格式转换模块进行统一格式转换;7、s32:对xls、xlsx类型文件加载excel文件格式转换模块进行统一格式转换;8、s33:对pdf类型文件加载pdf文件格式转换模块进行统一格式转换;9、s331:逐页提取pdf文件所有表格数据,合并表格数据转换存储到统一格式内存数据表;10、s332:如果pdf文件没有提取到表格数据,开始对文件进行无框表格识别,重建表格结构数据,表格识别成功后将表格数据转换存储到统一格式内存数据表;11、s3321:通过流水关键字识别出页面上表格区域,更进一步划分表头区域和内容区域;12、s3322:在表格表头区域和表格内容区域内进一步识别具体的表头数据和内容数据;13、s3323:根据表格内容字符数据区域坐标做垂直投影做列切分;14、s3324:根据相邻垂直投影区域间距计算平均列宽,将小于平均列宽的垂直投影区域进行列合并,计算表头偏移,解决表头和表数据发生偏移的情况,做列合并生成最终内容列区域;15、s3325:根据表格内容数据区域坐标做水平投影做行切分;16、s3326:根据相邻水平投影区域间距计算平均行高,将小于行高的水平投影区域进行合并,生成最终表格内容行区域;17、s3327:将表格区域按识别出的行列区域进行划分重建表格;18、s3328:表格区域内所有文字内容区域,与识别出来的行列区域做交集匹配,判断所属行列,按行列索引存储到内存表;19、s4:基于上面步骤完成后生成的统一格式内存数据表,加载流水解析模块,根据不同银行流水数据标题特征,进行银行分类;20、根据不同银行种类的不同账户种类,流水解析模块加载对应的流水模版,依据模版配置的字段坐标,字段转换规则,字段合并规则,逐行提取流水数据转换成标准数据格式存储到数据库。21、进一步地说,步骤s31的具体方法为对文本文件利用行,列分割符,逐行读取流水数据转换存储到统一格式内存数据表,步骤s32的具体方法为对excel文件按sheet表格逐行读取流水数据转换存储到统一格式内存数据表。22、进一步地说,步骤s3321的具体步骤包括:23、(1)在页面上搜索识别表格开始行关键字和结束行关键字,并获取关键字坐标和高度;24、(2)计算表格区域坐标:25、xtable=0;26、ytable=y1;27、wtable=wpage;28、htable=y2–y1;29、其中xtable表示表格区域左上角x坐标,ytable表示表格区域左上角y坐标,wtable表示表格区域宽度,htable表示表格区域高度,wpage表示页面宽度,y1表示表格开始行关键字左上角y坐标,y2表示表格结束行关键字左上角y坐标;30、(3)计算表格表头区域坐标:31、xheader=0;32、yheader=y1;33、wheader=wpage;34、htheader=h1;35、其中xheader表示表格表头区域左上角x坐标,yheader表示表格表头区域左上角y坐标,wheader表示表格表头区域宽度,hheader表示表格表头区域高度,wpage表示页面宽度,y1表示表格开始行关键字左上角y坐标,h1表示表格开始行关键字高度;36、(4)计算表格内容区域坐标:37、xdata=0;38、ydata=y1+h1;39、wdata=wpage;40、hdata=y2–y1–h1;41、其中xdata表示表格内容区域左上角x坐标,ydata表示表格内容区域左上角y坐标,wdata表示表格内容区域宽度,hdata表示表格内容区域高度,wpage表示页面宽度,y1表示表格开始行关键字左上角y坐标,y2表示表格结束行关键字左上角y坐标,h1表示表格开始行关键字高度。42、进一步地说,步骤s3322的具体步骤包括:43、(1)在页面上搜索识别所有字符,并获取所有字符坐标和高度保存到集合;44、(2)集合内所有字符坐标与表格表头区域坐标计算交集,判断是否属于表格表头数据;45、scharacter∩sheader={x|x∈scharacter且x∈sheader};46、scharacter表示页面所有字符坐标区域集合,sheader表示表格表头坐标区域,交集集合就是表格表头字符集合;47、(3)集合内所有字符坐标与表格内容区域坐标计算交集,判断是否属于表格内容数据;48、scharacter∩sdata={x|x∈scharacter且x∈sdata};49、scharacter表示页面所有字符坐标区域集合,sdata表示表格内容坐标区域,交集集合就是表格内容字符集合。50、进一步地说,步骤s3323的具体步骤包括:51、xv=xcharacter;52、yv=ydata;53、wv=wcharacter;54、hv=hdata;55、xv表示字符垂直投影区域x坐标,yv表示字符垂直投影区域y坐标,wv表示字符垂直投影区域宽度,hv表示字符垂直投影区域高度,xcharacter表示字符区域x坐标,ydata表示内容区域y坐标,wcharacter表示字符区域宽度,hdata表示内容区域高度。56、进一步地说,步骤s3324的具体步骤包括:57、(1)计算平均列宽column_width=ave(lefti+1-righti);58、(2)依次判断相邻列列间距,如果lefti+1-righti<column_width则合并列ci=ci+1∩ci;59、lefti+1表示i+1列的左边距,righti表示i列右边距,ci表示i列区域,ci+1表示i+1列区域。60、进一步地说,步骤s3325的具体步骤包括:61、xh=0;62、yh=ycharacter;63、wh=wpage;64、hh=hcharacter;65、xh表示字符水平投影区域x坐标,yh表示字符水平投影区域y坐标,wh表示字符水平投影区域宽度,hh表示字符水平投影区域高度,ycharacter表示字符区域y坐标,wpage表示页面宽度,hcharacter表示字符区域高度。66、进一步地说,步骤s3326的具体步骤包括:67、(1)计算平均行高line_height=ave(topi+1-bottomi);68、(2)依次判断相邻每行行间距,如果topi+1-bottomi<line_height则合并行ri=ri+1∩ri;69、topi+1表示i+1行的上边距,bottomi表示i行下边距,ri表示i行区域,ri+1表示i+1行区域。70、进一步地说,步骤s3327的具体步骤包括:71、t=t[row][column];72、t表示内存表,row表示前面步骤识别出来的表格行数,column表示前面步骤识别出来的表格列数。73、进一步地说,步骤s3328的具体步骤包括:74、(1)枚举字符ci区域与识别行集合srow区域判断,如果存在行交集,则此行索引为字符行索引;75、(2)枚举字符ci区域与识别列集合scolumn区域判断,如果存在列交集,则此列索引为字符列索引;76、t[行索引][列索引]=ci;77、t表示内存表,ci表示第i个字符。78、本发明的有益效果至少具有以下几点:79、本发明通过对银行流水进行区分后分别对不同文件格式进行加载转换,包括文本数据、excel数据、pdf数据,能够全面的、准确的,快捷的解析目前不同银行不同格式的流水数据,值得一提的是,通过对无边框表格pdf文件进行版面分析,利用文字投影算法,分割内容为行、列,并计算平均行高,列宽做多行文字合并,最后转化为结构化表格数据,为后续资金自动化管理提供数据支持;80、本发明对企业流水进行标准化解析后,能够快速统计出企业资金余额,收入支出变动等资金信息,让管理人员实时掌握企业资金情况及动向进行决策,让业务人员及时了解客户回款情况,避免与财务、客户频繁沟通浪费时间,让财务人员从大量手工报表中解放出来,从事更多有价值的财务分析工作。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1