首页> 中国专利> 基于子树模式挖掘的税务中间指标提取方法

基于子树模式挖掘的税务中间指标提取方法

摘要

本发明公开了一种基于子树模式挖掘的税务中间指标提取方法,关键步骤包括:(1)通过在税务指标的表达式树的后缀表达式中查找所有的“aab”形式的字串,识别出所有的子树模式;(2)建立极大子树模式的表达式树,并为每个表达式树赋予一个中间指标。本发明能够用中间指标替代税务指标的计算中频次较多的共性计算过程,从而简化税务指标的计算。

著录项

  • 公开/公告号CN104111987A

    专利类型发明专利

  • 公开/公告日2014-10-22

    原文格式PDF

  • 申请/专利权人 西安交通大学;

    申请/专利号CN201410310973.5

  • 发明设计人 刘均;孟玮;郑庆华;

    申请日2014-07-01

  • 分类号G06F17/30(20060101);G06Q40/00(20120101);

  • 代理机构61200 西安通大专利代理有限责任公司;

  • 代理人朱海临

  • 地址 710049 陕西省西安市咸宁西路28号

  • 入库时间 2023-12-17 01:34:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-04

    专利权的转移 IPC(主分类):G06F17/30 登记生效日:20160415 变更前: 变更后: 申请日:20140701

    专利申请权、专利权的转移

  • 2015-08-26

    授权

    授权

  • 2014-11-26

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140701

    实质审查的生效

  • 2014-10-22

    公开

    公开

说明书

技术领域

本发明涉及税务数据分析中对税务指标计算表达式树进行极大子树模式 挖掘,抽取税务中间指标,简化税务指标计算的方法。

背景技术

税务指标是偷漏税识别与跟踪、深化税收信息服务、优化税收政策的重 要依据;涉及不同税种、不同行业以及来自不同数据库表的上万数据项,具 有映射复杂、计算冗余两个显著特点,前者表现为每个指标包含5-15个数据 项,数据项间存在各种算术运算关系,这给后期的指标维护带来了很大的困 难;后者指标在计算中存在大量的重复计算过程,如计算“业务成本在投入产 出率异常”指标在“耗电率异常”、“主营业务成本变动率异常”等8个指标中重 复计算,这大大限制了指标计算的效率。

发明内容

针对现有技术对税务指标的处理中所存在的重复计算,效率低下,并且 维护困难的缺陷,本发明提出了一种可简化税务指标计算的税务指标处理方 法。

为达到以上目的,本发明是采取如下技术方案予以实现的:

一种基于子树模式挖掘的税务中间指标提取方法,其特征在于,首先根 据税务计算表达式生成相应的表达式树集合{Ti}n,进而从表达式树集合中抽 取极大子树模式,抽取极大子树模式的具体步骤如下:

(1)执行以下初始化操作:1)对每个i∈[1..n],对表达式树Ti进行后序 遍历生成字符串形式的后缀表达式si,从而形成后缀表达式集合S={si}n;2) 初始化变量id=88880000,用于标示后缀表达式中频繁出现的字符串;3)初 始化五元组(item1,item2,op,id,max)为结点的空链表P,该链表结点用于存放 以op为根节点,item1、item2为叶结点的子树模式;item1与item2表示数据项 或所嵌套的子树模式的ID,op表示运算符号;id表示该子树模式的ID;max表 示以op为根节点,item1、item2为叶结点的子树模式是否为极大子树模式,用 max=1表示是极大子树模式,max=0表示不是极大子树模式;

(2)初始化四元组(item1,item2,op,num)为结点的空链表L,item1与 item2表示数据项或子树模式ID,op表示运算符号,num表示由item1、item2、 op构成的字符串在后缀表达式集合S中出现的次数;

(3)对每个s∈S,分别执行以下操作:1)扫描后缀表达式s,匹配s中 所有“aab”形式的子串,该子串对应一颗以b为根节点,a为叶结点的表达 式树,其中a表示计算表达式中的数据项或子树模式ID,b表示计算表达式 中的运算符号;2)如果未匹配出“aab”形式的子串,则S=S-{s};3)如 果匹配出“aab”形式的子串,对于每个子串执行:设该子串为axaybz;在链表 L查找满足item1=ax∧item2=ay∧op=bz或item1=ay∧item2=ax∧op=bz的结点,若找到,假设该结点为l,则l.num=l.num+1;若未找到,则在L 的末尾加入一个结点l,并使得l.item1=ax,l.item2=ay,l.op=bz,l.unm=1;

(4)扫描链表L,若L为空,或者L中的每个结点l都满足l.num<5, 则转到(6);否则,对每个满足l.num≥5的结点l,执行以下操作:1)对每 个s∈S,查询s是否包含l.item1、l.item2、l.op连接形成的字符串或l.item2、 l.item1、l.op连接形成的字符串,若包含,则将s中的该字符串用id替换,id 可作为以l.op为根节点,l.item1、l.item2为叶结点的子树模式ID;2)在P中 加入一个结点p,并使得p.item1=l.item1,p.item2=l.item2,p.op=l.op, p.max=1,p.id=id;3)id=id+1;

(5)转到(2)执行;

(6)扫描链表P,若P为空,则表达式树集合{Ti}n中不存在子树模式, 即不存在出现频次大于或等于的完全子树,算法退出;否则,对P中的每个 结点p,若存在P中除了p以外的结点p′,满足p′.item1=p.id或p′.item2=p.id, 则p.max=-1,表示以p.op为根节点,p.item1、p.item2为叶结点的子树模式不 是极大子树模式;

(7)对链表P中的每个结点p,若p.max=1,则利用迭代算法TreeGene 建立结点p对应的表达式树,算法如下:

输入:p.op,p.item1,p.item2;

输出:表达式树T;

TreeGene(p.op,p.item1,p.item2)

{

建立p.op为根节点,p.item1、p.item2为叶结点的表达式树T;

若链表P存在除了p以外的结点p′,满足p′.id=p.item1,则将TreeGene(p′.op, p′.item1,p′.item2)创建的表达式树替代T的叶结点p.item1;

若链表P存在除了p以外的结点p′,满足p′.id=p.item2,则将TreeGene(p′.op, p′.item1,p′.item2)创建的表达式树替代T的叶结点p.item2;

}。

(8)对(7)生成每个表达式树分别赋予一个中间指标。

本发明的优点是,对税务指标计算表达式树进行极大子树模式挖掘,抽 取中间指标,用中间指标替代税务指标计算中频次较多的共性计算过程,能 够简化税务指标计算与后期维护。

附图说明

以下结合附图及具体实施方式对本发明作进一步的详细说明。

图1是本发明从表达式树集合中抽取极大子树模式的流程图。

具体实施方式

设税务指标集合为M={mi}n,指标mi的表达式树为Ti=(Vi,Ei);其中,Vi为结点集合,可进一步表示为Vi={mi}∪Ci∪Di,指标mi作为表达式树Ti的根 结点;Ci为指标mi的计算表达式中的运算符号集合,作为表达式树Ti的中间结 点;Di为指标mi的计算表达式中的数据项集合,作为表达式树Ti的叶结点; 为表达式树Ti的边集合;例如,对于指标“耗电率”,其计算表达 式为“评估期电费÷(评估期主营业务成本+期末存货-期初存货)”,对应表达 式树的根结点为“耗电率”,中间结点为“÷”、“+”、“-”,叶结点为“评 估期电费”、“评估期主营业务成本”、期末存货”、“期初存货”;

对于树Tc=(Vc,Ec)与Ti=(Vi,Ei),若满足以下条件,称Tc为Ti的完全子树, 表示为

a)

b)对于任意结点v∈Vi,如果v∈Vc,则v在Ti中的所有后代结点也是v在Tc中的后代结点;

如果树Tc满足以下两个条件,则称Tc为{Ti}n的一个极大子树模式:

a)

b)对于任意T′c,如果则

Tc是一个表达式树,可将该树对应的计算表达式用一个中间指标mc代替。

本发明基于子树模式挖掘的税务中间指标提取方法,首先要根据税务计 算表达式生成相应的表达式树集合,进而从表达式树集合中抽取极大子树模 式。

由税务计算表达式生成表达式树集合包括2个步骤,具体流程如下:

(1)将税务指标表达式转换为后缀表达式:扫描税务指标计算表达式, 遇到数字,加入后缀表达式;遇到运算符:1)若为最高级的运算符,入栈; 2)若为‘(’,入栈;3)若为‘)’,则依次把栈中的运算符加入后缀表达式中, 直到出现‘(’,将‘(’从栈中删除;4)若为不是最高级的运算符,则将从栈 顶到第一个优先级不大于它的运算符之间的运算符加入后缀表达式中,该运 算符再入栈;

(2)生成表达式树:从前向后依次扫描后缀表达式,如果是操作数就建 立一个单节点树,并把其指针压入栈;如果是操作符,则建立一个以该操作 符为根的树,然后从栈中依次弹出两个指针(这2个指针分别指向2个树), 作为该树的左右子树;然后把指向这棵树的指针压入栈,直到扫描完后缀表 达式;最后将表达式对应的指标作为表达式树的根结点。

参考图1,从表达式树集合中抽取极大子树模式包括8个步骤,具体流程 如下:

(1)执行以下初始化操作:

1)对每个i∈[1..n],对表达式树Ti进行后序遍历生成字符串形式的后缀 表达式si,从而形成后缀表达式集合S={si}n

2)初始化变量id=88880000,用于标示后缀表达式中频繁出现的字符串;

3)初始化五元组(item1,item2,op,id,max)为结点的空链表P,该链表结点 用于存放以op为根节点,item1、item2为叶结点的子树模式;item1与item2表 示数据项或所嵌套的子树模式的ID,op表示运算符号;id表示该子树模式的 ID;max表示以op为根节点,item1、item2为叶结点的子树模式是否为极大子 树模式,用max=1表示是极大子树模式,max=0表示不是极大子树模式;

(2)初始化四元组(item1,item2,op,num)为结点的空链表L,item1与item2 表示数据项或子树模式ID,op表示运算符号,num表示由item1、item2、op构 成的字符串在后缀表达式集合S中出现的次数;

(3)对每个s∈S,分别执行以下操作:

1)扫描后缀表达式s,匹配s中所有“aab”形式的子串,该子串对应一颗 以b为根节点,a为叶结点的表达式树,其中a表示计算表达式中的数据项或 子树模式ID,b表示计算表达式中的运算符号;

2)如果未匹配出“aab”形式的子串,则S=S-{s};

3)如果匹配出“aab”形式的子串,对于每个子串执行:设该子串为axaybz; 在链表L查找满足item1=ax∧item2=ay∧op=bz或者 item1=ay∧item2=ax∧op=bz的结点,若找到,假设该结点为l,则 l.num=l.num+1;若未找到,则在L的末尾加入一个结点l,并使得 l.item1=ax,l.item2=ay,l.op=bz,l.num=1;

(4)扫描链表L,若L为空,或者L中的每个结点l都满足l.num<5,则 转到STEP6;否则,对每个满足l.num≥5的结点l,执行以下操作:

1)对每个s∈S,查询s是否包含l.item1、l.item2、l.op连接形成的字符串 或l.item2、l.item1、l.op连接形成的字符串,若包含,则将s中的该字符串用 id替换,id可作为以l.op为根节点,l.item1、l.item2为叶结点的子树模式ID;

2)在P中加入一个结点p,并使得p.item1=l.item1,p.item2=l.item2, p.op=l.op,p.max=1,p.id=id;

3)id=id+1;

(5)转到(2)执行;

(6)扫描链表P,若P为空,则表达式树集合{Ti}n中不存在子树模式, 即不存在出现频次大于或等于的完全子树,算法退出;否则,对P中的每个 结点p,若存在P中除了p以外的结点p′,满足p′.item1=p.id或p′.item2=p.id, 则p.max=-1,表示以p.op为根节点,p.item1、p.item2为叶结点的子树模式不 是极大子树模式;

(7)对链表P中的每个结点p,若p.max=1,利用迭代算法TreeGene建 立结点p对应的表达式树:

输入:p.op,p.item1,p.item2;

输出:表达式树T;

TreeGene(p.op,p.item1,p.item2)

{

建立p.op为根节点,p.item1、p.item2为叶结点的表达式树T;

若链表P存在除了p以外的结点p′,满足p′.id=p.item1,则将 TreeGene(p′.op,p′.item1,p′.item2)创建的表达式树替代T的叶结点p.item1;

若链表P存在除了p以外的结点p′,满足p′.id=p.item2,则将 TreeGene(p′.op,p′.item1,p′.item2)创建的表达式树替代T的叶结点p.item2;

}。

(8)对(7)生成的每个表达式树分别赋予一个中间指标。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号