本发明涉及财务记账领域,具体涉及匹配凭证单中同一项经济业务的借贷双方的系统和方法。
背景技术:
近年来,随着行政事业单位经济业务的快速发展,财务数据量迅速增多,而相应的财务风险也不断增加,在传统人工稽核的模式下,稽核人员靠人工方式开展稽核业务,面临数据多效率低、问题复杂、发现之后、关注面窄等问题。为了减轻稽核人员工作压力,在事中发现财务风险问题,我们利用“大数据+自然语言处理”的新技术辅助财务稽核人员发现风险。在引入新技术后,如何在大量的分录数据中找到一项经济业务的借贷双方成了难题,而匹配一项经济业务的财务记账借贷双方对我们建立风险预警模型至关重要。为此,我们利用大数据相关原理进行自动挖掘并匹配同一项经济业务的关系。
每个公司中财务部门每天都会处理大量的凭证单,随着现在电子化办公的普及,大量的凭证单录入电脑系统后,财务人员在进行处理和统计的时候经常眼花缭乱,无法在错综复杂的文字数字之间快速的匹配出同一项经济业务的借贷双方,以后每次需要用到该凭证单时,都需要人工通过分析凭证单上各项摘要和项目内容进行重新的匹配,增加了财务人员的工作量。
因此,需要一种能够对快速处理大量财务记账凭证的方法,能够快速筛选出同一凭证单上的同一经济业务的借贷双方,并进行显示,便于后续财务人员能够直观的确认匹配好的借贷双方,节约办公时间。
技术实现要素:
本发明目的在于提供匹配凭证单中同一项经济业务的借贷双方的系统和方法,利用财务记账中基本原则“有借必有贷,借贷必相等”的基本原则,对借贷双方的金额进行排列组合,利用文本分析技术对摘要进行相似性打分,最终找到借贷对应关系,本发明实用性强,设计巧妙,适合推广;
本发明所采用的技术方案是:匹配凭证单中同一项经济业务的借贷双方的系统,包括有处理终端和显示单元,所述处理单元通过财务存储平台获取凭证单数据,处理终端还包括导入单元、处理单元、通信单元和存储单元,
启动所述导入单元,所述导入单元通过通信单元获取财务存储平台中的凭证单数据,所述处理单元中预存有处理模型,所述凭证单数据作为输入发送至所述处理模型中,所述处理模型的输出为标记后的凭证单数据;
所述处理模型,包括有预处理模块、匹配模块、打分模块和筛选模块,所述预处理模块对凭证单数据分解为单个借方节点和单个贷方节点,其中,每个借方节点和贷方节点中均包含有摘要字节和项目字节;
所述匹配模块将所述预处理模块中多个贷方节点金额和多个借方节点中金额进行匹配,将相同金额的借贷双方的节点进行组合;
所述打分模块对组合内的摘要字节和项目字节进行相似性打分;
所述筛选模块根据相似性打分结果,筛选出属于同一经济业务的借贷双方并发送至所述存储模块进行存储。
另一方面,匹配凭证单中同一项经济业务的借贷双方的方法,包括下列步骤:
s1:获取一个原始凭证单的多个分录数据,其中,一个凭证单中所有的借方分录金额总和等于凭证单中所有的贷方分录金额总和,执行s2;
s2:在一个所述原始凭证单上均构建一个借方分录数据组合的集合和一个贷方分录数据组合的集合,其中,分录数据组合包含有单个分录或者多个分录的组合,单个分录中只包含有一个借方数据项或者贷方数据,执行s3;
s3:基于借方分录数据组合的金额等于贷方分录数据组合的金额,建立借方数据和贷方数据的对应关系,其中,将每组金额相同的分录数据组合定义为一个节点,建立对应关系集合,执行s4;
s4:分别对对应关系集合中节点的摘要和项目信息进行相似性打分,得到摘要打分后的分数结果和项目信息打分后的分数结果,执行s5;
s5:结合相似性打分的总分数结果对对应关系集合中的新的节点进行排序,执行s6;
s6:标记同一项经济业务的借方数据和贷方数据,结束。
优选的,所述s1中,一个凭证单中包含有多个分录数据,所述分录数据中只包含有一个借方数据或者贷方数据,其中,所述借方数据和贷方数据中均包含有摘要、项目信息、凭证单号和分录号,所述借方数据还包含有借方金额,所述贷方数据还包含有贷方金额,所述s2中,借方分录数据组合的集合为debit_node_set,贷方分录数据组合的集合为credit_node_set,
debit_node_set={debit_nodej:(debit_ord_setj,debit_amountj)}
credit_node_set={credit_nodei:(credit_ord_seti,credit_amounti)}
式中,借方分录数据组合debit_node是借方分录数据组合的集合debit_node_set的一个节点,借方分录数据组合debit_node包含有借方分录号的组合debit_ord_set和借方金额debit_amount,当存在有n个借方分录,j的最大值为
优选的,所述s3中,将借方分录数据组合的集合debit_node_set中的借方分录数据组合debit_node对应的金额总和debit_amount与贷方分录数据组合的集合credit_node_set中的贷方分录数据组合credit_node对应的金额总和credit_amount相等的原始节点进行联结,并得到对应关系集合。
优选的,所述s4中,对摘要进行相似性打分的过程包括下列步骤:
s41:根据s3中对的应关系集合中,每个节点的摘要组合包括了本节点对应的借贷方分录的摘要;
s42:摘要的处理过程为,定义摘要组合中字符长度最短的摘要的长度为l,将摘要组合中所有的摘要从左往右截取l个字符,得到所有处理后的所有摘要的字符长度都是l,代入摘要处理后的公式进行计算得到处理后分数,执行步骤s43;
s43:摘要组合的相似性分数是通过摘要处理后分数和不进行摘要处理分数两者加和得到。
优选的,所述s43中,摘要组合的相似性分数为abstract_score,处理后摘要的相似性打分公式为trim_abstract_score,不进行摘要处理的相似性打分公式为original_abstract_score
abstract_score=trim_abstract_score+original_abstract_score
trim_abstract_score=1-0.5×abstract_count+0.45×dedup_abstract_count
original_abstract_score=1-0.5×abstract_count+0.15×dedup_abstract_count
式中,dedup_abstract_count是摘要组合中相同的摘要剔除后的摘要数量,abstract_count是摘要组合中未去重的摘要数量。
优选的,所述s4中,对项目信息进行相似性打分的过程包括下列步骤,
s44:根据s3中的对应关系集合,每个节点的项目信息组合包括了本节点对应的借贷方分录的项目信息;
s45:项目信息的处理过程为,定义项目信息组合中字符长度最短的项目信息的长度为l,将项目信息组合中所有的摘要从左往右截取l个字符,得到所有处理后的所有项目信息的字符长度都是l,代入项目信息处理后的公式进行计算得到处理后分数,执行步骤s46;
s46:项目信息组合的相似性分数是通过项目处理后分数和不进行项目信息处理分数两者加和得到,根据计算总的相似性打分公式,执行s5。
优选的,所述步骤s46中,项目信息组合的相似性分数为proj_score,处理后的项目信息的打分公式为trim_proj_score,不进行项目处理的相似性打分公式为original_proj_score,
proj_score=trim_proj_score+original_proj_score
trim_proj_score=1-0.5×proj_count+0.45×dedup_proj_count
original_proj_score=1-0.5×proj_count+0.15×dedup_proj_count
total_score=abstract_score+proj_score×1.3
式中,dedup_proj_count是将项目信息组合中相同的项目信息剔除后的项目信息数量,proj_count是项目信息组合中未去重的项目信息数量。
优选的,relation_set={relation_nodek:(debit_ord_setn,credit_ord_setm,amountk,abstract_setk,abstract_scorek,proj_setk,proj_scorek,total_scorek)}
式中,k从1开始,依次加1,最大值等于有相等金额的借方分录数据组合的集合debit_node_set的原始节点数量乘以贷方分录数据组合的集合credit_node_set的原始节点数量的乘积之和,relation_set表示为对应关系集合,对应关系集合包括有更新后的节点relation_nodek、借方分数录组合debit_ord_setn、贷方分录数组合credit_ord_setm、金额总和amountk、摘要组合abstract_setk、摘要相似性分数abstract_scorek、项目信息组合proj_setk、项目信息相似性分数proj_scorek和总分数total_scorek。
优选的,所述s6中,对对应关系集合中的节点按总相似性分数进行排序后,标记出同一项经济业务的过程为:
s61:取出对应关系集合relation_set中总的相似性分数最高的节点relation_node,存入结果集result_set;
s62:从relation_set中删除包含了relation_node中的分录号的节点;
s63:重复s61和s62,直到对应关系集合relation_set为空,得到的节点集合result_set中,每个节点中的借方分录数据组合与贷方分录数据组合属于同一项经济业务。
与现有技术相比,本发明的有益效果为:
1.用财务记账的基本原理,对凭证单上的数据进行排列组合、利用文本相似性技术对相关摘要、项目信息进行打分,使得快速找出属于同一项经济业务的借贷双方;
2.能够同时处理多个凭证单上的多个借贷项目,快速梳理得到精确的结果,可以应用在“连号发票拆分报销”、“拆分报销规避合同流程”、“拆分报销虚列开支”、“关联交易”等关键模型。
附图说明
图1为匹配凭证单中同一项经济业务的借贷双方的方法的流程图。
具体实施方式
下面结合本发明的附图1,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施。
实施例1:
匹配凭证单中同一项经济业务的借贷双方的系统,包括有处理终端和显示单元,所述处理单元通过财务存储平台获取凭证单数据,处理终端还包括导入单元、处理单元、通信单元和存储单元,
启动所述导入单元,所述导入单元通过通信单元获取财务存储平台中的凭证单数据,所述处理单元中预存有处理模型,所述凭证单数据作为输入发送至所述处理模型中,所述处理模型的输出为标记后的凭证单数据;
所述处理模型,包括有预处理模块、匹配模块、打分模块和筛选模块,所述预处理模块对凭证单数据分解为单个借方节点和单个贷方节点,其中,每个借方节点和贷方节点中均包含有摘要字节和项目字节;
所述匹配模块将所述预处理模块中多个贷方节点金额和多个借方节点中金额进行匹配,将相同金额的借贷双方的节点进行组合;
所述打分模块对组合内的摘要字节和项目字节进行相似性打分;
所述筛选模块根据相似性打分结果,筛选出属于同一经济业务的借贷双方并发送至所述存储模块进行存储。
综上所述,本实施例的工作原理为,通过系统从云端调取凭证单数据,通过预处理模型对凭证单数据进行处理,工作人员能够在极短的时间内直接获取到同一项经济业务的借贷双方,无需从众多的借方、贷方上的文字内容进行人工的识别匹配,更加的人性化。
实施例2:
匹配凭证单中同一项经济业务的借贷双方的方法,包括下列步骤:
s1:获取一个原始凭证单的多个分录数据,其中,一个凭证单中所有的借方分录金额总和等于凭证单中所有的贷方分录金额总和,执行s2;
s2:在一个所述原始凭证单上均构建一个借方分录数据组合的集合和一个贷方分录数据组合的集合,其中,分录数据组合包含有单个分录或者多个分录的组合,单个分录中只包含有一个借方数据项或者贷方数据,执行s3;
s3:基于借方分录数据组合的金额等于贷方分录数据组合的金额,建立借方数据和贷方数据的对应关系,其中,将每组金额相同的分录数据组合定义为一个节点,建立对应关系集合,执行s4;
s4:分别对对应关系集合中节点的摘要和项目信息进行相似性打分,得到摘要打分后的分数结果和项目信息打分后的分数结果,执行s5;
s5:结合相似性打分的总分数结果对对应关系集合中的新的节点进行排序,执行s6;
s6:标记同一项经济业务的借方数据和贷方数据,结束。
值得说明的是,所述s1中,一个凭证单中包含有多个分录数据,所述分录数据中只包含有一个借方数据或者贷方数据,其中,所述借方数据和贷方数据中均包含有摘要、项目信息、凭证单号和分录号,所述借方数据还包含有借方金额,所述贷方数据还包含有贷方金额。
值得说明的是,ord_set={ord1,ord2,...,ordn+m},借方分录数量为n,贷方分录数量为m。
值得说明的是,所述s2中,借方分录数据组合的集合为debit_node_set,贷方分录数据组合的集合为credit_node_set,
debit_node_set={debit_nodej:(debit_ord_setj,debit_amountj)}
credit_node_set={credit_nodei:(credit_ord_seti,credit_amounti)}
式中,借方分录数据组合debit_node是借方分录数据组合的集合debit_node_set的一个节点,借方分录数据组合debit_node包含有借方分录号的组合debit_ord_set和借方金额debit_amount,当存在有n个借方分录,j的最大值为
表1s1中凭证单中分录号及其他数据表
表1中,借方分录数量为2;贷方分录数量为3。
值得说明的是,请参照表2,表2为实施例中借方分录数据组合的集合debit_node_set:
表2借方分录数据组合的集合
请参照表3,表3为实施例中贷方分录数据组合的集合credit_node_set:
表3贷方分录数据组合的集合
值得说明的是,所述s3中,将借方分录数据组合的集合debit_node_set中的借方分录数据组合debit_node对应的金额总和debit_amount与贷方分录数据组合的集合credit_node_set的贷方分录数据组合credit_node对应的金额总和credit_amount相等的原始节点进行联结,并得到新的借贷方对应关系集合relation_set。
值得说明的是,请参照表4,表4为借贷方对应关系集合:
表4借贷方对应关系的节点集合
值得说明的是,所述s4中,对摘要进行相似性打分的过程包括下列步骤:
s41:根据s3中对应关系集合relation_set中,每个节点的摘要组合包括了本节点中借贷方分录的所有摘要;
s42:摘要的处理过程为,定义摘要组合中字符长度最短的摘要的长度为l,将摘要组合中所有的摘要从左往右截取l个字符,得到所有处理后的所有摘要的字符长度都是l,代入摘要处理后的公式进行计算得到处理后分数,执行步骤s43;
s43:摘要组合的相似性分数是通过摘要处理后分数和不进行摘要处理分数两者加和得到。
值得说明的是,所述s43中,摘要组合的相似性分数为abstract_score,处理后摘要的相似性打分公式为trim_abstract_score,不进行摘要处理的相似性打分公式为original_abstract_score
abstract_score=trim_abstract_score+original_abstract_score
trim_abstract_score=1-0.5×abstract_count+0.45×dedup_abstract_count
original_abstract_score=1-0.5×abstract_count+0.15×dedup_abstract_count
式中,dedup_abstract_count是摘要组合中相同的摘要剔除后的摘要数量,abstract_count是摘要组合中未去重的摘要数量。
值得说明的是,本实施例中,比如(1)计算trim_abstract_score
relation_node5有5条摘要,abstract_count=5,摘要字符长度最短的摘要是“xxx部门李xx报劳务费”,共12个字符,截取后就是5条相同的“xxx部门李xx报劳务费”,去重之后dedup_abstract_count=1。
trim_abstract_score=1-0.5×5+0.45×1=-1.05。
值得说明的是,(2)计算original_abstract_score
relation_node5有5条摘要,abstract_count=5,剔除相同的“xxx部门李xx报劳务费(流水20190001)”、“xxx部门李xx报劳务费”,剩下“xxx部门李xx报劳务费(流水20190001)”、“xxx部门李xx报劳务费”、“xxx部门李xx报劳务费代扣个税”3条摘要,所以去重之后dedup_abstract_count=3。
trim_abstract_score=1-0.5×5+0.15×3=-1.05。
(3)计算abstract_score
abstract_score=-1.05-1.05=-2.1
值得说明的是,请参照表5,表5为摘要相似性打分后的结果:
表5摘要相似性打分后的结果
值得说明的是,所述s4中,对项目信息进行相似性打分的过程包括下列步骤,
s44:根据s3中对应关系集合relation_set中,每个节点的项目信息组合包括了本节点中借贷方分录的所有项目信息;
s45:项目信息的处理过程为,定义项目信息组合中字符长度最短的项目信息的长度为l,将项目信息组合中所有的摘要从左往右截取l个字符,得到所有处理后的所有项目信息的字符长度都是l,代入项目信息处理后的公式进行计算得到处理后分数,执行步骤s46;
s46:项目信息组合的相似性分数是通过项目信息处理后分数和不进行项目信息处理分数两者加和得到。
值得说明的是,所述步骤s46中,项目信息组合的相似性分数为proj_score,处理后的项目信息的打分公式为trim_proj_score,不进行项目信息处理的相似性打分公式为original_proj_score,
proj_score=trim_proj_score+original_proj_score
trim_proj_score=1-0.5×proj_count+0.45×dedup_proj_count
original_proj_score=1-0.5×proj_count+0.15×dedup_proj_count
式中,dedup_proj_count是将项目信息组合中相同的项目信息剔除后的项目信息数量,proj_count是项目信息组合中未去重的项目信息数量;
以表6中relation_node5为例说明项目信息相似性打分的方法。
值得说明的是,(1)计算trim_proj_score
relation_node5有5条项目信息,proj_count=4,项目信息字符长度都是3,剔除相同的“proj05”,剩下“proj01”、“proj05”、“proj08”3条项目信息,去重之后dedup_proj_count=3。
trim_proj_score=1-0.5×4+0.45×3=0.35
(2)计算original_proj_score
relation_node5有5条项目信息,proj_count=4,所以去重之后dedup_proj_count=3。
original_proj_score=1-0.5×4+0.15×3=-0.55
(3)计算proj_score
proj_score=0.35-0.55=-0.20
值得说明的是,请参照表6,表6为项目信息相似性打分后的结果:
表6项目信息相似性打分后的结果
值得说明的是,total_score=abstract_score+proj_score×1.3
total_score=-2.1+(-0.20)×1.3=-2.3
请参照表7,表7为总的相似性分数结果:
表7为总的相似性分数结果
值得说明的是,relation_set={relation_nodek:(debit_ord_setn,credit_ord_setm,amountk,abstract_setk,abstract_scorek,proj_setk,proj_scorek,total_scorek)}
式中,k从1开始,依次加1,最大值等于有相等金额的借方分录数据组合的集合debit_node_set的原始节点数量乘以贷方借方分录数据组合的结合credit_node_set的原始节点数量的乘积之和,relation_set表示为更新后的节点集合,更新后的节点集合包括有更新后的节点relation_nodek、借方分数录组合debit_ord_setn、贷方分录数组合credit_ord_setm、组合后的金额总和amountk、摘要组合abstract_setk、摘要相似性分数abstract_scorek、项目信息组合proj_setk、项目信息相似性分数proj_scorek和总分数total_score;m的取值范围从1到i;n的取值范围从1到j,假如j=3,n有可能只取1,有可能只取2,有可能只取3,有可能取1、2、3,amount是借贷双方的金额,即amount=debit_amount=credit_amount。
值得说明的是,所述s6中,对总相似性分数对应的更新后的节点进行排序后,标记出同一项经济业务的过程为
s61:取出对应关系集合relation_set中总的相似性分数最高的节点relation_node,存入结果集result_set,请参照表8,表8为result_set的数据:
表8result_set的数据
s62:从relation_set中删除包含了relation_node中的分录号的节点,relation_node1中包含的分录号为1和2,在原集合中剔除分录号包含有1和2的节点,请参照表9,表9为经过一轮剔除后的relation_set:
表9经过一轮剔除后的relation_set
s63:重复s61和s62,直到对应关系集合relation_set为空,得到的节点集合result_set中,每个节点中的借方分录数据组合与贷方分录数据组合属于同一项经济业务,从relation_set取出总相似性分数最高的relation_node4,放入result_set中,请参照表10,表10为result_set的数据,
表10result_set的数据
relation_node4中包含的分录号为3和(4,5),在原集合中剔除分录号包含有3、4,5的节点,完成上一步之后,relation_set为空,result_set就是最后的结果,请参照表11,表11为最后借贷方的数据:
表11最后result_set的数据
说明本例中的凭证单包含了两项经济业务,第1项是分录号为1的借方和分录号为2的贷方,第2项是分录号为3的借方和分录号为4,5的贷方。
值得说明的是,对于所述s6中,当匹配出同一项经济业务的借贷双方时,可以采用多种标记方式进行显示,标记的格式也会被保留或者替换原始凭证单,方便调取和使用,本实施例中为了便于理解,对各项数据的命名和定义均不作为对本发明的保护范围的限制,例如,分录号只是用来表示凭证单上的一个借方数据或者贷方数据,起到区分各个借贷方数据的作用,并非单单指实施例中的数字,这里的借方和贷方数据为一次凭证单上的单次经济交易。
综上所述,本实施例的实施原理为:本方法模型用于财务系统分析和监控中的一部分,通过直接调取财务报账系统中已录入的凭证单原始文件,凭证单原始文件包含有多个凭证单,本方法模型分别将单个的凭证单上数据进行整合,具体为,凭证单上包含有借方金额和借方摘要,贷方金额和贷方摘要,每个金额均包含有其对应的用途描述,即摘要,每个摘要和金额一起被归为一个分录号,在模型中,每个分录类号占据一行,借方分录号和贷方分录号均从上往下排列,分录号从上到下依次是0、1、2、3、4……,再分别将借贷双方的分录号进行组合后,将相同金额的借贷方进行联结,再对借贷方的摘要和项目信息进行相似性打分,相似性分数最高的借贷方即是同一项经济业务,这时,同一项经济业务的借贷双方被筛选出,无需人工判断,全自动化完成,标记出的数据供系统后续调取使用,本发明实用性强,设计巧妙,适合推广。