CN117240304B - 一种电子发票数据处理方法及系统 - Google Patents
一种电子发票数据处理方法及系统 Download PDFInfo
- Publication number
- CN117240304B CN117240304B CN202311490708.5A CN202311490708A CN117240304B CN 117240304 B CN117240304 B CN 117240304B CN 202311490708 A CN202311490708 A CN 202311490708A CN 117240304 B CN117240304 B CN 117240304B
- Authority
- CN
- China
- Prior art keywords
- character
- sequence
- code
- characters
- electronic invoice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims description 10
- 238000013507 mapping Methods 0.000 claims abstract description 168
- 238000007906 compression Methods 0.000 claims abstract description 64
- 230000006835 compression Effects 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 239000000758 substrate Substances 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及数据处理技术领域,具体涉及一种电子发票数据处理方法及系统,包括:采集电子发票数据,根据电子发票数据得到字符序列中每一类字符对应的编码;根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,根据字符序列中每一类字符对应的编码,得到字符‑编码映射序列,根据风险优先级序列和字符‑编码映射序列,得到压缩损失率;根据压缩损失率得到最终字符‑编码映射序列,根据最终字符‑编码映射序列对电子发票数据进行编码压缩。本发明通过对数据中字符的编码进行分析,通过编码的风险优先级对编码进行调整,达到在数据编码过程中,降低编码错误,减少数据损失的有益效果。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种电子发票数据处理方法及系统。
背景技术
随着电子商务和数字技术的迅猛发展,电子发票逐渐替代了传统的纸质发票,成为了交易和购销的标准记录形式。由于电子发票的数量巨大,其数据传输不仅需要时间,还可能产生大量的通信成本。电子发票包含了购票人员关键的信息,其中包括大量的数字、文本信息需要在传输和存储过程中确保其安全性和完整性,因此,需要对数据进行压缩,使其在数据传输存储过程中,降低数据损失的可能性。
传统的霍夫曼编码是一种前缀编码,其任何一个前缀编码都不可能是其他编码的前缀。这个性质是霍夫曼编码的基础,这同时也会导致霍夫曼编码过程中的错误传播问题。在电子发票数据进行压缩过程中,若出现一位错误,则会导致后面出现一系列错误的问题,而在电子发票数据中,存在发票号码、购票价格、日期等重要的信息,若出现错误则会对发票的合法性和完成性造成严重影响。
发明内容
为解决上述问题,本发明提供一种电子发票数据处理方法及系统。
本发明的一种电子发票数据处理方法及系统采用如下技术方案:
本发明一个实施例提供了一种电子发票数据处理方法,该方法包括以下步骤:
采集电子发票数据,所述电子发票数据包含若干字符;
根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码;
根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,根据字符序列、字符序列中每一类字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数;
根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,根据字符序列中每一类字符对应的编码,得到字符-编码映射序列,所述字符-编码映射序列是二维序列,第一维为字符序列中不同的字符,第二维为字符对应的编码,根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率;
根据映射序列调整后压缩损失率得到最终字符-编码映射序列,根据最终字符-编码映射序列对电子发票数据进行编码压缩。
进一步地,所述根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码,包括的具体步骤如下:
按照从左到右的顺序遍历电子发票中所有的字符,得到电子发票数据中所有字符的种类,并统计每一类字符对应的频率,将电子发票数据中所有字符的种类按照每一类字符对应的频率按照从大到小的顺序进行排序,得到电子发票数据的字符序列,记为字符序列;
根据字符序列利用霍夫曼编码算法构建霍夫曼树,根据霍夫曼树得到字符序列中每一类字符对应的编码。
进一步地,所述根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,包括的具体步骤如下:
按照从左到右的顺序遍历获取电子发票数据中每一个字符和右侧最相邻字符组成的二元字符组合,得到电子发票数据中所有二元字符组合,并统计电子发票数据中每一类二元字符组合对应的频数,将二元字符组合对应的频数为1的二元字符组合进行去除,将剩余所有二元字符组合按照其在电子发票数据中获取的顺序排列,得到二元字符组合序列,记为第一字符序列。
进一步地,所述根据字符序列、字符序列中每一类字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数,包括的具体步骤如下:
获取字符序列中任意两类字符,分别记为第一类字符、第二类字符,获取第一类字符对应的编码,获取第二类字符对应的编码;
式中,为第一类字符对应的编码中第i位编码,/>为第二类字符对应的编码中第i位编码,/>为取绝对值,/>为第一类字符对应的编码的长度,其中编码的长度为编码中包含的编码个数,/>为第二类字符对应的编码的长度,/>的获取方法如下:将/>和/>的最小值记为/>,/>为第一字符序列中由第一类字符在前且第二类字符在后组成的二元字符组合的出现频数,/>为字符序列中第一类字符的出现频数,/>字符序列中第二类字符的出现频数,为以自然常数为底的指数函数,/>为第一类字符和第二类字符对应编码的风险系数。
进一步地,所述根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,包括的具体步骤如下:
获取第一类字符和字符序列中每一类字符对应编码的风险系数,将第一类字符和字符序列中每一类字符对应编码的风险系数的均值,作为第一类字符对应的编码的风险优先级,获取字符序列中每一类字符对应的编码的风险优先级,将字符序列中每一类字符对应的编码的风险优先级按照从大到小的顺序进行排序,得到风险优先级序列。
进一步地,所述根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,包括的具体步骤如下:
将风险优先级序列中任意一个编码记为目标编码;
式中,为字符-编码映射序列中字符对应编码总个数,/>为风险优先级序列中目标编码的索引,/>为预设底数,/>为目标编码的移动步长,/>表示向上取整,/>表示以/>为底的对数函数;
将字符-编码映射序列中字符位置固定不变,获取风险优先级序列中第一个风险优先级对应的编码,记为第一编码,将字符-编码映射序列中第一编码对应的编码右移个位置,/>为第一编码的移动步长,获取风险优先级序列中第二个风险优先级对应的编码,记为第二编码,将字符-编码映射序列中第二编码对应的编码右移/>个位置,/>为第二编码的移动步长,直至将风险优先级序列中每一个风险优选级对应的编码在字符-编码映射序列中都进行右移,最终得到调整后的字符-编码映射序列,记为第一字符-编码映射序列。
进一步地,所述根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率,包括的具体步骤如下:
式中,为字符-编码映射序列中第j类字符对应的编码的长度,/>为第一字符-编码映射序列中第j类字符对应的编码的长度,/>为字符-编码映射序列中第j类字符对应的频率,/>为字符-编码映射序列中字符种类的总个数,/>为取绝对值,/>为映射序列调整后压缩损失率。
进一步地,所述根据映射序列调整后压缩损失率得到最终字符-编码映射序列,包括的具体步骤如下:
预设经验阈值,记为,当/>时,其中/>为映射序列调整后压缩损失率,根据风险优先级序列和第一字符-编码映射序列,得到第二字符-编码映射序列,并根据字符-编码映射序列和第二字符-编码映射序列中对应字符的编码长度差异,得到新的映射序列调整后压缩损失率,记为第一压缩损失率,将第一压缩损失率与预设经验阈值进行比较,若第一压缩损失率仍小于预设经验阈值,则继续获取新的映射序列,并得到新的压缩损失率与预设经验阈值进行比较,直至新的压缩损失率大于等于预设经验阈值时停止,将满足停止条件时前一个压缩损失率对应的字符-编码映射序列,记为最终字符-编码映射序列,当/>时,将第一字符-编码映射序列直接作为最终字符-编码映射序列。
进一步地,所述根据最终字符-编码映射序列对电子发票数据进行编码压缩,包括的具体步骤如下:
将电子发票数据中每一个字符根据最终字符-编码映射序列中字符对应的编码进行编码,得到电子发票编码数据,将电子发票编码数据利用LZW算法进行压缩。
本发明还提出了一种电子发票数据处理系统,包括存储器和处理器,所述处理器执行所述存储器存储的计算机程序,以实现前述所述一种电子发票数据处理方法的步骤。
本发明的技术方案的有益效果是:传统的霍夫曼编码中,由于存在一些编码较为相似,在数据时会导致编码过程中出现编码错误,若出现编码错误,该错误可能会扩散到整个编码序列。
本发明通过计算每一个编码与其余所有编码的差异得到编码的风险系数,根据每一个编码的风险系数计算得到每一个编码的风险优先级,根据每一个编码的风险优先级对编码进行调整,使风险优先级较高的编码所对应的字符频率较小,降低该编码在数据中出现的频率,以降低该编码出现错误的可能性,即可达到降低电子发票数据在压缩过程中出现错误的可能性,达到在数据编码过程中,降低编码错误,减少数据损失的有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例所提供的一种电子发票数据处理方法的步骤流程图。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种电子发票数据处理方法及系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一个或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种电子发票数据处理方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种电子发票数据处理方法的步骤流程图,该方法包括以下步骤:
步骤S001、采集电子发票数据。
需要说明的是,本实施例是一种电子发票数据处理方法,在开始处理之前,首先需要采集相应的电子发票数据,电子发票是指以电子形式存储和传输的发票信息,与传统的纸质发票相比,电子发票具有数字化、可自动化处理和便捷传输等特点。
具体的,通过与电子发票平台建立API接口,通过调用API接口的方式获取电子发票中的字符数据,记为电子发票数据,其中,电子发票数据中包含若干字符。需要说明的是,电子发票数据为一维数据,电子发票数据中包括但不限于以下内容:包括发票代码、发票号码、开票日期、销售方和购买方的纳税人识别号、名称、地址、电话等相关信息。
至此,得到电子发票数据。
步骤S002、根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码。
需要说明的是,由于传统的霍夫曼编码是一种变长编码方法,其中频率较高的字符使用较短的编码,频率较低的字符使用较长的编码,以实现更高的压缩比。然而,当发生编码错误时,即一个或多个码字被错误地解码为其他字符,会导致后续的编码全部错位,从而产生错误传播问题。字符的频率越高,则其被编码错误的可能性也就越大,因此需要根据编码的风险系数对霍夫曼树的子节点进行自适应调整,使编码风险系数越高的高频子节点在霍夫曼树中对应的字符子节点的频率越小。
需要说明的是,在电子发票数据中,一些数据名称,如“发票、号、人”等对应的字符在数据中会多次出现,而具体的人名的出现次数则较少,因此,数据中存在一些频率较高的字符以及一些频率较低的字符,而频率越高的字符的编码长度越短,编码长度越短,则与其相似的编码就越多,出现编码错误的可能也就越大,故需要遍历电子发票数据,根据电子发票数据中的各类字符的频率构建传统霍夫曼树,获取所有编码。
具体的,根据电子发票数据得到字符序列,具体如下:
按照从左到右的顺序遍历电子发票中所有的字符,得到电子发票数据中所有字符的种类,并统计每一类字符对应的频率,将电子发票数据中所有字符的种类按照每一类字符对应的频率按照从大到小的顺序进行排序,得到电子发票数据的字符序列,记为字符序列。
需要说明的是,字符序列中每一类字符对应的频率可以通过电子发票数据中每一类字符出现的频数除以电子发票数据中所有字符的频数来获取,本实施例不再进行具体赘述。
进一步地,根据字符序列得到字符序列中每一类字符对应的编码,具体如下:
根据字符序列利用霍夫曼编码算法构建霍夫曼树,根据霍夫曼树得到字符序列中每一类字符对应的编码。
需要说明的是,字符序列中每一类字符对应的编码都是根据构建的霍夫曼树得到。
至此,得到字符序列中每一类字符对应的编码。
步骤S003、根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,根据字符序列、字符序列中每一类字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数。
需要说明的是,在霍夫曼编码中,由于其前缀性质,如果编码在传输过程中发生一位错误,可能导致接下来整个序列错误。例如在电子发票数据中,字符“人”、“号”的出现频率较高,二者对应的编码也非常相似,只有一两位之差,如果其中一个编码在传输过程中出现一位错误,例如该编码的编码长度较长,编码长度越长的字符在编码过程中越容易出现丢失比特的情况,即出现丢失编码到的情况,当丢失一位编码时,则会出现编码错误,则会导致被误译为另一个字符,从而导致后续整个序列的解码错误。并且,这种情况在数据传输中不断的发生,错误就会不断的累计,从而形成错误传播。因此,需要计算编码之间的风险系数,根据编码之间的风险系数对各个子节点进行自适应调整,使编码风险系数越高的高频子节点在霍夫曼树中对应的字符子节点的频率越小,从而降低编码错误的可能性。
需要说明的是,构建的霍夫曼树中,距离越近的两个编码差异越小,编码越相似,则编码被编译错误的可能就越大,从而导致该编码的风险系数越大,因此两个编码根据对应位置的差异以及编码长度差异计算两个编码的风险系数。
进一步地需要说明的是,由于电子发票数据需要满足一定的格式要求,固定字符的存在可以确保数据的一致性和可读性。例如,字符“发”和“票”通常是在一起出现的,因此二者的出现频率较为接近,频率越接近的字符在霍夫曼树中的节点位置越接近,二者的相似程度也越高,相似程度越高则编译过程中出现错误的概率也就越大,因此在计算风险系数时,还需考虑数据中字符组合出现的频数以及字符组合中的各类单字符的出现频数。
具体的,根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,具体如下:
按照从左到右的顺序遍历获取电子发票数据中每一个字符和右侧最相邻字符组成的二元字符组合(即由相邻两个字符组成),得到电子发票数据中所有二元字符组合,并统计电子发票数据中每一类二元字符组合对应的频数,将二元字符组合对应的频数为1的二元字符组合进行去除,将剩余所有二元字符组合按照其在电子发票数据中获取的顺序排列,得到二元字符组合序列,记为第一字符序列。需要说明的是,电子发票数据中最后一个字符其右侧没有最相邻字符,因此不获取对应的二元字符组合。
进一步地,根据字符序列、字符序列中字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数,具体如下:
获取字符序列中任意两类字符,分别记为第一类字符、第二类字符,获取第一类字符对应的编码,获取第二类字符对应的编码。
式中,为第一类字符对应的编码中第i位编码,/>为第二类字符对应的编码中第i位编码,/>为取绝对值,/>为第一类字符对应的编码的长度,其中编码的长度为编码中包含的编码个数,/>为第二类字符对应的编码的长度,/>的获取方法如下:将/>和/>的最小值记为/>,/>为第一字符序列中由第一类字符在前且第二类字符在后组成的二元字符组合的出现频数,/>为字符序列中第一类字符的出现频数,/>为字符序列中第二类字符的出现频数;需要说明的是,字符的出现频数可通过字符对应的频率与电子发票数据中总字符个数的乘积得到,本实施例不再具体赘述,两类字符对应的二院字符组合若不存在于第一字符序列中,则对应出现频数为0;/>为以自然常数为底的指数函数,/>为第一类字符和第二类字符对应编码的风险系数。
需要说明的是,表示相同编码长度下,第一类字符和第二类字符对应编码的差异,二者的差异越大,则/>的取值越大,/>表示第一类字符对应的编码长度和第二类字符对应的编码长度的差异;相同编码长度下,第一类字符和第二类字符对应编码的差异越小,第一类字符对应的编码长度和第二类字符对应的编码长度的差异越小,则第一类字符与第二类字符对应的编码的风险系数越大。
的取值越大,说明二元字符组合的频数与这两类单字符的频数均值越接近,二者越接近,则说明二者在电子发票数据中为固定组合的可能性越高,则二者的编码越相似,编码越相似则编码出现错误的概率越高,即风险系数越高。
至此,字符序列中任意两类字符对应编码的风险系数。
步骤S004、根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,根据字符序列中每一类字符对应的编码,得到字符-编码映射序列,根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率。
需要说明的是,当存在某一个字符对应的编码与其余字符对应的编码的风险系数都较高时,则在对该编码进行编译时出现错误的概率就越高。因此,为了减少出现错误的概率,则需要将该编码对应的字符的频率降低,即使电子发票数据中出现该编码的次数减少,电子发票数据中出现该编码的次数越少,则该编码被编译错误的概率就越小。故需要根据每一类字符对应的编码与其他字符对应的编码的风险系数计算每一类字符对应的编码的风险优先级。
具体的,根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,具体如下:
获取第一类字符和字符序列中每一类字符对应编码的风险系数,将第一类字符和字符序列中每一类字符对应编码的风险系数的均值,作为第一类字符对应的编码的风险优先级,获取字符序列中每一类字符对应的编码的风险优先级,将字符序列中每一类字符对应的编码的风险优先级按照从大到小的顺序进行排序,得到风险优先级序列。
需要说明的是,风险优先级序列中字符对应的编码的风险优先级越大,则说明该编码与其他编码的差异越小,在编译过程中,编译出现错误的概率越大,因此需要为该编码分配频率较低的字符,以减少出现错误的概率。
进一步需要说明的是,由于每一类字符对应的编码为霍夫曼树的最优带权路径之和,即压缩效果最优的情况,在根据编码的风险优先级对编码对应的字符进行调整时,则必然会使压缩效果降低,而压缩效果降低的过多,则失去了对数据进行压缩的目的,因此,在对编码对应的字符进行调整时,还需考虑在调整过程中的压缩效果变化情况。
具体的,根据字符序列中每一类字符对应的编码,得到字符-编码映射序列。需要说明的是,由于字符和字符对应的编码都是根据步骤S002中构建霍夫曼树得到,因此字符-编码映射序列和步骤S002中构建霍夫曼树相对应,特别说明的是,字符-编码映射序列是二维序列,第一维为字符序列中不同的字符,第二维为字符对应的编码,其中,字符序列是按照字符的频率从大到小进行排列的,则字符-编码映射序列也是按照字符的频率从大到小排列的。
需要说明的是,在风险优先级序列中,越靠前的编码优先级越高,对应风险系数越大,因此需要优先对风险优先级序列中靠前的编码进行调整,使风险优先级序列中靠前的编码对应的字符频率降低,即使风险系数较高的编码在压缩过程中的出现频率较低,从而减少传输错误的概率。
具体的,根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,具体如下:
将风险优先级序列中任意一个编码记为目标编码。
式中,为字符-编码映射序列中字符对应编码总个数,/>为风险优先级序列中目标编码的索引,需要说明的是,编码的索引为编码在风险优先级序列中的次序,/>为预设底数,本实施例以/>进行叙述,/>为目标编码的移动步长,/>表示向上取整,/>表示以/>为底的对数函数。需要说明的是,风险优先级序列中为编码的风险优先级,且风险优先级序列和字符-编码映射序列中编码的总个数相同。
将字符-编码映射序列中字符位置固定不变,获取风险优先级序列中第一个风险优先级对应的编码,记为第一编码,将字符-编码映射序列中第一编码对应的编码右移个位置,/>为第一编码的移动步长,获取风险优先级序列中第二个风险优先级对应的编码,记为第二编码,将字符-编码映射序列中第二编码对应的编码右移/>个位置,/>为第二编码的移动步长,直至将风险优先级序列中每一个风险优选级对应的编码在字符-编码映射序列中都进行右移,最终得到调整后的字符-编码映射序列,记为第一字符-编码映射序列。需要特别说明的是,每一个编码在进行右移之后需要将编码的位置固定,当一个新的编码需要右移时,若新的编码的移动步长范围内有固定编码的位置,则需要跳过该位置,例如新的编码的移动步长为5,但是在新的编码的移动步长范围内有一个固定编码的位置,且新的编码可以向右移动,即移动不会超出序列的范围,则新的编码需要向右移动6个位置,即跳过固定编码的位置,若新的编码的移动步长范围内有固定编码的位置,且新的编码不可以向右移动,即移动之后超出序列的范围,则新的编码向右移动到字符-编码映射序列最后一个且没有固定编码的位置即可;同时在对编码移动过程中,其他编码会被移动,即在编码序列中被向前移动,向前移动过程中若遇到固定编码的位置,同样跳过该位置并继续向前移动到相应位置,即编码向后移动过程中其他编码被向前移动,使得编码序列中整体编码数量不会发生变化且不会出现空余位置,同时移动过程中均跳过固定编码的位置。
需要说明的是,在对编码与字符的映射关系进行调整后,即可使风险系数较高的编码在压缩过程中的出现频率较低,从而减少传输错误的概率,且在不断右移的过程中,压缩效果是在不断变化的,若效果变得过差,则失去了压缩的目的,因此需要对编码不断右移的过程中,对压缩效果进行衡量,设置右移终止条件,需要特别说明的是,上述得到调整后的字符-编码映射序列是一次右移得到的结果。
具体的,根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率,具体如下:
式中,为字符-编码映射序列中第j类字符对应的编码的长度,/>为第一字符-编码映射序列中第j类字符对应的编码的长度,/>为字符-编码映射序列中第j类字符对应的频率,即字符序列中第j类字符对应的频率,/>为字符-编码映射序列中字符种类的总个数,/>为取绝对值,/>为映射序列调整后压缩损失率。
需要说明的是,表示对字符与编码的映射关系进行调整前后的压缩率大小差异,且随着编码的不断右移,该值在不断的变大,该值越大,则说明电子发票数据的压缩损失就越大,压缩效果就越差;/>表示利用传统霍夫曼编码对数据进行压缩的压缩率大小。
至此,得到映射序列调整后压缩损失率。
步骤S005、根据映射序列调整后压缩损失率得到最终字符-编码映射序列,根据最终字符-编码映射序列对电子发票数据进行编码压缩。
需要说明的是,上述得到了映射序列调整后压缩损失率,则通过设置合适的右移终止条件,得到最终字符-编码映射序列,并根据最终字符-编码映射序列对电子发票数据进行编码压缩。
具体的,根据映射序列调整后压缩损失率得到最终字符-编码映射序列,具体如下:
预设经验阈值,记为,本实施例以/>为例进行叙述,当/>时,则认为压缩损失率较小,根据风险优先级序列和第一字符-编码映射序列,得到第二字符-编码映射序列;需要说明的是,得到第二字符-编码映射序列的方法和获取第一字符-编码映射序列的方法相同,本实施例不再赘述;并根据字符-编码映射序列和第二字符-编码映射序列中对应字符的编码长度差异,得到新的映射序列调整后压缩损失率,记为第一压缩损失率,将第一压缩损失率与预设经验阈值进行比较,若第一压缩损失率仍小于预设经验阈值,则继续获取新的映射序列,并得到新的压缩损失率与预设经验阈值进行比较,直至新的压缩损失率大于等于预设经验阈值时停止,将满足停止条件时前一个压缩损失率对应的字符-编码映射序列,记为最终字符-编码映射序列,当/>时,将第一字符-编码映射序列直接作为最终字符-编码映射序列。
进一步地,根据最终字符-编码映射序列对电子发票数据进行编码压缩,具体如下:
将电子发票数据中每一个字符根据最终字符-编码映射序列中字符对应的编码进行编码,得到电子发票编码数据,将电子发票编码数据利用LZW算法进行压缩。需要说明的是,根据最终字符-编码映射序列对电子发票数据进行编码可以降低编码错误的可能,从而减少电子发票数据损失的可能性。
需要再次说明的是,由于字符和字符对应的编码都是根据步骤S002中构建霍夫曼树得到,因此字符-编码映射序列和步骤S002中构建霍夫曼树相对应,则最终字符-编码映射序列也对应新的霍夫曼树,新的霍夫曼树和步骤S002中构建的霍夫曼树不同,由于需要对电子发票数据进行编码,根据最终字符-编码映射序列即可完成编码,最终字符-编码映射序列也为二维序列,第一维为字符序列中不同的字符,第二维为字符对应的编码。
通过以上步骤,完成一种电子发票数据处理方法。
本发明的另一个实施例提供了一种电子发票数据处理系统,所述系统包括存储器和处理器,所述处理器执行所述存储器存储的计算机程序时,执行以下操作:
采集电子发票数据,所述电子发票数据包含若干字符;根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码;根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,根据字符序列、字符序列中字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数;根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,根据字符序列中每一类字符对应的编码,得到字符-编码映射序列,所述字符-编码映射序列是二维序列,第一维为字符序列中不同的字符,第二维为字符对应的编码,根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率;根据映射序列调整后压缩损失率得到最终字符-编码映射序列,根据最终字符-编码映射序列对电子发票数据进行编码压缩。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种电子发票数据处理方法,其特征在于,该方法包括以下步骤:
采集电子发票数据,所述电子发票数据包含若干字符;
根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码;
根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,根据字符序列、字符序列中每一类字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数;
根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,根据字符序列中每一类字符对应的编码,得到字符-编码映射序列,所述字符-编码映射序列是二维序列,第一维为字符序列中不同的字符,第二维为字符对应的编码,根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率;
根据映射序列调整后压缩损失率得到最终字符-编码映射序列,根据最终字符-编码映射序列对电子发票数据进行编码压缩;
所述根据字符序列、字符序列中每一类字符对应的编码以及第一字符序列,得到字符序列中任意两类字符对应编码的风险系数,包括的具体步骤如下:
获取字符序列中任意两类字符,分别记为第一类字符、第二类字符,获取第一类字符对应的编码,获取第二类字符对应的编码;
式中,为第一类字符对应的编码中第i位编码,/>为第二类字符对应的编码中第i位编码,/>为取绝对值,/>为第一类字符对应的编码的长度,其中编码的长度为编码中包含的编码个数,/>为第二类字符对应的编码的长度,/>的获取方法如下:将/>和/>的最小值记为/>,/>为第一字符序列中由第一类字符在前且第二类字符在后组成的二元字符组合的出现频数,/>为字符序列中第一类字符的出现频数,/>字符序列中第二类字符的出现频数,为以自然常数为底的指数函数,/>为第一类字符和第二类字符对应编码的风险系数;
所述根据字符序列中任意两类字符对应编码的风险系数,得到风险优先级序列,包括的具体步骤如下:
获取第一类字符和字符序列中每一类字符对应编码的风险系数,将第一类字符和字符序列中每一类字符对应编码的风险系数的均值,作为第一类字符对应的编码的风险优先级,获取字符序列中每一类字符对应的编码的风险优先级,将字符序列中每一类字符对应的编码的风险优先级按照从大到小的顺序进行排序,得到风险优先级序列;
所述根据风险优先级序列和字符-编码映射序列,得到第一字符-编码映射序列,包括的具体步骤如下:
将风险优先级序列中任意一个编码记为目标编码;
式中,为字符-编码映射序列中字符对应编码总个数,/>为风险优先级序列中目标编码的索引,/>为预设底数,/>为目标编码的移动步长,/>表示向上取整,/>表示以/>为底的对数函数;
将字符-编码映射序列中字符位置固定不变,获取风险优先级序列中第一个风险优先级对应的编码,记为第一编码,将字符-编码映射序列中第一编码对应的编码右移个位置,/>为第一编码的移动步长,获取风险优先级序列中第二个风险优先级对应的编码,记为第二编码,将字符-编码映射序列中第二编码对应的编码右移/>个位置,/>为第二编码的移动步长,直至将风险优先级序列中每一个风险优选级对应的编码在字符-编码映射序列中都进行右移,最终得到调整后的字符-编码映射序列,记为第一字符-编码映射序列;
所述根据字符-编码映射序列和第一字符-编码映射序列中对应字符的编码长度差异,得到映射序列调整后压缩损失率,包括的具体步骤如下:
式中,为字符-编码映射序列中第j类字符对应的编码的长度,/>为第一字符-编码映射序列中第j类字符对应的编码的长度,/>为字符-编码映射序列中第j类字符对应的频率,为字符-编码映射序列中字符种类的总个数,/>为取绝对值,/>为映射序列调整后压缩损失率;
所述根据映射序列调整后压缩损失率得到最终字符-编码映射序列,包括的具体步骤如下:
预设经验阈值,记为,当/>时,其中/>为映射序列调整后压缩损失率,根据风险优先级序列和第一字符-编码映射序列,得到第二字符-编码映射序列,并根据字符-编码映射序列和第二字符-编码映射序列中对应字符的编码长度差异,得到新的映射序列调整后压缩损失率,记为第一压缩损失率,将第一压缩损失率与预设经验阈值进行比较,若第一压缩损失率仍小于预设经验阈值,则继续获取新的映射序列,并得到新的压缩损失率与预设经验阈值进行比较,直至新的压缩损失率大于等于预设经验阈值时停止,将满足停止条件时前一个压缩损失率对应的字符-编码映射序列,记为最终字符-编码映射序列,当时,将第一字符-编码映射序列直接作为最终字符-编码映射序列。
2.根据权利要求1所述一种电子发票数据处理方法,其特征在于,所述根据电子发票数据得到字符序列,根据字符序列得到字符序列中每一类字符对应的编码,包括的具体步骤如下:
按照从左到右的顺序遍历电子发票中所有的字符,得到电子发票数据中所有字符的种类,并统计每一类字符对应的频率,将电子发票数据中所有字符的种类按照每一类字符对应的频率按照从大到小的顺序进行排序,得到电子发票数据的字符序列,记为字符序列;
根据字符序列利用霍夫曼编码算法构建霍夫曼树,根据霍夫曼树得到字符序列中每一类字符对应的编码。
3.根据权利要求1所述一种电子发票数据处理方法,其特征在于,所述根据电子发票数据得到电子发票数据中所有二元字符组合的种类,根据电子发票数据中所有二元字符组合的种类,得到第一字符序列,包括的具体步骤如下:
按照从左到右的顺序遍历获取电子发票数据中每一个字符和右侧最相邻字符组成的二元字符组合,得到电子发票数据中所有二元字符组合,并统计电子发票数据中每一类二元字符组合对应的频数,将二元字符组合对应的频数为1的二元字符组合进行去除,将剩余所有二元字符组合按照其在电子发票数据中获取的顺序排列,得到二元字符组合序列,记为第一字符序列。
4.根据权利要求1所述一种电子发票数据处理方法,其特征在于,所述根据最终字符-编码映射序列对电子发票数据进行编码压缩,包括的具体步骤如下:
将电子发票数据中每一个字符根据最终字符-编码映射序列中字符对应的编码进行编码,得到电子发票编码数据,将电子发票编码数据利用LZW算法进行压缩。
5.一种电子发票数据处理系统,所述系统包括存储器和处理器,其特征在于,所述处理器执行所述存储器存储的计算机程序,以实现如权利要求1-4任一项所述一种电子发票数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490708.5A CN117240304B (zh) | 2023-11-10 | 2023-11-10 | 一种电子发票数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490708.5A CN117240304B (zh) | 2023-11-10 | 2023-11-10 | 一种电子发票数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117240304A CN117240304A (zh) | 2023-12-15 |
CN117240304B true CN117240304B (zh) | 2024-01-26 |
Family
ID=89082852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311490708.5A Active CN117240304B (zh) | 2023-11-10 | 2023-11-10 | 一种电子发票数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117240304B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9929743B1 (en) * | 2017-03-13 | 2018-03-27 | Chicago Mercantile Exchange Inc. | Data compression of electronic data transaction request messages |
CN109981111A (zh) * | 2019-03-28 | 2019-07-05 | 杭州即得科技有限公司 | 一种数据压缩编码的方法、装置及存储电子设备 |
CN112737596A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种基于排序网络的动态霍夫曼编码方法、装置及设备 |
CN116279682A (zh) * | 2023-02-20 | 2023-06-23 | 中国铁道科学研究院集团有限公司 | 高速综合检测列车的检测数据传输方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6657565B2 (en) * | 2002-03-21 | 2003-12-02 | International Business Machines Corporation | Method and system for improving lossless compression efficiency |
US9448300B2 (en) * | 2014-05-28 | 2016-09-20 | Nxp B.V. | Signal-based data compression |
-
2023
- 2023-11-10 CN CN202311490708.5A patent/CN117240304B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9929743B1 (en) * | 2017-03-13 | 2018-03-27 | Chicago Mercantile Exchange Inc. | Data compression of electronic data transaction request messages |
CN109981111A (zh) * | 2019-03-28 | 2019-07-05 | 杭州即得科技有限公司 | 一种数据压缩编码的方法、装置及存储电子设备 |
CN112737596A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种基于排序网络的动态霍夫曼编码方法、装置及设备 |
CN116279682A (zh) * | 2023-02-20 | 2023-06-23 | 中国铁道科学研究院集团有限公司 | 高速综合检测列车的检测数据传输方法及装置 |
Non-Patent Citations (2)
Title |
---|
Lossy Event Compression Based On Image-Derived Quad Trees And Poisson Disk Sampling;Srutarshi Banerjee;2021 IEEE International Conference on Image Processing;全文 * |
数字图像压缩编码;马光星;《现代电信科技》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117240304A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116506073B (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN103236847B (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
US20110181448A1 (en) | Lossless compression | |
CN116388767B (zh) | 用于软件开发数据的安全管理方法 | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN116634029B (zh) | 基于区块链的用工平台数据快速传输方法 | |
CN112003814B (zh) | 行情数据处理方法、装置、终端设备及存储介质 | |
CN116521093B (zh) | 一种智慧社区人脸数据存储方法及系统 | |
CN116610265B (zh) | 一种商务信息咨询系统的数据存储方法 | |
CN114782148B (zh) | 农产品收购管理平台及其业务数据压缩方法 | |
CN116405574A (zh) | 一种远程医疗图像优化通讯方法及系统 | |
CN117177100B (zh) | 一种智能ar偏振数据传输方法 | |
CN115543946A (zh) | 一种金融大数据优化存储方法 | |
US20220005229A1 (en) | Point cloud attribute encoding method and device, and point cloud attribute decoding method and devcie | |
US20100321218A1 (en) | Lossless content encoding | |
CN117097441B (zh) | 基于数据分析的载波通信系统传输效率优化方法 | |
CN117240304B (zh) | 一种电子发票数据处理方法及系统 | |
CN105791832B (zh) | 数据编码方法和数据解码方法及其系统 | |
CN116805537B (zh) | 用于心肺康复管理系统的数据处理方法 | |
CN116757158B (zh) | 基于半导体存储的数据管理方法 | |
CN116170027B (zh) | 一种毒检设备数据管理系统及处理方法 | |
CN116109714A (zh) | 基于神经网络的数据编码存储方法及系统 | |
US9235610B2 (en) | Short string compression | |
CN114257342A (zh) | 基于非二进制极化码的两用户多址接入系统编码及译码方法 | |
CN106559085A (zh) | 一种范式哈夫曼解码方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |