CN109828814B - 获取屏幕表单数据的方法 - Google Patents
获取屏幕表单数据的方法 Download PDFInfo
- Publication number
- CN109828814B CN109828814B CN201910020590.7A CN201910020590A CN109828814B CN 109828814 B CN109828814 B CN 109828814B CN 201910020590 A CN201910020590 A CN 201910020590A CN 109828814 B CN109828814 B CN 109828814B
- Authority
- CN
- China
- Prior art keywords
- data
- row
- display
- columns
- column
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种获取屏幕表单数据的方法,包括下列步骤:1)将用作钩子程序的显示代码注入到系统显示输出信息的API函数中,截取系统向屏幕输出的表单显示数据;2)整理所截取的数据,生成完整的块数据,将块数据组合成相应的行数据,依据行数据生成表单数据,依据行数据生成表单数据的方式包括:1)以表头字典与第一行匹配,初步确定列数以及每列的列属性;2)依据相邻行的相似性确定出基准行;3)依据基准行及初步确定的列数和列属性,精确计算表头所占的行数、列总数和每列代表的含义;4)将最新的表单显示数据填充到表格中,形成全量表单。本发明便于人们快速获取屏幕的相关数据,简化输入操作,提高准确率,节省时间。
Description
技术领域
本发明涉及一种获取屏幕表单数据的方法。
背景技术
随着软件技术的发展及大数据的发展,越来越多的人群及领域需要更广阔的数据来源,有时甚至是网络上的一段话,或者某软件中表格里的一段数据,都成为人们需要的信息。但是很多时候,想要拷贝表格中的数据时会发现该软件没有提供这种功能。现有通常做法是将软件进行截图,进行OCR图片识别,或者通过屏幕取词软件,但每次只能取一个字或者几个字。OCR方式导致识别的准确率难以保障,并且OCR识别后无法准确的复原原有的格式。屏幕取词也有很大的弊端,无法获取整段,或者跨表格单元的数据。这就导致了没法自动拷贝数据的问题,必须手工逐字敲写,不仅需要耗费大量的时间,也加大了出错概率。
发明内容
为了解决现有技术中的上述问题,本发明提出了一整套针对屏幕显示中任意表格数据的提取和智能化排版的方法,以便于人们快速获取屏幕的相关数据,简化输入操作,提高准确率,节省时间。
本发明的技术方案是:一种获取屏幕表单数据的方法,包括下列步骤:
1)将用作钩子程序的显示代码注入到系统显示输出信息的API函数中,截取系统向屏幕输出的表单显示数据,其中包括显示内容和相应的显示坐标;
2)整理所截取的数据,生成完整的块数据,生成数据块的主要依据是表格中的线,由于屏幕刷新可能导致线的绘制出现1-2个像素的偏差,所以线的确认需要多次校验,记第一次得到线的x坐标为x0,第一次的y坐标为y0。每次对应x坐标偏差计为△x,对y坐标的偏差计为△y,如果每次的偏差大于阈值3,则丢弃此次线数据。然后经过20次的刷新后,可以得到x的平均坐标,以及y的平均坐标,用每个相邻的x坐标相减得到每列的宽度,用每个相邻的y坐标相减得到每行的高度,这样既可计算出每个区域块的矩形区域坐标,如图2中②所示。
确定每个块的区域坐标后,每次再来的文本数据,既可按照其坐标±1,在各个区域进行批配,批配到区域后,则将该数据放在对应的行与列中。当每一行的数据都刷新完成,既可将块数据组合成相应的行数据,依据行数据生成表单数据。
依据行数据生成表单数据的方式优选包括:
1)以表头字典与第一行匹配,初步确定列数以及每列的列属性,所述表头字典包含若干列的属性,还可以包含相应列代表的含义;一般收银表单如图2中①所示,至少包含编码(条码、商品编号、货号等)、品名(商品名称、货品等)、数量、售价(单价、小计等)、单品打折(折扣等)、金额(总计、总计、总额等),预想定义足够多的字典,然后在行中找到字典中的4相以上即可推断出此行为标题行,然后在进行分词,通过截获到的表格线列,分出列的个数及词组个数,如有词组未在我们的字典出现,则添加进我们的字典中,如若无法通过机器进行区分字义,则会上报平台进行人工区分。
2)由于字典中预设每组关键词对应的基本语义,以及相应的相近词、同义词,这样依据表头获取的信息能够初步确定的列数和列属性,精确计算表头所占的行数、列总数和每列代表的含义;
3)为进一步保证数据的准确性,防止较大的刷新误差导致表单数据错位,从第一行开始,依次进行相邻行的相似性分析,例如从第二行开始,将每行与前一行进行相似性分析,直至获得基准行,当两行的相似性小于相似性阈值80时,需要重新刷新表格。相似性指的是,假如第一行的第二列我们获取的内容是商品行即文本属性,但是第二行的第二列确是数字属性,则此列的相似性较低,同理每列根据其列的属性,都进行相似性判定,只有相似性的平均值大于预定的分值,才能确保行数据的准确。通过多次的刷新计算,能够达到前四行的相似性均超过我们的阈值,即可确定基准行,通过基准行对后续的所有行分别校验,则最终确定数据的可用性。
4)将最新的表单显示数据按行填充到表格中,形成全量表单。
钩子程序将截取的表单显示数据可以发送至后台的数据整理程序,由数据整理程序整理并生成表单数据。
所述数据整理程序接收到表单显示数据后,优选先进行缓存,根据每次缓存的数据内容,先判断是否有位置重复的数据,如有位置重复的数据则根据标准位进行去重,基于去重后的数据进行后续的数据处理,生成块数据、行数据和表单数据。
可以通过强制刷新或自动刷新,获得刷新后的表单显示数据,依据刷新后的表单显示数据进行表单数据生成或相应的修改。
本发明的有益效果是:能够自动获取屏幕的任意表单数据及其他数据,实现智能化自动排版等数据后处理,不仅突破了软件对数据拷贝的限制,又避免了对表单数据进行OCR识别时容易出错的烦恼吗,大大增加了数据的来源可行性,大幅度减少了相关工作量,大幅度节省了时间。
附图说明
图1是本发明的流程示意图;
图2是本发明数据处理过程中的截屏图像。
具体实施方式
参见图1,人们肉眼所见到的显示器上的数据,都是由操作系统内部不断绘制刷新,最后呈现到显示器上的,本发明从操作系统绘制根源上获取,首先找到绘制数据的系统API,将呈现代码注入到相应的API中,将系统刷新的数据提取出来,并根据智能学习方法,将每行、每列的数据组合在一起,根据表单的变化实时检验调整,最后形成一个完整的表单数据。
具体包括获得数据和数据处理两大部分:
1)获取数据
通过钩子方式,将用作钩子程序的显示代码注入到系统显示输出信息的API函数中,每当系统向屏幕输出数据时,都会先经过显示代码,再显示到屏幕上,显示代码获得屏幕上的显示内容及相应的显示坐标,通过消息方式发送到后台数据处理模块进行数据整理。
2)数据整理
后台数据整理程序接收到发送过来的数据后,先缓存起来,根据每次缓存的内容,先判断是否有位置重复的数据,如果有位置重复,需要根据标准位进行去重及组合,生成一个完整的块数据。根据每个块数据及相应坐标生成行数据,通过多个行数据生成表单数据。
数据处理的难点不在于数据的组合,而是在于其他数据干扰。因为表单数据并不是一直增加,还有修改及删除操作,这些因素以及表格的宽高变化都会影响到最终数据的准确性,需要对每次的坐标位置进行判断,以便最终确定表中每个行高及列宽。
表中数据的修改及删除通常可能需要强制刷新才能准确知道。
通过上述所有信息,加上程序内部数据的学习及运算算法,最终生成完整的数据表。具体包括:
首先要确定表单的列数,并大致确定表单每一列的含义,此学习过程至少需要4行数据(当然行数越多,学习的结果越准确),因为一般第一行是表头,是对每一列的说明,程序内部有一个表头字典,尽可能多地记录可能出现的列含义,然后对第一行做匹配,以更精确地确定列数及每列的属性(文本、数字等)。
然后,获取第二行、第三行数据,进行相似性比较,如果相似性小于预设的相似性阈值,则有可能第二行是表头附加行(双行表头),此时再取第四行数据与第三行进行相似性比对,如果相似性如果仍小于相似性阈值,则继续比对,直到出现相似性相近的行(相似性大于或大于等于相似性阈值),此行则可代表基准行。
一般在获取4行数据后便能确认基准行。
获取到基准行及列属性信息后,再进行深度学习,更精确的计算出表头所占的行数、列总数以及每列代表的含义。
计算出表单表头行数及列数后,再刷新过来的数据就可以对应的填充到表格中,形成全量表单。
本发明公开的各优选和可选的技术手段,除特别说明外及一个优选或可选技术手段为另一技术手段的进一步限定外,均可以任意组合,形成若干不同的技术方案。
Claims (4)
1.一种获取屏幕表单数据的方法,包括下列步骤:
将用作钩子程序的显示代码注入到系统显示输出信息的API函数中,截取系统向屏幕输出的表单显示数据,其中包括显示内容和相应的显示坐标;
整理所截取的数据,生成完整的块数据,将块数据组合成相应的行数据,依据行数据生成表单数据,
依据行数据生成表单数据的方式包括:
以表头字典与第一行匹配,初步确定列数以及每列的列属性;
从第一行开始,依次进行相邻行的相似性分析,当两行的相似性小于相似性阈值时,获取下一行数据并进行新获取的行与其前一行的相似性分析,当新获取的行与其前一行的相似性大于或不小于相似性阈值时,以该新获取的行为基准行;
依据基准行及初步确定的列数和列属性,精确计算表头所占的行数、列总数和每列代表的含义;
将最新的表单显示数据填充到表格中,形成全量表单。
2.如权利要求1所述的方法,其特征在于钩子程序将截取的表单显示数据发送至后台的数据整理程序,由数据整理程序整理并生成表单数据。
3.如权利要求2所述的方法,其特征在于所述数据整理程序接收到表单显示数据后,先进行缓存,根据每次缓存的数据内容,先判断是否有位置重复的数据,如有位置重复的数据则根据标准位进行去重,基于去重后的数据进行后续的数据处理,生成块数据、行数据和表单数据。
4.如权利要求3所述的方法,其特征在于通过强制刷新或自动刷新,获得刷新后的表单显示数据,依据刷新后的表单显示数据进行表单数据生成或相应的修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020590.7A CN109828814B (zh) | 2019-01-09 | 2019-01-09 | 获取屏幕表单数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020590.7A CN109828814B (zh) | 2019-01-09 | 2019-01-09 | 获取屏幕表单数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828814A CN109828814A (zh) | 2019-05-31 |
CN109828814B true CN109828814B (zh) | 2021-10-19 |
Family
ID=66860180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910020590.7A Active CN109828814B (zh) | 2019-01-09 | 2019-01-09 | 获取屏幕表单数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828814B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731389A (zh) * | 2004-08-04 | 2006-02-08 | 华建电子有限责任公司 | 盲汉对照编辑排版系统及编辑排版方法 |
CN101930399A (zh) * | 2010-08-16 | 2010-12-29 | 于秀山 | 一种对软件测试进行记录的方法 |
CN102063560A (zh) * | 2010-12-03 | 2011-05-18 | 湖南科技大学 | 计算机机考中的自动分步计分方法及其系统 |
CN105512598A (zh) * | 2015-12-29 | 2016-04-20 | 暨南大学 | 一种qr码图像取样的自适应匹配识别方法 |
CN106855851A (zh) * | 2015-12-08 | 2017-06-16 | 中国移动通信集团公司 | 知识抽取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6373583B1 (en) * | 1998-11-16 | 2002-04-16 | Hewlett-Packard Company | Compound document page data compression |
-
2019
- 2019-01-09 CN CN201910020590.7A patent/CN109828814B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731389A (zh) * | 2004-08-04 | 2006-02-08 | 华建电子有限责任公司 | 盲汉对照编辑排版系统及编辑排版方法 |
CN101930399A (zh) * | 2010-08-16 | 2010-12-29 | 于秀山 | 一种对软件测试进行记录的方法 |
CN102063560A (zh) * | 2010-12-03 | 2011-05-18 | 湖南科技大学 | 计算机机考中的自动分步计分方法及其系统 |
CN106855851A (zh) * | 2015-12-08 | 2017-06-16 | 中国移动通信集团公司 | 知识抽取方法及装置 |
CN105512598A (zh) * | 2015-12-29 | 2016-04-20 | 暨南大学 | 一种qr码图像取样的自适应匹配识别方法 |
Non-Patent Citations (1)
Title |
---|
C# Hook钩子实例代码之截取键盘输入;如若;《https://www.cnblogs.com/rinack/p/4260315.html》;20150129;第1-9页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109828814A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12073621B2 (en) | Method and apparatus for detecting information insertion region, electronic device, and storage medium | |
CN112287914B (zh) | Ppt视频段提取方法、装置、设备及介质 | |
CN112287916B (zh) | 视频图文课件文本提取方法、装置、设备及介质 | |
CN111062259A (zh) | 表格识别方法和装置 | |
CN112883042A (zh) | 数据更新及展示方法、装置、电子设备及存储介质 | |
CN111666442B (zh) | 一种图像检索方法、装置及计算机设备 | |
CN111860377A (zh) | 基于人工智能的直播方法、装置、电子设备及存储介质 | |
CN113642584A (zh) | 文字识别方法、装置、设备、存储介质和智能词典笔 | |
CN114881698A (zh) | 广告合规审核方法、装置、电子设备及存储介质 | |
CN114138784A (zh) | 基于存储库的信息溯源方法、装置、电子设备及介质 | |
US20130322759A1 (en) | Method and device for identifying font | |
CN117371446B (zh) | 一种病历文本排版方法、系统、存储介质及电子设备 | |
CN114186532A (zh) | 一种审单处理方法及装置 | |
CN113627160A (zh) | 文本纠错方法、装置、电子设备及存储介质 | |
CN111309850B (zh) | 一种数据特征提取方法、装置、终端设备及介质 | |
CN109828814B (zh) | 获取屏幕表单数据的方法 | |
CN112084103B (zh) | 界面测试方法、装置、设备和介质 | |
CN116225956A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111400524A (zh) | 一种基于ai的可变尺度地质图文本矢量化方法及系统 | |
US20230023636A1 (en) | Methods and systems for preparing unstructured data for statistical analysis using electronic characters | |
CN112100993B (zh) | 表单构建方法、装置、存储介质及电子设备 | |
JP2000040085A (ja) | 日本語形態素解析処理の後処理方法および装置 | |
CN114385815A (zh) | 基于业务需求的新闻筛选方法、装置、设备及存储介质 | |
CN113761873A (zh) | Pdf解析方法、装置、电子设备及可存储介质 | |
CN112184465A (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 |