数据解析方法、装置、电子设备及存储设备与流程

文档序号:34141116发布日期:2023-05-13 09:16阅读:28来源:国知局
本技术的实施方式涉及数据处理领域,更具体地,本技术的实施方式涉及数据解析方法、装置、电子设备及存储设备。
背景技术
::1、本部分旨在为权利要求书中陈述的本技术的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本技术的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。2、随着在线素质教育在我国的快速发展,各个棋类的在线平台如雨后春笋般层出不穷。在国际象棋中,经常会有悔棋或者复盘等情况发生,此时则需要生成分支走法。pgn是指“可移植式棋局记号法”(portable game notation),是一种以ascii文本文件表示国际象棋棋局数据的标准设定。但是,假若普通地将pgn进行链式解析的话,在面对生成分支走法的需求时,由于链式结构和分支走法数据结构之间是天然不匹配的,因此需要额外做大量的分割、解析、插入计算,而且随着分支走法层级的加深,计算量呈现指数增长,代码的可用性、可读性、可维护性极差,无法高效地实现生成分支走法的功能。3、有鉴于此,亟需提出一种能够对pgn进行解析的,且能够实现生成分支走法功能的数据解析方法,有利于迅速准确重现棋盘局面信息,便于生成新走法。技术实现思路1、为克服相关技术中存在的问题,本技术的实施方式期望提供一种数据解析方法、装置、电子设备及存储设备,该数据解析方法,能够方便地重构出目标数据元素所对应的数据链,并且能够实现在原有数据链上新增分支数据的功能,为数据文件的复盘或者增添新思路提供便利,提升数据的解析效率。2、在本技术实施方式的第一方面中,提供了一种数据解析方法,包括:3、获取数据文件;数据文件包含相互关联的若干数据元素;4、基于数据文件构建字典树;5、基于字典树确定目标数据元素所处的数据链;6、基于目标数据元素所处的数据链生成分支数据。7、在本技术的一个实施例中,数据文件为pgn文件;8、基于数据文件构建字典树,包括:9、对pgn文件进行字符解析,得到pgn头部信息以及pgn记号数据;10、基于pgn记号数据确定记号序列;11、分别基于记号序列中的各个记号元素创建各个记号元素对应的树节点;12、创建空节点作为字典树的根节点;13、基于根节点以及各个记号元素对应的树节点构建字典树。14、在本技术的一个实施例中,分别基于记号序列中的各个记号元素创建各个记号元素对应的树节点,包括:15、若当前记号元素为走棋位置信息,则创建当前记号元素对应的树节点,并在当前记号元素对应的树节点中记录树节点携带信息,树节点携带信息包括字符信息、子节点数组、父节点以及历史字符串信息;并且在当前记号元素对应的树节点的父节点的子节点数组中添加当前记号元素对应的树节点;16、若当前记号元素为左圆括号,则不创建当前记号元素对应的树节点,将当前记号元素的上一记号元素推入预设记号栈中,将上一记号元素对应的树节点的父节点作为前记号元素的下一记号元素的父节点;17、若当前记号元素为右圆括号,则不创建当前记号元素对应的树节点,将预设记号栈的栈顶记号元素推出,并将栈顶记号元素作为当前记号元素的下一记号元素的父节点。18、在本技术的一个实施例中,基于pgn记号数据确定记号序列,包括:19、通过正则表达式依次匹配得到pgn记号数据中的每一记号元素,形成记号序列。20、在本技术的一个实施例中,对pgn文件进行字符解析,包括:21、验证pgn文件的左中括号以及右中括号的合法性;22、若pgn文件合法,则基于左中括号以及右中括号在pgn文件中提取pgn头部信息;以及23、基于左中括号以及右中括号在pgn文件中提取pgn记号数据。24、在本技术的一个实施例中,验证pgn文件的左中括号以及右中括号的合法性,包括:25、维护左中括号栈、右中括号栈以及中括号总数栈;26、依次扫描pgn文件中的所有字符;27、若扫描至左中括号,则向中括号总数栈中推入一个标志;28、若扫描至右中括号,则在中括号总数栈中推出一个标志;29、若扫描至右中括号时中括号总数栈为空,或在扫描完毕时中括号总数栈不为空,则确定pgn文件不合法。30、在本技术的一个实施例中,基于左中括号以及右中括号在pgn文件中提取pgn头部信息,包括:31、在pgn文件中搜索每一左中括号,以及与每一左中括号匹配的每一右中括号;32、分别对每一对匹配的左中括号和右中括号之间的字符进行提取,得到pgn头部信息。33、在本技术的一个实施例中,基于左中括号以及右中括号在pgn文件中提取pgn记号数据,包括:34、判断pgn文件中是否存在左中括号;35、若存在,则从pgn头部信息中的最后一个右中括号的下一个字符为起点提取字符,直至所有字符提取完毕,得到pgn记号数据;36、若不存在,则确定pgn文件中的所有字符为pgn记号数据。37、在本技术的一个实施例中,当数据文件为pgn文件时,目标数据元素为指定的走棋位置信息;38、基于字典树确定目标数据元素所处的数据链,包括:39、获取目标数据元素对应的树节点的树节点携带信息;40、根据树节点携带信息中的历史字符串信息确定历史子节点轨迹;41、基于字典树确定目标数据元素对应的树节点的所有子节点;42、根据历史子节点轨迹形成数据链,和/或根据目标数据元素对应的树节点的所有子节点形成数据链。43、在本技术的一个实施例中,基于目标数据元素所处的数据链生成分支数据,包括:44、在数据链上创建树节点,得到更新树节点;45、在更新树节点中记录树节点携带信息,并在更新树节点的父节点的子节点数组中添加更新树节点。46、在本技术实施方式的第二方面中,提供了一种数据解析装置,用于执行如第一方面中任一项所述的数据解析方法,包括:47、数据获取模块,用于获取数据文件;数据文件包含相互关联的若干数据元素;48、字典树构建模块,用于基于数据文件构建字典树;49、数据链确定模块,用于基于字典树确定目标数据元素所处的数据链;50、分支数据生成模块,用于基于目标数据元素所处的数据链生成分支数据。51、在本技术的一个实施例中,数据文件为pgn文件;52、字典树构建模块用于:53、对pgn文件进行字符解析,得到pgn头部信息以及pgn记号数据;54、基于pgn记号数据确定记号序列;55、分别基于记号序列中的各个记号元素创建各个记号元素对应的树节点;56、创建空节点作为字典树的根节点;57、基于根节点以及各个记号元素对应的树节点构建字典树。58、在本技术的一个实施例中,字典树构建模块用于:59、若当前记号元素为走棋位置信息,则创建当前记号元素对应的树节点,并在当前记号元素对应的树节点中记录树节点携带信息,树节点携带信息包括字符信息、子节点数组、父节点以及历史字符串信息;并且在当前记号元素对应的树节点的父节点的子节点数组中添加当前记号元素对应的树节点;60、若当前记号元素为左圆括号,则不创建当前记号元素对应的树节点,将当前记号元素的上一记号元素推入预设记号栈中,将上一记号元素对应的树节点的父节点作为前记号元素的下一记号元素的父节点;61、若当前记号元素为右圆括号,则不创建当前记号元素对应的树节点,将预设记号栈的栈顶记号元素推出,并将栈顶记号元素作为当前记号元素的下一记号元素的父节点。62、在本技术的一个实施例中,字典树构建模块用于:63、通过正则表达式依次匹配得到pgn记号数据中的每一记号元素,形成记号序列。64、在本技术的一个实施例中,字典树构建模块用于:65、验证pgn文件的左中括号以及右中括号的合法性;66、若pgn文件合法,则基于左中括号以及右中括号在pgn文件中提取pgn头部信息;以及67、基于左中括号以及右中括号在pgn文件中提取pgn记号数据。68、在本技术的一个实施例中,字典树构建模块用于:69、维护左中括号栈、右中括号栈以及中括号总数栈;70、依次扫描pgn文件中的所有字符;71、若扫描至左中括号,则向中括号总数栈中推入一个标志;72、若扫描至右中括号,则在中括号总数栈中推出一个标志;73、若扫描至右中括号时中括号总数栈为空,或在扫描完毕时中括号总数栈不为空,则确定pgn文件不合法。74、在本技术的一个实施例中,字典树构建模块用于:75、在pgn文件中搜索每一左中括号,以及与每一左中括号匹配的每一右中括号;76、分别对每一对匹配的左中括号和右中括号之间的字符进行提取,得到pgn头部信息。77、在本技术的一个实施例中,字典树构建模块用于:78、判断pgn文件中是否存在左中括号;79、若存在,则从pgn头部信息中的最后一个右中括号的下一个字符为起点提取字符,直至所有字符提取完毕,得到pgn记号数据;80、若不存在,则确定pgn文件中的所有字符为pgn记号数据。81、在本技术的一个实施例中,当数据文件为pgn文件时,目标数据元素为指定的走棋位置信息;82、数据链确定模块也用于:83、获取目标数据元素对应的树节点的树节点携带信息;84、根据树节点携带信息中的历史字符串信息确定历史子节点轨迹;85、基于字典树确定目标数据元素对应的树节点的所有子节点;86、根据历史子节点轨迹形成数据链,和/或根据目标数据元素对应的树节点的所有子节点形成数据链。87、在本技术的一个实施例中,分支数据生成模块用于:88、在数据链上创建树节点,得到更新树节点;89、在更新树节点中记录树节点携带信息,并在更新树节点的父节点的子节点数组中添加更新树节点。90、本技术第三方面提供一种电子设备,包括:91、处理器;以及92、存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。93、本技术第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。94、本技术实施方式提供的数据解析方法、装置、电子设备及存储设备,通过获取数据文件,其中数据文件包含相互关联的若干数据元素,基于数据文件构建字典树,进而基于字典树确定目标数据元素所处的数据链,基于目标数据元素所处的数据链生成分支数据,从而能够方便地重构出目标数据元素所对应的数据链,并且能够实现在原有数据链上新增分支数据的功能,为数据文件的复盘或者增添新思路提供便利,提升数据的解析效率。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1