一种基于统计和桩定位视觉的快速检测和定位方法

文档序号:26952561发布日期:2021-10-16 02:17阅读:96来源:国知局
一种基于统计和桩定位视觉的快速检测和定位方法

1.本发明涉及计算机视觉,自然语言处理和网页爬虫技术领域,特别涉及一种基于统计和桩定位视觉的快速检测和定位方法。


背景技术:

2.近年来,随着计算机技术和爬虫信息采集方法迅猛发展,推动了数据驱动的深度学习的发展,催生了大量数据积累的需求。至此,如何从海量的网络数据中快速获取有效数据成为一个关键的问题。使用网络爬虫可以针对特定网页,手动设计特定的规则,从而抓取万维网中的数据。
3.然而,不同的网站具有不同的页面结构(即网页的dom

tree各不相同)。使用同一套固定设计的爬虫规则无法采集不同来源的网站的信息。显然,针对每一个网站设计一个特定的数据采集规则是行不通的。同时,针对一个具有公告列表的网页,页面本身存在大量无用的链接,直接爬取页面所有链接需要消耗大量的资源,会导致元素采集质量太低。因此,如何针对来源不同,结构不同的具有公告列表的网站,快速定位到网页中列表的元素,从而筛选出有用信息是一个关键的问题。


技术实现要素:

4.发明目的:本设计目标在于快速定位多个结构不同的网页的列表元素的位置,从而快速采集出元素的信息。针对多个结构不同,来源不同的网站,本发明以计算机视觉作为出发点,在网页中对网站中的列表进行目标检测。本发明的关键操作为:在网页中建立网页页面视觉坐标系,统计词频,抽取关键词作为桩标志并在每个页面中打下标志,,根据桩标志和有效横纵坐标对公告列表进行目标检测,快速定位网页中公告列表的位置,从而加快网页爬取速度,大大提升了信息抓取的质量,避免爬取大量的无效链接的资源消耗。
5.为了解决上述技术问题,本发明公开了一种针对结构,不同网页的网页列表快速检测和元素定位的方法,该方法借鉴了目标检测的思想,采用了“桩”标志的思路,根据word2vec抽取关键词作为“桩”,对列表进行目标检测,从而快速定位列表元素。本方法可以在多个不同结构的网站成功检测公告列表,具有良好的泛化能力。方法包括以下步骤:
6.步骤1,统计网站库中所有网站的词频,抽取关键词,分析列表网站可以作为桩标志的关键词(实验结果为“下一页”,“下页”等);
7.步骤2,从网站库获取一条网址,建立视觉坐标系,并采集网页内容;
8.步骤3,探测网页内“下一页”等关键词元素的坐标,作为“桩”标志;
9.步骤3,抓取页面内所有元素的坐标,对所有元素纵坐标进行统计分析,获得元素坐标的中位数,并且以中位数为中心上下探查,得到有效纵坐标区域;
10.步骤5,根据有效纵坐标范围筛选页面中处于有效纵坐标区域的元素,得到“靶元素”;
11.步骤6,对“靶元素”的横坐标进行统计分析,并且按一定间隔划分区间;
12.步骤7,选出小于并且最接近“桩”标志的横坐标区间,横坐标落在该区间内的为有效横坐标;
13.步骤8,根据有效横纵坐标的区间,结合桩标志,对列表实现目标检测,从而快速定位列表的元素,加快信息采集速度。
14.本发明针对不同的公告网站,使用上述8个步骤,可以快速检测到公告列表目标的位置和定位到列表元素的位置,从而实现快速筛选并采集公告元素。
15.步骤1包括:使用自然语言处理中的word2vec词聚类算法对网址库中的所有网站做词频统计,抽取文本关键词,根据文本关键词分析所有具有列表的网站的特点,选择能够作为桩标志的关键词,实验显示关键词可以为“下一页”,“下页”等词。
16.步骤2中,从网址库中获取网页网址,建立视觉坐标系o,视觉坐标系o体为:以页面左上角为原点,横向即为横轴,纵向即为纵轴,分别记横轴和纵轴为x和y。
17.步骤3中,在视觉坐标系o中,获取步骤1得到的关键词元素的坐标,作为页面的桩标志(x
z
,y
z
),其中x
z
,y
z
分别表示桩标志的横坐标、纵坐标。
18.步骤4中,使用网络爬虫抓取页面中所有元素的坐标(x,y),其中x,y分别表示网页元素的横坐标和纵坐标;根据元素的坐标(x,y),计算页面视觉坐标系中的元素纵坐标的中位数y
mid
,并且取中位数上下10个像素,得到有效纵坐标范围[y
mid

p,y
mid
+p],其中p是指扩宽的像素个数。
[0019]
步骤5中,根据有效纵坐标范围[y
mid

p,y
mid
+p],筛选页面元素处于该范围的元素,记为“靶元素”。
[0020]
步骤6中,统计获取“靶元素”的横坐标[x1,x2,

,x
n
],n表示筛选后元素的数量,并且按一定间隔(比如每5个像素)划分横坐标区间。
[0021]
步骤7包括:根据步骤3得到桩坐标(x
z
,y
z
)进行有效横坐标的筛选。筛选的策略为:目标元素的起始坐标必定位于“桩”标志的左边,并且最接近于它。也就是,需要筛选出小于桩标志并且最接近桩标志的横坐标,即为有效横坐标x
valid

[0022]
x
valid
=max[(x
i
<x
z
),i=1,2,

,n]。
[0023]
其中,x
i
表示表示第i个页面元素的坐标。
[0024]
步骤8中,根据有效横坐标x
valid
所在的坐标区间,获得列表第一个元素的起始坐标(x1,y1)。借鉴计算机视觉任务目标检测的思想,结合桩坐标(x
t
,y
t
)对列表做目标检测,从而快速定位列表中元素的位置,方便进行信息采集和统计等操作。目标检测框设计为:检测框左上角的坐标为(x1,y1),右下角坐标为(2x
t

x1,y
t
)。
[0025]
有益效果:本发明将目标检测应用到网页定位中,不需要训练神经网络模型,就可以定位到公告列表,从而方便信息采集。本方法的显著优点是提高了爬虫的泛化能力,可以爬取多个具有不同页面结构的网页的公告信息。对一个网页而言,页面存在大量无用的链接,本发明可以对公告列表进行目标检测,并且快速定位到列表元素的位置,从而进行公告信息采集。使用本发明,可以快速检测并定位到来源不同,结构不同的网页的列表元素的位置,提高网页数据采集速度,并且大大提升了信息采集的质量,避免爬取大量的无效链接的资源消耗。
附图说明
[0026]
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0027]
图1为本发明快速定位公告列表的流程图。
[0028]
图2a为目标检测任务基本示意图。
[0029]
图2b为“桩”标志示意图。
[0030]
图3a为公告列表位左栏和上栏都存在无效链接的网页结构。
[0031]
图3b为公告列表右栏和上栏都存在无效链接的网页结构。
[0032]
图3c为公告列表左右两栏都没有无效链接的网页结构。
[0033]
图4为表示有效横纵坐标计算过程简单图示。
[0034]
图5表示实施例网站的示意图。
具体实施方式
[0035]
图1是本发明快速定位公告列表位置的流程图,包括8个步骤。
[0036]
在第一个步骤中,统计网站库中网页的词频,并使用词聚类算法抽取关键词,分析选择适合作为“桩标志”的关键词。本场景得到的是“下一页”,“下页”等关键词。
[0037]
在第二个步骤中,从网站库获取网址,对网页建立视觉坐标系o,并采集网页视觉信息等页面内容。
[0038]
在第三个步骤中,探测网页内下一页等类似关键词元素的坐标作为“桩”标志。“桩”标志的坐标设置为(x
z
,y
z
),桩标志取横坐标如图4中的比较长的竖线所示。
[0039]
在第四个步骤中,根据步骤2中的结果,采集页面内所有元素的坐标[x,y]。然后对所有元素纵坐标进行统计分析,获得其中位数y
mid
(如图4横实线所示),并且以其为中心上下探查p个像素(p取值为10),得到有效纵坐标区域[y
mid

p,y
mid
+p],如图4横虚线所示。
[0040]
这里使用统计学和设计学的思想。通过大量的实验和统计,结果显示在公告列表的网站中,所有页面元素的纵坐标中位数必然处于公告列表中。因此可以通过纵坐标中位数初步定位到列表位置。
[0041]
在第五个步骤中使用的方法,根据有效纵坐标区域,筛选页面中处于有效纵坐标区域的元素,即为“靶元素”,如图4中横虚线包围的元素。
[0042]
在第六个步骤中,统计获取“靶元素”的横坐标[x1,x2,

,x
n
],n表示筛选后元素的数量,并且将它们按每5个像素为间隔划分区间。
[0043]
在第七个步骤中,选出小于并且最接近“桩”标志的横坐标区间,横坐标落在该区间内的元素即为有效元素。具体的方法如下:
[0044]
步骤7

1,对于第i个元素的坐标x
i
,首先判断其是否小于“桩”标志的坐标x
z
。对于符合上述条件的坐标,加入候选集中;
[0045]
步骤7

2,对于候选集中的坐标,选择其中最大的坐标,即为有效横坐标x
valid

[0046]
因此,这一步骤的整体计算公式如下:
[0047]
x
valid
=max[(x
i
<x
z
),i=1,2,

,n]。
[0048]
在第八个步骤中,根据有效横纵坐标的区间,结合桩标志的标志的坐标(x
t
,y
t
)对列表做目标检测,从而快速定位列表中元素的位置。目标检测框设计为:检测框左上角坐标
为(x1,y1),右下角坐标为(2x
t

x1,y
t
)。图2是目标检测任务的基本示例,以及公告列表目标检测中“桩”标志的示例。
[0049]
图3a、图3b、图3c是本发明针对的公告列表网站的示例图中展示了三种不同结构的公告列表网站,基本上代表了各种公告列表网站的布局模式。可以看到,无论哪种模式,页面都存在一个“桩”标志(下一页或者下页按钮),列表元素的横坐标始终位于“桩”标志左侧并且最接近于“桩”的位置。
[0050]
图4展示了本发明设计中的重要关键点。其中,在获取网页内容之后,可以根据“下一页”,“下页”等关键词给网页打一个“桩”。对页面元素统计分析之后,计算出页面全部元素的纵坐标的中位数。然后以其为中心在上下各取一定范围,为有效纵坐标区域。在该纵坐标区域内,选择在“桩”左侧,并且距离“桩”最近的元素的横坐标,从而确定有效横坐标区域。
[0051]
实施例
[0052]
为了验证算法的有效性,在不同的网站上进行了实例验证。其中网站设计政府类招标网站,企业类网站以及其余类别网站,实验例证结果证明本设计可以非常快速且准确地检测和定位到公告列表。
[0053]
以招标采购导航网的招标公告页面(https://www.okcis.cn/bn/)为例,如图5。对于页面中列表的元素,按照以下步骤快速准确定位到列表的位置,从而实现元素的采集:
[0054]
1、从网站库统计公告网站的词频信息,使用word2vec词聚类方法抽取关键词,并分析得到“下一页”,“下页”等可以作为桩标志关键词。
[0055]
2、从网址库中获取招标采购导航网的网址,并且进入到招标公告页面,以页面左上角的位置作为原点建立视觉坐标系o,并且采集页面内容和元素。
[0056]
3、使用下一页”或者“下页”等关键词探查本网页中关键词元素的坐标,作为“桩”标志,“桩”标志的坐标设置为(x
z
,y
z
),见图5中的“下一页按钮”所在长实线。
[0057]
4、根据步骤2中的结果,采集页面内所有元素的坐标[x,y],包括列表中的每一项,右侧信息栏的链接等。并且对所有元素纵坐标进行统计分析,获得其中位数y
mid
(如图5横实线所示),并且以其为中心上下探查p个像素,得到有效纵坐标区域[y
mid

p,y
mid
+p](如图5横虚线范围所示)。
[0058]
5、根据步骤4得到的有效纵坐标区域,筛选页面中处于有效纵坐标区域的元素,记为“靶元素”。
[0059]
6、根据步骤5结果,统计获取“靶元素”的横坐标[x1,x2,

,x
n
],n表示筛选后元素的数量,并且将它们按每5个像素点为间隔划分区间。
[0060]
7、选出小于“桩”标志的横坐标并且最接近“桩”标志的横坐标区间,横坐标落在该区间内的元素即为有效元素,也就是在图5横虚线范围内的元素,位于“桩”标志(下一页)左边的,并且最接近它的横坐标。
[0061]
x
valid
=max[(x
i
<x
z
),i=1,2,

,n],
[0062]
如图5所示,箭头标志的位置即是得到的有效横坐标的位置。
[0063]
8.以有效横坐标x
valid
所在的区间作为探查列表第一个元素(x1,y1)。结合桩标志的标志的坐标(x
t
,y
t
)对列表做目标检测,从而快速定位列表中元素的位置。目标检测框设计为:检测框左上角坐标为(x1,y1),右下角坐标为(2x
t

x1,y
t
)。
[0064]
在多个结构不同,来源不同的网站上的进行了实验验证,结果表明,本发明在可以快速而准确地检测到列表位置,并且定位到列表中的元素,从而方便列表元素的采集。一方面,本发明在速度上得到极大的提升,同时避免了对其他大量无用连接的访问,大大减少了资源的消耗;另一面,本发明适用了大量不同结构的列表网站,不需要为特定网页设计固定规则,具有比较高的泛化性能。
[0065]
本发明启发于计算机目标检测任务(如图2)。在目标检测的任务是检测出图像中目标物体所在的位置。因此,深度学习模型往往是回归出目标物体的中心点(x,y)位置作为“桩”,再结合拟合的目标框的宽度w和高度h,从而框出目标物体,画出目标的边界框(bounding box)。
[0066]
针对多个结构不同的具有公告列表的网站,如何快速检测并定位到网站中列表的位置是本发明的主旨。受到上述目标检测任务中的启发,本发明对网页建立视觉上的坐标系o,创造性地使用网页元素的坐标(x,y)进行设计,还引入了目标检测任务中“桩”的思想,并针对本任务进行了适当的调整。使用词聚类算法分析出将公告列表网页中固有的“下一页”或“下页”等关键词,并以此作为“桩标志”。对于“桩”的设计,根据调研统计(如图3所示,是典型的具有公告列表的网页结构),“桩”始终位于公告列表下方,因此,可以作为后续坐标判断的依据。
[0067]
本发明提供了一种基于统计和桩定位视觉的快速检测和定位方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1