CN111884659A - 一种fst数据的压缩方法和装置 - Google Patents

一种fst数据的压缩方法和装置 Download PDF

Info

Publication number
CN111884659A
CN111884659A CN202010737012.8A CN202010737012A CN111884659A CN 111884659 A CN111884659 A CN 111884659A CN 202010737012 A CN202010737012 A CN 202010737012A CN 111884659 A CN111884659 A CN 111884659A
Authority
CN
China
Prior art keywords
data
arrangement
fst
state
decomposition
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.)
Granted
Application number
CN202010737012.8A
Other languages
English (en)
Other versions
CN111884659B (zh
Inventor
梁振兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ziipin Network Science & Technology Co ltd
Original Assignee
Guangzhou Ziipin Network Science & Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Ziipin Network Science & Technology Co ltd filed Critical Guangzhou Ziipin Network Science & Technology Co ltd
Priority to CN202010737012.8A priority Critical patent/CN111884659B/zh
Publication of CN111884659A publication Critical patent/CN111884659A/zh
Priority to PCT/CN2021/078808 priority patent/WO2022021876A1/en
Priority to US17/782,152 priority patent/US20230005474A1/en
Application granted granted Critical
Publication of CN111884659B publication Critical patent/CN111884659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请公开了一种FST数据的压缩方法和装置,其中方法包括:获取待压缩的FST数据,FST数据包括:状态连接弧数据和状态节点数据;将状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;将状态节点数据按照第二数据种类进行分解,得到第二分解数据;将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据;将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据;将第一排列数据和第二排列数据进行分类统计,得到索引数据;将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。

Description

一种FST数据的压缩方法和装置
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种FST数据的压缩方法和装置。
背景技术
在自然语言处理技术领域中的语音识别、全文检索和输入法等应用中,搜索引擎在获取到输入信息后,将输入信息在词典索引中进行搜索,接着输出匹配结果。词典索引作为搜索时的匹配库,其的数据结构会影响搜索算法、搜索速度和匹配结果。
有限状态转换机(Finite-State Transducers,FST)是一种词典索引数据结构,如图1(A)所示为FST的简单结构示意图,主要包括:状态节点S1~S4和状态连接弧a1~a5,状态节点包括:起始状态标记和结束状态标记;如图1(B)所示为FST的简单数据结构示意图,状态连接弧数据包括:信号标签数据(label)、权重数据(weight)和下一状态节点标号数据(next state),状态节点数据包括附属状态连接弧标号数据,标记为结束的状态节点对应的状态节点数据又包括结束权重数据。FST数据中存在大量冗余数据,然而FST数据一般长期存储在应用终端,在终端资源有限的情况下,大量冗余数据会造成终端内存资源紧缺。所以,FST数据的压缩优化显得十分重要。
现有的数据压缩方法中,将标记为结束的状态节点的结束权重包装成状态连接弧的权重,生成统一格式的压缩数据保存起来。如图4所示为现有的FST的压缩数据结构示意图。上述的方法虽然可以取得一定的压缩效果,但是在将标记为结束的状态节点的结束权重包装成状态连接弧的权重的过程中,为了保持压缩数据格式的一致性,又将状态节点中不存在的下一状态节点标号加入到了压缩数据中,造成了数据空间的浪费。另外,当所有状态连接弧都不包括权重时,上述的方法仍然将状态连接弧中不存在的权重加入到了压缩数据中,造成了数据空间的浪费。
因此,提供一种FST数据的高效压缩方法是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请提供了一种FST数据的压缩方法和装置,有效减少了FST数据的占用空间,解决了数据空间浪费的技术问题。
本申请第一方面提供了一种FST数据的压缩方法,包括:
获取待压缩的FST数据,所述FST数据包括:状态连接弧数据和状态节点数据;
将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;
将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据;
将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据;
将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据;
将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据;
将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩。
可选地,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,具体包括:
将所述状态连接弧数据按照信号标签、权重和下一状态节点标号的数据种类进行分解,得到信号标签分解数据、权重分解数据和下一状态节点标号分解数据。
可选地,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,之前还包括:
根据所述信号标签的最大数值及所述状态节点数据的状态节点总数,设定所述第一分解数据的数据类型。
可选地,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,之后还包括:
当所述FST数据对应的数据结构为FSA结构时,将所述信号标签分解数据中的输出信号标签分解数据移除;
当所述FST数据对应的数据结构为字典树结构时,将所述权重分解数据移除。
可选地,将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据,具体包括:
将结束状态节点对应的所述状态节点数据,按照空白标签和结束权重的数据种类进行分解,得到空白标签分解数据和结束权重分解数据,其中,所述结束状态节点为:结束状态标记对应的状态节点。
可选地,将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据,具体包括:
将所有所述信号标签分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的信号标签排列数据;
将所有所述权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的权重排列数据;
将所有所述下一状态节点标号分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的下一状态节点标号排列数据。
可选地,将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据,具体包括:
将所有所述信号标签排列数据与所述空白标签分解数据,按照各自对应的所属状态节点的先后顺序进行混合排列,得到信号标签混合排列数据;
将所有所述结束权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到结束权重排列数据。
可选地,将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据,具体包括:
将所述第一排列数据按照对应的所属状态节点进行分类统计,得到第一索引数据;
将所述第二排列数据按照对应的所属状态节点进行分类统计,得到第二索引数据。
可选地,将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据,之前还包括:
根据最大附属状态连接弧数量,设定所述索引数据的数据类型,所述最大附属状态连接弧数量为:所述状态节点数据对应的所有状态节点中,最大状态节点的附属状态连接弧数量,其中,所述最大状态节点为附属连接弧数量最多的状态节点。
可选地,将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩,具体包括:
将所有所述权重排列数据、所述下一状态节点标号排列数据、所述信号标签混合排列数据、所述结束权重排列数据和所述索引数据组合,以完成所述FST数据的压缩。
本申请第二方面提供了一种FST数据的压缩装置,包括:
获取单元,用于获取待压缩的FST数据,所述FST数据包括:状态连接弧数据和状态节点数据;
第一分解单元,用于将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;
第二分解单元,用于将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据;
第一排列单元,用于将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据;
第二排列单元,用于将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据;
分类统计单元,用于将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据;
组合单元,用于将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩。
从以上技术方案可以看出,本申请提供的压缩方法具有以下优点:
本申请提供的一种FST数据的压缩方法,包括:获取待压缩的FST数据,FST数据包括:状态连接弧数据和状态节点数据;将状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;将状态节点数据按照第二数据种类进行分解,得到第二分解数据;将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据;将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据;将第一排列数据和第二排列数据进行分类统计,得到索引数据;将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。
本申请中,将FST数据的状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,同时将状态节点数据按照第二数据种类进行分解,得到第二分解数据,然后将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据,再接着将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据,然后将第一排列数据和第二排列数据进行分类统计,得到索引数据,最后将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。在整个过程中,是将FST数据进行了细粒度的分解和排列,不再需要额外添加其它的数据,相较于现有的为了保持压缩数据格式一致性而添加了不存在的数据的压缩方法,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例所使用的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1(A)为FST的简单结构示意图;
图1(B)为图1(A)的数据结构示意图;
图2为本申请实施例中一种FST数据的压缩方法的实施例一的流程示意图;
图3为本申请实施例中一种FST数据的压缩方法的实施例二的流程示意图;
图4为现有的压缩方法对FST数据进行压缩后的数据结构示意图;
图5为本申请实施例中的压缩方法对FST数据进行压缩后的数据结构示意图;
图6为本申请实施例中一种FST数据的压缩装置的实施例的结构示意图。
具体实施方式
本申请实施例提供了一种FST数据的压缩方法和装置,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
字典树(Trie):一种具有相同前缀的有序前缀树。
FSA:一种不包括输出信号标签的有限状态自动机(Finite-State Automaton)。
数据类型:数据内容在存储器中的数值表示法、解释和结构。
请参阅图2,本申请实施例中一种FST数据的压缩方法的实施例一的流程示意图。
本实施例中的一种FST数据的压缩方法,包括:
步骤201、获取待压缩的FST数据,FST数据包括:状态连接弧数据和状态节点数据。
要对FST数据进行压缩,首先获取待压缩的FST数据。
需要说明的是,不同结构的FST数据可能不完全相同,但如图1(A)所示,各FST结构都包括:状态节点(state)、状态连接弧(arc)、信号标签(label)、权重(weight)、下一状态节点标号(next state)、起始状态标记(start)和结束状态标记(final);如图1(B)所示,对应的FST数据包括:状态连接弧数据和状态节点数据,状态连接弧数据包括:信号标签数据、权重数据和下一状态节点标号数据,状态节点数据包括:结束权重数据和附属状态连接弧标号数据。对于每个状态连接弧,可以根据状态节点数据中的附属状态连接弧标号数据,确定其对应的所属状态节点。
可以理解的是,图1(A)中的标记Si表示状态节点,ai表示状态连接弧,加粗的标记○表示起始状态节点,标记◎表示结束状态节点。其中,结束状态节点标记又代表了结束权重标记,状态连接弧标记又代表了信号标签标记和权重标记。
步骤202、将状态连接弧数据按照第一数据种类进行分解,得到第一分解数据。
状态连接弧数据和状态节点数据结构本身存在不同,现有的压缩方法是,将状态连接弧数据和状态节点数据进行了统一,这样将导致添加了本来不存在的数据。本实施例中,不再将数据进行统一,而是将数据进行分解,并根据分解数据种类进行单独排列、混合排列等,故首先将FST数据中的状态连接弧数据按照第一数据种类进行细粒度的分解,得到细粒度的第一分解数据。
可以理解的是,参照图1(A)所示的FST结构,将该FST结构对应的FST数据进行如步骤202的处理可以是:
将状态连接弧a1~a5的数据按照信号标签、权重和下一状态节点标号的数据种类进行分解,得到a1~a5信号标签分解数据、a1~a5权重分解数据和a1~a5下一状态节点标号分解数据。
步骤203、将状态节点数据按照第二数据种类进行分解,得到第二分解数据。
本实施例中,在将状态连接弧数据进行分解时,同时将状态节点数据按照第二数据种类进行细粒度的分解,得到细粒度的第二分解数据。
可以理解的是,参照图1(A)所示的FST结构,将该FST结构对应的FST数据进行如步骤203的处理可以是:
将状态节点数据中标记为结束的状态节点S2、S4的数据,按照空白标签和结束权重的数据种类进行分解,得到S2、S4空白标签分解数据和S2、S4结束权重分解数据。
步骤204、将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据。
可以理解的是,基于上述步骤202得到的第一分解数据,进行如步骤204的处理可以是:
将a1~a5信号标签分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到排列顺序为a1信号标签、a2信号标签、a3信号标签、a4信号标签、a5信号标签的信号标签排列数据;
将a1~a5权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到排列顺序为a1权重、a2权重、a3权重、a4权重、a5权重的权重排列数据;
将a1~a5下一状态节点标号分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到排列顺序为a1下一状态节点标号、a2下一状态节点标号、a3下一状态节点标号、a4下一状态节点标号、a5下一状态节点标号的下一状态节点标号排列数据。
步骤205、将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据。
可以理解的是,基于上述步骤204和步骤203得到的第一排列数据与第二分解数据,进行如步骤205的处理可以是:
将第一排列数据中的a1~a5信号标签排列数据与第二分解数据中的S2、S4空白标签分解数据混合,按照各自对应的所属状态节点的先后顺序进行混合排列,得到排列顺序为a1信号标签、a2信号标签、S2空白标签、a3信号标签、a4信号标签、a5信号标签、S4空白标签的信号标签混合排列数据;
将S2、S4结束权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到排列顺序为S2结束权重、S4结束权重的结束权重排列数据。
步骤206、将第一排列数据和第二排列数据进行分类统计,得到索引数据。
可以理解的是,基于上述步骤204和步骤205得到的第一排列数据和第二排列数据,进行如步骤206的处理可以是:
将第一排列数据中的信号标签排列数据,按照所属状态节点进行分类统计,得到第一索引数据,索引值为S1:2、S2:2、S3:1、S4:0;
将第二排列数据中的信号标签混合排列数据,按照所属状态节点进行分类统计,得到第二索引数据,索引值为S1:2、S2:3、S3:1、S4:1。
步骤207、将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。
可以理解的是,基于上述步骤204和步骤205得到的第一排列数据和第二排列数据,以及通过步骤206得到的索引数据,进行如步骤207的处理可以是:
将第一排列数据中的权重排列数据和下一状态节点标号排列数据,与第二排列数据中的信号标签混合排列数据和结束权重排列数据,以及索引数据组合,以完成FST数据的压缩。
最后得到的压缩数据的排列顺序为:S1:2、S2:3、S3:1、S4:1、a1信号标签、a2信号标签、S2空白标签、a3信号标签、a4信号标签、a5信号标签、S4空白标签、a1权重、a2权重、a3权重、a4权重、a5权重、a1下一状态节点标号、a2下一状态节点标号、a3下一状态节点标号、a4下一状态节点标号、a5下一状态节点标号、S2结束权重、S4结束权重。
本实施例中,将FST数据的状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,同时将状态节点数据按照第二数据种类进行分解,得到第二分解数据,然后将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据,再接着将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据,然后将第一排列数据和第二排列数据进行分类统计,得到索引数据,最后将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。在整个过程中,是将FST数据进行了细粒度的分解和排列,不再需要额外添加其它的数据,相较于现有的为了保持压缩数据格式一致性而添加了不存在的数据的压缩方法,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。
以上为本申请实施例提供的一种FST数据的压缩方法的实施例一,以下为本申请实施例提供的一种FST数据的压缩方法的实施例二。
请参阅图3,本申请实施例中一种FST数据的压缩方法的实施例二的流程示意图。
本实施例中的一种FST数据的压缩方法,包括:
步骤301、获取待压缩的FST数据,FST数据包括:状态连接弧数据和状态节点数据。
需要说明的是,步骤301的描述与实施例一中步骤201的描述相同,具体可以参见上述描述,在此不再赘述。
步骤302、根据信号标签的最大数值及状态节点总数,设定第一分解数据的数据类型。
现有的技术方案中对于FST数据采用统一的、占用空间较大的状态连接弧数据类型,其中信号标签数据类型为32-bit Integer,下一状态节点标号数据类型为32-bitInteger,权重数据类型为32-bit Float,这样会造成数据空间的浪费。因此本实施例中只需要针对各FST数据自身的情况,设计其合适的状态连接弧数据类型。故本实施例中首先计算各状态连接弧的不同数据的数值范围,即信号标签数据、权重数据和下一状态节点标号数据各自对应的数值范围,然后根据各自数值范围的最大值,分别选定各自合适的数据类型,使得对于任意状态连接弧,其的信号标签数据、权重数据和下一状态节点标号数据在各自数值范围内的任意值,都分别有各自数据类型的某个值与之对应。
可以理解的是,进行如步骤302的处理可以是:
信号标签的最大数值为127,信号标签数值范围为0~127,故信号标签数据类型为7-bit Integer;
状态节点总数为4,状态节点标号数值范围为0~3,故下一状态节点标号数据类型为2-bit Integer;
权重数值范围为0~255,故权重数据类型为8-bit Integer。
步骤303、将状态连接弧数据按照第一数据种类进行分解,得到第一分解数据。
需要说明的是,步骤303的描述与实施例一中步骤202的描述相同,具体可以参见上述描述,在此不再赘述。
步骤304、当FST数据对应的数据结构为FSA结构时,将信号标签分解数据中的输出信号标签分解数据移除。
在FST数据格式中,每个信号标签数据都包括输入信号标签数据(input label)和输出信号标签数据(output label)。当使用FST数据格式来表示FSA结构时,输入信号标签和输出信号标签的数值相等。
可以理解的是,当FST数据对应的数据结构退化或变化为FSA结构时,其所有状态连接弧数据的输入信号标签数据和输出信号标签数据的数值互相重复,对于这种情况,可以将信号标签分解数据中的输出信号标签分解数据作为冗余数据移除,进一步减小FST数据的占用空间。
步骤305、当FST数据对应的数据结构为字典树结构时,将权重分解数据移除。
当使用FST数据格式来表示字典树结构时,对于任意一个状态节点,从起始状态节点出发到达该节点的路径都是唯一的,即路径上所途径的状态连接弧的集合是唯一的。也就是说,从起始状态节点出发到达指定的目标节点,所途径的状态连接弧的权重总和,加上目标节点的结束权重,其数值是唯一的。所以,所有状态连接弧的权重可以被转移叠加到状态节点的结束权重上。
可以理解的是,当FST数据对应的数据结构为字典树结构时,其所有状态连接弧数据可能都不包括权重数据。对于这种情况,可以将权重分解数据作为冗余数据移除,进一步减小FST数据的占用空间。
步骤306、将状态节点数据按照第二数据种类进行分解,得到第二分解数据。
需要说明的是,步骤306的描述与实施例一中步骤203的描述相同,具体可以参见上述描述,在此不再赘述。
步骤307、将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据。
需要说明的是,步骤307的描述与实施例一中步骤204的描述相同,具体可以参见上述描述,在此不再赘述。
步骤308、将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据。
需要说明的是,步骤308的描述与实施例一中步骤205的描述相同,具体可以参见上述描述,在此不再赘述。
步骤309、根据最大附属状态连接弧数量,设定索引数据的数据类型。
需要说明的是,最大附属状态连接弧数量为:状态节点数据对应的所有状态节点中,最大状态节点的附属状态连接弧数量,其中,最大状态节点为附属连接弧数量最多的状态节点。
现有的技术方案中对于FST数据的索引数据采用数值范围较大的、占用空间也较大的地址偏移量数据类型,如图4所示,其中数据类型一般为8-bit Integer、16-bitInteger、32-bit Integer,这样会造成数据空间的浪费。因此本实施例中只需要针对各FST数据自身的情况,设计其合适的索引数据类型。由于每个状态节点的附属状态连接弧的最大数量都是有限的,并且一般不超过信号标签的最大数值,所以选定数值范围较小的、占用空间也较小的地址相对偏移量数据类型,如图5所示。
可以理解的是,进行如步骤309的处理可以是:
各状态节点的附属状态连接弧数量情况为:S1附属2个状态连接弧、S2附属2个状态连接弧、S3附属1个状态连接弧、S4附属0个状态连接弧。因此,每个状态节点的附属状态连接弧最大数量为2,考虑到可能有1个空白标签的占位情况,最大数量应该为3,索引数值范围为0~3,故索引数据类型为2-bit Integer。
步骤310、将第一排列数据和第二排列数据进行分类统计,得到索引数据。
需要说明的是,步骤310的描述与实施例一中步骤206的描述相同,具体可以参见上述描述,在此不再赘述。
步骤311、将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。
需要说明的是,步骤311的描述与实施例一中步骤207的描述相同,具体可以参见上述描述,在此不再赘述。
观察通过使用不同的压缩方法得到的压缩数据,如图4所示为通过现有的压缩方法对FST数据进行压缩后,得到的压缩数据的排列结构,如图5所示为通过本实施例中的压缩方法对FST数据进行压缩后,得到的压缩数据的排列结构。可以发现,相较于现有的技术方案,通过本申请技术方案进行压缩后的数据占用空间减少了2个下一状态节点标号数据单位,以及其它因选用合适的数据类型而减少的数据单位,当FST数据对应的数据结构较为复杂时,其的节省空间是较为可观的。
本实施例中,将FST数据的状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,同时将状态节点数据按照第二数据种类进行分解,得到第二分解数据,然后将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据,再接着将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据,然后将第一排列数据和第二排列数据进行分类统计,得到索引数据,最后将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩;在对状态连接弧数据进行第一数据种类分解而得到第一分解数据的过程中,可以根据信号标签的最大数值及状态节点总数来设定第一分解数据的数据类型,以及根据FST数据对应的数据结构来将输出信号标签分解数据和权重分解数据移除;在对排列数据进行分类统计而得到索引数据的过程中,可以根据最大附属状态连接弧数量来设定索引数据的数据类型。在整个过程中,是将FST数据进行了细粒度的分解和排列,不再需要额外添加其它的数据,相较于现有的为了保持压缩数据格式一致性而添加了不存在的数据的压缩方法,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。
以上为本申请实施例提供的一种FST数据的压缩方法的实施例二,以下为本申请实施例提供的一种FST数据的压缩装置的实施例。
请参阅图6,本申请实施例中一种FST数据的压缩装置的实施例的结构示意图,包括:
获取单元601,用于获取待压缩的FST数据,FST数据包括:状态连接弧数据和状态节点数据;
第一分解单元602,用于将状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;
第二分解单元603,用于将状态节点数据按照第二数据种类进行分解,得到第二分解数据;
第一排列单元604,用于将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据;
第二排列单元605,用于将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据;
分类统计单元606,用于将第一排列数据和第二排列数据进行分类统计,得到索引数据;
组合单元607,用于将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。
本实施例中,将FST数据的状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,同时将状态节点数据按照第二数据种类进行分解,得到第二分解数据,然后将同一第一数据种类的第一分解数据按照先后顺序进行连续排列,得到各第一数据种类对应的第一排列数据,再接着将第一排列数据与第二分解数据按照先后顺序进行混合排列,得到第二排列数据,然后将第一排列数据和第二排列数据进行分类统计,得到索引数据,最后将第一排列数据、第二排列数据和索引数据组合,以完成FST数据的压缩。在整个过程中,是将FST数据进行了细粒度的分解和排列,不再需要额外添加其它的数据,相较于现有的为了保持压缩数据格式一致性而添加了不存在的数据的压缩方法,有效减少了FST数据的占用空间,从而解决了数据空间浪费的技术问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个待安装电网网络,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接可以是电性、机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有的技术方案做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种FST数据的压缩方法,其特征在于,包括:
获取待压缩的FST数据,所述FST数据包括:状态连接弧数据和状态节点数据;
将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;
将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据;
将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据;
将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据;
将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据;
将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩。
2.根据权利要求1所述的FST数据的压缩方法,其特征在于,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,具体包括:
将所述状态连接弧数据按照信号标签、权重和下一状态节点标号的数据种类进行分解,得到信号标签分解数据、权重分解数据和下一状态节点标号分解数据。
3.根据权利要求2所述的FST数据的压缩方法,其特征在于,将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据,具体包括:
将所有所述信号标签分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的信号标签排列数据;
将所有所述权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的权重排列数据;
将所有所述下一状态节点标号分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到对应的下一状态节点标号排列数据。
4.根据权利要求3所述的FST数据的压缩方法,其特征在于,将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据,具体包括:
将结束状态节点对应的所述状态节点数据,按照空白标签和结束权重的数据种类进行分解,得到空白标签分解数据和结束权重分解数据,其中,所述结束状态节点为:结束状态标记对应的状态节点。
5.根据权利要求4所述的FST数据的压缩方法,其特征在于,将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据,具体包括:
将所有所述信号标签排列数据与所述空白标签分解数据,按照各自对应的所属状态节点的先后顺序进行混合排列,得到信号标签混合排列数据;
将所有所述结束权重分解数据,按照各自对应的所属状态节点的先后顺序进行连续排列,得到结束权重排列数据。
6.根据权利要求5所述的FST数据的压缩方法,其特征在于,将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩,具体包括:
将所有所述权重排列数据、所述下一状态节点标号排列数据、所述信号标签混合排列数据、所述结束权重排列数据和所述索引数据组合,以完成所述FST数据的压缩。
7.根据权利要求2所述的FST数据的压缩方法,其特征在于,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,之前还包括:
根据所述信号标签的最大数值及所述状态节点数据的状态节点总数,设定所述第一分解数据的数据类型。
8.根据权利要求2所述的FST数据的压缩方法,其特征在于,将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据,之后还包括:
当所述FST数据对应的数据结构为FSA结构时,将所述信号标签分解数据中的输出信号标签分解数据移除;
当所述FST数据对应的数据结构为字典树结构时,将所述权重分解数据移除。
9.根据权利要求1所述的FST数据的压缩方法,其特征在于,将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据,具体包括:
将所述第一排列数据按照对应的所属状态节点进行分类统计,得到第一索引数据;
将所述第二排列数据按照对应的所属状态节点进行分类统计,得到第二索引数据。
10.根据权利要求9所述的FST数据的压缩方法,其特征在于,将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据,之前还包括:
根据最大附属状态连接弧数量,设定所述索引数据的数据类型,所述最大附属状态连接弧数量为:所述状态节点数据对应的所有状态节点中,最大状态节点的附属状态连接弧数量,其中,所述最大状态节点为附属连接弧数量最多的状态节点。
11.一种FST数据的压缩装置,其特征在于,包括:
获取单元,用于获取待压缩的FST数据,所述FST数据包括:状态连接弧数据和状态节点数据;
第一分解单元,用于将所述状态连接弧数据按照第一数据种类进行分解,得到第一分解数据;
第二分解单元,用于将所述状态节点数据按照第二数据种类进行分解,得到第二分解数据;
第一排列单元,用于将同一所述第一数据种类的所述第一分解数据按照先后顺序进行连续排列,得到各所述第一数据种类对应的第一排列数据;
第二排列单元,用于将所述第一排列数据与所述第二分解数据按照先后顺序进行混合排列,得到第二排列数据;
分类统计单元,用于将所述第一排列数据和所述第二排列数据进行分类统计,得到索引数据;
组合单元,用于将所述第一排列数据、所述第二排列数据和所述索引数据组合,以完成所述FST数据的压缩。
CN202010737012.8A 2020-07-28 2020-07-28 一种fst数据的压缩方法和装置 Active CN111884659B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010737012.8A CN111884659B (zh) 2020-07-28 2020-07-28 一种fst数据的压缩方法和装置
PCT/CN2021/078808 WO2022021876A1 (en) 2020-07-28 2021-03-03 Method and device for compressing finite-state transducers data
US17/782,152 US20230005474A1 (en) 2020-07-28 2021-03-03 Method and device for compressing finite-state transducers data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010737012.8A CN111884659B (zh) 2020-07-28 2020-07-28 一种fst数据的压缩方法和装置

Publications (2)

Publication Number Publication Date
CN111884659A true CN111884659A (zh) 2020-11-03
CN111884659B CN111884659B (zh) 2021-09-10

Family

ID=73200387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010737012.8A Active CN111884659B (zh) 2020-07-28 2020-07-28 一种fst数据的压缩方法和装置

Country Status (3)

Country Link
US (1) US20230005474A1 (zh)
CN (1) CN111884659B (zh)
WO (1) WO2022021876A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022021876A1 (en) * 2020-07-28 2022-02-03 Guangzhou Ziipin Network Technology Co., Ltd Method and device for compressing finite-state transducers data

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124889A (zh) * 1993-12-23 1996-06-19 株式会社理光 数据并行编码和译码的方法和装置
JPH11266162A (ja) * 1998-01-05 1999-09-28 Ricoh Co Ltd 符号化方法、符号化装置、圧縮/伸長システム、fsmコ―ダ―及びコ―ダ―
US20060218161A1 (en) * 2005-03-23 2006-09-28 Qian Zhang Systems and methods for efficiently compressing and decompressing markup language
US20070192104A1 (en) * 2006-02-16 2007-08-16 At&T Corp. A system and method for providing large vocabulary speech processing based on fixed-point arithmetic
CN101256624A (zh) * 2007-02-28 2008-09-03 微软公司 建立适用于识别手写东亚字符的hmm拓扑结构的方法及系统
CN204272112U (zh) * 2014-12-11 2015-04-15 河北大学 电力载波通信语音压缩编码装置
CN104866981A (zh) * 2015-06-12 2015-08-26 武汉理工大学 一种基于扩展有限状态机的业务流程管理的建模方法
CN106651658A (zh) * 2016-12-30 2017-05-10 合肥工业大学 一种基于有限状态机的非侵入式住宅用电负荷分解方法
US9865254B1 (en) * 2016-02-29 2018-01-09 Amazon Technologies, Inc. Compressed finite state transducers for automatic speech recognition
CN108417222A (zh) * 2017-02-10 2018-08-17 三星电子株式会社 加权有限状态变换器解码系统以及语音识别系统
CN110704199A (zh) * 2019-09-06 2020-01-17 深圳平安通信科技有限公司 数据压缩方法、装置、计算机设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661138B1 (en) * 2005-08-31 2010-02-09 Jupiter Networks, Inc. Finite state automaton compression
US7949679B2 (en) * 2008-03-05 2011-05-24 International Business Machines Corporation Efficient storage for finite state machines
CN104636349B (zh) * 2013-11-07 2018-05-22 阿里巴巴集团控股有限公司 一种索引数据压缩以及索引数据搜索的方法和设备
CN111884659B (zh) * 2020-07-28 2021-09-10 广州智品网络科技有限公司 一种fst数据的压缩方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1124889A (zh) * 1993-12-23 1996-06-19 株式会社理光 数据并行编码和译码的方法和装置
JPH11266162A (ja) * 1998-01-05 1999-09-28 Ricoh Co Ltd 符号化方法、符号化装置、圧縮/伸長システム、fsmコ―ダ―及びコ―ダ―
US20060218161A1 (en) * 2005-03-23 2006-09-28 Qian Zhang Systems and methods for efficiently compressing and decompressing markup language
US20070192104A1 (en) * 2006-02-16 2007-08-16 At&T Corp. A system and method for providing large vocabulary speech processing based on fixed-point arithmetic
CN101256624A (zh) * 2007-02-28 2008-09-03 微软公司 建立适用于识别手写东亚字符的hmm拓扑结构的方法及系统
CN204272112U (zh) * 2014-12-11 2015-04-15 河北大学 电力载波通信语音压缩编码装置
CN104866981A (zh) * 2015-06-12 2015-08-26 武汉理工大学 一种基于扩展有限状态机的业务流程管理的建模方法
US9865254B1 (en) * 2016-02-29 2018-01-09 Amazon Technologies, Inc. Compressed finite state transducers for automatic speech recognition
CN106651658A (zh) * 2016-12-30 2017-05-10 合肥工业大学 一种基于有限状态机的非侵入式住宅用电负荷分解方法
CN108417222A (zh) * 2017-02-10 2018-08-17 三星电子株式会社 加权有限状态变换器解码系统以及语音识别系统
CN110704199A (zh) * 2019-09-06 2020-01-17 深圳平安通信科技有限公司 数据压缩方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEN HOU: "Analysis of compressed sensing based CT reconstruction with low radiation", 《2014 INTERNATIONAL SYMPOSIUM ON INTELLIGENT SIGNAL PROCESSING AND COMMUNICATION SYSTEMS (ISPACS)》 *
谈恩民: "一种混合前缀编码的测试数据压缩方法", 《微电子学与计算机》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022021876A1 (en) * 2020-07-28 2022-02-03 Guangzhou Ziipin Network Technology Co., Ltd Method and device for compressing finite-state transducers data

Also Published As

Publication number Publication date
CN111884659B (zh) 2021-09-10
WO2022021876A1 (en) 2022-02-03
US20230005474A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
CN106852185B (zh) 基于字典的并行压缩编码器
JP3889762B2 (ja) データ圧縮方法、プログラム及び装置
KR20130062889A (ko) 데이터 압축 방법 및 시스템
US20050267902A1 (en) Database and method of generating same
US7026962B1 (en) Text compression method and apparatus
US11334609B2 (en) Semantic structure search device and semantic structure search method
US8316041B1 (en) Generation and processing of numerical identifiers
CN111950263B (zh) 一种日志解析方法、系统及电子设备
CN112131218B (zh) 一种基因对比的哈希查表方法、装置、设备及存储介质
CN112784009B (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
JPH1079672A (ja) メッセージの圧縮及び圧縮解除の方法及び装置
CN111831785A (zh) 敏感词检测方法、装置、计算机设备及存储介质
CN109144964A (zh) 基于机器学习的日志解析方法和装置
CN110716739A (zh) 一种代码变更信息统计方法、系统和可读存储介质
US20120254190A1 (en) Extracting method, computer product, extracting system, information generating method, and information contents
CN114416926A (zh) 关键词匹配方法、装置、计算设备及计算机可读存储介质
CN111884659B (zh) 一种fst数据的压缩方法和装置
US20140129543A1 (en) Search service including indexing text containing numbers in part using one or more number index structures
JP2000201080A (ja) 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
CN116244442A (zh) 文本分类方法、装置、存储介质及电子设备
CN114579136A (zh) 代码处理方法、装置、计算机设备和存储介质
KR20220089211A (ko) 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치
CN112527753B (zh) Dns解析记录无损压缩方法、装置、电子设备及存储介质
CN113392124B (zh) 一种基于结构化语言的数据查询方法及装置
JP2019185145A (ja) データ生成プログラム、データ生成方法および情報処理装置

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