CN117010343B - 解析估值表的方法、设备和计算机可读存储介质 - Google Patents

解析估值表的方法、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN117010343B
CN117010343B CN202311264726.1A CN202311264726A CN117010343B CN 117010343 B CN117010343 B CN 117010343B CN 202311264726 A CN202311264726 A CN 202311264726A CN 117010343 B CN117010343 B CN 117010343B
Authority
CN
China
Prior art keywords
row
detail
cell
determining
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.)
Active
Application number
CN202311264726.1A
Other languages
English (en)
Other versions
CN117010343A (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.)
Shanghai Suntime Information Technology Co ltd
Original Assignee
Shanghai Suntime 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 Shanghai Suntime Information Technology Co ltd filed Critical Shanghai Suntime Information Technology Co ltd
Priority to CN202311264726.1A priority Critical patent/CN117010343B/zh
Publication of CN117010343A publication Critical patent/CN117010343A/zh
Application granted granted Critical
Publication of CN117010343B publication Critical patent/CN117010343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/183Tabulation, i.e. one-dimensional positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)

Abstract

本公开的实施例涉及用于解析估值表的方法、设备和计算机可读存储介质。方法包括:获取估值表文件所包括的电子表格格式的估值表;获取估值表中的每个单元格的单元格信息;基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分;以及基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,以便生成关于估值表的结构化数据。由此,能够全自动化地、高准确率地解析估值表。

Description

解析估值表的方法、设备和计算机可读存储介质
技术领域
本公开总体上涉及信息处理领域,并且更具体地,涉及用于解析估值表的方法、设备和计算机可读存储介质。
背景技术
基金类产品(包括公募基金、私募基金等),按照相关政策法规,会定期出具估值表。估值表涵盖基金的各项财务、投资品类明细信息等,是基金的核心机密文档之一,对于机构投资者或合格投资者而言,具备很高的价值。估值表的出具周期包括日频、周频、不定期等。由于存在大量不同的基金,对于同一基金在不同的日期又会出具不同的估值表,从而会存在大量的估值表。如何解析估值表以便于生成关于估值表的结构化数据,对投资者系统化、全市场化的分析评估各种基金而言,是一种刚性需求。
传统的解析估值表的技术方案,通常需要人工参与,自动化程度低。例如,在对估值表进行自动解析之前,需要人工对估值表进行预处理;在对估值表进行自动解析时,需要人工确认自动解析的部分过程;在对估值表进行自动解析之后,需要人工对解析出的数据进行校验。另外,在传统的解析估值表的技术方案中,自动解析估值表时未能充分考虑估值表的布局,从而准确率低,
综上,传统的解析估值表的技术方案的不足之处在于:自动化程度低,准确率低。
发明内容
针对上述问题,本公开提供了一种用于解析估值表的方法、设备和计算机可读存储介质,能够全自动化地、高准确率地解析估值表。
根据本公开的第一方面,提供了一种用于解析估值表的方法,包括:获取估值表文件所包括的电子表格格式的估值表;获取估值表中的每个单元格的单元格信息;基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分;以及基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,以便生成关于估值表的结构化数据。
在一些实施例中,单元格信息包括单元格行坐标、单元格列坐标、单元格内容和单元格合并关系;以及估值表的布局包括:估值表的标题部分包括跨列合并的单元格,跨列合并的单元格呈现估值表的标题部分中的至少部分;估值表的明细部分包括表头和明细主体,估值表的明细部分中的至少部分行所包括的单元格的数量等于估值表的宽度;以及估值表的统计部分包括第一统计部分和第二统计部分,第一统计部分共用估值表的明细部分所包括的表头,第二统计部分不共用估值表的明细部分所包括的表头。
在一些实施例中,分别确定估值表的标题部分、明细部分和统计部分包括:搜索估值表中的第一个非全空行,并将搜索到的第一个非全空行确定为标题部分的起始行;以及搜索估值表中在标题部分的起始行之后的第一个满足标题部分终止行确定条件的行,并将第一个满足标题部分终止行确定条件的行确定为标题部分的终止行,其中标题部分终止行确定条件为:下一行所包括的完整单元格的数量与估值表的宽度的比值大于或者等于阈值。
在一些实施例中,分别解析估值表的标题部分、明细部分和统计部分包括:将估值表的标题部分所包括的所有完整单元格所对应的内容拼接为字符串;以及基于自然语义神经网络模型,从字符串解析出标题信息。
在一些实施例中,方法还包括:判断解析出的标题信息是否包括基金名称和估值表日期;如果解析出的标题信息不包括基金名称和估值表日期中的至少一项,则确定估值表解析失败;如果解析出的标题信息包括基金名称和估值表日期,则判断解析出的标题信息所包括的任一信息是否被多次提取到数据;以及如果解析出的标题信息所包括的任一信息被多次提取到数据,则对多次提取到的数据进行校验。
在一些实施例中,分别确定估值表的标题部分、明细部分和统计部分包括:将标题部分的终止行的下一行确定为明细部分的起始行;以及搜索估值表中在明细部分的起始行之后的第一个满足明细部分终止行确定条件的行,并将第一个满足明细部分终止行确定条件的行确定为明细部分的终止行,其中明细部分终止行确定条件为:所包括的第一列单元格的单元格内容所对应的字符串长度小于一级科目编码信息长度。
在一些实施例中,分别确定估值表的标题部分、明细部分和统计部分还包括:将明细部分的起始行确定为明细部分所包括的表头的起始行;判断明细部分所包括的表头是否以跨行合并的单元格呈现;如果明细部分所包括的表头不以跨行合并的单元格呈现,则将明细部分的起始行确定为表头的终止行;如果明细部分所包括的表头以跨行合并的单元格呈现,则将跨行合并的单元格的终止行确定为表头的终止行;将表头的终止行的下一行确定为明细部分所包括的明细主体的起始行;以及将明细部分的终止行确定为明细主体的终止行。
在一些实施例中,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析明细部分所包括的表头:确定表头的每一列单元格所对应的明细名称;以及基于明细名称映射表,将所确定的明细名称映射为标准明细名称。
在一些实施例中,确定表头的每一列单元格所对应的明细名称包括:如果表头中不存在合并的单元格,则将表头中每列单元格的单元格内容确定为相应列的明细名称;如果表头中存在跨行不跨列合并的单元格,则将跨行不跨列合并的单元格所对应的内容确定为跨行不跨列合并的单元格的相应列的明细名称;以及如果表头中存在跨列合并的单元格,则将跨列合并的单元格所对应的内容与跨列合并的单元格所对应的、下方的未跨列合并的单元格的单元格内容的组合,确定为跨列合并的单元格所对应的、下方的未跨列合并的单元格的相应列的明细名称。
在一些实施例中,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析明细部分所包括的明细主体:将明细部分所包括的明细主体的起始行的科目层级确定为一级;基于明细部分所包括的表头所对应的标准明细名称,解析明细主体的起始行的其余列的单元格内容;以及按照从上到下的顺序,将明细主体中的其余行分别作为当前解析行,并进行以下步骤以解析当前解析行:基于当前解析行的第一列单元格的单元格内容,确定当前解析行的科目层级;以及基于明细部分所包括的表头所对应的标准明细名称,解析当前解析行的其余列的单元格内容。
在一些实施例中,确定当前解析行的科目层级包括:如果LVself= Lb,则将当前解析行的科目层级确定为一级;如果LVself>Lb且LVself>LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级加1;如果LVself>Lb且LVself= LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级;以及如果LVself>Lb且LVself<LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级减1;其中,LVself为当前解析行的第一列单元格的单元格内容所对应的字符串长度,Lb为明细主体的起始行的第一列单元格的单元格内容所对应的字符串长度,LVup为当前解析行的上一行的第一列单元格的单元格内容所对应的字符串长度。
在一些实施例中,方法还包括:如果LVself>Lb,则对Vself执行科目编码信息合法性检查;以及如果Vself未通过科目编码信息合法性检查,则确定估值表解析失败;其中,Vself为当前解析行的第一列单元格的单元格内容。
在一些实施例中,方法还包括:基于明细部分所包括的明细主体中的各行的科目层级之间的关系,对各行所解析出的明细信息进行校验。
在一些实施例中,分别确定估值表的标题部分、明细部分和统计部分包括:将明细部分的终止行的下一行确定为第一统计部分的起始行;搜索估值表中在第一统计部分的起始行之后的第一个满足第一统计部分终止行确定条件的行,并将第一个满足第一统计部分终止行确定条件的行确定为第一统计部分的终止行,其中第一统计部分终止行确定条件为下一行所包括的第二列单元格的单元格内容非空;将第一统计部分的终止行的下一行确定为第二统计部分的起始行;以及搜索估值表中在第二统计部分的起始行之后的第一个满足第二统计部分终止行确定条件的行,并将第一个满足第二统计部分终止行确定条件的行确定为第二统计部分的终止行,其中第二统计部分终止行确定条件为下两行均为空行。
在一些实施例中,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析统计部分所包括的第一统计部分:将第一统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称;以及基于明细部分所包括的表头所对应的标准明细名称,解析第一统计部分中的当前解析行的其余列的单元格内容。
在一些实施例中,方法还包括:基于第一统计部分中的至少一行的科目名称与明细部分所包括的明细主体中的至少部分行的统计关系,对第一统计部分中的至少一行的解析出的统计信息进行校验。
在一些实施例中,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析统计部分所包括的第二统计部分:将第二统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称;以及将第二统计部分中的当前解析行的第二列单元格的单元格内容确定为科目名称所对应的数值信息。
在一些实施例中,方法还包括:判断第二统计部分中解析出的单位净值所对应的数值信息与标题部分中解析出的单位净值所对应的数值信息是否相同,以对第二统计部分中解析出的统计信息进行校验。
根据本公开的第二方面,提供了一种计算设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开的第一方面的方法。
根据本公开的第三方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中计算机指令用于使计算机执行本公开的第一方面的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
图1图示了根据本公开实施例的用于解析估值表的方法的计算设备的框图。
图2图示了本公开实施例的用于解析估值表的方法的流程图。
图3图示了根据本公开实施例的估值表的示例。
图4图示了本公开实施例的用于确定估值表的标题部分的方法的流程图。
图5图示了本公开实施例的用于解析估值表的标题部分的方法的流程图。
图6图示了本公开实施例的用于确定估值表的明细部分的方法的流程图。
图7图示了本公开实施例的用于解析明细部分所包括的表头的方法的流程图。
图8图示了根据本公开实施例的估值表的表头的示例。
图9图示了本公开实施例的用于解析明细部分所包括的明细主体的方法的流程图。
图10图示了本公开实施例的用于确定当前解析行的科目层级的方法的流程图。
图11图示了本公开实施例的用于确定估值表的统计部分的方法的流程图。
图12图示了本公开实施例的用于解析统计部分所包括的第一统计部分的方法的流程图。
图13图示了本公开实施例的用于解析统计部分所包括的第二统计部分的方法的流程图。
图14图示了用于实现本公开实施例的示例性电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如前文所描述,传统的解析估值表的技术方案自动化程度低,准确率低。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于解析估值表的方法的技术方案。在本公开的实施例中,通过获取估值表文件所包括的电子表格格式的估值表,获取估值表中的每个单元格的单元格信息,基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分,并分别解析估值表的标题部分、明细部分和统计部分,无需人工参与,从而能够全自动化地解析估值表,并且允许针对估值表的不同部分采取不同的策略进行解析,从而能够高准确率地解析估值表。
图1图示了根据本公开实施例的用于解析估值表的方法的计算设备100的框图。如图1所示,计算设备100包括估值表获取单元120、单元格信息获取单元140、估值表部分确定单元160和估值表部分解析单元180。
关于估值表获取单元120,其用于获取估值表文件所包括的电子表格格式的估值表。
关于单元格信息获取单元140,其用于获取估值表中的每个单元格的单元格信息。
关于估值表部分确定单元160,其用于基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分。
关于估值表部分解析单元180,其用于基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,以便生成关于估值表的结构化数据。
需要说明的是,计算设备100所包括的估值表获取单元120、单元格信息获取单元140、估值表部分确定单元160和估值表部分解析单元180取决于实际情况,可以实现为软件、硬件、固件及其组合,本公开的实施例对此不作限制。例如,计算设备100可以具有一个或多个处理单元,包括诸如GPU、FPGA和ASIC等的专用处理单元以及诸如CPU的通用处理单元。另外,计算设备100上也可以运行着一个或多个虚拟机。
图2图示了本公开实施例的用于解析估值表的方法200的流程图。方法200可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法200还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤202,计算设备100获取估值表文件所包括的电子表格格式的估值表。
关于估值表文件,其包括需要进行解析的估值表。例如,估值表文件通常为电子表格(Excel)格式文件,估值表文件中的工作表(Sheet)为需要进行解析的估值表。需要说明的是,在本公开的实施例中,估值表文件也可以为其他格式的文件,本公开的实施例对此不作限制。例如,估值表文件还可以为电子表格格式文件的压缩包,即为压缩包格式。又例如,估值表文件还可以为便携式文档(Portable Document Format,PDF)格式。
关于获取估值表文件所包括的电子表格格式的估值表,其在一个示例中包括:响应于估值表文件为电子表格格式文件,计算设备100可以直接获取估值表文件中的工作表作为需要进行解析的估值表。
关于获取估值表文件所包括的电子表格格式的估值表,其在另一个示例中包括:响应于估值表文件不为电子表格格式文件,计算设备100可以获取与估值表文件相对应的电子表格格式文件,并进一步获取相对应的电子表格格式文件所包括的电子表格格式的估值表。例如,计算设备100可以对压缩包格式的估值表文件进行解压缩,以获取与估值表文件相对应的电子表格格式文件。又例如,计算设备100可以对PDF格式的估值表文件进行格式转换,以获取与估值表文件相对应的电子表格格式文件。
关于获取估值表文件所包括的电子表格格式的估值表,其在又一个示例中包括:响应于估值表文件不为电子表格格式文件,且无法获取与估值表文件相对应的电子表格格式文件,舍弃估值表文件。
在步骤204,计算设备100获取估值表中的每个单元格的单元格信息。
关于单元格信息,其例如包括单元格行坐标、单元格列坐标、单元格内容和单元格合并关系。
关于获取估值表中的每个单元格的单元格信息,其例如包括:计算设备100可以调用电子表格格式文件单元格信息获取工具来获取估值表中的每个单元格的单元格信息。
在步骤206,计算设备100基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分。
关于估值表的布局,其例如包括:估值表的标题部分包括跨列合并的单元格,跨列合并的单元格呈现估值表的标题部分中的至少部分;估值表的明细部分包括表头和明细主体,估值表的明细部分中的至少部分行所包括的单元格的数量等于估值表的宽度;以及估值表的统计部分包括第一统计部分和第二统计部分,第一统计部分共用估值表的明细部分所包括的表头,第二统计部分不共用估值表的明细部分所包括的表头。需要说明的是,在本公开的实施例中,估值表的宽度为估值表所包括的所有单元格的单元格列坐标中的最大值。
关于基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分,其可以参考后续结合图3、图4、图6和图11所描述的实施例,在此不再赘述。
在步骤208,计算设备100基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,以便生成关于估值表的结构化数据。
关于基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,其可以参考后续结合图3、图5、图7至图10和图12至图13所描述的实施例,在此不再赘述。
关于结构化数据,其指代关系模型数据,即以关系数据库表形式管理的数据。需要说明的是,本公开旨在解析估值表,而对于解除出的数据进一步生成结构化数据的过程以及结构化数据的具体形式可以取决于实际情况而定,本公开的实施例对此不作限制。
在本公开的实施例中,通过获取估值表文件所包括的电子表格格式的估值表,获取估值表中的每个单元格的单元格信息,基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分,并分别解析估值表的标题部分、明细部分和统计部分,无需人工参与,从而能够全自动化地解析估值表,并且允许针对估值表的不同部分采取不同的策略进行解析,从而能够高准确率地解析估值表。
图3图示了根据本公开实施例的估值表的示例。在图3中,估值表的行以数字标识,估值表的列以字母标识。需要说明的是,由于实际中的估值表通常行列数较多,为清楚起见,图3所示的估值表为省略了部分行或列的估值表。还需要说明的是,图3所示的估值表的具体布局以及所包括的具体数据仅是示例性的,而不是对本公开的限制。
下面结合图3所示的估值表以及后续所描述的实施例,说明进行图2所述的分别确定估值表的标题部分、明细部分和统计部分的具体过程,以及分别解析估值表的标题部分、明细部分和统计部分的具体过程。
图4图示了本公开实施例的用于确定估值表的标题部分的方法400的流程图。方法400可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤402,计算设备100搜索估值表中的第一个非全空行,并将搜索到的第一个非全空行确定为标题部分的起始行。
例如,计算设备100可以基于单元格行坐标、单元格列坐标、单元格内容来搜索估值表中的第一个非全空行。
例如,对于图3所示的估值表,计算设备100搜索到的第一个非全空行为第1行,计算设备100可以将第1行确定为标题部分的起始行。
需要说明的是,在本公开的实施例中,搜索顺序为按照从上到下逐行搜索。
在步骤404,计算设备100搜索估值表中在标题部分的起始行之后的第一个满足标题部分终止行确定条件的行,并将第一个满足标题部分终止行确定条件的行确定为标题部分的终止行,其中标题部分终止行确定条件为:下一行所包括的完整单元格的数量与估值表的宽度的比值大于或者等于阈值。
例如,计算设备100可以基于单元格行坐标、单元格列坐标、单元格内容和单元格合并关系,搜索估值表中在标题部分的起始行之后的第一个满足标题部分终止行确定条件的行。
关于完整单元格,其指代一个非合并的单元格,或指代合并的单元格的整体。例如,对于图3所示的估值表,第一行的各个单元格跨列合并为一个完整单元格。
关于阈值,其可以是预先设定的,也可以是实时更新的,本公开的实施例对此不作限制。例如,阈值可以为80%。
例如,对于图3所示的估值表,估值表的宽度为11,第3行所包括的完整单元格的数量为8,第4行(即第3行的下一行)所包括的完整单元格的数量为11。第3行所包括的完整单元格的数量与估值表的宽度的比值小于80%,第4行所包括的完整单元格的数量与估值表的宽度的比值大于80%。计算设备100搜索到的第一个满足标题部分终止行确定条件的行为第3行,计算设备100可以将第3行确定为标题部分的终止行。
需要说明的是,图3所示的估值表的标题部分包括跨列合并的单元格,这仅是示例性的,而不是对本公开的限制。例如,估值表的标题部分还可以包括跨行合并的单元格,对于跨行合并的单元格,计数该跨行合并的单元格的所跨的任一行的完整单元格的数量时,该跨行合并的单元格均被视为一个完整单元格被进行计数。
结合图4所述的实施例充分考虑到了估值表的布局(例如,估值表的标题部分包括跨列合并的单元格,而估值表的明细部分中的至少部分行所包括的单元格的数量等于估值表的宽度),至少能够高效且准确地确定估值表的标题部分。
图5图示了本公开实施例的用于解析估值表的标题部分的方法500的流程图。方法500可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法500还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤502,计算设备100将估值表的标题部分所包括的所有完整单元格所对应的内容拼接为字符串。
例如,计算设备100可以基于单元格内容和单元格合并关系,将将估值表的标题部分所包括的所有完整单元格所对应的内容拼接为字符串。
例如,对于图3所示的估值表,计算设备100可以将标题部分所包括的所有完整单元格所对应的内容拼接为“证券投资基金估值表 **证券___****精选对冲1号限额特定集合资产管理计划___专用表 估值日期:2014-01-06 单位净值:1.0001 单位:元”。
在步骤504,计算设备100基于自然语义神经网络模型,从字符串解析出标题信息。
例如,自然语义神经网络模型可以是微调(Fine Turning)过的BERT(Bidirectional Encoder Representation from Transformers)模型。需要说明的是,自然语义神经网络模型可以取决于实际情况而定,本公开的实施例对此不作限制。
例如,标题信息可以包括基金名称、备案编号、发行机构、估值表日期、单位净值。例如,对于图3所示的估值表,计算设备100可以解析出基金名称为“****精选对冲1号限额特定集合资产管理计划”,解析出发行机构为“**证券”,解析出估值表日期为“2014-01-06”,解析出单位净值为“1.0001”。
需要说明的是,在本公开的实施例中,可以预先对自然语义神经网络模型进行训练,训练样本的数量级通常为10万。例如,一个训练样本为“X****S **4号私募基金委托资产资产估值表20181104 **证券股份有限公司_**4号私募基金_专用表 日期:2018-11-04单位净值:1.301”,其中“X****S”为备案编号,“**4号私募基金”为基金名称,“20181104”和“2018-11-04”为估值表日期,“**证券股份有限公司”为发行机构,“1.301”为单位净值。
结合图5所述的实施例中的步骤,对标题部分的解析与标题信息所在的相应单元格的单元格行坐标、单元格列坐标以及单元格合并关系无关,从而至少适用性更广泛。
在本公开的一些实施例中,还可以对解析出标题信息进行校验。例如,判断解析出的标题信息是否包括基金名称和估值表日期;如果解析出的标题信息不包括基金名称和估值表日期中的至少一项,则确定估值表解析失败;如果解析出的标题信息包括基金名称和估值表日期,则判断解析出的标题信息所包括的任一信息是否被多次提取到数据;以及如果解析出的标题信息所包括的任一信息被多次提取到数据,则对多次提取到的数据进行校验。
例如,在一个示例中,对多次提取到的数据进行校验包括:响应于任一信息为基金名称、备案编号和发行机构中的一者,基于短文本相似度算法来计算多次提取到的数据之间的相似度,并判断相似度是否满足相似度要求。例如,如果多次提取到的数据之间的相似度小于95%,则确定估值表解析失败。
例如,在一个示例中,对多次提取到的数据进行校验还包括:响应于任一信息为估值表日期,判断多次提取到的数据是否相同。例如,如果多次提取到的数据不相同,则确定估值表解析失败。
例如,在一个示例中,对多次提取到的数据进行校验又包括:响应于任一信息为单位净值,判断多次提取到的数据是否符合浮点数类型和多次提取到的数据是否相同。例如,如果多次提取到的数据不符合浮点数类型或不相同,则确定估值表解析失败。
图6图示了本公开实施例的用于确定估值表的明细部分的方法600的流程图。方法600可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法600还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤602,计算设备100将标题部分的终止行的下一行确定为明细部分的起始行。
例如,对于图3所示的估值表,计算设备100可以将第4行确定为明细部分的起始行。
需要说明的是,在本公开的实施例中,确定了明细部分的起始行之后,可以将明细部分的起始行确定为明细部分所包括的表头的起始行,并进一步地确定明细部分所包括的表头的终止行和明细部分所包括的明细主体的起始行。例如,判断明细部分所包括的表头是否以跨行合并的单元格呈现;如果明细部分所包括的表头不以跨行合并的单元格呈现,则将明细部分的起始行确定为表头的终止行;如果明细部分所包括的表头以跨行合并的单元格呈现,则将跨行合并的单元格的终止行确定为表头的终止行。例如,可以将表头的终止行的下一行确定为明细部分所包括的明细主体的起始行。
例如,对于图3所示的估值表,计算设备100可以将第4行确定为明细部分所包括的表头的起始行,将第4行确定为明细部分所包括的表头的终止行,将第5行确定为明细部分所包括的明细主体的起始行。
在步骤604,计算设备100搜索估值表中在明细部分的起始行之后的第一个满足明细部分终止行确定条件的行,并将第一个满足明细部分终止行确定条件的行确定为明细部分的终止行,其中明细部分终止行确定条件为:所包括的第一列单元格的单元格内容所对应的字符串长度小于一级科目编码信息长度。
例如,计算设备100可以基于单元格行坐标、单元格列坐标、单元格内容,搜索估值表中在明细部分的起始行之后的第一个满足明细部分终止行确定条件的行。
关于科目编码信息,其用于指示科目层级。例如,科目编码信息可以包括数字、字母或符号。例如,对于图3所示的估值表,科目编码信息为科目代码。关于一级科目编码信息长度,其为科目层级为一级的科目编码信息的长度,例如为明细主体的起始行的第一列单元格的单元格内容所对应的字符串长度。
例如,对于图3所示的估值表,明细主体的起始行的第一列单元格的单元格内容为1002,进而一级科目编码信息长度为4。计算设备100搜索到的第一个满足明细部分终止行确定条件的行为第26行,第26行所包括的第一列单元格的单元格内容所对应的字符串长度为0。
需要说明的是,在本公开的实施例中,确定了明细部分的终止行之后,可以将明细部分的终止行确定为明细主体的终止行。
例如,对于图3所示的估值表,计算设备100可以将第26行确定为明细主体的终止行。
结合图6所述的实施例充分考虑到了估值表的布局(例如,估值表的明细部分包括表头和明细主体),至少能够高效且准确地确定估值表的明细部分。
图7图示了本公开实施例的用于解析明细部分所包括的表头的方法700的流程图。方法700可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法700还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤702,计算设备100确定表头的每一列单元格所对应的明细名称。
例如,计算设备100可以基于单元格行坐标、单元格列坐标、单元格内容,确定表头的每一列单元格所对应的明细名称。
例如,如果表头中不存在合并的单元格,则将表头中每列单元格的单元格内容确定为相应列的明细名称。
例如,对于图3所示的估值表,计算设备100可以分别确定表头的A列至K列分别对应于“科目代码”、“科目名称”、“数量”、“单位成本”、“成本”、“成本占净值%”、“市价”、“市值”、“市值占净值%”、“估值增值”、“停牌信息”。
需要说明的是,表头中不存在合并的单元格仅是示例性的,而不是对本公开的限制。关于在表头中存在合并的单元格的情况下,确定表头的每一列单元格所对应的明细名称,可以参考后续结合图8所描述的实施例,在此不再赘述。
在步骤704,计算设备100基于明细名称映射表,将所确定的明细名称映射为标准明细名称。
关于明细名称映射表,其存储有非标准明细名称与标准明细名称的映射关系。例如,非标准明细名称“科目代码”、“科目号”映射到标准明细名称“科目编码信息”。需要说明的是,本公开的实施例对明细名称映射表的具体格式和内容不作限制,可以取决于实际情况而定。
例如,对于图3所示的估值表,计算设备100可以将所确定的明细名称“科目代码”映射为“科目编码信息”。
在结合图7所描述的实施例中,基于明细名称映射表,将所确定的明细名称映射为标准明细名称,从而至少对于部分非标准明细名称也能够进行解析,从而适应性强。
图8图示了根据本公开实施例的估值表的表头的示例。在图8中,表头中存在跨行不跨列合并的单元格和跨列合并的单元格。需要说明的是,为清楚起见和便于描述,图8中仅示出了估值表的明细部分所包括的表头,并且对明细部分所包括的表头在估值表中的位置进行了调整。
关于确定表头的每一列单元格所对应的明细名称,其例如包括:如果表头中存在跨行不跨列合并的单元格,则将跨行不跨列合并的单元格所对应的内容确定为跨行不跨列合并的单元格的相应列的明细名称。
例如,对于图8所示的估值表的表头,第1行B列和第2行B列跨行不跨列合并,可以将跨行不跨列合并的单元格所对应的内容“科目名称”确定为B列的明细名称。
关于确定表头的每一列单元格所对应的明细名称,其例如还包括:如果表头中存在跨列合并的单元格,则将跨列合并的单元格所对应的内容与跨列合并的单元格所对应的、下方的未跨列合并的单元格的单元格内容的组合,确定为跨列合并的单元格所对应的、下方的未跨列合并的单元格的相应列的明细名称。
例如,对于图8所示的估值表的表头,第1行G列和第1行H列跨列合并,可以将跨列合并的单元格所对应的内容“成本”与第2行G列单元格的单元格内容“原币”的组合“成本原币”,确定为G列的明细名称,还可以将跨列合并的单元格所对应的内容“成本”与第2行H列单元格的单元格内容“本币”的组合“成本本币”,确定为H列的明细名称。类似地,可以确定K列的明细名称为“市值原币”,确定L列的明细名称为“市值本币”。
在结合图8所描述的实施例中,将跨列合并的单元格所对应的内容与跨列合并的单元格所对应的、下方的未跨列合并的单元格的单元格内容的组合,确定为跨列合并的单元格所对应的、下方的未跨列合并的单元格的相应列的明细名称,至少能够准确地确定表头的每一列单元格所对应的明细名称。
需要说明的是,在本公开的一些实施例中,还可以判断跨列合并的单元格是否还跨行合并。如果跨列合并的单元格还跨行合并、同时跨行合并的行数不小于表头的总行数,则确定表头解析失败,进而确定估值表解析失败。如果跨列合并的单元格还跨行合并、同时跨行合并的行数小于表头的总行数,则判断跨列合并的单元格的下方是否存在未跨列合并的单元格,如果不存在未跨列合并的单元格,则确定表头解析失败,进而确定估值表解析失败。
图9图示了本公开实施例的用于解析明细部分所包括的明细主体的方法900的流程图。方法900可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法900还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤902,计算设备100将明细部分所包括的明细主体的起始行的科目层级确定为一级。
例如,对于图3所示的估值表,计算设备100可以将第5行的科目层级确定为一级。在这种情况下,第5行的A列单元格的单元格内容“1002”为一级科目编码信息。
在步骤904,计算设备100基于明细部分所包括的表头所对应的标准明细名称,解析明细主体的起始行的其余列的单元格内容。
例如,对于图3所示的估值表,计算设备100可以将第5行的B列至K列的单元格内容分别解析为与一级科目编码信息“1002”相关联的、对应于表头的B列至K列的单元格内容所对应的标准明细名称(即“科目名称”、“数量”、“单位成本”、“成本”、“成本占净值%”、“市价”、“市值”、“市值占净值%”、“估值增值”和“停牌信息”所对应的标准明细名称)的明细信息。
在步骤906,计算设备100按照从上到下的顺序,将明细主体中的其余行分别作为当前解析行,并解析当前解析行。
例如,计算设备100可以基于当前解析行的第一列单元格的单元格内容,确定当前解析行的科目层级。例如,可以参考后续结合图11所描述的实施例,在此不再赘述。
例如,计算设备100还可以基于明细部分所包括的表头所对应的标准明细名称,解析当前解析行的其余列的单元格内容。例如,类似于步骤904所述的解析明细主体的起始行的其余列的单元格内容的过程,在此不再赘述。
图10图示了本公开实施例的用于确定当前解析行的科目层级的方法1000的流程图。方法1000可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法1000还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤1002,如果LVself= Lb,则计算设备100将当前解析行的科目层级确定为一级,其中LVself为当前解析行的第一列单元格的单元格内容所对应的字符串长度,Lb为明细主体的起始行的第一列单元格的单元格内容所对应的字符串长度。
例如,对于图3所示的估值表,假设第8行为当前解析行。在这种情况下,第8行的第一列单元格的单元格内容“1021”所对应的字符串长度为4,明细主体的起始行(即第5行)的第一列单元格的单元格内容“1002”所对应的字符串长度为4,可以将第8行的科目层级确定为一级。
在步骤1004,如果LVself>Lb且LVself>LVup,则计算设备100将当前解析行的科目层级确定为当前解析行的上一行的科目层级加1,其中LVup为当前解析行的上一行的第一列单元格的单元格内容所对应的字符串长度。
例如,对于图3所示的估值表,假设第9行为当前解析行。在这种情况下,第9行的第一列单元格的单元格内容“102101”所对应的字符串长度为6,第8行的第一列单元格的单元格内容“1021”所对应的字符串长度为4,明细主体的起始行(即第5行)的第一列单元格的单元格内容“1002”所对应的字符串长度为4,可以将第9行的科目层级确定为二级。
在步骤1006,如果LVself>Lb且LVself= LVup,则计算设备100将当前解析行的科目层级确定为当前解析行的上一行的科目层级。
例如,对于图3所示的估值表,假设第10行为当前解析行。第10行的第一列单元格的单元格内容“102103”所对应的字符串长度为6,第9行的第一列单元格的单元格内容“102101”所对应的字符串长度为6,明细主体的起始行(即第5行)的第一列单元格的单元格内容“1002”所对应的字符串长度为4,可以将第10行的科目层级确定为二级。
在步骤1008,如果LVself>Lb且LVself<LVup,则计算设备100将当前解析行的科目层级确定为当前解析行的上一行的科目层级减1。
例如,对于图3所示的估值表,假设第21行为当前解析行。第21行的第一列单元格的单元格内容“11023199”所对应的字符串长度为8,第20行的第一列单元格的单元格内容“11023101******”所对应的字符串长度为14,明细主体的起始行(即第5行)的第一列单元格的单元格内容“1002”所对应的字符串长度为4,可以将第21行的科目层级确定为第20行的科目层级(例如,四级)减1(例如,三级)。
需要说明的是,在结合图9和图10所描述的实施例中,可以基于当前解析行的第一列单元格的单元格内容,确定当前解析行的科目层级,从而允许基于所确定的科目层级执行科目编码信息合法性检查或校验。
例如,在本公开的一些实施中,如果LVself>Lb(例如,在步骤1004、1006和1008中),还可以对Vself执行科目编码信息合法性检查,其中,Vself为当前解析行的第一列单元格的单元格内容。如果Vself未通过科目编码信息合法性检查,则确定估值表解析失败。
例如,对Vself执行科目编码信息合法性检查包括:确定Vself的起始部分是否为当前解析行的科目层级所对应的上一级科目层级的科目编码信息。
例如,对于图3所示的估值表,假设第9行为当前解析行。第9行的第一列单元格的单元格内容为“102101”,第9行的科目层级所对应的上一级科目层级的科目编码信息为第8行的第一列单元格的单元格内容“1021”。由于“102101”的起始部分为“1021”,从而可以确定Vself通过科目编码信息合法性检查。
例如,在本公开的一些实施例中,可以基于相邻的科目层级的科目编码信息来进一步解析明细主体。
例如,可以基于相邻的科目层级的科目编码信息之间的差异来确定股票代码。
例如,对于如图3所示的估值表,第19行的第一列单元格的单元格内容为“11023101”,第20行的第一列单元格的单元格内容为“11023101******”,可以将“11023101”和“11023101******”之间的差异“******”确定为股票代码。
例如,在本公开的一些实施例中,还可以基于明细部分所包括的明细主体中的各行的科目层级之间的关系,对各行所解析出的明细信息进行校验。
例如,可以确定特定科目层级所对应的特定可累加字段值(例如,明细名称“成本”所对应的标准明细名称的明细)和该特定科目层级的下一科目层级所对应的相同的特定可累加字段值(例如“成本”)的累加结果之间的差异率是否小于1%。如果差异率小于1%,则确定通过校验。如果差异率大于或者等于1%,则确定解析失败。
图11图示了本公开实施例的用于确定估值表的统计部分的方法1100的流程图。方法1100可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法1100还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤1102,计算设备100将明细部分的终止行的下一行确定为第一统计部分的起始行。
例如,对于图3所示的估值表,计算设备100可以将第27行确定为第一统计部分的起始行。
在步骤1104,计算设备100搜索估值表中在第一统计部分的起始行之后的第一个满足第一统计部分终止行确定条件的行,并将第一个满足第一统计部分终止行确定条件的行确定为第一统计部分的终止行,其中第一统计部分终止行确定条件为下一行所包括的第二列单元格的单元格内容非空。
例如,对于图3所示的估值表,计算设备100搜索到的第一个满足第一统计部分终止行确定条件的行为第30行,第30行的下一行(即第31行)所包括的第二列单元格的单元格内容非空。计算设备100可以将第30行确定为第一统计部分的终止行。
在步骤1106,计算设备100将第一统计部分的终止行的下一行确定为第二统计部分的起始行。
例如,对于图3所示的估值表,计算设备100可以将第31行确定为第二统计部分的起始行。
在步骤1108,计算设备100搜索估值表中在第二统计部分的起始行之后的第一个满足第二统计部分终止行确定条件的行,并将第一个满足第二统计部分终止行确定条件的行确定为第二统计部分的终止行,其中第二统计部分终止行确定条件为下两行均为空行。
例如,对于图3所示的估值表,计算设备100搜索到的第一个满足第二统计部分终止行确定条件的行为第48行,第48行的下两行(即第49行和第50行)均为空行。计算设备100可以将第48行确定为第二统计部分的终止行。
结合图11所述的实施例充分考虑到了估值表的布局(例如,估值表的统计部分包括第一统计部分和第二统计部分),至少能够高效且准确地确定估值表的统计部分。
图12图示了本公开实施例的用于解析统计部分所包括的第一统计部分的方法1200的流程图。方法1200可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法1200还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤1202,计算设备100将第一统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称。
例如,对于图3所示的估值表,计算设备100可以将第28行的第一列单元格的单元格内容“其中股票投资:”确定为科目名称。
在步骤1204,计算设备100基于明细部分所包括的表头所对应的标准明细名称,解析第一统计部分中的当前解析行的其余列的单元格内容。
例如,类似于结合图9所描述的实施例中的解析明细主体的起始行的其余列的单元格内容的过程,在此不再赘述。
结合图12所述的实施例充分考虑到了估值表的布局(例如,第一统计部分共用估值表的明细部分所包括的表头),至少能够高效且准确地解析估值表的第一统计部分。
在本公开一些实施例中,还可以基于第一统计部分中的至少一行的科目名称与明细部分所包括的明细主体中的至少部分行的统计关系,对第一统计部分中的至少一行的解析出的统计信息进行校验。
例如,对于图3所示的估值表,第28行的科目名称为“其中股票投资:”,第13行的第二列单元格为“股票投资”,从而可以基于第13行解析出的明细信息对第28行解析出的统计信息进行校验。
例如,可以确定第13行的E列解析出的明细信息和第28行解析出的统计信息之间的差异率是否小于1%。如果差异率小于1%,则确定通过校验。如果差异率大于或者等于1%,则确定解析失败。
图13图示了本公开实施例的用于解析统计部分所包括的第二统计部分的方法1300的流程图。方法1300可以由图1中所示的计算设备100执行,也可以由图14所示的电子设备1400执行。应当理解的是,方法1300还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤1302,计算设备100将第二统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称。
例如,对于图3所示的估值表,计算设备100可以将第31行的第一列单元格的单元格内容“基金单位净值:”确定为科目名称。
在步骤1304,计算设备100将第二统计部分中的当前解析行的第二列单元格的单元格内容确定为科目名称所对应的数值信息。
例如,对于图3所示的估值表,计算设备100可以将第31行的第二列单元格的单元格内容“1.0000”确定为科目名称所对应的数值信息。
结合图13所述的实施例充分考虑到了估值表的布局(例如,第二统计部分不共用估值表的明细部分所包括的表头),至少能够高效且准确地解析估值表的第二统计部分。
在本公开的一些实施例中,还可以判断第二统计部分中解析出的单位净值所对应的数值信息与标题部分中解析出的单位净值所对应的数值信息是否相同,以对第二统计部分中解析出的统计信息进行校验。
例如,对于图3所示的估值表,可以判断第31行解析出的单位净值所对应的数值信息“1.0000”与标题部分中解析出的单位净值所对应的数值信息“1.0001”是否相同,以对第二统计部分中解析出的统计信息进行校验。例如,如果相同,则确定通过校验;如果不同,则确定解析失败。
需要说明的是,在本公开的一些实施例中,还可以判断第二统计部分中解析出的单位净值所对应的数值信息与标题部分中解析出的单位净值所对应的数值信息之间的差异率是否小于预定阈值(例如1%),以对第二统计部分中解析出的统计信息进行校验。
另外,在本公开的一些实施例中,还提供了一种计算设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例所述的方法。
另外,在本公开的一些实施例中,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中计算机指令用于使计算机执行上述实施例所述的方法。
图14图示了用于实现本公开实施例的示例性电子设备1400的框图。例如,如图1所示的计算设备100可以由电子设备1400来实施。如图所示,电子设备1400包括中央处理单元(CPU)1402,其可以根据存储在只读存储器(ROM)1404中的计算机程序指令或者从存储单元1416加载到随机存取存储器(RAM)1406中的计算机程序指令,来执行各种适当的动作和处理。在随机存取存储器1406中,还可存储电子设备1400操作所需的各种程序和数据。中央处理单元1402、只读存储器1404以及随机存取存储器1406通过总线1408彼此相连。输入/输出(I/O)接口1410也连接至总线1408。
电子设备1400中的多个部件连接至输入/输出接口1410,包括:输入单元1412,例如键盘、鼠标、麦克风等;输出单元1414,例如各种类型的显示器、扬声器等;存储单元1416,例如磁盘、光盘等;以及通信单元1418,例如网卡、调制解调器、无线通信收发机等。通信单元1418允许设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、方法400至方法700和方法900至方法1300,可由中央处理单元1402执行。例如,在一些实施例中,方法200、方法400至方法700和方法900至方法1300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1416。在一些实施例中,计算机程序的部分或者全部可以经由只读存储器1404和/或通信单元1418而被载入和/或安装到电子设备1400上。当计算机程序被加载到随机存取存储器1406并由中央处理单元1402执行时,可以执行上文描述的方法200、方法400至方法700和方法900至方法1300中的一个或多个动作。
本公开涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘计算设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (18)

1.一种用于解析估值表的方法,包括:
获取估值表文件所包括的电子表格格式的估值表;
获取估值表中的每个单元格的单元格信息;
基于单元格信息和估值表的布局,分别确定估值表的标题部分、明细部分和统计部分;以及
基于单元格信息和估值表的布局,分别解析估值表的标题部分、明细部分和统计部分,以便生成关于估值表的结构化数据,其中分别解析估值表的标题部分、明细部分和统计部分包括将明细部分所包括的明细主体的起始行的科目层级确定为一级,基于明细部分所包括的表头所对应的标准明细名称,解析明细主体的起始行的其余列的单元格内容,按照从上到下的顺序,将明细主体中的其余行分别作为当前解析行,并进行以下步骤以解析当前解析行:基于当前解析行的第一列单元格的单元格内容,确定当前解析行的科目层级,以及基于明细部分所包括的表头所对应的标准明细名称,解析当前解析行的其余列的单元格内容,其中确定当前解析行的科目层级包括如果LVself = Lb,则将当前解析行的科目层级确定为一级,如果LVself > Lb且LVself > LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级加1,如果LVself > Lb且LVself = LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级,以及如果LVself > Lb且LVself < LVup,则将当前解析行的科目层级确定为当前解析行的上一行的科目层级减1,其中,LVself为当前解析行的第一列单元格的单元格内容所对应的字符串长度,Lb为明细主体的起始行的第一列单元格的单元格内容所对应的字符串长度,LVup为当前解析行的上一行的第一列单元格的单元格内容所对应的字符串长度。
2. 根据权利要求1所述的方法,其特征在于,
所述单元格信息包括单元格行坐标、单元格列坐标、单元格内容和单元格合并关系;以及
所述估值表的布局包括:
估值表的标题部分包括跨列合并的单元格,所述跨列合并的单元格呈现估值表的标题部分中的至少部分;
估值表的明细部分包括表头和明细主体,估值表的明细部分中的至少部分行所包括的单元格的数量等于估值表的宽度;以及
估值表的统计部分包括第一统计部分和第二统计部分,第一统计部分共用估值表的明细部分所包括的表头,第二统计部分不共用估值表的明细部分所包括的表头。
3. 根据权利要求1所述的方法,其特征在于,分别确定估值表的标题部分、明细部分和统计部分包括:
搜索估值表中的第一个非全空行,并将搜索到的第一个非全空行确定为标题部分的起始行;以及
搜索估值表中在标题部分的起始行之后的第一个满足标题部分终止行确定条件的行,并将第一个满足标题部分终止行确定条件的行确定为标题部分的终止行,其中标题部分终止行确定条件为:下一行所包括的完整单元格的数量与估值表的宽度的比值大于或者等于阈值。
4. 根据权利要求1所述的方法,其特征在于,分别解析估值表的标题部分、明细部分和统计部分包括:
将估值表的标题部分所包括的所有完整单元格所对应的内容拼接为字符串;以及
基于自然语义神经网络模型,从所述字符串解析出标题信息。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断解析出的标题信息是否包括基金名称和估值表日期;
如果解析出的标题信息不包括基金名称和估值表日期中的至少一项,则确定估值表解析失败;
如果解析出的标题信息包括基金名称和估值表日期,则判断解析出的标题信息所包括的任一信息是否被多次提取到数据;以及
如果解析出的标题信息所包括的任一信息被多次提取到数据,则对多次提取到的数据进行校验。
6. 根据权利要求1所述的方法,其特征在于,分别确定估值表的标题部分、明细部分和统计部分包括:
将标题部分的终止行的下一行确定为明细部分的起始行;以及
搜索估值表中在明细部分的起始行之后的第一个满足明细部分终止行确定条件的行,并将第一个满足明细部分终止行确定条件的行确定为明细部分的终止行,其中明细部分终止行确定条件为:所包括的第一列单元格的单元格内容所对应的字符串长度小于一级科目编码信息长度。
7.根据权利要求6所述的方法,其特征在于,分别确定估值表的标题部分、明细部分和统计部分还包括:
将明细部分的起始行确定为明细部分所包括的表头的起始行;
判断明细部分所包括的表头是否以跨行合并的单元格呈现;
如果明细部分所包括的表头不以跨行合并的单元格呈现,则将明细部分的起始行确定为表头的终止行;
如果明细部分所包括的表头以跨行合并的单元格呈现,则将跨行合并的单元格的终止行确定为表头的终止行;
将表头的终止行的下一行确定为明细部分所包括的明细主体的起始行;以及
将明细部分的终止行确定为明细主体的终止行。
8. 根据权利要求1所述的方法,其特征在于,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析明细部分所包括的表头:
确定表头的每一列单元格所对应的明细名称;以及
基于明细名称映射表,将所确定的明细名称映射为标准明细名称。
9.根据权利要求8所述的方法,其特征在于,确定表头的每一列单元格所对应的明细名称包括:
如果表头中不存在合并的单元格,则将表头中每列单元格的单元格内容确定为相应列的明细名称;
如果表头中存在跨行不跨列合并的单元格,则将所述跨行不跨列合并的单元格所对应的内容确定为跨行不跨列合并的单元格的相应列的明细名称;以及
如果表头中存在跨列合并的单元格,则将所述跨列合并的单元格所对应的内容与所述跨列合并的单元格所对应的、下方的未跨列合并的单元格的单元格内容的组合,确定为所述跨列合并的单元格所对应的、下方的未跨列合并的单元格的相应列的明细名称。
10. 根据权利要求1所述的方法,其特征在于,还包括:
如果LVself > Lb,则对Vself执行科目编码信息合法性检查;以及
如果Vself未通过科目编码信息合法性检查,则确定估值表解析失败;
其中,Vself为当前解析行的第一列单元格的单元格内容。
11.根据权利要求1所述的方法,其特征在于,还包括:
基于明细部分所包括的明细主体中的各行的科目层级之间的关系,对各行所解析出的明细信息进行校验。
12.根据权利要求1所述的方法,其特征在于,分别确定估值表的标题部分、明细部分和统计部分包括:
将明细部分的终止行的下一行确定为第一统计部分的起始行;
搜索估值表中在第一统计部分的起始行之后的第一个满足第一统计部分终止行确定条件的行,并将第一个满足第一统计部分终止行确定条件的行确定为第一统计部分的终止行,其中第一统计部分终止行确定条件为下一行所包括的第二列单元格的单元格内容非空;
将第一统计部分的终止行的下一行确定为第二统计部分的起始行;以及
搜索估值表中在第二统计部分的起始行之后的第一个满足第二统计部分终止行确定条件的行,并将第一个满足第二统计部分终止行确定条件的行确定为第二统计部分的终止行,其中第二统计部分终止行确定条件为下两行均为空行。
13. 根据权利要求1所述的方法,其特征在于,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析统计部分所包括的第一统计部分:
将第一统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称;以及
基于明细部分所包括的表头所对应的标准明细名称,解析第一统计部分中的当前解析行的其余列的单元格内容。
14.根据权利要求13所述的方法,其特征在于,还包括:
基于第一统计部分中的至少一行的科目名称与明细部分所包括的明细主体中的至少部分行的统计关系,对第一统计部分中的至少一行的解析出的统计信息进行校验。
15. 根据权利要求1所述的方法,其特征在于,分别解析估值表的标题部分、明细部分和统计部分包括进行以下步骤以解析统计部分所包括的第二统计部分:
将第二统计部分中的当前解析行的第一列单元格的单元格内容确定为科目名称;以及
将第二统计部分中的当前解析行的第二列单元格的单元格内容确定为科目名称所对应的数值信息。
16.根据权利要求15所述的方法,其特征在于,还包括:
判断第二统计部分中解析出的单位净值所对应的数值信息与标题部分中解析出的单位净值所对应的数值信息是否相同,以对第二统计部分中解析出的统计信息进行校验。
17.一种计算设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-16中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中所述计算机指令用于使所述计算机执行权利要求1-16中任一项所述的方法。
CN202311264726.1A 2023-09-27 2023-09-27 解析估值表的方法、设备和计算机可读存储介质 Active CN117010343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311264726.1A CN117010343B (zh) 2023-09-27 2023-09-27 解析估值表的方法、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311264726.1A CN117010343B (zh) 2023-09-27 2023-09-27 解析估值表的方法、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117010343A CN117010343A (zh) 2023-11-07
CN117010343B true CN117010343B (zh) 2023-12-26

Family

ID=88576521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311264726.1A Active CN117010343B (zh) 2023-09-27 2023-09-27 解析估值表的方法、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117010343B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142825A (ja) * 2013-01-24 2014-08-07 Brother Ind Ltd 画像処理プログラム、画像処理装置、および変換装置
JP2016051421A (ja) * 2014-09-02 2016-04-11 野田 正嗣 情報管理装置並びにファイル管理方法
CN107274291A (zh) * 2017-06-21 2017-10-20 深圳泛态信息技术有限公司 跨平台的估值表解析方法、存储介质及应用服务器
CN111369370A (zh) * 2020-03-31 2020-07-03 中国建设银行股份有限公司 估值表处理方法、装置、服务器及存储介质
CN113935295A (zh) * 2021-10-28 2022-01-14 中国建设银行股份有限公司 一种估值表汇总方法、装置、设备及介质
CN114187081A (zh) * 2021-11-30 2022-03-15 北京百度网讯科技有限公司 估值表处理方法、装置、电子设备及计算机可读存储介质
CN115544213A (zh) * 2022-11-28 2022-12-30 上海朝阳永续信息技术股份有限公司 获取文本中的信息的方法、设备和存储介质
CN116415562A (zh) * 2023-06-06 2023-07-11 上海朝阳永续信息技术股份有限公司 用于解析金融数据的方法、设备和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113901214B (zh) * 2021-10-08 2023-11-17 北京百度网讯科技有限公司 表格信息的提取方法、装置、电子设备及存储介质
US20230185961A1 (en) * 2021-12-10 2023-06-15 Business Objects Software Ltd. Data blurring

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142825A (ja) * 2013-01-24 2014-08-07 Brother Ind Ltd 画像処理プログラム、画像処理装置、および変換装置
JP2016051421A (ja) * 2014-09-02 2016-04-11 野田 正嗣 情報管理装置並びにファイル管理方法
CN107274291A (zh) * 2017-06-21 2017-10-20 深圳泛态信息技术有限公司 跨平台的估值表解析方法、存储介质及应用服务器
CN111369370A (zh) * 2020-03-31 2020-07-03 中国建设银行股份有限公司 估值表处理方法、装置、服务器及存储介质
CN113935295A (zh) * 2021-10-28 2022-01-14 中国建设银行股份有限公司 一种估值表汇总方法、装置、设备及介质
CN114187081A (zh) * 2021-11-30 2022-03-15 北京百度网讯科技有限公司 估值表处理方法、装置、电子设备及计算机可读存储介质
CN115544213A (zh) * 2022-11-28 2022-12-30 上海朝阳永续信息技术股份有限公司 获取文本中的信息的方法、设备和存储介质
CN116415562A (zh) * 2023-06-06 2023-07-11 上海朝阳永续信息技术股份有限公司 用于解析金融数据的方法、设备和介质

Also Published As

Publication number Publication date
CN117010343A (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110909226B (zh) 金融类文档信息处理方法、装置、电子设备及存储介质
Bozanic et al. Qualitative disclosure and changes in Sell‐Side financial analysts' information environment
AU2017296412B2 (en) System and method for automatically understanding lines of compliance forms through natural language patterns
US7590647B2 (en) Method for extracting, interpreting and standardizing tabular data from unstructured documents
CA3033859C (en) Method and system for automatically extracting relevant tax terms from forms and instructions
CN110457302A (zh) 一种结构化数据智能清洗方法
CN105378732A (zh) 表格数据的主题分析
US10860661B1 (en) Content-dependent processing of questions and answers
Li et al. Reporting technologies and textual readability: Evidence from the XBRL mandate
CN116304023A (zh) 一种基于nlp技术的招投标要素抽取方法、系统及存储介质
Xie et al. Are there periodically collapsing bubbles in the REIT markets? New evidence from the US
CN117077628A (zh) 舆情应对预案生成方法、装置、服务器及存储介质
CN111815162A (zh) 一种数字化审计工具及方法
JP7093292B2 (ja) 対話セッションテキストをセグメンテーションするシステム及び方法
Nyakurukwa et al. Stock market integration in Africa: Further evidence from an information‐theoretic framework
CN114201620A (zh) 用于挖掘pdf文件中的pdf表格的方法、设备和介质
CN117010343B (zh) 解析估值表的方法、设备和计算机可读存储介质
US20220122184A1 (en) Document Monitoring, Visualization, and Error Handling
CN116415562B (zh) 用于解析金融数据的方法、设备和介质
CN116758918A (zh) 地址信息识别方法、装置、电子设备及存储介质
CN114116616B (zh) 用于挖掘pdf文件的方法、设备和介质
US20230123711A1 (en) Extracting key value pairs using positional coordinates
CN114187081A (zh) 估值表处理方法、装置、电子设备及计算机可读存储介质
US11775762B1 (en) Data comparision using natural language processing models
CN114549177A (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