CN114372177A - 一种Excel表格数据匹配方法 - Google Patents

一种Excel表格数据匹配方法 Download PDF

Info

Publication number
CN114372177A
CN114372177A CN202210281885.1A CN202210281885A CN114372177A CN 114372177 A CN114372177 A CN 114372177A CN 202210281885 A CN202210281885 A CN 202210281885A CN 114372177 A CN114372177 A CN 114372177A
Authority
CN
China
Prior art keywords
node
data
matching
excel
header
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.)
Pending
Application number
CN202210281885.1A
Other languages
English (en)
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.)
Creative Information Technology Co ltd
Original Assignee
Creative Information 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 Creative Information Technology Co ltd filed Critical Creative Information Technology Co ltd
Priority to CN202210281885.1A priority Critical patent/CN114372177A/zh
Publication of CN114372177A publication Critical patent/CN114372177A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/157Transformation using dictionaries or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Excel表格数据匹配方法,涉及数据匹配技术领域,方法包括:步骤一:数据处理,数据中台将已有的基础信息表根据业务领域进行分类,并根据业务规则建立关联关系映射表;步骤二:工作人员按预设报表采集格式要求编制表头模板,导入报表系统;步骤三:数据匹配,解析Excel表头模板,获取表头信息,并通过改进Aho‑Corasick算法将解析出的表头信息与数据中台建立的关联关系映射表表头进行匹配,根据匹配的结果返回相应的报表数据。本发明采用自定义Excel模板,导入模板自动关联数据中台数据,对数据进行查缺补漏,减少基层工作人员的工作负担,降低了表格数据误匹配率,提高了工作人员的工作效率。

Description

一种Excel表格数据匹配方法
技术领域
本发明涉及数据匹配技术领域,尤其涉及一种Excel表格数据匹配方法。
背景技术
镇街、村社基层统计是统计的基础,是政府数据采集的源头。现行的统计报表制度主要有各专业的定期报表制度,其中部分专业还细分了规模以上的全面报表制度和规模以下的抽样调查制度,这些都要求基层统计工作人员每月或定期完成。同时,我国现行还有三大普查:五年一次的经济普查、十年一次的农业普查和人口普查。普查年年有,中间还穿插人口抽样调查、住户抽样调查、劳力动抽样调查等各式各样的调查,给基层统计部门造成了沉重的压力。
目前,很多政府部门要采集报表数据,首先通过召集镇街工作人员进行开会培训。其次,委办局工作人员制作Excel模板并下发给各个镇街填写;镇街接收到数据采集模板后,发现很多数据需要最基层的村社通过实际的入户走访才能获取,于是镇街相关部门又召集各个村社的工作人员进行培训并下发采集模板。最后,村社工作人员填报好数据后提交给镇街部门汇总,镇街道部门再提交给委办局汇总。整个过程不但周期长,还加大了基层工作人员的负担,也不能确保数据的准确性。
现有Excel表格数据匹配过程存在以下问题:
1.excel解析表头模板后,根据表头内容匹配中台数据容易误匹配;
2.如果大批量的工作人员同时上传模板去匹配获取数据容易造成性能下降,效率低下。
因此,需要设计一种Excel表格数据匹配方法,用以解决现有表格数据匹配过程出现的问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种Excel表格数据匹配方法,采用自定义Excel模板,导入模板自动关联数据中台数据,以核待采,对数据进行查缺补漏,减少基层工作人员的工作负担,降低了表格数据误匹配率,提高了工作人员的工作效率。
本发明的目的是通过以下技术方案来实现的:
一种Excel表格数据匹配方法,包括以下步骤:
步骤一:数据处理,数据中台将已有的基础信息表根据业务领域进行分类,并根据业务规则建立关联关系映射表;
步骤二:工作人员按预设报表采集格式要求编制表头模板,导入报表系统;
步骤三:数据匹配,解析Excel表头模板,获取表头信息,并通过改进Aho-Corasick算法将解析出的表头信息与数据中台建立的关联关系映射表表头进行匹配,根据匹配的结果返回相应的报表数据。其中,工作人员指的是委办局工作人员,委办局是政府办事机关。
步骤三中的数据匹配过程包括:首先,按以下条件建立匹配树:
条件一:存在一个根节点,不代表任何字符,匹配树中其余每个节点保存关键词中的一个字符,并以字符值代指该节点;
条件二:若存在一个关键词,字符A是关键词中的一个字符,字符B是字符A的后继字符,则称字符B是字符A的子节点,所有关键词的第一个字符都是根节点的子节点,其中相同的字符用同一个子节点表示;
条件三:如果从根节点到节点M经过的所有节点组成一条关键词,则把该条关键词的结束标志0也加入到节点M的子节点中,这个0节点称为叶子节点;
条件四:在节点M中记录子节点个数n,对节点M的任一子节点N,将其节点值对n取模,所有模相同的子节点相连组成一个链表;
条件五:所有的链表组成一个数组,节点M通过child指针指向该数组;
条件六:所有从根节点开始通过child指针到达某个结点的路径是唯一的,从根到任一叶子节点可以得到一条关键词;反之,每条关键词都在匹配树中存在一条唯一的从根节点到叶子节点的路径;
条件七:将从根节点到节点M经过的节点相连得到一个字符串,设长度为m,则获得m-1个以节点M结尾的真子串,如果存在最长的真子串S,假设真子串S是某个关键词的起始部份,则在匹配树中存在一条从根节点到达节点F的路径,代表该真子串;节点M通过next指针与节点F相连;节点F就是匹配到节点M匹配失败状态后需要继续进行匹配的下一个节点;
其次,根据匹配条件查询出关键词对应的业务数据。
其中,步骤三中的通过改进Aho-Corasick算法将解析出的表头信息与数据中台建立的关联关系映射表表头进行匹配过程具体包括:
步骤S1:用户获取Excel表头模板,通过POI工具包解析Excel,获取Excel表头;
步骤S2:通过中文分词工具获取表头分词;
步骤S3:获取数据中台中数据表所有列信息;
步骤S4:通过改进Aho-Corasick算法建立Trie树(字典树);
步骤S5:根据解析出的Excel表头与数据中台建立的映射表表头进行匹配,根据匹配的结果返回相应的Excel数据。
其中,步骤S4具体包括以下子步骤:
步骤S401:根据数据中台数据表列信息建立起一颗Trie树(字典树);
步骤S402:设置第一层的不匹配的转移节点;
步骤S403:设置其余的不匹配转移节点;
步骤S404:设置Trie树的各个节点的输出字符,即当到达预设状态时表明某个模式匹配成功,需要输出对应的字符串;
步骤S405:初始化状态到根节点。
其中,步骤S5具体包括以下子步骤:
步骤S501:逐个输入待搜索字符串;
步骤S502:根据状态机的转移结果判断是否有模式匹配成功,若有则取出文本行与Trie树匹配,匹配成功的词加入tagList中,遍历tagList;
步骤S503:根据匹配成功的词从关联关系映射表中获取表名,根据表名查询数据库,返回数据并填充到Excel。
改进Aho-Corasick算法具体包括以下步骤:
步骤S601:构建trie树,将所有模式串构建为一颗字典树,同时将终止状态绑定外部value;
步骤S602:构建双数组Trie树,首先建立一个空的root节点,然后按照字典序插入所有的字串节点;使用两个数组base和check来维护Trie树,数组的下标以及下标值都代表着一个确定的状态;数组base储存当前的状态以供状态转移使用,数组check验证字串是否由同一个状态转移而来,且当数组check为负的时候代表字串结束;
步骤S603:在每个节点插入的过程中修改数组base和数组check;
步骤S604:构建AC自动机,根据修改后的数组base和数组check来构建AC自动机。
本发明的有益效果:
本发明通过自定义报表模板、自动匹配中台数据,满足报表数据要求则导出数据,不满足报表数据要求则下发填报任务到镇街或者村社,以核待采,对数据进行查缺补漏、不断丰富基础库信息,减轻基层工作人员的工作负担,降低了表格数据误匹配率,提高了工作人员的工作效率。
附图说明
图1是本发明的方法流程图。
图2是本发明的数据流图。
图3是自动机构建示意图。
具体实施方式
为了对本发明的技术特征、目的和有益效果有更加清楚的理解,现对本发明的技术方案精选以下详细说明。显然,所描述的实施案例是本发明一部分实施例,而不是全部实施例,不能理解为对本发明可实施范围的限定。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的其他所有实施例,都属于本发明的保护范围。
目前,很多政府部门要采集报表数据,首先通过召集镇街工作人员进行开会培训。其次,委办局工作人员制作Excel模板并下发给各个镇街填写;镇街接收到数据采集模板后,发现很多数据需要最基层的村社通过实际的入户走访才能获取,于是镇街相关部门又召集各个村社的工作人员进行培训并下发采集模板。最后,村社工作人员填报好数据后提交给镇街部门汇总,镇街道部门再提交给委办局汇总。整个过程不但周期长,还加大了基层工作人员的负担,也不能确保数据的准确性。因此,本发明针对上述缺陷设计了一种Excel表格数据匹配方法,采用自定义Excel模板,导入模板自动关联数据中台数据,以核待采,对数据进行查缺补漏,减少基层工作人员的工作负担,达到减负的目的。本发明的具体设计内容见下列实施例。
实施例一:
本实施例中,如图1所示,一种Excel表格数据匹配方法,包括以下步骤:
步骤一:数据处理,数据中台将已有的基础信息表根据业务领域进行分类,并根据业务规则建立关联关系映射表;
步骤二:工作人员按政府报表采集格式要求编制Excel表头模板,导入报表系统;
步骤三:数据匹配,解析Excel报表模板,获取Excel表头信息。通过改进Aho-Corasick算法将解析出的Excel表头与数据中台建立的映射表表头进行匹配,根据匹配的结果返回相应的Excel数据。其中,工作人员指的是委办局工作人员,委办局是政府办事机关。
步骤四:委办局查看匹配的数据是否满足报表需求,满足直接下载报表数据;无法完全满足则下发采集任务到镇街进行采集。
步骤五:镇街工作人员登录报表系统,对采集任务进行处理,在线打开Excel后,自动带出委办局下发时匹配的数据,但仅能查看自己所在镇街的数据。如果镇街有报表所缺数据则填报提交,没有则下发任务到自己所辖村社进行数据采集。
步骤六:村社工作人员登录报表系统,对采集任务进行处理,在线打开Excel后,自动带出镇街下发时匹配的数据,但仅能查看自己所在村社的数据。村社根据已有报表数据补充缺失数据。
步骤七:所有镇街和村社填报完采集任务后,委办局工作人员导出报表数据,同时将采集数据更新到基础信息表,丰富基础信息表中的数据。
本实施例中,步骤三中数据匹配过程包括:
首先,按以下条件建立匹配树:
(1)存在一个根节点,不代表任何字符,匹配树中其余每个节点保存关键词中的一个字符,并以字符值代指该节点;
(2)若存在一个关键词,字符A是关键词中的一个字符,字符B是字符A的后继字符,则称字符B是字符A的子节点,所有关键词的第一个字符都是根节点的子节点,其中相同的值用同一个子节点表示;
(3)如果从根节点到节点M经过的所有节点组成一条关键词,则把该条关键词的结束标志0也加入到节点M的子节点中,这个0节点称为叶子节点;
(4)在节点M中记录子节点个数n,对节点M的任一子节点N,将其节点值对n取模,所有模相同的子节点相连组成一个链表;
(5)所有的链表组成一个数组,节点M通过child指针指向该数组;
(6)所有从根节点开始通过child指针到达某个结点的路径是唯一的,从根到任一叶子节点可以得到一条关键词;反之,每条关键词都在匹配树中存在一条唯一的从根节点到叶子节点的路径;
(7)将从根节点到节点M经过的节点相连得到一个字符串,设长度为m,则获得m-1个以节点M结尾的真子串,如果存在最长的真子串S,假设真子串S是某个关键词的起始部份,则在匹配树中存在一条从根节点到达节点F的路径,代表该真子串;节点M通过next指针与节点F相连;节点F就是匹配到节点M匹配失败状态后需要继续进行匹配的下一个节点;
其次,根据匹配条件查询出关键词对应的业务数据。
本实施例中,通过改进Aho-Corasick算法将解析出的Excel表头与数据中台建立的映射表表头进行匹配过程具体包括以下流程:
1.用户上Excel模板,通过POI工具包解析Excel,获取Excel表头;
2.通过中文分词工具获取表头分词;
3.获取数据中台中数据表所有列信息;
4.Aho-Corasick建立字典树(Trie树)过程,该流程具体包括:1) 根据中台数据表列信息(即待搜索模式集合)建立起一颗Trie树;2) 设置第一层的不匹配的转移节点;3)设置其余的不匹配转移节点;4) 设置Trie树的各个节点的输出字符,即当到达某个状态时表明某个模式匹配成功,需要输出对应的字符串。 5) 初始化状态到根节点;
5.Aho-Corasick查找匹配过程,该流程包括:1) 逐个输入待搜索字符串;2) 根据状态机的转移结果判断是否有模式匹配成功,若有则取出文本行与字典树匹配,匹配成功的词加入tagList中,遍历tagList;3) 根据匹配成功的词从关联关系映射表中获取表名,根据表名查询数据库,返回数据并填充到Excel。
实施例二:
本实施例中,如图2所示,本发明的数据流动过程包括:初始化Trie树,逐个从待搜索字符串Keyword数据集合中添加字符串到Trie树中,然后根据success函数构建success表,直至所有待搜索字符串添加完成,检查并创建failure表,从输入文本行Input Text中取出文本行与字典树进行匹配,匹配成功的词加入被命中模式串tagList中。
实施例三:
本实施例中,对Aho-Corasick算法的改造过程进行详细说明。
原Aho-Corasick算法的基本构造及匹配过程如下:
一、基本构造
AC算法中有三个核心函数,分别是:success:成功转移到另一个状态(也称goto表或success表)。failure:不可顺着字符串跳转的话,则跳转到一个特定的节点(也称failure表),从根节点到这个特定的节点的路径恰好是失败前的文本的一部分。emits; 命中一个模式串(也称output表)。
二、匹配过程
以经典的ushers为例,模式串是he/ she/ his /hers,文本为“ushers”。构建的自动机如图3所示,构建流程包括:
1.首先尝试按success表转移(图3中实线)。按照文本的指示转移,也就是接收一个u。此时success表中并没有相应路线,转移失败。
2.失败了则按照failure表回去(图3中虚线)。按照文本指示,这次接收一个s,转移到状态3。
3.成功了继续按success表转移,直到失败跳转步骤2,或者遇到output表中标明的“可输出状态”(图3中的状态2、5、7、9)。此时输出匹配到的模式串,然后将此状态视作普通的状态继续转移。
AC自动机能高速完成多模式匹配,然而具体实现聪明与否决定最终性能高低。大部分实现都是一个Map<Character, State>了事,无论是TreeMap的对数复杂度,还是HashMap的巨额空间复杂度与哈希函数的性能消耗,都会降低整体性能。
双数组Trie树能高速O(n)完成单串匹配,并且内存消耗可控,然而软肋在于多模式匹配,如果要匹配多个模式串,必须先实现前缀查询,然后频繁截取文本后缀才可多匹配,这样一份文本要回退扫描多遍,性能极低。
因此,本实施例改进的Aho-Corasick算法将Aho Corasick自动机结合DoubleArrayTrie,用双数组Trie树表达AC自动机,集合两者的优点,得到一种近乎完美的数据结构。
一、原理
基本原理是为一颗双数组Trie树的每个状态(体现为下标)附上额外的信息。AC自动机的基础(success表)就是Trie树,只不过比Trie树多了output表和fail表。那么AhoCorasickDoubleArrayTrie的构建原理就是为每个状态(base[i]和check[i])构建output[i][]和fail[i]。
二、构建
双数组Trie树的构建是一个先序dfs,AC自动机的构建是一个先序bfs。如果同时构建或者先构建AC自动机,那么AC自动机的每个状态将无法对应到双数组Trie树的状态;另一方面,同步构建会导致代码不可控。
1.构建trie树
即将所有模式串构建为一颗字典树,同时将终止状态绑定外部value。在实现上可以先用TreeMap简单实现。
2.构建双数组Trie树
双数组Trie树归根结底还是属于Trie树,所以免不了有一颗树的构造过程。不过这棵树并没有保存下来,而是边构造树边维护双数组,双数组的信息足以表示整棵树。
首先建立一个空的root节点:
Node{code=0, depth=0, left=0, right=6}
其中code指的是字符的编码,在Java中是双字节,depth是深度,left及right表示这个节点在字典中的索引范围。
然后按照字典序插入所有的字串节点;
使用两个数组base和check来维护Trie树,它们的下标以及值都代表着一个确定的状态。base储存当前的状态以供状态转移使用,check验证字串是否由同一个状态转移而来并且当check为负的时候代表字串结束。
假定有字符串状态s,当前字符串状态为t,假定t加了一个字符c就等于状态tc,加了一个字符x等于状态tx,那么有
base[t] + c = base[tc]
base[t] + x = base[tx]
check[tc] = check[tx]
例如,在单词“一模一样”中,虽然有两个“一”,但它们的前一个状态不同,所以对应的状态分别为“一”和“一模一”,在base数组中的下标不一样。
在每个节点插入的过程中会修改这两个数组,具体说来:
1、初始化root节点Nase[0] = 1; check[0] = 0;
2、对于每一群兄弟节点,寻找一个begin值使得check[begin + a1…an]== 0,也就是找到了n个空闲空间,a1…an是siblings中的n个节点对应的code。
3、然后将这群兄弟节点的check设为check[begin + a1…an] = begin;很显然,叶子节点i的check[i]的值一定等于i,因为它是兄弟节点中的第一个,并且它的code为0。
4、接着对每个兄弟节点,如果它没有孩子,令其base为负值;否则为该节点的子节点的插入位置(也就是begin值),同时插入子节点(迭代跳转到步骤2)。
与单独构建双数组Trie树不同,在为一个trie树State创建base[i]的时候,让该State记住自己的i,这样就建立State和下标的映射。
3.构建AC自动机
在构建AC自动机时,每构建一个节点State的fail表,就利用上述映射下标State.id将fail[id]设为failState.id。对于output表,也是同理。
三、查询
每次转移返回的都是一个State引用,但是这次将其改为返回id,利用下标id,既可以按照success表(双数组base和check)转移,转移失败时也可以按照fail[id]退回到合适的位置。
Aho Corasick自动机结合DoubleArrayTrie极大提升匹配速度和空间利用率。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种Excel表格数据匹配方法,其特征在于,包括以下步骤:
步骤一:数据处理,数据中台将已有的基础信息表根据业务领域进行分类,并根据业务规则建立关联关系映射表;
步骤二:工作人员按预设报表采集格式要求编制表头模板,导入报表系统;
步骤三:数据匹配,解析Excel表头模板,获取表头信息,并通过改进Aho-Corasick算法将解析出的表头信息与数据中台建立的关联关系映射表表头进行匹配,根据匹配的结果返回相应的报表数据。
2.根据权利要求1所述的一种Excel表格数据匹配方法,其特征在于,所述步骤三中的数据匹配过程包括:首先,按以下条件建立匹配树:
条件一:存在一个根节点,不代表任何字符,匹配树中其余每个节点保存关键词中的一个字符,并以字符值代指该节点;
条件二:若存在一个关键词,字符A是关键词中的一个字符,字符B是字符A的后继字符,则称字符B是字符A的子节点,所有关键词的第一个字符都是根节点的子节点,其中相同的字符用同一个子节点表示;
条件三:如果从根节点到节点M经过的所有节点组成一条关键词,则把该条关键词的结束标志0也加入到节点M的子节点中,这个0节点称为叶子节点;
条件四:在节点M中记录子节点个数n,对节点M的任一子节点N,将其节点值对n取模,所有模相同的子节点相连组成一个链表;
条件五:所有的链表组成一个数组,节点M通过child指针指向该数组;
条件六:所有从根节点开始通过child指针到达某个结点的路径是唯一的,从根到任一叶子节点可以得到一条关键词;反之,每条关键词都在匹配树中存在一条唯一的从根节点到叶子节点的路径;
条件七:将从根节点到节点M经过的节点相连得到一个字符串,设长度为m,则获得m-1个以节点M结尾的真子串,如果存在最长的真子串S,假设真子串S是某个关键词的起始部份,则在匹配树中存在一条从根节点到达节点F的路径,代表该真子串;节点M通过next指针与节点F相连;节点F就是匹配到节点M匹配失败状态后需要继续进行匹配的下一个节点;
其次,根据匹配条件查询出关键词对应的业务数据。
3.根据权利要求1所述的一种Excel表格数据匹配方法,其特征在于,所述步骤三中的通过改进Aho-Corasick算法将解析出的表头信息与数据中台建立的关联关系映射表表头进行匹配过程具体包括:
步骤S1:用户获取Excel表头模板,通过POI工具包解析Excel,获取Excel表头;
步骤S2:通过中文分词工具获取表头分词;
步骤S3:获取数据中台中数据表所有列信息;
步骤S4:通过改进Aho-Corasick算法建立Trie树;
步骤S5:根据解析出的Excel表头与数据中台建立的映射表表头进行匹配,根据匹配的结果返回相应的Excel数据。
4.根据权利要求3所述的一种Excel表格数据匹配方法,其特征在于,所述步骤S4具体包括以下子步骤:
步骤S401:根据中台数据表列信息建立起一颗Trie树;
步骤S402:设置第一层的不匹配的转移节点;
步骤S403:设置其余的不匹配转移节点;
步骤S404:设置Trie树的各个节点的输出字符,即当到达预设状态时表明某个模式匹配成功,需要输出对应的字符串;
步骤S405:初始化状态到根节点。
5.根据权利要求3所述的一种Excel表格数据匹配方法,其特征在于,所述步骤S5具体包括以下子步骤:
步骤S501:逐个输入待搜索字符串;
步骤S502:根据状态机的转移结果判断是否有模式匹配成功,若有则取出文本行与Trie树匹配,匹配成功的词加入tagList中,遍历tagList;
步骤S503:根据匹配成功的词从关联关系映射表中获取表名,根据表名查询数据库,返回数据并填充到Excel。
6.根据权利要求1所述的一种Excel表格数据匹配方法,其特征在于,所述改进Aho-Corasick算法具体包括以下步骤:
步骤S601:构建trie树,将所有模式串构建为一颗字典树,同时将终止状态绑定外部value;
步骤S602:构建双数组Trie树,首先建立一个空的root节点,然后按照字典序插入所有的字串节点;使用两个数组base和check来维护Trie树,数组的下标以及下标值都代表着一个确定的状态;数组base储存当前的状态以供状态转移使用,数组check验证字串是否由同一个状态转移而来,且当数组check为负的时候代表字串结束;
步骤S603:在每个节点插入的过程中修改数组base和数组check;
步骤S604:构建AC自动机,根据修改后的数组base和数组check来构建AC自动机。
CN202210281885.1A 2022-03-22 2022-03-22 一种Excel表格数据匹配方法 Pending CN114372177A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210281885.1A CN114372177A (zh) 2022-03-22 2022-03-22 一种Excel表格数据匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210281885.1A CN114372177A (zh) 2022-03-22 2022-03-22 一种Excel表格数据匹配方法

Publications (1)

Publication Number Publication Date
CN114372177A true CN114372177A (zh) 2022-04-19

Family

ID=81145935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210281885.1A Pending CN114372177A (zh) 2022-03-22 2022-03-22 一种Excel表格数据匹配方法

Country Status (1)

Country Link
CN (1) CN114372177A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303405A (zh) * 2023-05-12 2023-06-23 深圳竹云科技股份有限公司 一种数据查重方法、装置、计算机设备
CN117194410A (zh) * 2023-07-13 2023-12-08 广州白码科技有限公司 一种人工智能语言模型生成业务报表的方法及系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727436A (zh) * 2008-10-29 2010-06-09 华为技术有限公司 一种报表数据处理方法、报表系统以及相关装置
CN101957852A (zh) * 2010-09-26 2011-01-26 用友软件股份有限公司 生成表格数据的关联信息的方法和系统
CN102855229A (zh) * 2011-06-30 2013-01-02 镇江雅迅软件有限责任公司 一种基于excel表格的自定义统计报表生成系统
CN103778107A (zh) * 2012-10-25 2014-05-07 上海宝信软件股份有限公司 一种基于excel快速动态生成表单的方法与平台
CN107506185A (zh) * 2017-08-07 2017-12-22 海闻科技有限公司 一种数据解析和数据展示方法及系统
CN109783565A (zh) * 2019-02-18 2019-05-21 广州恒峰智能信息科技有限公司 一种excel数据快速导入的方法和系统
CN110717320A (zh) * 2019-10-11 2020-01-21 上海管和信息科技有限公司 适用于多平台的表单/报表设计器、方法及信息化管理系统
CN112365110A (zh) * 2019-07-24 2021-02-12 中移信息技术有限公司 调研方法、平台、服务器及计算机存储介质
CN113238865A (zh) * 2021-05-18 2021-08-10 苏明 基于Excel一键导入的快速构建知识图谱的方法
CN113342976A (zh) * 2021-06-17 2021-09-03 北京海数宝科技有限公司 一种自动采集处理数据的方法、装置、存储介质及设备
CN114049082A (zh) * 2021-11-10 2022-02-15 国网安徽省电力有限公司经济技术研究院 一种电网技改大修造价数据结构化方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727436A (zh) * 2008-10-29 2010-06-09 华为技术有限公司 一种报表数据处理方法、报表系统以及相关装置
CN101957852A (zh) * 2010-09-26 2011-01-26 用友软件股份有限公司 生成表格数据的关联信息的方法和系统
CN102855229A (zh) * 2011-06-30 2013-01-02 镇江雅迅软件有限责任公司 一种基于excel表格的自定义统计报表生成系统
CN103778107A (zh) * 2012-10-25 2014-05-07 上海宝信软件股份有限公司 一种基于excel快速动态生成表单的方法与平台
CN107506185A (zh) * 2017-08-07 2017-12-22 海闻科技有限公司 一种数据解析和数据展示方法及系统
CN109783565A (zh) * 2019-02-18 2019-05-21 广州恒峰智能信息科技有限公司 一种excel数据快速导入的方法和系统
CN112365110A (zh) * 2019-07-24 2021-02-12 中移信息技术有限公司 调研方法、平台、服务器及计算机存储介质
CN110717320A (zh) * 2019-10-11 2020-01-21 上海管和信息科技有限公司 适用于多平台的表单/报表设计器、方法及信息化管理系统
CN113238865A (zh) * 2021-05-18 2021-08-10 苏明 基于Excel一键导入的快速构建知识图谱的方法
CN113342976A (zh) * 2021-06-17 2021-09-03 北京海数宝科技有限公司 一种自动采集处理数据的方法、装置、存储介质及设备
CN114049082A (zh) * 2021-11-10 2022-02-15 国网安徽省电力有限公司经济技术研究院 一种电网技改大修造价数据结构化方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHINALOG: "基本于匹配树的多关键词过滤算法", 《HTTPS://BLOG.51CTO.COM/CHINALOG/1731968》 *
无: "Aho Corasick自动机结合DoubleArrayTrie极速多模式匹配", 《HTTP://WWW.HANKCS.COM/PROGRAM/ALGORITHM/AHO-CORASICK-DOUBLE-ARRAY-TRIE.HTML》 *
无: "Aho-Corasick算法的Java实现与分析", 《HTTP://WWW.HANKCS.COM/PROGRAM/ALGORITHM/IMPLEMENTATION-AND-ANALYSIS-OF-AHO-CORASICK-ALGORITHM-IN-JAVA.HTML》 *
无: "双数组Trie树(DoubleArrayTrie)Java实现", 《HTTP://WWW.HANKCS.COM/PROGRAM/JAVA/%E5%8F%8C%E6%95%B0%E7%BB%84TRIE%E6%A0%91DOUBLEARRAYTRIEJAVA%E5%AE%9E%E7%8E%B0.HTML》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303405A (zh) * 2023-05-12 2023-06-23 深圳竹云科技股份有限公司 一种数据查重方法、装置、计算机设备
CN116303405B (zh) * 2023-05-12 2023-11-10 深圳竹云科技股份有限公司 一种数据查重方法、装置、计算机设备
CN117194410A (zh) * 2023-07-13 2023-12-08 广州白码科技有限公司 一种人工智能语言模型生成业务报表的方法及系统
CN117194410B (zh) * 2023-07-13 2024-05-14 广州白码科技有限公司 一种人工智能语言模型生成业务报表的方法及系统

Similar Documents

Publication Publication Date Title
KR100372585B1 (ko) 데이터처리방법 및 시스템 및 그 처리프로그램을 기록한계산기판독이 가능한 기록매체
US6377946B1 (en) Document search method and apparatus and portable medium used therefor
CN114372177A (zh) 一种Excel表格数据匹配方法
CN111046035B (zh) 数据自动化处理方法、系统、计算机设备及可读存储介质
CN100541493C (zh) 用于结构化文档管理的装置和方法
CN107092656A (zh) 一种树状结构数据处理方法及系统
CN105260354A (zh) 一种基于关键词字典树构造的中文ac自动机工作方法
CN102411580B (zh) 可扩展标记语言文档的检索方法及装置
CN101639830A (zh) 一种输入过程中的中文术语自动纠错方法
CN107766555A (zh) 基于软约束无监督型跨模态哈希的图像检索方法
CN110795526B (zh) 一种用于检索系统的数学公式索引创建方法与系统
CN103440232A (zh) 一种科技论文标准化自动检测编辑方法
CN107016071A (zh) 一种利用简单路径特征优化树状结构数据的方法及系统
CN103440233A (zh) 一种科技论文标准化自动检测编辑系统
CN113190687B (zh) 知识图谱的确定方法、装置、计算机设备及存储介质
CN109933786B (zh) 基于编译规则的应答器报文工具的构建方法
CN107066551A (zh) 一种树状数据的行式和列式存储方法及系统
CN114580368A (zh) 一种智能化报表采集减负方法、装置、终端及存储介质
CN109885694B (zh) 一种文献选择及其学习先后次序确定方法
US6389410B1 (en) Method for minimizing the number of sorts required for a query block containing window functions
CN106933844B (zh) 面向大规模rdf数据的可达性查询索引的构建方法
CN117493333A (zh) 数据归档方法、装置、电子设备及存储介质
CN116108175A (zh) 基于语义解析和数据构造的语言转化方法及系统
CN117235291B (zh) 基于静态索引表的全文检索方法及装置
CN117290523B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220419

RJ01 Rejection of invention patent application after publication