技术领域
[0001] 本申请涉及数据处理技术领域,尤其涉及一种单据审核方法、设备及介质。
相关背景技术
[0002] 在当今快速发展的商业环境中,随着企业规模的不断扩张与业务复杂度的日益提升,企业资源规划(Enterprise Resource Planning,ERP)系统已成为支撑企业高效运营与决策不可或缺的基础设施。然而,尽管ERP系统极大地优化了企业内部管理流程,其核心的审核环节却依然高度依赖于人工操作,这在一定程度上制约了企业整体运营效率的提升与响应市场变化的灵活性。
[0003] 当前,企业管理软件中的审核流程普遍面临多重挑战。首先,随着业务量的激增与单据类型的多样化,人工审核的工作负担急剧加重,不仅增加了员工的工作压力,还可能导致审核周期的延长,影响业务处理的时效性。其次,人工审核依赖于审核人员的专业知识、经验及判断力,而企业内员工的知识结构与技能水平参差不齐,导致审核效率难以保证,且存在较大的主观性误差风险,以致对单据审核准确率较低,误报漏报情况严重。
具体实施方式
[0019] 本申请实施例提供一种单据审核方法、设备及介质。
[0020] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0021] 下面通过附图对本发明实施例提出的技术方案进行详细的说明。
[0022] 图1为本申请实施例提供的一种单据审核方法流程图,如图1所示,据审核方法包括如下步骤:步骤101、在获取到的单据中,确定出单据主表信息与多个子表信息,基于主表信息与多个子表信息之间的关联关系,生成具有层次关系的单据连续序列。
[0023] 在本申请的一个实施例中,在获取到的单据中,确定出单据中的第一标签集合与第二标签集合;其中,第一标签集合与单据用户信息相关,第二标签集合与单据事件相关。在第一标签集合中确定出同一用户对应的第一单据集合。确定出第一单据集合中的单据分别对应的第二标签,将第二标签与预置标签映射表进行比对,确定出第二标签之间的包含关系;其中,预置标签映射表中包括有多种标签,以及还包括多种标签之间的包含关系。基于包含关系,确定出主表信息与多个子表信息之间的关联关系。
[0024] 具体地,在获取到的单据中,确定出单据中的第一标签集合,第一标签集合包含与单据用户信息相关的标签。这些标签通常用于标识单据的提交者、审批者、所有者等用户维度的信息。例如,标签可能包括“用户ID”、“用户姓名”、“用户部门”等。在获取到的单据中,确定出单据中的第二标签集合,第二标签集合包含与单据事件相关的标签。这些标签描述了单据的具体内容、类型、状态等事件维度的信息。例如,标签可能包括“采购订单号”、“付款金额”、“审批状态”等。
[0025] 进一步地,在确定了第一标签集合后,根据“用户ID”或“用户姓名”等标签,将属于同一用户的所有单据归集到一个集合中,即第一单据集合。对于第一单据集合中的每一张单据,提取其对应的第二标签,即与单据事件相关的标签。然后,将这些标签与预置标签映射表进行比对。本申请实施例中的预置标签映射表为预先定义好的表,其中包含了多种标签以及这些标签之间的包含关系。例如,如果有一个“付款”事件,它可能包含“预付款”、“到货款”、“尾款”等多种具体类型的付款。这些具体类型的付款标签在预置标签映射表中被定义为“付款”标签的子标签,具有包含关系。
[0026] 进一步地,通过比对第二标签与预置标签映射表,识别出存在包含关系的标签。这些包含关系往往反映了单据结构中的主从关系,即某些单据(或单据中的某些部分)是主表信息,而其他单据(或单据的其他部分)则是这些主表信息的子表信息。
[0027] 在本申请的一个实施例中,基于多个子表信息,构建多个子表序列;其中,多个子表序列分别设有唯一标识。将主表信息与各子表序列,以及各子表序列分别对的唯一标识进行组合,得到多个独立单据序列。基于多个子表信息的时间戳,确定出多个子表序列之间的顺序,对多个独立单据序列进行排序,以得到具有层次关系的单据连续序列。
[0028] 具体地,在实际业务中,单据往往包含主表信息和多个关联子表。首先将这种结构化数据“打平”。这意味着将主表与子表的关键信息整合成一个连续的序列,每个子表记录通过特定标记(如 [start_subtable] 和 [end_subtable])与其他记录区分,确保模型能理解数据间的层次关系。
[0029] 具体地,例如,可以给每个子表组分配一个唯一标识,每个子表信息集合形成一个子表序列。将主表信息与各子表序列及其唯一标识进行组合,为每个主表信息生成了一个或多个独立单据序列。每个单据序列都包含了主表信息及其关联的所有子表序列和它们的唯一标识。在大多数情况下,子表序列内的记录会根据时间戳进行排序,以反映它们在业务流程中的实际发生顺序,基于该时间戳,将生成的多个独立单据序列排序,得到具有层次关系的单据连续序列。
[0030] 例如,单据为差率报销单,主表中包括报销人姓名、报销人所属部门以及报销原因等。其对应的第一子表中包括前往目的地时对应的起始地与终止地,其对应的第二子表中包括返回时对应的起始地与终止地。将主表与该第一子表组成第一独立单据序列,将主表与该第二子表组成第二独立单据序列,将该第一独立单据序列与该第二独立单据序列进行排序,即可得到该单据连续序列。
[0031] 步骤102、确定出单据连续序列中的字段类型,基于不同的字段类型对单据连续序列分别进行编码,得到单据向量。
[0032] 在本申请的一个实施例中,在字段类型为数值型字段的情况下,将数值型字段作为第一向量。在字段类型为枚举型字段的情况下,通过预训练嵌入层将枚举值映射至稠密向量空间中,以得到枚举型字段对应的第二向量。在字段类型为文本型字段的情况下,对文本型字段进行分词处理,并基于预训练嵌入层将分词处理后的文本型字段映射至稠密向量空间中,以得到文本型字段对应的第三向量。确定出单据连续序列中的符号标记,基于符号标记对应的唯一编码,确定出第四向量。基于单据连续序列的预置顺序,将第一向量、第二向量、第三向量以及第四向量进行排序,得到单据向量。
[0033] 具体地,所有字段,包括数值型、枚举型以及文本型,均需转换为模型可理解的向量形式。本申请实施例通过词嵌入技术实现。对于数值型字段,可以直接使用;枚举型和文本型字段则通过预训练的嵌入层将其转化为稠密向量。此外,特殊标记(如表头、分隔符)也应被赋予唯一的编码,确保模型能够识别数据结构并且能正确的输入到模型的入口。
[0034] 具体地,对于数值型字段,可以直接将其值作为向量的一个或多个元素。枚举型字段通常包含一组预定义的选项,如“状态”字段可能包含“待处理”、“处理中”、“已完成”等选项。使用预训练的嵌入层将这些枚举值转换为向量。对于文本型字段,先对其进行分词处理,将文本分解成一系列的词语或标记。然后,通过与枚举型字段类似的预训练嵌入层来将这些分词映射到稠密向量空间中。由于文本可能包含多个词语,将映射得到的向量进行求和或平均聚合得到一个代表整个文本字段的向量。在单据连续序列中,还存在一些符号标记,给它们分配唯一的编码,并通过嵌入层将它们映射到向量空间中。基于单据连续序列的预置顺序,将上述得到的四种类型的向量进行排序组合成一个单一的向量,即单据向量。
[0035] 步骤103、基于获取到的单据对应的审批结论,对所需字段信息进行配置,确定出字段特征组合向量。
[0036] 在本申请的一个实施例中,基于获取到的单据,确定出审批通过单据与驳回单据。在审批通过单据中,确定出合规字段组合,并将合规字段组合进行第一标记,以作为合规字段特征组合。在驳回单据中确定出不合规的字段组合,并将不合规的字段组合进行第二标记,以作为不合规字段特征组合。基于标记后的字段特征组合确定出字段特征组合向量,并将标记后的字段特征组合对应的表名、字段名以及字段值存储至数据库中。
[0037] 具体地,在单据每次的审批通过和审批驳回时,配置并记录单据需要记录的字段,存储字段所在表名,字段名和字段值到数据库中,标记出每条记录的审核结论(合规/不合规),并记录审核意见。这些标记作为模型学习的目标变量,指导模型学习哪些特征组合指向合规行为,哪些特征组合可能指示潜在的问题。
[0038] 具体地,根据单据的审批状态将其分为两类:审批通过的单据和驳回的单据。审批通过的单据中,需要确定哪些字段组合是合规的。例如,如果一份采购单据要求必须有供应商名称、采购数量和采购金额三个字段,并且这些字段的值需要满足特定的条件(如采购金额不为0,供应商名称在预定义的供应商列表中),那么这些字段的组合就被认为是合规的。进一步地,确定了合规的字段组合,对它们进行第一标记,以区分出这些组合是合规的。
[0039] 进一步地,在驳回的单据中,确定出导致单据被驳回的不合规字段组合。可以通过查看驳回原因或审批备注字段来完成,这些字段会提供关于单据被驳回的详细信息。对于确定的不合规字段组合,进行第二标记,以区分出这些组合是不合规的。基于标记后的字段组合,进一步确定字段特征组合向量。这通常涉及将字段的标记、名称、值等信息编码为向量形式,以便于后续的分析或机器学习处理。最后将标记后的字段特征组合对应的表名、字段名、字段值以及标记信息存储到数据库中。
[0040] 步骤104、基于单据向量与字段特征组合向量,对预置模型进行训练,得到单据审核模型。
[0041] 在本申请的一个实施例中,通过编码器对所述单据向量与所述字段特征组合向量进行编码,得到每个时间步分别对应的参考隐藏状态。使用注意力机制,将当前隐藏状态与所有参考隐藏状态进行交互,确定出注意力权重分布。基于注意力权重分布,对参考隐藏状态进行加权求和,以得到语义向量。将当前隐藏状态、语义向量作为输入,通过softmax层预测输出审批结论的概率分布,直至生成符合训练条件的输出序列,确定出单据审核模型生成。
[0042] 具体地,本申请实施例通过改进编码解码模型中的编码部分,将输入编码成一个向量的序列,并产生一个界定范围,在进行关注重点的注意力时能充分利用输入向量序列包含的信息。反复以上步骤就可以将字段对应的编码都输入进模型。
[0043] 具体地,本申请实施例编码器的作用是处理这些向量输入,将它们转换为一系列隐藏状态。这些隐藏状态捕捉了输入数据的重要特征,并用于后续的预测。在循环神经网络中,编码器会按时间步输入向量,生成一个隐藏状态序列。注意力机制允许模型在生成输出时关注输入的不同部分。本申请实施例使用注意力机制将当前隐藏状态与所有参考隐藏状态进行交互,交互的结果是一个注意力权重分布,它表示了当前输出与输入序列中每个元素的相关性。根据注意力权重分布,对所有参考隐藏状态进行加权求和,得到一个语义向量,本申请实施例中的语义向量是输入序列的加权表示,反映当前输出应该关注的输入部分。
[0044] 进一步地,将当前隐藏状态和语义向量作为输入,通过softmax层来预测输出审批结论的概率分布。本申请实施例中的softmax层将输入转换为概率分布,使得所有可能的输出(如“通过”、“驳回”)的概率之和为1。例如,在softmax层的输出中,模型可能会给出审批结论为“通过”的概率为0.8,而“驳回”的概率为0.2。根据这个概率分布,可以决定最终的审批结论。本申请实施例中的训练数据包含了已知的单据输入和对应的审批结论。模型通过最小化预测输出与真实输出之间的差异(如使用交叉熵损失函数)来优化其参数。
[0045] 在本申请的一个实施例中,将历史验证结果与审批结果进行比较,确定出审批概率值不一致的数据。通过保序回归技术,将审批概率值不一致的数据再次输入模型中进行微调,直到输出的审批概率值符合预设条件。间隔预设时间段后,重新对微调后的模型进行输出概率值检测,在输出概率值不符合概率值预设条件的情况下,基于间隔预设时间段内获取到的单据,确定出第一扩充数据。将第一扩充数据进行语言类型转换,得到第二扩充数据,并基于预置数据库确定出与第二扩充数据相似度大于预置相似度阈值的参考相似数据。将参考相似数据转换为第一扩充数据对应的语言类型,并通过转换后的数据对样本集进行扩充。基于扩充后的样本集对微调后的模型进行调整,得到单据审核模型。
[0046] 具体地,为了提高单据审核模型预测的可靠性,特别是审批通过和不通过的概率输出的校准。将历史验证结果与实际审批结果进行比较,对于实际对比后不一致的数据再次输入模型中进行微调,采用保序回归技术确保模型输出的概率值更好地反映审核时的准确度。此外,针对此模型存在的过度拟合问题进行按期每月重新对微调的模型进行评估。
[0047] 进一步地,将模型在历史数据上的预测结果(即审批概率值)与实际审批结果进行比较,以识别出模型预测与实际情况不符的样本,即审批概率值不一致的数据。这些不一致的数据反映了模型在某些情况下的不足或偏差。对于审批概率值不一致的数据,使用保序回归技术对模型进行调整,以减少模型预测与实际审批结果之间的不一致性。在微调过程中,模型会重新学习这些不一致数据中的特征,调整其参数,以便在未来的预测中更准确地反映实际审批情况。
[0048] 进一步地,经过一段时间后,重新对微调后的模型进行输出概率值检测,以对模型在长时间运行后的稳定性和准确性进行评估。如果模型的输出概率值仍然不符合预设条件(如预测准确率低于阈值),则需要进一步采取措施。
[0049] 进一步地,在输出概率值不符合预设条件的情况下,基于间隔预设时间段内获取到的新单据,确定出第一扩充数据。将第一扩充数据进行语言类型转换,然后,在预置数据库中查找与转换后的第二扩充数据相似度大于预置相似度阈值的参考相似数据。例如,如果第一扩充数据为中文单据,首先将其转换为统一的英文格式。然后,在预置的英文单据数据库中查找与这些转换后的单据相似度大于80%的参考数据,这些参考数据将作为额外的训练样本。将找到的参考相似数据转换回第一扩充数据对应的语言类型,并通过这些转换后的数据对原始样本集进行扩充。这样做可以增加模型的训练数据量,提高其对不同语言和场景的适应能力。最后,使用扩充后的样本集对微调后的模型进行进一步的训练和调整。通过这个过程,模型能够学习到更多样本的特征和模式,从而提高其审批概率值的准确性和稳定性。
[0050] 步骤105、将获取到的待审核单据输入单据审核模型,以通过单据审核模型输出待审核单据对应的审核结论。
[0051] 在本申请的一个实施例中,将获取到的待审核单据输入单据审核模型,通过单据审核模型输出审核概率分数。以及,在概率审核分数属于审核驳回分数区间的情况下,将审核出的错误字段进行显示。
[0052] 具体地,将待审核单据输入到单据审核模型中。模型会对单据的各个字段进行编码,然后通过编码器生成隐藏状态或表示向量。接着,模型利用注意力机制来关注对审批结果影响较大的字段或特征。最后,通过softmax层或类似机制输出一个审核概率分数。在得到审核概率分数后,将其与一个预设的审核驳回分数区间进行比较。如果审核概率分数落在这个区间内,认为单据需要被驳回。此时,模型可能需要进一步分析单据中的字段,并标识出导致驳回的错误字段。这些错误字段可能是因为数据填写不完整、格式错误、数值超出范围或其他违反审核规则的情况。
[0053] 图2为本申请实施例提供的一种单据审核设备的结构示意图。如图2所示,单据审核设备200,包括:至少一个处理器201;以及,与至少一个处理器201通信连接的存储器202;其中,存储器202存储有可被至少一个处理器201执行的指令,指令被至少一个处理器201执行,以使至少一个处理器201能够:在获取到的单据中,确定出单据主表信息与多个子表信息,基于主表信息与多个子表信息之间的关联关系,生成具有层次关系的单据连续序列;确定出单据连续序列中的字段类型,基于不同的字段类型对单据连续序列分别进行编码,得到单据向量;基于获取到的单据对应的审批结论,对所需字段信息进行配置,确定出字段特征组合向量;基于单据向量与字段特征组合向量,对预置模型进行训练,得到单据审核模型;将获取到的待审核单据输入单据审核模型,以通过单据审核模型输出待审核单据对应的审核结论。
[0054] 本申请实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:在获取到的单据中,确定出单据主表信息与多个子表信息,基于主表信息与多个子表信息之间的关联关系,生成具有层次关系的单据连续序列;确定出单据连续序列中的字段类型,基于不同的字段类型对单据连续序列分别进行编码,得到单据向量;基于获取到的单据对应的审批结论,对所需字段信息进行配置,确定出字段特征组合向量;基于单据向量与字段特征组合向量,对预置模型进行训练,得到单据审核模型;将获取到的待审核单据输入单据审核模型,以通过单据审核模型输出待审核单据对应的审核结论。
[0055] 本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0056] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请的实施例可以有各种更改和变化。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。