CN112784555B - 一种生成数据透视图的方法及装置 - Google Patents

一种生成数据透视图的方法及装置 Download PDF

Info

Publication number
CN112784555B
CN112784555B CN201911087808.7A CN201911087808A CN112784555B CN 112784555 B CN112784555 B CN 112784555B CN 201911087808 A CN201911087808 A CN 201911087808A CN 112784555 B CN112784555 B CN 112784555B
Authority
CN
China
Prior art keywords
data
column
columns
data column
value
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
CN201911087808.7A
Other languages
English (en)
Other versions
CN112784555A (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.)
Beijing Kingsoft Office Software Inc
Zhuhai Kingsoft Office Software Co Ltd
Original Assignee
Beijing Kingsoft Office Software Inc
Zhuhai Kingsoft Office Software 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 Beijing Kingsoft Office Software Inc, Zhuhai Kingsoft Office Software Co Ltd filed Critical Beijing Kingsoft Office Software Inc
Priority to CN201911087808.7A priority Critical patent/CN112784555B/zh
Publication of CN112784555A publication Critical patent/CN112784555A/zh
Application granted granted Critical
Publication of CN112784555B publication Critical patent/CN112784555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/906Clustering; Classification
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种生成数据透视图的方法,包括基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;确定以该类别数据列和每一所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图。本发明能够采用随机森林模型自动生成数据透视图,帮助用户处理和分析数据,降低用户使用门槛,给用户提供更方便的途径。

Description

一种生成数据透视图的方法及装置
技术领域
本文涉及计算机技术,尤指一种生成数据透视图的方法及装置。
背景技术
表格软件中,“插入数据透视图”是非常高级的功能,使用比例低于1%。根据表格数据分析、整理、画图表来处理数据是用户需要做的操作。大部分用户是选中需要分析的列,通过公式、筛选等方法进行“求和”、“计数”、“求平均值”等操作,再将统计结果手动输入另一个表格,根据整理后的表格绘制图表(如图4所示)。每次操作步骤繁琐且门槛高。
发明内容
本申请提供了一种生成数据透视图的方法及装置,能够帮助用户处理和分析数据,自动生成数据透视图。
本申请提供了一种生成数据透视图的方法,包括:当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述系列值数据列预定的第一特征值和每一所述类别数据列的预定的第二特征值;针对每一所述类别数据列分别进行如下操作:基于该类别数据列的预定的第一特征值和每一所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个一所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图。
在一个示例性实施例中,上述获取根据当前表格中选中的表格数据生成的数据透视表,包括:获取当前表格中的表格数据,确定每个数据列的预定的第三特征值和预定的第四特征值;将获取的每个数据列的预定的第三特征值分别输入预先生成的第一随机森林模型,确定作为所生成的所述数据透视表的行的第一数据列;将获取的每个数据列的所述预定的第四特征值分别输入预先生成的第二随机森林模型,确定作为所生成的所述数据透视表的值的第二数据列;采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表。
在一个示例性实施例中,上述采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表,包括:将所述第一数据列中内容相同的单元格内容进行合并,合并后将每个单元格的内容分别作为所述数据透视表的行标题;将当前表格中所述第二数据列中单元格的值,分别按照所述数据透视表的每个行标题进行求和,将得到的求和结果作为所述数据透视表中相应单元格的值。
在一个示例性实施例中,上述获取当前表格中的表格数据,包括:获取的用户在当前表格中选中的数据列,确定所获取的用户在表格中选中的数据列的区域大小为:m*n,其中m为行数,n为列数;当获取的用户在表格中选中的数据列的行数等于1并且列数等于1时,对获取的用户在表格中选中的数据列的单元格进行扩展,获取上下左右均不为连续空白行列的区域,作为所述当前表格中选中的表格数据;当获取的用户在表格中选中的数据列的行数大于1或者列数大于1时,将获取的用户在表格中选中的数据列作为所述当前表格中选中的表格数据。
在一个示例性实施例中,上述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括:确定所获取的表格数据的表格方向并获得预定方向的表格数据。
在一个示例性实施例中,上述确定所获取的表格数据的表格方向并获得预定方向的表格数据,包括:获取所述表格数据的行数和列数,根据所获取的行数和列数确定截取的数据区域;根据所截取的数据区域,确定相似行的个数和相似列的个数;将所获取的表格数据的行数和列数,及确定的相似行数和相似列数输入预先生成的第三随机森林模型确定所述表格数据的表格方向;判断所述表格数据的表格方向是否为预定方向,当所述表格数据的表格方向不是预定方向时,将所述表格数据转换成预定方向的表格数据;当所述表格数据的表格方向为预定方向时,直接将所述表格数据作为所述预定方向的表格数据。
在一个示例性实施例中,上述确定所获取的表格数据的表格方向并获得预定方向的表格数据之后,和基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括:根据获得的预定方向的表格数据识别表格结构并获取表格内容。
在一个示例性实施例中,上述根据获得的预定方向的表格数据识别表格结构并获取表格内容,包括:获取所述预定方向的表格数据中的单元格内容的内容类型;根据所获取的内容类型确定相邻行的相似度,将相似度大于预定阈值的相邻行识别为相似行,合并识别出的相似行;获取将相似行进行合并后的表格数据中的行目录;遍历所述行目录获取预定的第五特征值并输入预先生成的第四随机森林模型以确定表格结构;所述表格结构包括表格内容,获取所述表格内容。
在一个示例性实施例中,上述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列,包括:按照预定顺序遍历所述表格数据的每个数据列,将为纯数值的数据列确定为系列值数据列,并将首个被确定出的系列值数据列所在位置之前的数据列作为类别数据列;当所述首个被确定出的系列值数据列所在位置之前无数据列时,在所述首个被确定出的系列值数据列所在位置之前补充至少一列数据列作为类别数据列;所补充的列数据列中单元格的内容包括对所确定的系列值数据列的单元格的内容的标识;或者,当所述表格数据的列数为两列时,将第一列数据列确定为类别数据列,并将第二列数据列确定为系列值数据列。
本申请还提供了一种生成数据透视图的装置,包括:获取模块,用于当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;确定模块,用于基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述系列值数据列预定的第一特征值和每一所述类别数据列的预定的第二特征值;生成模块,用于针对每一所述类别数据列,基于该类别数据列的预定的第一特征值和一个或者多个所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图。
与相关技术相比,本申请能够自动生成数据透视图,帮助用户处理和分析数据,降低用户使用门槛,给用户提供更方便的途径。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请生成数据透视图的方法流程图;
图2为本申请实施例一表格数据图;
图3为本申请实施例一手动生成数据透视图操作提示示意图;
图4为本申请实施例一手动生成数据透视图结果示意图;
图5为本申请实施例一自动生成数据透视图之托管方式和计数项合并结果示意图;
图6为本申请实施例一自动生成数据透视图之托管方式和求和项合并结果示意图;
图7为本申请实施例二表格数据图;
图8为本申请实施例二自动生成数据透视图之物资名称和计数项(设计数量)合并结果示意图;
图9为本申请实施例二自动生成数据透视图之物资名称和求和项(设计用量)合并结果示意图;
图10为本申请实施例二自动生成数据透视图之物资名称和求和项(施工用量)合并结果示意图;
图11为本申请实施例二自动生成数据透视图之物资名称和求和项(监理核实数量)合并结果示意图;
图12为本申请实施例自动生成数据透表的列所在行方法流程图;
图13为本申请实施例自动生成数据透表的值所在行方法流程图;
图14为本申请实施例自动识别表格数据方向方法流程图;
图15为本申请实施例自动识别表格数据结构方法流程图;
图16为本申请实施例自动生成数据透视图具体实施方法流程图;
图17为本申请实施例自动生成数据透视图装置示意图。
具体实施方式
本申请描述了至少一个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
如图1所示,本发明实施例提供一种生成数据透视图的方法,包括如下步骤:
S1、当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;
S2、基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述系列值数据列预定的第一特征值和每一所述类别数据列的预定的第二特征值;
S3、针对每一所述类别数据列,分别进行如下操作:基于该类别数据列的预定的第一特征值和一个或者多个所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图。
数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关,可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。
数据透视图为关联数据透视表中的数据提供其图形表示形式。数据透视图也是交互式的。创建数据透视图时,会显示数据透视图筛选窗格。可使用此筛选窗格对数据透视图的基础数据进行排序和筛选。对关联数据透视表中的布局和数据的更改将立即体现在数据透视图的布局和数据中,反之亦然。数据透视图显示数据系列、类别、数据标记和坐标轴(与标准图表相同)。也可以更改图表类型和其他选项,例如标题、图例的位置、数据标签、图表位置等。
在一个示例性实施例中,采用Microsoft Office Excel工作表中的数据作为表格数据的来源。如图2和图7所示。
在一个示例性实施例中,步骤S11中,建立数据透视图的指令,可以是MicrosoftOffice Excel工作表中的预先设定的选项,当点击该选项,则触发建立数据透视表;也可以是当用户选中数据列时自动提示数据透视图。
在一个示例性实施例中,步骤S1中,获取表格中选中的表格数据,其中获取的表格数据可以是直接选择的数据,也可以是利用直接选择的数据经过删减或者扩展后得到的数据。
在一个示例性实施例中,所述获取当前表格中的表格数据,包括:
获取的用户在当前表格中选中的数据列,判断获取的用户在表格中选中的数据列的区域大小,其中数据列的区域大小表示为:m*n,其中m为行数,n为列数;
当获取的用户在表格中选中的数据列的行数等于1并且列数等于1时,对获取的用户在表格中选中的数据列的单元格进行扩展,获取上下左右均不为连续空白行列的区域,作为所述当前表格中选中的表格数据;
当获取的用户在表格中选中的数据列的行数大于1和/或列数大于1时,将获取的用户在表格中选中的数据列作为当前表格中选中的表格数据。
在一个示例性实施例中,步骤S1中,所述获取根据当前表格中选择的表格数据生成的数据透视表,包括:
步骤S11:获取当前表格中的表格数据的每个数据列的预定的第三特征值和预定的第四特征值;
如图12所示,在一个示例性实施例中,当按照从左到右的顺序进行遍历时,所述获取的所述每个所述被选中的数据列的预定的第三特征值包括:整个数据列列数、索引值、整列含有的数据类型、去除重复单元格后的单元格个数、重复单元格内容出现次数的方差、单元格字符长度最大值、单元格字符长度的方差。
如图12所示,在一个示例性实施例中,当按照从左到右的顺序进行遍历时,获取的所述每个所述被选中的数据列预定的第三特征值还包括:自身及自身以左的各列含数字的列数,自身及自身以左的各列含中文、英文、日期的列数。
如图12所示,在一个示例性实施例中,当按照从右到左的顺序进行遍历时,获取的所述每个所述被选中的数据列的预定的第三特征值还包括:自身及自身以右的各列含数字的列数,自身及自身以右的各列含中文、英文、日期的列数。
其中,预定的第一特征值1:整个数据列列数,具体的,整个数据列列数为表格总的列数,同一个表格每一列这个特征值是一样的。
预定的第一特征值2:索引值,具体的,索引值为这一列在整个表格中是第几列,从左计数。
预定的第一特征值3:整列含有的类型,具体的,类型包括中文、英文、日期、数字,将整列中所有单元格出现过的类型统计出来,将这几个类型分别转换到一个特定的数字表示,然后将所有含有的类型对应的数字相加起来,得到该特征值。例如,如图2所示的数据列第一列特征值3具体是每个类型对应一个数字,将这些数字累加起来得到的整列含有的类型对应为322。又比如数字类型对应64,中文类型对应是128,则包含中文和数字的类型累加得到192。
预定的第三特征值4:去掉重复单元后得到的个数,具体的,将一列所有单元格中内容有重复出现的去掉,计算单元格个数。
预定的第三特征值5:重复单元格内容出现次数的方差,具体的,统计每个单元格内容在该列出现的次数,将这些出现次数计算方差,得到该特征值。
预定的第三特征值6:单元格字符长度最大值,具体的,计算该列单元格内容字符长度最长的值,得到该特征值。
预定的第三特征值7:单元格字符长度的方差,具体的,统计每个单元格字符长度,将这些数字计算方差,得到该特征值。
预定的第三特征值8:自身及自身以左的各列含数字的列数,具体的,从左边第一列开始计算至当前列,计算包含数字的列的个数.
预定的第三特征值9:自身及自身以左的各列含中文、英文、日期的列数,具体的,从左边第一列开始计算至当前列,计算包含中文、英文、日期的列的个数。
预定的第三特征值10:自身及自身以右的各列含数字的列数,具体的,从右边第一列开始计算至当前列,计算包含数字的列的个数。
预定的第三特征值11:自身及自身以右的各列含中文、英文、日期的列数,具体的,从右边第一列开始计算至当前列,计算包含中文、英文、日期的列的个数。
如图13所示,在一个示例性实施例中,当按照从左到右的顺序进行遍历时,所述获取的所述每个所述被选中的数据列的预定的第四特征值包括:标题提取关键字、整个数据列列数、仅数字的单元格个数、单元格整数数字字符数长度的方差。
如图13所示,在一个示例性实施例中,当按照从左到右的顺序进行遍历时,获取的所述每个所述被选中的数据列的预定的第四特征值包括:自身及自身以左的各列含数字的列数、自身及自身以左的各列仅含数字的列数、自身及自身以左的各列含中文、英文、日期的列数。
如图13所示,在一个示例性实施例中,当按照从右到左的顺序进行遍历时,获取的所述每个所述被选中的数据列的预定的第四特征值包括:自身及自身以右的各列含数字的列数、自身及自身以右的各列仅含数字的列数、自身及自身以右的各列含中文、英文、日期的列数。
其中,预定的第四特征值1:标题提取关键字,例如含以下词语计数1,"数量"、"金额"、"汇总"、"合计"、"收入"、"支出"、"额"、"费"、"销售",含以下词语计数-1,"月份"、"年份"、"号"、"联系"、"电话"、"码"、"单号"、"序号"、"单价"、"时间"、"日期"、"编号"、"单位",最终得到一个数字作为该特征值。具体的,可以提取的关键字较多,可以根据更多样本训练得到更多的结果。预定的第四特征值2:整个数据列列数,具体的,整个数据列列数为表格总的列数,同一个表格每一列这个特征值是一样的。
预定的第四特征值3:仅数字的单元格个数,具体的,对只有数字的单元格相加,得到该值。
预定的第四特征值4:单元格整数数字字符数长度的方差,具体的,统计该列每个单元格中整数数字的字符长度,计算方差,如果遇到小数则截取整数部分计算。
预定的第四特征值5:自身及自身以左的各列含数字的列数,具体的,从左边第一列开始计算至当前列,计算包含数字的列的个数。
预定的第四特征值6:自身及自身以左的各列仅含数字的列数,具体的,从左边第一列开始计算至当前列,计算仅包含数字的列的个数
预定的第四特征值7:自身及自身以左的各列含中文、英文、日期的列数,具体的,从左边第一列开始计算至当前列,计算包含中文、英文、日期的列的个数。
预定的第四特征值8:自身及自身以右的各列含数字的列数,具体的,从右边第一列开始计算至当前列,计算包含数字的列的个数。
预定的第四特征值9:自身及自身以右的各列仅含数字的列数,具体的,从右边第一列开始计算至当前列,计算仅包含数字的列的个数。
预定的第四特征值10:自身及自身以右的各列含中文、英文、日期的列数,具体的,从右边第一列开始计算至当前列,计算包含中文、英文、日期的列的个数。其中中文、英文、日期,只需要包含其一,则算一列。
步骤S12:将所确定的每个数据列的预定的第三特征值分别输入预先生成的第一随机森林模型,确定作为所生成的所述数据透视表的行的第一数据列;将获取的每个数据列的所述预定的第四特征值分别输入预先生成的随机森林模型,确定作为所生成的所述数据透视表的值的第二数据列。
在一个示例性实施例中,将获取的每个数据列的所述预定的第三特征值分别输入预先生成的对应第一随机森林模型,得到每个数据列对应所述第一特征值的第一分析结果;将获取的每个数据列的所述第四特征值分别输入预先生成的对应第二随机森林模型,得到每个数据列对应所述第二特征值的第二分析结果;
第一分析结果满足第一预设条件的数据列,确定作为生成所述数据透视表的行的第一数据列;第二分析结果满足第二预设条件的数据列,确定作为生成所述数据透视表的值的第二数据列。
在一个示例性实施例中,第一分析结果可以是计算得分的形式,即可以将获取的每个数据列的预设的第三特征值分别输入预先生成的第一随机森林模型,计算每个数据列的第一预定行字段得分;确定所述第一预测字段得分在第二预设范围内的第一数据列,作为生成所述数据透视表的行的第一数据列。第二分析结果可以是计算得分的形式,即可以将获取的每个数据列的第二预设的第一特征值分别输入预先生成的第二随机森林模型,计算每个数据列的第二预定行字段得分;确定所述第二预测字段得分在第二预设范围内的数据列,作为生成所述数据透视表的值的第二数据列。
在其他的实施方式中可采用逻辑运算的方式进行推理,比如模型直接输出“是”“否”。本实施例中仅是一个示例性的方式,在此不做限定。
上述预先生成的第一或者第二随机森林模型包括:通过采集多个数据透视表作为训练数据样本,提取第一特征或者第二特征按照决策树的生成步骤建立数据透视表行决策树,再根据数据透视表行决策树建立的。
随机森林是一个包含至少一个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method"以建造决策树的集合。
在一个示例性实施例中,根据下列算法而建造每棵树:用N来表示训练用例(样本)的个数,M表示特征数目。输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用。
上述及下述的实施例中的特征值可以通过预定的顺序进行获取,相对于计算机处理比较简单,当然本领域技术人员可以采用其他预定的顺序获取上述特征值,本申请的获取特征值的宗旨在于特征值的结果,而不在于获取的顺序,在此不做限定。
本领域技术人员可以理解的是随机森林算法只需要提供正确的特征值和模型,就能够得到分数。随机森林中间过程是算法的封装,并不是该项专利的范畴。
本领域技术人员可以理解的是训练出来的随机森林模型需要对应特征值,顺序是不能随意修改的,除非是比如优化算法的时候,用新的用户数据重新训练模型,只要不增减特征值,则再次训练出来的模型相同的且顺序不变。本申请采用该顺序能够得到相当精确的结果。
本申请通过随机森林模型对按照预定顺序获取的表格数据列的列表的特征值进行分析,为用户自动找到数据透视表的行和值所在的数据列,并确定给用户,从而降低用户使用门槛,给用户提供更方便的途径。
步骤S13:采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表。
在一个示例性实施例中,步骤S13:所述采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表,包括:
S131:将所述第一数据列中内容相同的单元格进行合并,将合并后的每个单元格的内容分别作为所述数据透视表的行标题;
在一个示例性实施例中,例如图2所示,将满足条件的第一数据列为“托管方式”,例如托管方式中多个“午托”进行合并后作为所述数据透视表的其中一个行标题。
S132:将所述第二数据列中单元格的值,分别按照所述数据透视表的每个行标题进行求和,将得到的求和结果作为所述数据透视表中相应单元格的值。
在一个示例性实施例中,例如图2所示,将满足条件的第二数据列“老师天数”中,例如凡是和“全天”对应的值进行求和,求和结果就是数据透视表中“全天”这一行对应的值。
在一个示例性实施例中,步骤S3中,所述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括:
S4、确定所获取的表格数据的表格方向并获得预定方向的表格数据。
在一个示例性实施例中,步骤S4中,所述确定所获取的表格数据的表格方向并获得预定方向的表格数据,包括:
S41、获取所述表格数据的行数和列数,根据所获取的行数和列数确定截取的数据区域;
S42、根据所截取的数据区域,确定相似行的个数和相似列的个数;
S43、将所获取的表格数据的行数和列数,及确定的相似行数和相似列数输入预先生成的第三随机森林模型确定所述表格数据的表格方向;
S44、判断所述表格数据的表格方向是否为预定方向,当所述表格数据的表格方向不是预定方向时,将所述表格数据转换成预定方向的表格数据。当所述表格数据的表格方向为预定方向时,直接将所述表格数据作为所述预定方向的表格数据。示例性的,转换表格方向可以通过将第一行按从左到右的顺序依次将每个单元格的内容按从上到下的顺序填写到新表格中的第一列,第二至第N行重复相同操作填写入新表格中的第二至第N列。
在一个示例性实施例中,识别表格方向用户手动可以选择。
如图14所示,在另一个示例性实施例中,识别表格方向可以通过获取一个表格的选区和表格数据,删除表格的上下左右连续空白行和空白列,得到新表格区域和表格数据。新表格区域的行数为RowCount、列数为ColumnCount。根据行数和列数获得最小截取区域minLength,最小截取区域公式为:minLength=min(行个数为RowCount,ColumnCount,10)。从表格左上角开始截取长宽为minLength的区域得到区域newTable。转化newTable中每个单元格的类型,类型有中文、英文、数字、日期、时间。遍历newTable中的minLength行,根据行相似度合并连续相似的行,作为Rows,每个Rows至少包含一个行,最终得到Rows的序列,Rows的序列的个数为similarRowCount。遍历newTable中的minLength列,根据列相似度合并连续相似的列,作为Columns,每个Columns至少包含一个列,最终得到Columns的序列,Rows的序列的个数similarColumnCount。根据行数RowCount,列数ColumnCount,相似行数similarRowCount,相似列数similarColumnCount,4个特征采用预定的识别表格方向第三随机森林模块计算得到系列方向,系列方向有:按行、按列。
在一个示例性实施例中,表格方向为“按行”或“按列”,如果为“按行”则不推荐数据透视表或者对表格数据进行转换成“按列”表格方向;如果“按列”则不需要转换,直接进入识别表格结构,一行一行的进入表格结构识别。
在一个示例性实施例中,如图2表格数据的表格方向识别,具体的表格有5列30行,min(30,5,10)得到5,则截取表格左上角5*5的表格区域进行表格相似行合并,根据单元格内容的类型按行合并得到2行,根据单元格内容的类型按列合并得到4列,则将4个特征[30,5,2,4]提交给随机森林模型得到结果是按列。
在一个示例性实施例中,如图7表格数据的表格方向识别,表格有6列16行,min(16,6,10)得到6,则截取表格左上角6*6的表格区域进行表格相似行合并,根据单元格内容的类型按行合并得到2行,根据单元格内容的类型按列合并得到4列,则将4个特征[6,16,2,4]提交给随机森林模型得到结果是按列。
在一个示例性实施例中,步骤S4,所述确定所获取的表格数据的表格方向并获得预定方向的表格数据之后,和基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括
S5、根据获得的预定方向的表格数据识别表格结构并获取表格内容。
在一个示例性实施例中,步骤S5、根据获得的预定方向的表格数据识别表格结构并获取表格内容,包括:
S51、获取所述预定方向的表格数据中的单元格内容的内容类型;
S52、根据所获取的内容类型确定相邻行的相似度;将相似度大于预定阈值的相邻行识别为相似行,合并识别出的相似行;获取将相似行进行合并后的合并行目录;示例性的,判断相似行通过将两个表格行对应单元格的内容所包含的类型进行比较,将差异量化成一个数字,统计这些数字来表示两个表格行的相似度,再设置一个阈值来判断这两行是否为相似行。列也是相同操作。
S53、遍历所述行目录获取预定的第三特征值并输入预先生成的随机森林模型确定表格结构;所述表格结构包括表格内容,获取所述表格内容。
在一个示例性实施例中,表格结构分类为“行标题”、“表格内容”、“其他”,获取所述表格内容包括“行标题+表格数据内容”的表格。
在一个示例性实施例中,识别表格结构可以默认第一行是行标题,其他行是表格内容,用户手动选择行标题和表格内容等方法。
如图15所示,在另一个示例性实施例中,识别表格结构,可以获取一个表格的选区和表格数据,遍历表格的每个单元格,转化该选区中每个单元格内容类型,其中内容类型包括:中文、英文、时间、日期、数字;字号等。遍历表格中每个单元格,判断是否为合并单元格,如果是,把合并的单元格里面的内容平铺到每个列中,最终得到每行的单元格数都一样的表格。遍历表格中的每行,计算当前行和下一行的相似度,判断是否合并,得到Rows结构,每个Rows中至少包含1个表格行,最终得到Rows的数组RowsList。遍历例数组RowsList,转化Rows的以下预定的第五特征值:合并单元格数/列数、Rows的单元格内容类型的并集、包含中文的列数/非空白列数、不包含中文的列数/非空白列数、包含数字的列数/非空白列数、包含冒号的个数、和最邻近大于1行的Rows的字号差、(和最邻近大于1行的Rows的每个单元格的内容类型对比)类型不相同的单元格数/非空白列数。根据以上特征,采用预先建立的识别表格结构的第四随机森林模型推理得到表格结构的三个类别:行标题、表格内容、其他。
上述预先生成的第四随机森林模型通过采集多个数据透视表作为训练数据样本,提取转化的Rows的特征,按照决策树的生成步骤建立数据透视表行决策树,再根据数据透视表行决策树建立的。
在一个示例性实施例中,如图2所示的表格数据的表格结构识别,具体的,表格30行根据每个单元格内容的类型,合并相似行得到2行,即第1行和第2-30行,类型如下,对应计算出来的特征值如下表(表a)。
表a
在一个示例性实施例中,如图7所示的表格数据的表格结构识别,表格16行根据每个单元格内容的类型,合并相似行得到2行,即第1行和第2-16行,类型如下,对应计算出来的特征值如下表(表b)。
表b
在一个示例性实施例中,步骤S3中,所述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列,包括:
S31、按照预定顺序遍历所述表格数据的每个数据列,将为纯数值的数据列确定为系列值数据列,并将首个被确定出的系列值数据列所在位置之前的数据列作为类别数据列;
本步骤中,纯数值的列是指,本列中除了单元格标题内容,其他单元格内容均为数字类型。由于系列值数据列的单元格内容除标题外为纯数值,因此,在确定表格数据的各列是否为系列值数据列与类别数据列,可以通过遍历各列的单元格内容的类型以确定。其实现过程如下:遍历表格数据的各列,当遍历到每一列时,若该列的单元格内容除标题外包含非数字内容,则继续遍历下一列,若该列的单元格内容除标题外均包含数值类型的内容,确定该列为纯数值的列,并将该列作为系列值数据列;并且,将第一个系列值数据列之前的列均作为类别数据列。
S32、当所述首个被确定出的系列值数据列所在位置之前无数据列时,在所述首个被确定出的系列值数据列所在位置之前补充至少一列数据列作为类别数据列;所补充的列数据列中单元格的内容包括对所确定的系列值数据列的单元格的内容的标识;
由于存在仅仅具有纯数值的列的表格数据,此时,第一个系列值数据列为表格数据的第一列,因此,为了使得表格数据能够被转换为图表,可以在未确定出类别数据列的情况下,补充一列,作为类别数据列,该补充的一列中的单元格的内容用于对系列值数据列的单元格的内容进行标识。示例性的,所述补充的一列可以是一种从一开始的递增列,以对系列值数据列的单元格的内容进行标识。
在一个示例性实施例中,在未确定出类别数据列,同时表格的列数为两列的情况下,基于以上方式,使得纯数值的列也可作为类别数据列,使得推荐结果更加丰富。
或者,S31’、当所述表格数据的列数为两列时,将第一列数据列确定为类别数据列,并将第二列数据列确定为系列值数据列。
此外,为了快速确定系列值数据列和类别数据列,可以根据表格列数选择确定方式,针对不同列数,根据不同的确定方式确定系列值数据列和类别数据列。基于上述描述,在另一种具体的实施例中:
在一个示例性实施例中,若表格数据的列数为两列,将第一列确定为类别数据列,并将第二列确定为系列值数据列;
在一个示例性实施例中,若表格数据的列数大于两列,遍历表格数据的各列,当遍历到每一列时,如果该列为纯数值的列,将该列确定为系列值数据列,并将所确定出的第一个系列值数据列之前的各列均作为类别数据列。
此外,考虑到表格数据可以存在多列也可以仅仅存在一列,或者,即便存在多列也未查找到类别数据列的情况,为了适用于各种表格数据,若表格数据的列数大于两列但未确定出类别数据列,或者,表格数据的列为一列,则补充一列,作为类别数据列,所补充的一列中单元格的内容用于对系列值数据列的单元格的内容进行标识。
在一个示例性实施例中,表格处理客户端首先对表格数据进行列数的判断,根据不同的列数选择不同的列类型确定方式,若表格数据为两列,则确定第一列为类别数据列,第二列为系列值数据列;若表格数据大于两列,则遍历每一列,确定纯数值的列为系列值数据列,该列之前的各列作为类别数据列;此外,当表格数据仅为一列系列值数据列时,表格处理客户端为该表格补充一列作为类别数据列,当表格数据大于两列并未确定出类别数据列时,补充一列作为类别数据列。
在一个示例性实施例中,预定的第一特征值包括:数据类型、最长单元格字符个数、最长包含中文或英文的单元格字符个数、非空单元格的个数、仅数字且比整列平均值大的单元格个数、仅数字且比整列平均值的一半小的单元格个数。
在一个示例性实施例中,预定的第二特征值包括:数据类型、最长单元格字符个数、整列仅数字且相加是否为特定值、整列仅数字且是否为递减序列、整列仅数字且是否为递增序列。
其中,数据类型、最长字符长度、最长字符长度的单元格内中文/英文的字符长度、内容不为空的单元格个数,为表格处理客户端遍历整列的单元格内容而确定的;
其中预定的第一特征值中仅数字且比整列平均值大的单元格个数的特征值的确定过程为:表格处理客户端遍历整列单元格内容,判断整列单元格内容是否包含非数字内容;若包含非数字内容,则结果为0;若不包含非数字内容,则计算整列单元格内容的平均值,并根据每个单元格内容计算比该平均值大的单元格个数,将所计算得到的个数作为结果;
其中,预定的第一特征值中仅数字且比整列平均值的一半小的单元格个数的特征值的确定过程为:表格处理客户端遍历整列单元格内容,判断整列单元格内容是否包含非数字内容;若包含非数字内容,则结果为0;若不包含非数字内容,则计算整列单元格内容的平均值的一半,并根据每个单元格内容计算比该平均值的一半小的单元格个数,将所计算得到的个数作为结果;
其中,在整列数据类型为数字类型的情况下,是否整列数据之和为特定值、是否整列数据组成的列为递增序列、是否整列数据组成的列为递减序列为表格处理客户端遍历整列单元格内容,并确定出整列单元格内容全为数字内容的情况下,计算整列单元格之和是否为特定值、整列单元格内容组成的列是否为递增序列、整列单元格内容组成的列是否为递减序列。
示例性的,数据类型可以为文本、数值、日期、时间等等;而特定值可以为1,10,100,1000等,具体值可以根据实际情况设定。
S1043、针对每一所述类别数据列,基于该类别数据列的所述第一预定的第一特征值和每一所述系列值数据列的第二预定特征值,确定以该类别数据列和每一所述系列值数据列生成图表时,对于每个预定图表类型的推荐结果;
其中,图表推荐信息用于表示针对每一类别数据列,以该类别数据列和每个系列值数据列生成图表时,对于每个图表类型的推荐结果。一般一个类别列和一个系列值列。但如果这里有多个类别列,则可以将每个类别列和一个系列值列进行图表类型推荐,在多个结果中按需要选区一个或者多个绘制成数据透视图进行展示,供用户选择。
在一个具体的实施例中,图表推荐信息可以以弹窗,表格,提示框,可选选项的功能入口等形式展示。
另外,所确定的对于每个图表类型的推荐结果的具体展示形式存在多种。示例性的,推荐结果的具体展示形式可以是表征推荐程度的百分数,表征推荐程度的小数,推荐/不推荐的结果内容,最推荐/较推荐/不推荐的结果内容。等形式展示。
针对每一类别数据列,将该类别数据列预定的第一特征值和每个系列值数据列第二特征值作为输入数据,输入至预先训练完成的随机森林模型,得到以该类别数据列和各个系列值数据列生成数据透视图时,对于各个图表类型的推荐结果;
其中,随机森林模型为基于样本类别数据列的预定的第一特征值和各个样本系列值数据列的预定的第二预定的第一特征值,以及样本类别对应的标注信息,所训练的模型,样本类别数据列对应的标注信息包括:以样本类别数据列和各个系列值数据列生成数据透视图表时,对于图表类型的推荐结果。
S1044、基于所确定的推荐结果,生成所述表格数据的图表。
示例性的,对于各个图表类型的推荐结果可以为:将该类别数据列预定的第一特征值转换为向量数据,以及将系列值数据列预定的第二特征值转换为向量数据,并将所转换得到的向量数据进行向量拼接,得到拼接向量,进而,将拼接向量输入至第五随机森林模型中,得到以该类别数据列和各个系列值数据列生成图表时,对于各个图表类型的推荐结果。
可以理解的是,第五随机森林模型的数量可以为一个,是针对各个图表类型所训练的模型;当然,该第五随机森林模型的数量可以为多个,此时,每一随机森林模型为针对一个图表类型所训练的。示例性的,假设各个图表类型包括:折线图、柱形图、散点图、饼图,那么,如果每一第五随机森林模型为针对一个图表类型所训练,那么,此时,随机森林模型包括:折线图模型,柱形图模型,散点图模型,饼图模型。
针对为每一图表类型训练的一个模型而言,示例性的,确定推荐结果的过程可以如下:确定第一列类别数据列的预定的第一特征值与第一列系列值数据列的预定的第二特征值;将该第一列类别数据列的预定的第一特征值与第一列系列值数据列的预定的第二特征值输入到各个分类模型中;从各个分类模型中输出以第一列类别数据列和第二列系列值数据列生成图表时,针对各个分类模型的推荐分数;将第一列类别数据列的预定的第一特征值变更为第二列类别数据列的预定的第一特征值,执行以上步骤,直到确定完所有的类别数据列的预定的第一特征值。
可以理解的是,上述的通过第五随机森林模型来确定推荐结果的实现方式仅仅是一种示例。例如:在具体应用中,还可以通过计算预定的第一特征值与预定的第一特征值的匹配度的方式,来确定推荐结果。
另外,在具体应用中,对于一个表格数据而言,并不是所有图表类型均适用于该表格数据。为了进一步提升推荐结果的有效性,并减少针对不必要的图表类型的推荐结果的计算,所述针对每一所述类别数据列,基于该类别数据列的预定的第一特征值和系列值数据列预定的第二特征值,确定以该类别数据列和各个所述系列值数据列生成图表时,对于各个图表类型的推荐结果之前,所述方法还包括:
确定各个系列值数据列的数量、系列值数据列中单元格的数量和/或各个类别数据列是否为纯数值类型的列的判断结果;
基于各个系列值数据列的数量、系列值数据列中单元格数量和/或各个类别数据列是否为纯数值类型的列判断结果,确定关于图表的各个可生成类型;
在一个具体的实施例中,系列值数据列的单元格内容用于绘制图表的图像区域,类别数据列的单元格内容用于绘制图表的标签区域。而针对各个图表类型,不同类型的图表的图像区域不相同,标签区域也不相同,因此各个类型的图表对生成该类型图表的系列值数据列和类别数据列的要求不同。实际中,系列值数据列的数量决定可生成的图表类型是否包含饼图,系列值数据列中单元格数量影响生成出的饼图的展示效果,类别数据列是否为纯数值类型的列决定可生成的图表类型是否包含散点图。具体的,当系列值数据列的数量大于等于二,由于饼图的图像区域为根据一列系列值数据列进行生成的,系列值数据列数过多导致无法生成饼图;当系列值数据列为一列且列中单元格的数量过多,导致饼图的图像被切割为过多的小块,生成出的饼图展示效果不佳;当类别数据列不为纯数值列,由于散点图的标签区域是基于纯数值的类别数据列生成的,类别数据列不为纯数值的列导致无法生成出散点图。
示例性的,针对同时确定出各个系列值数据列的数量、系列值数据列中单元格数量以及各个类别数据列是否为纯数值类型的列判断结果的情况而言,基于各个系列值数据列的数量、系列值数据列中单元格数量和/或各个类别数据列是否为纯数值类型的列判断结果,确定关于图表的各个可生成类型,可以包括:
若系列值数据列满足第一预定条件但类别数据列不满足第二预定条件,则可生成的图表类型为除饼图以外的图表类型;
若系列值数据列不满足第一预定条件但类别数据列满足第二预定条件,则可生成的图表类型为除散点图以外的图表类型;
若系列值数据列满足第一预定条件且类别数据列满足第二预定条件,则可生成的图表类型为除饼图和散点图以外的图表类型;
其中,第一预定条件为:列数量大于等于二,或,系列值数据列为一列但单元格数量大于预定阈值;第二预定条件为:各个类别数据列包括不为纯数值的列。
如图2所示,本申请实施例一表格数据列的列表包括A,B,C,D,E,共5列,每列的标题分别为“年级”、“姓名”、“托管方式”、“天数”、“老师天数”。用户期望把“托管方式”和“老师天数”进行求和。
如图3所示,本申请生成数据透视表一种实施例,把“托管方式”和“老师天数”进行求和的操作方法。首先选中当前表格区域,点击插入,数据透视表,再在右上角把“托管方式”拖拽到右下角“行”,把“老师天数”拖拽到右下角的“值”,得到数据透视表后再进行数据分析。
本申请生成数据透视表另一种实施例,采用本申请生成数据透视图的方法,系统自动获取表格的预订的第三特征值,本实施例中为11个第三特征值。
如表1所示,以第一列为例:
第一列的预定的第三特征值1:整个数据列列数值为5列;
第一列的预定的第三特征值2:索引值为0;
第一列的预定的第三特征值3:整列含有的类型为322;
第一列的预定的第三特征值4:去除重复单元格后的单元格个数为0个;
第一列的预定的第三特征值5:重复单元格内容出现次数的方差为0个;
第一列的预定的第三特征值6:单元格字符长度最大值为5;
第一列的预定的第三特征值7:单元格字符长度的方差为0;
第一列的预定的第三特征值8:自身及自身以左的各列含数字的列数0例;
第一列的预定的第三特征值9:自身及自身以左的各列含中文、英文、日期的列数0例;
第一列的预定的第三特征值10:自身及自身以右的各列含数字的列数2例;
第一列的预定的第三特征值11:自身及自身以右的各列含中文、英文、日期的列数为2例。
将上述11个特征值输入第一随机森林模型进行分析计算,得到第一列的计算结果预测行字段分数为0.1。本实施例阈值范围为分数介于0-1之间,当数据列的计算分数大于0.6时,可以根据该数据生成作为数据透视表的行。第一列的预测行字段分数为0.1小于0.6,故不能作为数据透视表的行。以此类推,预测行字段分数大于0.6且在0-1之间的是主题名称为“托管方式”的列,最终通过C列“托管方式”自动生成数据透视表的行。
表1
列标题 年级 姓名 托管方式 天数 老师天数
特征值1 5 5 5 5 5
特征值2 0 1 2 3 4
特征值3 322 320 256 64 64
特征值4 0 25 5 8 8
特征值5 0 0.366606056 6.493073232 3.471251471 3.699452718
特征值6 5 3 5 2 2
特征值7 0 0.304543478 1.283759343 0.405080694 0.405080694
特征值8 0 0 0 1 2
特征值9 0 1 2 2 2
特征值10 2 2 2 2 1
特征值11 2 2 1 0 0
预测行字段分数 0.1 0.0 0.8 0.0 0.0
采用本申请生成数据透视图的方法,系统自动获取表格的第二预定的特征值,本实施例中为10个特征值。如表2所示,以第一列为例:
第一列的预定的第四特征值1:标题提取关键字为0;
第一列的预定的第四特征值2:整个数据列列数为5例;
第一列的预定的第四特征值3:仅数字的单元格个数为0个;
第一列的预定的第四特征值4:单元格整数数字字符数长度的方差为0;
第一列的预定的第四特征值5:自身及自身以左的各列含数字的列数为0例;
第一列的预定的第四特征值6:自身及自身以左的各列仅含数字的列数为0例;
第一列的预定的第四特征值7:自身及自身以左的各列含中文、英文、日期的列数0例;
第一列的预定的第四特征值8:自身及自身以右的各列含数字的列数为2例;
第一列的预定的第四特征值9:自身及自身以右的各列仅含数字的列数为2例;
第一列的预定的第四特征值10:自身及自身以右的各列含中文、英文、日期的列数为0例。
将上述10个特征值输入第二随机森林模型进行分析计算,得到第一列计算结果预测行字段分数为0.0。本实施例阈值范围为分数介于0-1之间,当分数大于0.65的数据列,可生成数据透视表的值。第一列的预测行字段分数为0.0小于0.65,故不能生成数据透视表的值。以此类推,预测行字段分数大于0.65且在0-1之间的是主题名称为“老师天数”的数据列,最终推荐E列“老师天数”生成数据透视表的值。
表2
列标题 年级 姓名 托管方式 天数 老师天数
特征值1 0 0 0 0 0
特征值1 5 5 5 5 5
特征值3 0 0 0 25 25
特征值4 0 0 0 0.405080694 0.405080694
特征值5 0 0 0 1 2
特征值6 0 1 2 2 2
特征值7 0 0 0 0 0
特征值8 2 2 2 2 1
特征值9 2 2 1 0 0
特征值10 0 0 0 0 0
预测行字段分数 0.0 0.0 0.0 0.3 1.0
如图7所示,本申请实施例二表格数据列的列表包括A,B,C,D,E,F,共6列,每列的标题分别为“站点名称”、“物资名称”、“单位、“设计数量”、“施工用量”、“理核实数量”。
系统自动获取表格的至少一个预定的第三特征值,本实施例中为11个特征值。如表3所示,以第一列为例:
第一列预定的第三特征值1:数据列总列数值为6列;
第一列预定的第三特征值2:索引值为0;
第一列预定的第三特征值3:整列含有的类型为448;
第一列预定的第三特征值4:去除重复单元格后的单元格个数为0;
第一列预定的第三特征值5:重复单元格内容出现次数的方差为0;
第一列预定的第三特征值6:单元格字符长度最大值为11;
第一列预定的第三特征值7:单元格字符长度的方的0;
第一列预定的第三特征值8:自身及自身以左的各列含数字的列数0例;
第一列预定的第三特征值9:自身及自身以左的各列含中文、英文、日期的列数0例;
第一列预定的第三特征值10:自身及自身以右的各列含数字的列数3例;
第一列预定的第三特征值11:自身及自身以右的各列含中文、英文、日期的列数为2例。
依次将上述特征值输入第一随机森林模型进行分析计算,得到第一列计算结果预测行字段分数为0.0。本实施例阈值范围为分数介于0-1之间,当数据列的计算分数大于0.6时,可以根据该数据生成作为数据透视表的行。第一列的预测行字段分数为0.0小于0.6,故第一列不能作为数据透视表的行。以此类推,预测行字段分数大于0.6且在0-1之间的是主题名称为“物资名称”的列,最终通过B列“物资名称”自动生成数据透视表的行。
表3
系统自动获取表格的至少一个预定的第二特征值,本实施例中为10个特征值。如表4所示,以第一列为例:
第一列预定的第四特征值1:标题提取关键字为0例;
第一列预定的第四特征值2:整个数据列列数为6例;
第一列预定的第四特征值3:仅数字的单元格个数为0个;
第一列预定的第四特征值4:单元格整数数字字符数长度的方差为0.330718914;
第一列预定的第四特征值5:自身及自身以左的各列含数字的列数为0例;
第一列预定的第四特征值6:自身及自身以左的各列含数字的列数为0例;
第一列预定的第四特征值7:自身及自身以左的各列含中文、英文、日期的列数为0例;
第一列预定的第四特征值8:自身及自身以右的各列含数字的列数为3例;
第一列预定的第四特征值9:自身及自身以右的各列仅含数字的列数为2例;
第一列预定的第四特征值10:自身及自身以右的各列含中文、英文、日期的列数为0例。
将上述10个特征值输入第二随机森林模型进行分析计算,得到计算结果预测行字段分数为0.0。本实施例阈值范围为分数介于0-1之间,当分数大于0.65数据列,可生成数据透视表的值。第一列的预测行字段分数为0.0小于0.65,故不能作为数据透视表的值。以此类推,预测行字段分数大于0.65且在0-1之间的是主题名称为“设计数量”,“施工用量”、“监理核实数量”的数据列,最终推荐D、E、F列“设计数量”,“施工用量”、“监理核实数量”生成数据透视表的值。
表4
实施例一,工作表如下,选区为A1,为单个单元格,所以最终推荐数据透视表的数据选区为[A1,E30]。识别表格方向为“按列”,行字段中获取大于0.6的列,值字段中获取大于0.65的列;将行所在列及值所在列进行排列组合,得到2个数据透视表,如表c:
[[[托管方式,老师天数],0.9,求和],
[[托管方式],0.8,计数]]。
再遍历每个数据透视表的列表,根据表格结果,分析插入图表类型为饼图,最终推荐数据透视图的图表结果如5图和图6所示。
表c
列标题 年级 姓名 托管方式 天数 老师天数
行字段分数 0.1 0.0 0.8 0.0 0.0
值字段分数 0.0 0.0 0.0 0.3 1.0
实施例二中,工作表如下,选区为A1,为单个单元格,所以最终推荐数据透视表的数据选区为[A1,F16]。识别表格方向为“按列”;第1行为“行标题”,第2-16行为“表格内容”,所以当前表格结构为“行标题+表格内容”。获取表格数据列的列表以及每列的标题,推荐值的列和分数如下表d所示,行字段中获取大于0.6的列,值字段中获取大于0.65的列,进行排列组合,得到:
[[[物资名称,设计数量],1.0,求和];
[[物资名称,施工用量],1.0,求和];
[[物资名称,监理核实数量],1.0,求和];
[[物资名称],1.0,计数]];
组合得到4个数据透视表,遍历每个数据透视表的列表,根据表格结果,分析插入图表类型为柱形图,最终推荐数据透视图的图表结果如图8-11所示。
表d
本发明实施例一,对应图5的数据透视表,类别列[托管方式],系列值列[计数项:托管方式],对应推荐图表类型的特征值为[0,256,64,0,0,0,5,2,5,5,0],推荐分数为饼图1.0、柱形图0.12,故选择饼图。
本发明实施例一,对应图6的数据透视表,类别列[托管方式],系列值列[求和项:老师天数],对应推荐图表类型的特征值为[0,256,64,0,0,0,5,3,5,5,0],推荐分数为饼图0.9、柱形图0.01,故选择饼图。
本发明实施例二,对应图8的数据透视表,类别列[物资名称],系列值列[计数项:物资名称],对应推荐图表类型的特征值为[0,448,64,0,0,0,37,2,15,37,0],推荐分数为柱形图0.9,故选择柱形图。
本发明实施例二,对应图9的数据透视表,类别列[物资名称],系列值列[求和项:设计数量],对应推荐图表类型的特征值为[0,448,64,0,0,0,37,4,15,37,0],推荐分数为柱形图0.9,故选择柱形图。
本发明实施例二,对应图10的数据透视表,类别列[物资名称],系列值列[求和项:施工用量],对应推荐图表类型的特征值为[0,448,64,0,0,0,37,4,15,37,0],推荐分数为柱形图0.9,故选择柱形图。
本发明实施例二,对应图11的数据透视表,类别列[物资名称],系列值列[求和项:监理核实数量],对应推荐图表类型的特征值为[0,448,64,0,0,0,37,4,15,37,0],推荐分数为柱形图0.9,故选择柱形图。
如图16所示,本申请在表格软件中,根据一个工作表和单个选区,获取该工作表中所选区域的推荐数据图表结果的方法:
1)单个选区表示为columnCount*rowCount,如果columnCount等于1并且rowCount等于1,对一个单元格进行扩展,获取到上下左右均不为连续空白行列的区域,作为推荐数据透视表的表格数据;否则获取选中的区域的表格数据作为推荐数据透视表的表格数据。
2)根据选区获取推荐数据透视表的表格数据后,识别表格方向为“按行”或“按列”,如果为“按行”则不推荐数据透视表;如果“按列”则一行一行识别表格结构,分类为“行标题”、“表格内容”、“其他”,最后获取“行标题+表格结构”的表格,如果不是该类型的表格则不推荐数据透视表。
3)获取表格数据列的列表以及每列的标题,获得行的列和分数及值的列和分数。把行、值的列进行组合,获取分数的平均值(可做求和统计),与行的列分数(可做计数统计)一起排序后得到最终推荐结果。推荐数据透视表的组合列和分数。遍历推荐数据透视表的列的组合和类型,得到新的数据透视表。
遍历推荐数据透视表列表,从每个数据透视表获取表格内容,根据图表推荐算最后得到数据透视图的图表数据区域,图表类型、类别、系列、系列方向。`
如图17所示,本申请实施例一种生成数据透视图的装置,包括:
获取模块10,用于当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;
确定模块20,用于基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述系列值数据列预定的第一特征值和每一所述类别数据列的预定的第二特征值;
生成模块30,用于针对每一所述类别数据列,基于该类别数据列的预定的第一特征值和一个或者多个所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图。
一个示例性实施例,上述图表生成模块30,用于根据所获取的数据透视表,确定所述数据透视表用于生成所述图表的系列值数据列和类别数据列,是指:
生成模块30按照预定顺序遍历所述数据透视表的每个数据列,将为纯数值的数据列确定为系列值数据列,并将首个被确定出的系列值数据列所在位置之前的数据列作为类别数据列;当所述首个被确定出的系列值数据列所在位置之前无数据列时,在所述首个被确定出的系列值数据列所在位置之前补充至少一列数据列作为类别数据列;所补充的列数据列中单元格的内容包括对所确定的系列值数据列的单元格的内容的标识;或者,当所述表格数据的列数为两列时,将第一列数据列确定为类别数据列,并将第二列数据列确定为系列值数据列。
一个示例性实施例,上述预定的第一特征值包括:数据类型、最长单元格字符个数、最长包含中文或英文的单元格字符个数、非空单元格的个数、仅数字且比整列平均值大的单元格个数、仅数字且比整列平均值的一半小的单元格个数;
一个示例性实施例,上述预定的第二特征值包括:数据类型、最长单元格字符个数、整列仅数字且相加是否为特定值、整列仅数字且是否为递减序列、整列仅数字且是否为递增序列。
在一个示例性实施例中,获取模块10,获取根据当前表格中选中的表格数据生成的数据透视表,是指:
获取模块10获取当前表格中的表格数据,确定每个数据列的预定的第三特征值和预定的第四特征值;
获取模块10将获取的每个数据列的预定的第三特征值分别输入预先生成的第一随机森林模型,确定作为所生成的所述数据透视表的行的第一数据列;将获取的每个数据列的所述预定的第四特征值分别输入预先生成的第二随机森林模型,确定作为所生成的所述数据透视表的值的第二数据列;
获取模块10采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表。
在一个示例性实施例中,获取模块10采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表,是指:
获取模块10将所述第一数据列中内容相同的单元格内容进行合并,合并后将每个单元格的内容分别作为所述数据透视表的行标题;将当前表格中所述第二数据列中单元格的值,分别按照所述数据透视表的每个行标题进行求和,将得到的求和结果作为所述数据透视表中相应单元格的值。
在一个示例性实施例中,获取模块10获取当前表格中的表格数据,包括:获取模块10获取的用户在当前表格中选中的数据列,确定所获取的用户在表格中选中的数据列的区域大小为:m*n,其中m为行数,n为列数;
当获取的用户在表格中选中的数据列的行数等于1并且列数等于1时,对获取的用户在表格中选中的数据列的单元格进行扩展,获取上下左右均不为连续空白行列的区域,作为所述当前表格中选中的表格数据;
当获取的用户在表格中选中的数据列的行数大于1或者列数大于1时,将获取的用户在表格中选中的数据列作为所述当前表格中选中的表格数据。
在一个示例性实施例中,确定模块20,所基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,所述确定模用于确定所获取的表格数据的表格方向并获得预定方向的表格数据。
在一个示例性实施例中,确定模块20,确定所获取的表格数据的表格方向并获得预定方向的表格数据,是指:确定模块20获取所述表格数据的行数和列数,根据所获取的行数和列数确定截取的数据区域;根据所截取的数据区域,确定相似行的个数和相似列的个数;将所获取的表格数据的行数和列数,及确定的相似行数和相似列数输入预先生成的第三随机森林模型确定所述表格数据的表格方向;判断所述表格数据的表格方向是否为预定方向,当所述表格数据的表格方向不是预定方向时,将所述表格数据转换成预定方向的表格数据;当所述表格数据的表格方向为预定方向时,直接将所述表格数据作为所述预定方向的表格数据。
在一个示例性实施例中,确定模块20,确定所获取的表格数据的表格方向并获得预定方向的表格数据之后,和基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还用于:根据获得的预定方向的表格数据识别表格结构并获取表格内容。
在一个示例性实施例中,确定模块20,根据获得的预定方向的表格数据识别表格结构并获取表格内容,是指:
确定模块20获取所述预定方向的表格数据中的单元格内容的内容类型;根据所获取的内容类型确定相邻行的相似度,将相似度大于预定阈值的相邻行识别为相似行,合并识别出的相似行;获取将相似行进行合并后的表格数据中的行目录;遍历所述行目录获取预定的第五特征值并输入预先生成的第四随机森林模型以确定表格结构;所述表格结构包括表格内容,获取所述表格内容。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有至少一个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (9)

1.一种生成数据透视图的方法,其特征在于,所述方法包括:
当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;
基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述类别值数据列预定的第一特征值和每一所述系列值数据列的预定的第二特征值;
针对每一所述类别数据列分别进行如下操作:基于该类别数据列的预定的第一特征值和每一所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个一所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;
并基于所述推荐结果,生成数据透视图;
其中,所述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列,包括:
按照预定顺序遍历所述表格数据的每个数据列,将为纯数值的数据列确定为系列值数据列,并将首个被确定出的系列值数据列所在位置之前的数据列作为类别数据列;
当所述首个被确定出的系列值数据列所在位置之前无数据列时,在所述首个被确定出的系列值数据列所在位置之前补充至少一列数据列作为类别数据列;所补充的列数据列中单元格的内容包括对所确定的系列值数据列的单元格的内容的标识;或者,
当所述表格数据的列数为两列时,将第一列数据列确定为类别数据列,并将第二列数据列确定为系列值数据列。
2.根据权利要求1所述的方法,其特征在于,所述获取根据当前表格中选中的表格数据生成的数据透视表,包括:
获取当前表格中的表格数据,确定每个数据列的预定的第三特征值和预定的第四特征值;
将获取的每个数据列的预定的第三特征值分别输入预先生成的第一随机森林模型,确定作为所生成的所述数据透视表的行的第一数据列;将获取的每个数据列的所述预定的第四特征值分别输入预先生成的第二随机森林模型,确定作为所生成的所述数据透视表的值的第二数据列;
采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表。
3.根据权利要求2所述的方法,其特征在于,所述采用预定规则,根据所述第一数据列和第二数据列生成所述数据透视表,包括:
将所述第一数据列中内容相同的单元格内容进行合并,合并后将每个单元格的内容分别作为所述数据透视表的行标题;
将当前表格中所述第二数据列中单元格的值,分别按照所述数据透视表的每个行标题进行求和,将得到的求和结果作为所述数据透视表中相应单元格的值。
4.根据权利要求2所述的方法,其特征在于,所述获取当前表格中的表格数据,包括:
获取的用户在当前表格中选中的数据列,确定所获取的用户在表格中选中的数据列的区域大小为:m*n,其中m为行数,n为列数;
当获取的用户在表格中选中的数据列的行数等于1并且列数等于1时,对获取的用户在表格中选中的数据列的单元格进行扩展,获取上下左右均不为连续空白行列的区域,作为所述当前表格中选中的表格数据;
当获取的用户在表格中选中的数据列的行数大于1或者列数大于1时,将获取的用户在表格中选中的数据列作为所述当前表格中选中的表格数据。
5.根据权利要求1所述的方法,其特征在于,所述基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括:
确定所获取的表格数据的表格方向并获得预定方向的表格数据。
6.根据权利要求5所述的方法,其特征在于,所述确定所获取的表格数据的表格方向并获得预定方向的表格数据,包括:
获取所述表格数据的行数和列数,根据所获取的行数和列数确定截取的数据区域;
根据所截取的数据区域,确定相似行的个数和相似列的个数;
将所获取的表格数据的行数和列数,及确定的相似行数和相似列数输入预先生成的第三随机森林模型确定所述表格数据的表格方向;
判断所述表格数据的表格方向是否为预定方向,当所述表格数据的表格方向不是预定方向时,将所述表格数据转换成预定方向的表格数据;当所述表格数据的表格方向为预定方向时,直接将所述表格数据作为所述预定方向的表格数据。
7.根据权利要求6所述的方法,其特征在于,所述确定所获取的表格数据的表格方向并获得预定方向的表格数据之后,和基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列之前,还包括:
根据获得的预定方向的表格数据识别表格结构并获取表格内容。
8.根据权利要求7所述的方法,其特征在于,所述根据获得的预定方向的表格数据识别表格结构并获取表格内容,包括:
获取所述预定方向的表格数据中的单元格内容的内容类型;
根据所获取的内容类型确定相邻行的相似度,将相似度大于预定阈值的相邻行识别为相似行,合并识别出的相似行;
获取将相似行进行合并后的表格数据中的行目录;
遍历所述行目录获取预定的第五特征值并输入预先生成的第四随机森林模型以确定表格结构;所述表格结构包括表格内容,获取所述表格内容。
9.一种生成数据透视图的装置,其特征在于,包括:
获取模块,用于当接收到针对当前表格建立数据透视图的指令后,获取根据当前表格中选中的表格数据生成的数据透视表;所述数据透视表包括一个或者多个;
确定模块,用于基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列;所述系列值数据列和类别数据列分别包括一列或者多列;分别获取每一所述类别值数据列预定的第一特征值和每一所述系列值数据列的预定的第二特征值;
生成模块,用于针对每一所述类别数据列,基于该类别数据列的预定的第一特征值和一个或者多个所述系列值数据列的预定的第二特征值,确定以该类别数据列和一个或者多个所述系列值数据列生成数据透视图时,对于每个预定图表类型的推荐结果;并基于所述推荐结果,生成数据透视图;
其中,所述确定模块,用于按照如下方式基于所获取的数据透视表,确定所述数据透视表的系列值数据列和类别数据列:
按照预定顺序遍历所述表格数据的每个数据列,将为纯数值的数据列确定为系列值数据列,并将首个被确定出的系列值数据列所在位置之前的数据列作为类别数据列;
当所述首个被确定出的系列值数据列所在位置之前无数据列时,在所述首个被确定出的系列值数据列所在位置之前补充至少一列数据列作为类别数据列;所补充的列数据列中单元格的内容包括对所确定的系列值数据列的单元格的内容的标识;或者,
当所述表格数据的列数为两列时,将第一列数据列确定为类别数据列,并将第二列数据列确定为系列值数据列。
CN201911087808.7A 2019-11-08 2019-11-08 一种生成数据透视图的方法及装置 Active CN112784555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911087808.7A CN112784555B (zh) 2019-11-08 2019-11-08 一种生成数据透视图的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911087808.7A CN112784555B (zh) 2019-11-08 2019-11-08 一种生成数据透视图的方法及装置

Publications (2)

Publication Number Publication Date
CN112784555A CN112784555A (zh) 2021-05-11
CN112784555B true CN112784555B (zh) 2024-03-12

Family

ID=75748465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911087808.7A Active CN112784555B (zh) 2019-11-08 2019-11-08 一种生成数据透视图的方法及装置

Country Status (1)

Country Link
CN (1) CN112784555B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1077420A2 (en) * 1999-07-01 2001-02-21 Lucent Technologies Inc. Systems and methods for visualizing multi-dimensional data in spreadsheets and other data structures
CN102968436A (zh) * 2011-09-26 2013-03-13 微软公司 图表推荐
CN108733635A (zh) * 2017-04-24 2018-11-02 珠海金山办公软件有限公司 一种文本信息展示方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135233B2 (en) * 2011-10-13 2015-09-15 Microsoft Technology Licensing, Llc Suggesting alternate data mappings for charts
US20140019842A1 (en) * 2012-07-11 2014-01-16 Bank Of America Corporation Dynamic Pivot Table Creation and Modification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1077420A2 (en) * 1999-07-01 2001-02-21 Lucent Technologies Inc. Systems and methods for visualizing multi-dimensional data in spreadsheets and other data structures
CN102968436A (zh) * 2011-09-26 2013-03-13 微软公司 图表推荐
CN108733635A (zh) * 2017-04-24 2018-11-02 珠海金山办公软件有限公司 一种文本信息展示方法及装置

Also Published As

Publication number Publication date
CN112784555A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN108509465B (zh) 一种视频数据的推荐方法、装置和服务器
CN108320171B (zh) 热销商品预测方法、系统及装置
US7970767B2 (en) Extraction of attributes and values from natural language documents
US7996440B2 (en) Extraction of attributes and values from natural language documents
CN108269125B (zh) 评论信息质量评估方法及系统、评论信息处理方法及系统
CN102792332A (zh) 图像管理装置、图像管理方法、程序、记录媒体及集成电路
CN112418653A (zh) 一种基于机器学习算法的携号转网潜客识别系统及方法
US20020004790A1 (en) Questionnaire analysis system
CN103699521A (zh) 文本分析方法及装置
CN112784549B (zh) 一种生成图表的方法、装置、及存储介质
Schetgen et al. Predicting donation behavior: Acquisition modeling in the nonprofit sector using Facebook data
CN102436512B (zh) 一种基于偏好度的网页文本内容管控方法
CN110704510A (zh) 一种结合用户画像的题目推荐方法及系统
CN113761334A (zh) 一种可视化推荐方法、装置、设备和存储介质
CN114119136A (zh) 一种产品推荐方法、装置、电子设备和介质
CN109992723B (zh) 一种基于社交网络的用户兴趣标签构建方法及相关设备
CN113642320A (zh) 文档目录结构的提取方法、装置、设备和介质
CN117668373B (zh) 一种级联标签推荐方法、装置、电子设备及存储介质
KR102185733B1 (ko) 프로필 자동생성서버 및 방법
Brusco et al. Integrating linear discriminant analysis, polynomial basis expansion, and genetic search for two-group classification
CN106204053A (zh) 信息类目错放识别方法和装置
CN112784555B (zh) 一种生成数据透视图的方法及装置
CN112487306A (zh) 基于知识图谱的自动化事件标记与分类方法
CN113159738A (zh) 业务项目处理方法、装置、电子设备及存储介质
Hosseini et al. Social media target marketing: Use of social networks data to target marketing

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