吴浩忠,陈思彤
(无锡商业职业技术学院,江苏 无锡 214000)
当前我国主流财务软件的自主学习、训练、推理演绎功能等严重缺失,会计人员被大量简单、枯燥的程序化会计核算工作捆绑,不具备向管理决策方向转型的基本条件。对日常业务中明显缺乏合法性与合理性的经济业务缺乏甄别阻断能力,会计信息质量也一直是会计界长期难以解决的问题。实际上通过引入人工智能技术,将单位内部会计核算与审计规则嵌入财务软件规则库,很多不合法、不合理的会计业务很容易被财务软件排除在会计信息系统之外。因此,会计核算智能化决定了会计人员能否成功转型并提升会计核算信息质量的关键性因素。本文以人工智能技术为主要工具,研究智能会计核算的解决方案,全面提升会计信息系统的智能化水平,为助推会计人员转型、进一步提升会计信息质量、提升我国企业经营决策水平做出有益的探索。
1.1.1 系统目标
智能会计系统(IAS)与传统会计信息系统的最大区别在于IAS 具有学习、推理与判断等智能化特征,具体体现在IAS 可在无监督学习模式下从会计专家记账产生的历史数据中学习并提取记账规则。
1.1.2 功能需求
结合系统目标、相关人员特点,IAS 系统功能性需求被分解为下列七大子系统:原始凭证管理子系统、记账凭证管理子系统、账簿管理子系统、报表管理子系统、智能学习子系统、规则库管理子系统、推理机子系统。
1.2.1 IAS 系统外围架构设计
为了降低系统的耦合性,提高系统扩展性,基于系统访问速度、便捷性等要求,本系统采用了C/S 结构。当需要对数据库中的数据进行操作时,客户端可自动搜寻服务器程序,并发出请求,服务器程序根据预定规则做出应答并返回结果,因此这种结构具有服务器运行数据负荷轻的优点[1-2]。
1.2.2 IAS 系统基础架构设计
IAS 在系统总体架构的设计上采用经典的三层模型设计,分别是数据存储层、应用层及表示层[1],具体见图1。
图1 IAS 基础架构图
分层设计与实现会计核算系统具有很好的系统可维护性与灵活性。表示层也是用户界面层,主要是用于操作人员与系统数据库交互的界面,将操作人员指令转化为系统可识别的计算机指令,以实现操作人员对系统的控制[2]。
1.2.3 系统处理流程
根据本文前述系统目标与系统需求分析,IAS实现系统目标需要经历下列7 个步骤:系统定义与维护、原始凭证管理、记账凭证管理、智能学习系统、推理机、账簿管理、报表管理。
概念结构是数据模型的基础。为了实现IAS 的目标及各模块功能,在IAS 概念结构设计的基础上,依据E-R 模型转换规则,将系统数据库E-R图中的实体、属性和联系转换为数据模型,现将IAS 系统中主要表的结构列示如下:
1)会计科目表。为了便于智能学习系统(ILS)对会计凭证数据库进行数据预处理,需要在会计科目表中增设“学习代码”列,该列是将科目代码中与会计核算规则无关的部分代码删除后形成,由会计主管在科目设置时具体确定,详细的会计科目数据结构见表1。
表1 会计科目数据结构表
2)记账凭证表。记账凭证表包括记账凭证基础信息表与记账凭证数据表。在复式记账法下,由于一笔交易或实现至少涉及两个以上账户,为了降低记账凭证数据库的数据冗余度,增设记账凭证数据表,其结构主要包括记账凭证编号、科目、记账方向、金额。
3)原始凭证表。原始凭证表包括主要储存原始凭证基础数据,主要包括序号、编号、原始凭证编号、原始综合、属性名称、属性值、账户集、学习标志、输出规则,具体见表2。
表2 原始凭证表(YSPZ)
4)科目余额表。该表主要存储会计科目表中所有会计科目的期初余额、本期发生额及期末余额,该表数据能为编制会计报表提供支持。
原始凭证提供的数据是IAS 的重要学习样本数据源,因此本系统需要原始凭证管理子系统实现模板预置、原始凭证录入、审核与查询功能,利用存储过程实现原始凭证数据库的动态更新与调整。
记账凭证管理子系统数据是IAS 的财务信息数据窗口,是整个系统信息的正确性、质量高低的决定性因素。
智能学习子系统是IAS 的关键子系统,需要实现从原始凭证数据库及记账凭证数据库中学习会计核算规则的重要功能。该子系统的智能学习流程及实现如下:
1)参数设置。一是系统激活参数Para_Sys-Activate 的设置,该参数主要是控制智能学习系统的激活机制。二是最小支持度Minsup,本系统通过记账凭证数据库挖掘频繁项集后,最终要通过原始凭证数据库挖掘会计核算规则。
2)会计科目提取。为了确定是否有足够的学习样本供IAS 学习训练,本环节通过查询语句统计记账凭证数据表(JZPZ)中出现频次大于Minsup会计科目并将统计结果存入临时表#T_2。
3)参数验证。比较表#T_2 中元组个数@YBZHS 与@@Para_SysActivate 的大小,若@YBZHS 小于@@Para_SysActivate,说明记账凭证数据表(JZPZ)中没有足量的学习样本,程序终止,否则激活学习系统,从#XXYB 中提取包含在#T_2 表中所有科目的记录并形成学习样本数据库#T_PF。
4)创建布尔型数据表。以#T_2 表中的会计科目名称XXDM 为表列,创建T_EZB(布尔型数据表),为后续程序提供基本数据。
第一阶段的数据预处理结束,最终输出T_BEB(布尔型数据表),为第二阶段的数据挖掘算法提供基本数据。
6)对布尔型数据表T_BEB 进行行列处理。主要处理过程是:第一,计算每列合计数,将列合计数小于minsup 的列值更新为0;第二,动态更新行合计,删除合计数HJ 小于等于1 的行,同时更新列合计数,本系统通过为相关表建立触发器实现该功能;第三,检查列合计数,如果不为零的值全部大于等于minsup 循环停止,否则继续循环,直到所有列合计与行合计都符合设定条件;第四,部分样本在经过该步骤处理后元组数为零或仅剩1 种类型的代码,该种类型的代码即频繁项集,这两种情况算法即可终止,否则转入后续程序处理。
7)对布尔型数据表T_BEB 进行频繁项集挖掘。主要处理过程是:第一,搜寻T_BEB 表中ZH列的不重复值并存入表ZFCTH(XH,ZH,HJ);第二,定义游标,将ZFCTH 中的ZH 中的0 替换成“_”;第三,统计ZFCTH 中每一个元组在T_BEB中出现的频次,删除小于Minsup 的元组并更新ZFCTH 表中相应的PC 列,同时对ZFCTH 表按照HJ 逆序排列;第四,若产生的第一行频繁项集的项目数为T_BEB 表HJ 列的最大值@n,则算法终止;第五,若频繁项集项目数不是T_BEB 表HJ 列的最大值@n,而是@n-m,则启动回溯算法,寻找有无隐藏频繁项集;第六,调用存储过程Proc_LH_DELETE 对#L_HS 进行处理,若无频繁项集产生,再调用存储过程ZFCTH 进行频繁项集挖掘,若有频繁项集产生,则是隐藏的频繁项集,否则无隐藏频繁项集;第七,输出频繁项集。
智能学习子系统的第三阶段主要是原始凭证属性学习,其中,原始凭证属性学习环节如下:第一,提取原始凭证学习样本数据;第二,创建布尔型凭证学习表SXXX1,原理同第一阶段第四步骤,此处不再赘述;第三,根据T_YSZH 中的数据对SXXX1 表填充二值数据,原理同第一阶段第五步骤,不再赘述;第四,凭证样本数据学习。原始凭证属性学习中根据提取的原始凭证样本数据,经布尔映射后产生的数据库界面;第五,属性学习。根据第四环节凭证学习输出结果,从原始凭证数据库(YSZH)中提取所有YS_CODE 为凭证学习输出值的元组,验证原始凭证与记账凭证之间的关联关系。当初始熵值(S 为提取的业务总数,为第Si类样本数)时,表明原始凭证与记账凭证之间的关系为强关联规则,更新JZPZ 表中的GZSC 值为1;当初始熵值H(X)不等于零,则表明原始凭证与记账凭证之间的关系需要通过属性学习进行验证,验证思路是首先计算样本数据库中每一种属性Ui(i=1,2,…,n)的信息熵E(X)。计算信息熵E(X)的程序循环结束后,程序返回每一列的信息熵E(X),以其中最小的属性作为第一分类标志,将其调整至属性学习表(SXXX)的第一列。计算第一列中每一类属性值的初始熵值,将H(X)=0 的属性值中排序靠后的各列属性值更新为0,对其他初始熵值不等于0 的属性值,对排序在其后面的所有属性再次调用本节循环程序计算信息熵E(X),以最小E(X)作为第二列属性,再计算各属性值的初始熵值H(X),直至信息熵E(X)相等为止,循环结束。
本次属性学习在验证环节学习到两条会计核算规则:一是当增值税专用发票的购买方为“客户”,销售方为“ME”,货物服务或劳务名称为“主营”且税额为“1”时,产生的会计账户代码为“10020-22121-50011”,该代码的含义为:
借:银行存款
贷:主营业务收入
第六,农民把粮食存储到“粮食银行”,可以拿到相应的粮食“存折”。“存折”记录所存入的粮食品种、数量和当日的粮价,农民可以凭“存折”在公司创立的电子商务平台(有农业生产资料和生活用品),以信用形式购物,信用额度为存粮金额的70%。
应交税费-应交增值税-销项税额[3]
二是当增值税专用发票的购买方为“ME”,销售方为“供应商”,货物服务或劳务名称为“原料及主要材料”且税额为“1”时,产生的会计账户代码为“12200-22110-10021”,该代码的含义为:
借:原材料
应交税费-应交增值税-进项税额
贷:银行存款
这两条规则完全符合会计专家的会计核算思路,算法达到了预期目标。
三是更新规则库环节,规则库中第一条规则表示:当一笔经济业务发生后如果出现增值税专用发票与银行支票这种组合,并且新业务的增值税专用发票的四个属性值及银行支票的两个属性值与本规则库中的第一条相关属性值一致,即可在记账凭证数据库中增加该笔新经济业务对应的本规则库的会计账户代码(10020-22121-50011),该代码表示如下会计分录:
借:银行存款
贷:主营业务收入
应交税费-应交增值税-销项税额
规则库中第二条规则表示:当一笔经济业务发生后如果出现增值税专用发票、银行支票及原材料入库单这三种原始凭证组合,并且新业务的增值税专用发票的四个属性值、银行支票的两个属性值及原材料入库单的两个属性与本规则库中的第二条相关属性值一致,即可在记账凭证数据库中增加该笔新经济业务对应的本规则库的会计账户代码(12200-22110-10021),该代码表示如下会计分录:
借:原材料
应交税费-应交增值税-进项税额
贷:银行存款
账簿与报表管理系统是提供账簿与报表的模板定义、账表制作、账表查询、账表数据输出与打印功能的系统模块。
系统功能性测试的主要方式是用户采用白盒测试与黑盒测试[4]等方法,根据业务流程对IAS 各功能模块的运行结果进行检验与测试,验证系统各功能模块的输出结果的正确性与合理性[5],以确认系统能够按照预先设计的模式运行并产生预期结果。IAS系统从功能模块角度包含凭证处理系统、账表处理系统、智能学习系统等,测试的内容与功能很多,本文仅说明对主要模块的系统测试结果。系统性能测试主要是验证系统在响应速度、处理效率、并发访问能力及抗压能力方面的性能与指标。具体情况见表3。
表3 系统性能测试记录表
随着人工智能技术在会计领域的深入应用,会计智能化已成为现阶段会计行业发展中最热门的话题之一。本文基于行业企业一线会计人员在会计核算中的痛点难点,以计算机智能判断代替会计专家职业判断为目标,对无人监督模式下计算机智能编制记账凭证这一个长期束缚我国会计智能化发展的瓶颈问题展开了系统深入的研究。本文从IAS 系统需求分析入手,通过对系统的架构与功能设计,综合运用基于布尔映射矩阵的Apriori 改进算法、基于信息熵技术的属性归纳学习算法及推理机技术,开发并实现了具有学习、逻辑推理与智能判断功能的智能会计核算系统。本文研究的主要内容包括原始凭证数据采集与基于信息熵的属性归纳学习算法改进研究,基于布尔映射矩阵的Apriori 算法改进及应用研究,基于推理机的自动生成记账凭证研究与应用。