网址的分类方法、装置、计算机设备和存储介质与流程

文档序号:23652056发布日期:2021-01-15 13:48阅读:124来源:国知局
网址的分类方法、装置、计算机设备和存储介质与流程

本申请涉及网络技术领域,特别是涉及一种网址的分类方法、装置、计算机设备和存储介质。



背景技术:

为了不断优化web(worldwideweb,全球广域网,也称万维网)应用的速度和体验,一般会对用户的http(hypertexttransferprotocol,超文本传输协议)请求等进行收集和分析,从而更好地确定应用中存在的短板,进而有针对性地进行优化。

基于此,需要对url(uniformresourcelocator,统一资源定位器)等网址进行分类。传统技术中通过k-means算法(k均值聚类算法)等来实现网址的聚类。一般将网址转换为矩阵以进行相似度计算,根据相似度实现网址的聚类。

但是,如果网址数量巨大,传统技术在转换过程,会造成较大的性能损耗,导致网址分类效率低下。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高网址分类效率的网址的分类方法、装置、计算机设备和存储介质。

一种网址的分类方法,所述方法包括:

获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段;

获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树;

按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配;

当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

一种网址的分类装置,所述装置包括:

待分类网址获取模块,用于获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段;

结构树获取模块,用于获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树;

逐层匹配模块,用于按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配;

网址类别确定模块,用于当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段;

获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树;

按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配;

当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段;

获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树;

按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配;

当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

上述网址的分类方法、装置、计算机设备和存储介质,对待分类网址进行字段切分后得到对应第一节点关系的目标字段;获取目标聚类结构树;按第一节点关系将各个目标字段与目标聚类结构树中的各个节点进行逐层匹配;当各个目标字段与目标聚类结构树中从根节点到叶子节点的目标路径相匹配时,根据目标路径确定待分类网址的网址类别。上述技术方案能够直接基于预先构建的目标聚类结构树来对待分类网址进行分类,快速输出待分类网址的网址分类结果,有效保证网址分类的效率。

附图说明

图1为一个实施例中网址的分类方法的应用环境图;

图2为一个实施例中网址的分类方法的流程示意图;

图3为一个实施例中网址聚类的流程示意图;

图4为另一个实施例中网址聚类的流程示意图;

图5为再一个实施例中网址聚类的流程示意图;

图6为又一个实施例中网址聚类的流程示意图;

图7为一个实施例中服务器获取网址的流程示意图;

图8为又一个实施例中网址聚类的流程示意图;

图9为一个实施例中获取网址搜索信息的窗口示意图;

图10为一个实施例中网址响应状态分析结果的界面示意图;

图11为另一个实施例中网址响应状态分析结果的界面示意图;

图12为一个实施例中网址的分类装置的结构框图;

图13为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的网址的分类方法、装置、计算机设备和存储介质可以基于云技术实现。其中,云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

本申请的各个实施例可以进一步基于云计算实现。其中,云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。

作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。

本申请提供的网址的分类方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与服务器102进行通信。服务器102接收终端101发送的待分类网址,并基于预先构建的目标聚类结构树对该待分类网址进行分类,并输出待分类网址的网址类别。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,即内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

在一个实施例中,如图2所示,提供了一种网址的分类方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。该方法,包括以下步骤:

s201,获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段。

其中,网址也称网页地址,指的是因特网上网页的地址。在一个实施例中,网址可以指统一资源定位符(url,uniformresourcelocator,即,统一资源定位器、定位地址、url地址)。统一资源定位符是因特网上标准的资源的地址,如同在网络上的门牌。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址,现在它已经被万维网联盟编制为因特网标准rfc1738。

对于网址类别,将多个网址聚合在一起之后形成的字符串可以称为聚类网址,一个聚类网址可以作为一个网址类别。一个网址类别可以对应有至少一个与之匹配的网址。当需要对某一类别的网址进行分析时,可以通过网址类别查找出与之对应的匹配网址,对这些匹配网址进行响应性分析,这可以得到该类别的响应性分析结果。

其中,待分类网址可以指还未分类的网址。待分类网址可以为基于历史时间段内或者当前时刻下访问某一应用平台的请求所提取的网址。待分类网址的数量可以为一个或一个以上。当待分类网址为一个以上时,可以同步对这些待分类网址进行分类,一起输出这些待分类网址的分类结果。其中,应用平台可以指能够实现特定应用功能的平台,例如:视频播放平台。

在一个实施例中,待分类网址的结构可以如下:

[协议类型]://[服务器地址]:[端口号]/[资源层级unix文件路径][文件名]?[查询]#[片段id]

其中,[协议类型]对应的可以是http协议等符合上述结构的协议。[查询]可选,用于给动态网页传递参数,所传递的参数可以为多个,这些参数用“&”符号隔开,每个参数的名和值用“=”隔开。

在一个实施例中,所述对所述待分类网址进行字段切分后得到对应节点关系的目标字段,包括:获取切分标识符;以所述切分标识符为分隔符将所述待分类网址切分为至少一个字段,得到所述目标字段。即,通过分隔符将待分类网址切分为至少一个字符串,每个字符串作为一个目标字段。当待分类网址数量为一个以上时,可以分别对这些待分类网址进行字段切分,得到各个待分类网址对应的目标字段。

其中,切分标识符可以为“/”、“&”和“?”。所得到的目标字段可以形成目标字段列表,并通过逗号分隔开。

以https://demo.qq.com/api/adddata/1?key1=abc&key2=def为例,切分后得到的目标字段列表为:https:,demo.qq.com,api,adddata,1,key1=abc,key2=def。其中,“https:”为第一个字段,也即,第一个层级的字段,“demo.qq.com”为第二个字段,也即,第二个层级的字段,其他字段以此类推。

在计算机科学中,树是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。结构树指的是基于树的数据结构,可以是二叉树。

在一个实施例中,各个目标字段可以与结构树中的节点存在对应关系,该对应关系称为节点关系。例如:按照字段所在的位置(可以是在网址中的前后排序位置),第一个字段对应结构树中的根节点,后续字段依次对应已有节点的子节点,最后一个字段对应结构树中的叶子节点。因此,基于节点关系,可以将目标字段对应到结构树中,并与结构树进行匹配性判断。

s202,获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树。

样本网址指的是用于构建样本结构树的网址。在一个实施例中,样本网址可以为基于历史时间段内访问某一应用平台的请求所提取的网址。

从访问请求中提取的网址可以存储于预先构建的网址集合中。在需要进行样本结构树的构建时,可以将网址集合中设定数量的网址确定为样本网址。在一个实施例中,可以从网址集合中依次将剩下的网址作为待分类网址,根据待分类网址的目标字段与目标聚类结构树的匹配关系来对待分类网址进行分类。向网址集合中添加网址的过程可以为:前端监控系统实时监控针对特定应用平台的网址,将这些网址发送至服务器;服务器按特定结构存储至网址集合中。

对于样本结构树,如前所述,是根据样本字段构建的结构树。也即,将样本字段中的字段按照节点关系依次作为结构树的节点,这些节点构建的数据结构即为样本结构树。

在一个实施例中,样本结构树包含至少一个层级,每个层级上对应有节点。本发明实施例通过对样本结构树中第一目标层级的节点进行合并得到目标聚类结构树。其中,该第一目标层级可以为一个以上。具体的,可以从样本结构树的根节点逐层向下扫描,当扫描到某一层级l1时,确定该层级l1中的节点数量m1,当节点数量m1满足条件时判定层级l1为第一目标层级,并将层级l1中的节点合并为一个节点p,并对后续的节点进行调整:将层级l1中各个节点的子节点作为节点p的子节点,此时可以认为完成层级l1的节点合并;接下来扫描层级l1的下一层级l2,按照与层级l1同样的方式完成节点的合并,直到扫描完样本结构树中的所有层级。需要说明的是,本发明实施例中,对节点进行合并处理的过程可以称为剪枝过程。在完成剪枝过程后,就可以认为将特定数量(往往是一个较大的数)的网址聚类为另一特定数量(往往是一个较小的数)的网址。

在一个实施例中,第一目标层级的节点数量所需满足的条件可以是节点数量大于节点数量阈值。节点数量阈值可以为一个固定值,例如,2个、5个、10个等。节点数量阈值也可以不是固定值,而是可以与样本网址的数量成正相关,即,可以随着样本网址的数量变化而变化。具体的,将样本网址的数量与特定比例系数的乘积确定为节点数量阈值,当第一目标层级的节点大于或等于该乘积时,认为第一目标层级的节点数量满足条件。

目标聚类结构树为对预先构建的结构树进行节点聚类处理得到的结构树。具体的,将在对样本结构树进行节点聚类处理后得到的结构树确定为目标聚类结构树。

在一个实施例中,获取目标聚类结构树的过程至少可以有以下的实现方式:1、直接将预先构建的结构树确定为目标聚类结构树;2、在获取到待分类网址之后基于样本结构树聚类得到目标聚类结构树。

s203,按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配。

本步骤中,按第一节点关系依次在目标聚类结构树中确定与各个目标字段相匹配的节点并进行逐层匹配。其中,匹配可以指确定某一字段与节点对应的字符串是否完全一致或者该字段是否包含于节点对应的字串符。本发明实施例针对原始字符串进行操作,无需构建矩阵计算相似度,节点匹配的性能极高。

在一个实施例中,可以确定各个目标字段对应的字段层级(目标字段所在的层级可以称为字段层级),在目标聚类结构树中确定与该字段层级对应的结构树层级(结构树中的各个层级可以称为结构树层级)的节点,判断对应的目标字段与节点是否匹配,当匹配时进行下一层级的匹配判定,直到到达最后一个字段层级的目标字段。需要说明的是,字段层级和结构树层级可以统称为层级,在某些实施例中,为描述方便并未对字段层级和结构树层级进行区分,应当理解的是,与字段对应的层级即指字段层级,与结构树相关的层级即指结构树层级。

在一个实施例中,若待分类网址为多个,则按序分别将各个待分类网址对应的目标字段与目标聚类结构树进行匹配性判断,得到这些待分类网址的匹配性判断结果,进而基于匹配性判断结果得到这些待分类网址对应的网址类别。

s204,当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

当各个目标字段能够从目标聚类结构树的根节点依次匹配到叶子节点时,将这条从根节点到叶子节点的路径确定为目标路径,此时判定各个目标字段与目标路径中的各个节点相匹配,进而根据目标路径确定待分类网址的网址类别。

在一个实施例中,根据目标路径确定待分类网址的网址类别的实现过程可以为:确定与目标路径对应的目标聚类网址,将该目标聚类网址确定为待分类网址的目标聚类网址。

上述网址的分类方法中,对待分类网址进行字段切分后得到对应第一节点关系的目标字段;获取目标聚类结构树;按第一节点关系将各个目标字段与目标聚类结构树中的各个节点进行逐层匹配;当各个目标字段与目标聚类结构树中从根节点到叶子节点的目标路径相匹配时,根据目标路径确定待分类网址的网址类别。

在一个实施例中,目标聚类结构树为基于样本结构树预先聚类的结构树。传统的聚类方法存在遗忘灾难的问题:聚类算法都是对数据批量处理的,即一次性给定所需训练的数据,模型训练好以后一旦有新的数据进来,这时候就需要将所有数据合并重新训练,这就导致了新模型对之前训练的老模型的信息丢失,造成性能上的损失。本发明实施例采取渐进式的分类策略,直接基于目标聚类结构树来对待分类网址进行分类,历史的聚类结果直接参与到当前的分类中,从而减少运算,有效保证网址分类的效率。

在一个实施例中,所述按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配,包括:按所述第一节点关系在所述目标聚类结构树中逐层确定与各个所述目标字段相匹配的节点,得到目标节点;当各个所述目标节点在所述目标聚类结构树中构成从根节点到叶子节点的路径时,判定各个所述目标字段与目标路径中的各个节点相匹配。

在一个实施例中,逐层匹配的过程可以是:获取所述目标字段中的第一待匹配字段;根据所述第一节点关系在所述目标聚类结构树中确定与所述第一待匹配字段的层级所对应的第一待匹配结构树层级;当确定所述第一待匹配字段与所述第一待匹配结构树层级中的节点相匹配时,根据所述第一节点关系在所述目标聚类结构树中确定与第二待匹配字段的层级所对应的第二待匹配结构树层级;所述第二待匹配字段为所述第一待匹配字段的下一字段;当所述第二待匹配字段与所述第二待匹配结构树层级中的节点相匹配且所述第二待匹配结构树层级为叶子节点所在的层级时,判定各个所述目标字段与目标路径中的各个节点相匹配。

具体的,进行第一层级的匹配性判断的过程可以为:获取第一个目标字段,将该第一个目标字段与目标聚类结构树中的根节点进行匹配性判断。当第一个目标字段与根节点相匹配时,进行第二层级的匹配性判断:获取第二个目标字段,将该第二个目标字段与目标聚类结构树中根节点的子节点进行匹配性判断,当第二个目标字段与目标聚类结构树中根节点的子节点相匹配时,进行第三层级的匹配性判断,以此类推,直到判断完最后一个层级的目标字段。当某个层级的匹配性判断结果为不匹配时,可以不再进行下一层级的匹配性判断,例如,当第二个目标字段与根节点的子节点不匹配时,结束匹配性判断过程,此时可以将待分类网址作为新的网址类别,并输出待分类网址“分类不成功”的指示信息。

上述实施例,通过对目标字段与目标聚类结构树的节点进行逐层匹配,能准确确定出与所有目标字段均匹配的目标路径,进而将待分类网址归类到与目标路径对应的网址类别中,能得到准确的网址分类结果。

在一个实施例中,所述按所述第一节点关系在所述目标聚类结构树中逐层确定与各个所述目标字段相匹配的节点,得到目标节点之后,还包括:当各个所述目标节点在所述目标聚类结构树中无法构成从根节点到叶子节点的路径时,将各个所述目标字段按所述第一节点关系叠加至所述目标聚类结构树中,得到待合并结构树;当获取到聚类指令时,对所述待合并结构树中节点数量满足条件的第二目标层级的节点进行合并,得到聚类更新结构树;所述聚类更新结构树,用于在获取到新的待分类网址时对所述新的待分类网址进行分类。

如前述实施例所述,当目标聚类结构树中存在与各个目标字段均匹配的节点路径(即目标路径),则根据该节点路径对应的网址类别来得到待分类网址的网址类别。而对于另一种情况,部分目标字段无法与目标聚类结构树中的节点匹配,例如,前d个目标字段与目标聚类结构树中的节点匹配,而第d+1个目标字段与目标聚类结构树中的节点不匹配,此时不再进行后续层级的匹配性判断,而是将各个目标字段添加至目标聚类结构树中,得到待合并结构树。待合并结构树相较于目标聚类结构树可以多至少一个分支路径(即,无法与目标聚类结构树中的节点相匹配的目标字段所形成的路径)。

进一步的,当获取到聚类指令时,可以按照由样本结构树得到目标聚类结构树的过程来对待合并结构树进行聚类。即,将待合并结构树中第二目标层级的节点进行合并,在完成各个层级的节点合并后得到的结构树即为聚类更新结构树。

在一个实施例中,聚类指令可以是在满足聚类条件时服务器自动生成的触发指令。具体的,服务器可以在以下至少一种条件下生成聚类指令:1、当聚类更新结构树中与未经过节点合并处理的节点对应的网址数量大于预设网址数量阈值(可以根据实际情况确定,本发明实施例对此不作限制)时,认为满足聚类条件,生成聚类指令;2、距离上一次聚类的时间段超过预设时间段阈值(可以根据实际情况确定,本发明实施例对此不作限制)时,认为满足聚类条件,生成聚类指令;3、网址集合中未进行聚类处理的网址数量大于预设网址数量阈值时,认为满足聚类条件,生成聚类指令。在一些实施例中,聚类指令也可以不是由服务器生成。进一步的,聚类指令的获取过程也可以是:服务器接收器所连接的输入设备发送的聚类指令,例如:输入设备为用户终端,用户终端在通过界面接收到用户的聚类触发操作时,向服务器发送聚类指令。

在一个实施例中,当各个所述目标节点在所述目标聚类结构树中无法构成从根节点到叶子节点的路径时,可以将待分类网址添加至网址集合中,而不添加至目标聚类结构树中。当网址集合中未聚类的网址数量满足条件时,认为满足聚类条件,服务器生成聚类指令。

上述实施例,在待分类网址分类失败时,对待分类网址进行记录,并等待下一次聚类的到来,能够尽可能对待分类网址进行分类并持续对聚类结构树进行更新,以保证对后续待分类网址的准确分类。

在一个实施例中,所述获取目标聚类结构树之前,还包括:获取样本网址,对所述样本网址进行字段切分后得到对应第二节点关系的样本字段;按所述第二节点关系对各个所述样本字段进行结构树的构建,得到所述样本结构树;逐层对所述样本结构树进行节点合并操作,以在访问到所述第一目标层级时将所述第一目标层级中的节点合并为一个任意匹配节点,并将所述第一目标层级中各个节点的子节点合并为所述任意匹配节点的子节点;所述任意匹配节点能够与任意节点相匹配;将节点合并后的样本结构树作为所述目标聚类结构树。

其中,在目标聚类结构树中任意匹配节点可以通过“*”等符号表示。

在一个实施例中,在根据目标聚类结构树对待分类网址进行分类时,当根据需要判断某一目标字段与目标聚类结构树中的任意匹配节点是否匹配时,直接判定为匹配,此时可以判断下一层级的匹配性。

在一个实施例中,对样本网址进行字段切分可以与对待分类网址进行切分的方式类似,即,所述对样本网址进行字段切分,得到样本字段,包括:获取切分标识符;以切分标识符为分隔符将样本网址切分为至少一个字段,得到对应第二节点关系的样本字段。

在一个实施例中,所述按所述第二节点关系对各个所述样本字段进行结构树的构建,得到所述样本结构树,包括:按所述第二节点关系依次将各个所述样本字段配置为所述样本结构树中的节点;其中,相同的样本字段在所述样本结构树中共用节点。

具体的,对于某一样本网址w1的样本字段,可以将第一个样本字段作为样本结构树的根节点,将第二个样本字段作为该根节点的子节点,并依次将后续的样本字段作为已有节点的子节点添加至样本结构树中,得到已有样本结构树t。对于另一样本网址w2的样本字段,将其第一个样本字段与已有样本结构树t的根节点进行比对;如果不一致,则该第一个样本字段作为新节点,后续的样本字段分别作为该新节点的子节点;如果两者一致,则共用根节点,并继续将第二个样本字段与已有样本结构树t中第二层级的节点进行比对,如果不一致,则作为第二层级的新节点,如果一致,则与第二层级已有的节点共用节点。以此类推,直到将各个样本网址对应的样本字段都添加至样本结构树中。

在一个实施例中,所述按所述第二节点关系对各个所述样本字段进行结构树的构建,得到所述样本结构树,包括:当样本字段中包含有查询字段时,将查询字段的各个参数值作为所述样本结构树中并列的叶子节点。

在一个实施例中,查询字段用于给动态网页传递参数,而这些参数往往是并列关系,因此查询字段所有的参数名都可以置为最后一个路径的子阶段,同时参数值设置为参数名的子节点。

在一个实施例中,假设有以下样本网址:

https://demo.qq.com/api/adddata/1?key1=abc&key2=def

https://demo.qq.com/api/adddata/2?key1=ghi&key2=jkm

要求:节点合并时样本结构树中节点数量需要大于节点数量阈值2。

基于上述样本网址构建目标聚类结构树的实现过程说明如下:

1、对样本网址进行切分得到样本字段,将各个样本字段排列在一起并使用逗号分开,得到的结果如下:

https:,demo.qq.com,api,adddata,1,key1=abc,key2=def

https:,demo.qq.com,api,adddata,2,key1=ghi,key2=jkm

2、基于样本字段进行结构树的构建,得到的样本结构树如图3所示。

3、剪枝阶段、导出阶段

逐层遍历上述样本结构树,“https:”、“demo.qq.com”、“api”以及“adddata”均只有一个,小于节点数量阈值2,不需要进行剪枝。

遍历到“adddata”节点的子节点“1”和“2”时,发现“adddata”具有两个子节点,大于等于节点数量阈值2,可以剪枝,则将“1”和“2”这两个节点合并为一个节点“*”,并对这两个节点的子节点进行调整(相同的子节点整合为一个子节点),得到的第一次剪枝结果如图4所示。

继续扫描样本结构树的后续层级,发现“key1”、“key2”的节点的数量为2,大于等于节点数量阈值2,可以剪枝,则将“key1”、“key2”节点合并为一个节点“*”,得到的第二次剪枝结果如图5所示。

继续扫描样本结构树,发现最后一个层级的节点数量为4,大于等于节点数量阈值2,可以剪枝,则将这些节点合并为一个节点“*”,得到的第三次剪枝结果如图6所示。

4、将图6中的结构树确定为目标聚类结构树,根据该目标聚类结构树可以确定上述过程将两个样本网址聚类为了一个聚类网址(网址类别):

https://demo.qq.com/api/adddata/*?*=*

上述实施例,基于样本网址构建样本结构树,并逐层对样本结构树中的节点进行剪枝处理,得到聚类后的目标聚类结构树。

在一个实施例中,所述获取样本网址,包括:接收前端监控系统发送的针对目标动态网页的网址;将所述针对目标动态网页的网址添加至网址集合中,并对所述网址集合进行重复网址去除处理;当所述网址集合中的网址数量大于或等于网址数量阈值时,判定聚类条件到达,将所述网址集合中的网址确定为所述样本网址;

其中,前端监控系统(可以简称为监控系统)可以是网址监控平台。前端监控系统可以实时地获取特定应用平台的访问请求。在某些实施例中,前端监控系统可以搭载在应用平台中;也可以是独立于应用平台的系统,通过旁路的方式获取应用平台中的访问请求,进而得到对应的网址。在一个实施例中,前端监控系统可以通过终端或服务器实现。

动态网页可以指能够与用户进行交互的网页,基于用户的交互操作进行针对性的响应,例如:在接收到用户的视频播放触发指令时,在新的窗口中播放对应的视频。在一个实施例中,动态网页为使用cgi(commongatewayinterface,公共网关接口)、isapi(internetserverapplicationprogramminginterface,服务器应用程序接口)、php(超文本预处理器)、jsp(javaserverpages,java服务器页面)、asp(activeserverpage,活动服务器网页)、asp.net(又称为asp+)等技术制作的网页。

在一个实施例中,服务器获取网址的方式可以如图7所示,具体实现过程如下:终端向应用平台发送交互请求,以访问应用平台中的某一动态网页;前端监控系统从发送至应用平台的交互请求中提取网址,并将所提取的网址发送至服务器中;服务器将所接收的网址存入位于缓存数据库的网址集合中。

在一个实施例中,网址集合可以按照set数据结构来存储所获取的网址。其中,set数据结构是计算机编程中一种常用的数据结构。这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中。它由一组无序且唯一的项组成,一般提供增加项、删除项、统计项的数据等功能。进一步的,在服务器将网址存入网址集合中,网址集合可以自动进行去重处理,以保证网址集合中网址的唯一性。

在一个实施例中,服务器实时监测网址集合中的网址数量,当网址数量大于或等于网址数量阈值时判定聚类条件到达,此时可以将网址集合中的所有网址作为新的样本网址进行聚类操作。如果缓存数据库中已经存在聚类好的目标聚类结构树,则可以将这些新的样本网址对应的样本字段添加至目标聚类结构树中,得到新的聚类结构树,并对这个新的聚类结构树中满足条件的层级的节点进行合并处理,实现对聚类结构树的更新,以使得到的聚类结构树尽可能携带更多网址信息,进而更快速有效地对待分类网址进行分类。

其中,网址数量阈值(maxurlcount)可以为经验值,根据不同的应用场景选择合适的值。在前端监控的场景中,一个项目请求的通常url数量不会超过1000条,所以这个场景下,maxurlcount可以取1000。

传统对url进行的聚类采用k-means算法。k-means算法的目的是:把n个点划分到k个聚类中,使得每个点都属于离其最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。该算法的主要缺陷是需要提前指定聚类最终的类别数目n。一般来说,在监控系统中,url的数量一般对于监控平台是透明的,监控平台无法事先知道最终的聚类数目,为了达到最佳的聚类效果,需要反复尝试不同的n值,探索最佳的聚类数目,造成性能上的浪费。

上述实施例将所获取的网址存入网址集合中,并根据网址集合中的网址数量自动触发聚类,同时,无需提前指定聚类结果数目,聚类结果数目在聚类中自动探索得出,相较于传统技术,极大地提高了网址聚类的效率。

在一个实施例中,所述在访问到所述第一目标层级时将所述第一目标层级中的节点合并为一个任意匹配节点,包括:获取各个所述样本字段的标识携带信息;所述标识携带信息用于指示对应的样本字段是否携带合并禁止标识;当根据所述标识携带信息确定当前访问层级中各个节点对应的样本字段未携带所述合并禁止标识时,确定所述当前访问层级的节点数量;所述当前访问层级为当前访问到的所述目标聚类结构树中的节点层级;当所述当前访问层级的节点数量大于或等于节点数量阈值时,判定所述当前访问层级为所述第一目标层级,将所述当前访问层级中的各个节点合并为一个任意匹配节点。

在对样本结构树进行聚类时,逐层访问各个层级的节点。对于当前访问层级,获取该层级中各个节点所对应的样本字段并获取这些样本字段对应的标识携带信息,根据标识携带信息确定节点是否携带有合并禁止标识,如果有该标识(即该节点被标记为不可聚类,另一种说法是被标记为不可被剪枝),说明不可以对该节点进行合并。

在一个实施例中,如果某一层级中的节点为一个以上,而只有部分节点被标记为不可聚类,则可以将该层级中其他节点(未被标记为不可聚类的节点)进行聚类,当这些节点数量大于或等于节点数量阈值时,将这些节点合并为一个任意匹配节点。接着对后续层级进行逐层合并,以此类推。其中,对后续层级进行合并时,携带有合并禁止标识的节点的子节点可以参与,也可以不参与。

其中,可以将重要字段标记为不可聚类。对于重要字段,一方面,重要字段可以根据各个网址中某一字段的出现次数来确定,当该字段在各个网址的出现次数大于设定次数阈值时认为是重要字段,例如:https字段在所有适用http协议的网址中均出现,是重要字段;相反,出现次数小于或等于设定次数阈值时认为是非重要字段;当然,如果要对不常出现字段对应的网址进行分析,则可以将出现次数小于或等于设定次数阈值的字段确定为重要字段。另一方面,重要字段可以是对网址分析的角度而言较为重要的字段:1,协议类型、服务器地址、端口号等对网页起到标识作用的字段可以是重要字段;2,当需要对用户请求的响应进行分析时,与用户交互相关的参数名、参数值等对应的字段是重要字段。在一个实施例中,对于包含有查询字段的url,由于查询字段往往是当前的操作请求是否为查询操作的重要标志,如果要对用户的查询请求进行分析,则查询字段是重要字段。

在一个实施例中,所述获取各个所述样本字段的标识携带信息之前,还包括:获取预设历史时间段内的历史网址集合;确定所述历史网址集合中的各个网址在所述历史网址集合中的访问量占比;当所述历史网址集合中存在所述访问量占比大于访问量占比阈值的目标网址时,在所述样本网址中确定与所述目标网址对应的第一目标样本网址;将所述第一目标样本网址的各个样本字段对应的标识携带信息确定为携带合并禁止标识。

发明人发现,当某条url访问量占比很高时,将其通过传统的url相似度进行聚类会丧失这些数据。本发明实施例将访问量占比大于特定阈值的目标网址对应路径的各个节点都标记为不可被剪枝,能实现这些数据的保留。即,本发明实施例,能对访问量足够高的网址进行单独分类,以保证网址分析过程中这些网址不会被淹没在其他网址中,通过这样的方式,能更为准确地分析网址的响应状态,进而在存在问题时对这一类的网址进行及时处理,更好地保证整个系统的稳定运行。

一条url引入参数的方式主要有两种:

1、通过[查询]中参数的value(值)来区分。如:

www.getweather.com/today/temperature?cityname=北京

www.getweather.com/today/temperature?cityname=深圳

通过“北京”、“深圳”这些参数值来进行参数区分。

2、通过[资源层级unix文件路径]来区分。如:

www.getweather.com/20201013/temperature?cityname=北京

www.getweather.com/20201014/temperature?cityname=北京

通过[资源层级unix文件路径]来进行参数区分。

其中,[资源层级unix文件路径]和[查询]被一起构建到url结构树当中。实际上,[查询]和unix文件路径的格式是不同的。

对于需要基于参数进行网址分析的场景。[资源层级unix文件路径]通过路径来引入参数,参数在路径中的顺序决定这个参数的key(参数名),可以不需要将参数标记为不可聚类。而[查询]中参数的key决定了一个参数的实际含义,[查询]片段的key直接给出,顺序并不影响,因此需要将[查询]片段的key设置为不可被聚类,以使得所得到的网址类别中包含参数这一字段。

在一个实施例中,所述获取标识携带信息之前,还包括:确定所述样本网址中包含有查询字段的网址,作为第二目标样本网址;在各个所述样本字段中获取所述第二目标样本网址的查询字段对应的目标样本字段;将所述目标样本字段的标识携带信息确定为携带合并禁止标识。

查询字段往往是表征用户交互参数的重要字段,本发明实施例将其标记为不可聚类,能有效保留这些重要信息,进而保证网址分类结果的可靠性,即基于用户的交互操作来对网址进行分析,能针对性地确定出应用平台对用户操作请求的响应状态,可以有效保证与用户交互的有序性。

在一个实施例中,对于样本结构树中的节点有被标记为不可聚类的情况,例如,图3所示的样本结构树,其中,“key1”和“key2”节点对应的样本字段被标记为不可聚类。基于该样本结构树进行聚类的过程可以如下:

逐层遍历上述样本结构树,“https:”、“demo.qq.com”、“api”以及“adddata”均只有一个,小于节点数量阈值2,不需要进行剪枝。

遍历到“adddata”节点的子节点时,发现“adddata”具有两个子节点,大于等于节点数量阈值2,可以剪枝,则将“1”和“2”这两个节点合并为一个节点“*”,并对这两个节点的子节点进行调整,得到的第一次剪枝结果如图4所示。

继续扫描样本结构树的后续层级,“key1”和“key2”的节点数量为2,本来是可以聚类的,但是这两个节点对应的样本字段被标记为不可聚类,因此该层级不进行聚类。

继续扫描样本结构树的后续层级,发现“key1”、“key2”节点的子节点数量均为2,可以剪枝,分别将“key1”、“key2”节点的子节点合并为一个节点“*”,得到的第二次剪枝结果如图8所示。

继续扫描样本结构树,发现没有子节点,此时将图8中的结构树确定为目标聚类结构树,该目标聚类结构树对应的网址类别如下:

https://demo.qq.com/api/adddata/*?key1=*&key2=*

上述实施例构建样本结构树,并逐层对样本结构树中进行剪枝处理,将一些重要的性能数据纳入聚类的指标范围内,在聚类时保留被标记为不可聚类的重要节点,实现了加权收敛的剪枝策略,得到简化后的目标聚类结构树,聚类的结果更加具有实际的参考意义。

在一个实施例中,本发明实施例,通过节点数量阈值(maxchlidcount)来控制聚类的程度,如果当前访问层级的节点数量大于或等于节点数量阈值,认为该层级的节点数量过多,则将这些节点合并为一个任意匹配节点。

节点数量阈值的确定方式可以通过如下实施例实现:

在一个实施例中,当所述当前访问层级的节点数量大于或等于节点数量阈值时,判定所述当前访问层级为所述第一目标层级之前,还包括:获取预设的比例系数;获取所述样本网址的网址数量,并计算所述网址数量与所述比例系数的乘积;将所述乘积确定为所述节点数量阈值。

其中,比例系数可以为根据网址聚类程度的要求来设置,例如,当需要将网址聚类到尽可能少的网址类别中时,则比例系数可以设置为一个较大的值,例如20%,当需要将网址聚类到尽精确的网址类别中时,则比例系数可以设置为一个较小的值,例如10%。

前一实施例中,节点数量阈值随着样本网址数量的变化而变化。在某些实施例中,节点数量阈值也可以为固定的值,例如:固定为20个。

上述实施例中,设置节点数量阈值,当某一层级的节点未被标记为不可聚类且节点数量大于或等于节点数量阈值时,将该层级中的节点聚合为一个节点,在后续对网址进行分类的过程中,聚类后的该节点能与所有的节点匹配,通过这样的方式,将数量众多的网址聚为一类,极大地简化了网址分析过程的计算量。

在一个实施例中,所述获取目标聚类结构树,包括:确定预先构建的待选聚类结构树的过期时间;当所述过期时间未到达时,将所述待选聚类结构树确定为所述目标聚类结构树;当所述过期时间到达时,获取新的样本结构树,对所述新的样本结构树中节点数量满足条件的第三目标层级的节点进行合并以得到所述目标聚类结构树。

在一个实施例中,服务器在聚类得到目标聚类结构树时,可以将目标聚类结构树存入缓存数据库中,方便多机器共享。此时可以为目标聚类结构树设置过期时间,缓存数据库在过期时间未到达时保存目标聚类结构树,在过期时间到达时释放目标聚类结构树。如果接收到待分类网址且未达到过期时间,则服务器可以基于缓存数据库中的目标聚类结构树进行网址分类,如果接收到待分类网址且达到过期时间,可以重新生成聚类结构树。其中,重新生成聚类结构树与生成目标聚类结构树的方式一样,在此不再赘述。

上述实施例为目标聚类结构树设置过期时间,能有效减少缓存数据库的存储压力。

在一个实施例中,生成聚类结构树、网址分类以及网址分析的过程可以并行进行。例如:服务器接收到前端监控系统发送的网址,将这些网址存入网址集合中。在聚类时,服务器首先获取这些网址,对这些网址进行聚类得到目标聚类结构树。之后,可以基于目标聚类结构树进行网址分类和网址分析:一方面,如果网址集合中有新的网址,则逐个读取这些网址并作为待分类网址,将待分类网址与目标聚类结构树进行匹配以得到这些待分类网址对应的网址类别。另一方面,服务器可以在接收到终端发送的网址响应状态分析指令时,根据目标聚类结构树来对对应网址类别的匹配网址进行分析,以输出对应的网址响应状态分析结果。

上述实施例,可以在几分钟内迅速完成对网址的聚类。聚类完成之后,剩余的待分类网址马上就可以根据聚类结构树完成分类,同时该聚类结构树可以参与数据的统计和分析。能极大提高网址分类以及网址分析的效率。

在一个实施例中,所述根据所述目标路径确定所述待分类网址的网址类别之后,还包括:当接收到针对目标公共网关接口的网址响应状态分析指令时,确定与所述目标公共网关接口对应的路径标识;确定与所述路径标识对应的目标网址类别;确定与所述目标网址类别相匹配的目标匹配网址;获取所述目标匹配网址对应的响应状态数据;根据所述响应状态数据生成所述目标公共网关接口的网址响应状态分析结果。其中,公共网关接口为cgi接口。

在一个实施例中,网址响应状态可以指对网址对应请求的响应状态,可以指请求成功率、请求速度、响应消耗时间等。

在一个实施例中,终端在界面中显示如图9所示的窗口,用户可以在窗口中输入网址搜索信息。具体的,用户可以在“搜索url”选项中输入url的检索关键词,如:北京的天气,也可以直接输入网址类别,如:www.getweather.com/today/temperature?cityname=北京。另外,用户在窗口中可以选择时间范围和时间粒度,以针对性地对特定时间段的网址进行特定细粒度地分析。当终端通过窗口接收到用户输入的网址搜索信息时,将这些网址搜索信息搭载在网址响应状态分析指令中发送至服务器。服务器据此确定与北京天气接口对应的路径标识;确定与路径标识对应的目标网址类别;确定与目标网址类别相匹配的目标匹配网址;获取目标匹配网址对应的响应状态数据;根据响应状态数据生成目标公共网关接口的网址响应状态分析结果,并将网址响应状态分析结果返回给终端。

其中,服务器可以控制终端以各种直观图形的方式在终端页面对网址响应状态分析结果进行显示。显示方式可以是波动图、柱状图、饼状图等等形式。

具体的,逐步对网址进行聚类、分类以及输出网址响应状态分析结果的示意图可以如图10所示。图10中样本数1001逐步增加,也即,逐步从网址集合中读取网址并进行分析;另外,对这些网址的响应平均速度1002保持在较为稳定的状态。

另外,还可以通过如图11所示的图来显示网址响应状态分析结果,具体的,通过柱状图的形式来显示请求速度的分布情况,通过饼状图的形式来显示响应返回码的分布,同时可以在界面中显示请求成功率。

需要说明的是,随着所读取网址的变化,界面中的网址响应状态分析结果可以随之实时变化,以使用户能及时获取到对应的网址响应状态分析结果。

本实施例在接收到针对某一cgi接口的网址响应状态分析指令时,基于之前的网址分类结果针对性地获取目标匹配网址,而不需要一个一个网址地去检索,能极大地提高网址响应状态的分析效率。

本申请还提供一种应用场景,该应用场景应用上述网址的分类方法。具体地,以该方法应用于图1中的服务器为例进行说明,该网址的分类方法在该应用场景的应用如下:

1、对于向应用平台中发送获取特定城市的天气信息的请求,由于cityname这个变量参数的引入,该网站一天上传了100万条不同参数的url。当需要对这100万条url进行分析时,如果直接对100万条的url进行分析则运算量非常大,因此有必要对url进行分类,基于分类后的url进行分析。

2、假设网址集合中通过set数据结构的方式存入有以下两个样本url:

www.getweather.com/today/temperature?cityname=北京

www.getweather.com/today/wind?cityname=深圳

maxurlcount设置为2(为便于描述,设置为一个较小的值,在实际应用场景中可以为更大的值)。另外,预设的比例系数为1,将该比例系数与样本url数量的乘积2作为maxchlidcount。

当网址集合中的网址数量大于或等于maxurlcount时,就认为需要进行url的聚类分析,进入到下一阶段。

3、构建url结构树阶段

取出网址集合中所有的url,并以url中的“/”、“&”和“?”作为分隔符对每个url进行切分,得到如下的样本字段:

www.getweather.com,today,temperature,cityname=北京

www.getweather.com,today,wind,cityname=深圳

切分后即可开始遍历切割好的字段,并构建url结构树。第一个字段为根节点,下一个字段为上一个字段的子节点。后续字段如果相同,则不生成新的节点,后续字段直接设置为已有字段的子节点。针对[查询]串(cityname字段),所有的参数名都置为最后一个路径的子阶段,参数值设置为参数名的子节点,并标记参数名节点“cityname”为不可被剪枝。

4、剪枝阶段

构建树成功后,针对结构树进行深度优先扫描。当某节点的子节点数量大于等于maxchlidcount且这些子节点可以进行剪枝时,将该节点的所有子节点合并至单一节点,并用*标记,这些子节点的下一级子节点也统一合并到*节点上。

5、导出阶段

重复步骤4,直至结构树中没有节点数量超过maxchildcount的层级。此时可得到聚类后的url,得到以下两个网址类别:

www.getweather.com/today/*?cityname=*

www.getweather.com/today/*?cityname=*

随后将聚类结构树存入缓存数据库中,方便多机器共享,并设置过期时间,过期后重新计算。

6、分类阶段

聚类完成之后,当有新url需要进行分类时,从缓存数据库中定时同步聚类结构树,将新url经过标志位切分之后,直接将这些切分后的字段与聚类结构树进行匹配,*节点与任意字段匹配。当最后一个字段匹配到结构树树的叶子节点时,则认为匹配成功,得到本次的分类结果,否则分类失败,将新url继续插入到构建好的树中,并等待下一次聚类。

上述实施例,基于树的数据结构,对于前端监控系统中收集的用户请求url构建结构树并进行剪枝,从而实现url的聚类,聚类完成后,后续的url分析可以直接使用该结构树进行匹配和分类。

本申请还提供一种应用场景,该应用场景应用上述网址的分类方法。具体地,以该方法应用于图1中的服务器为例进行说明,该网址的分类方法在该应用场景的应用如下:

以web前端监控为例,为了不断优化web应用的速度和体验,使用监控平台对用户的http请求数据进行收集和分析。以cgi请求为例,在收集到用户所有原始的cgi请求数据之后,按照url的维度对请求数据进行分析,从而更好地确定应用中存在的短板,有针对性的进行优化。具体实现过程可以为:

1、终端向天气网址发送各种类型的cgi请求,前端监控系统对这些cgi请求进行实时监控,并将获取天气信息的cgi请求选择出来并进行网址提取,将所提取的网址发送至服务器中。服务器将所接收的网址按照set数据结构的方式存入网址集合中。根据cgi请求的分析可以发现北京这个城市的请求数量远远大于其他城市,想要单独分析一下cityname=“北京”场景下的性能数据。

2、假设网址集合中存入有以下四个样本url:

www.getweather.com/today/temperature?cityname=北京

www.getweather.com/today/temperature?cityname=深圳

www.getweather.com/today/wind?cityname=上海

www.getweather.com/today/wind?cityname=广州

其中,maxurlcount设置为2,maxchlidcount设置为2。

网址集合中的网址数量为2,等于maxurlcount,认为需要进行url的聚类分析,进入到下一阶段。

3、构建url结构树阶段

取出网址集合中所有的url,并以分隔符对每个url进行切分,得到如下的样本字段:

www.getweather.com,today,temperature,cityname=北京

www.getweather.com,today,temperature,cityname=深圳

www.getweather.com,today,wind,cityname=上海

www.getweather.com,today,wind,cityname=广州

切分后即可开始遍历切割得到的字段并构建聚类结构树。其中“cityname”和“北京”被标记为不可被剪枝。

4、剪枝阶段

结构树构建成功后,针对结构树进行深度优先扫描,当某节点的子节点数量大于等于2且该节点未被标记为不可被剪枝时,将该节点的所有子节点合并至单一节点,并用*标记,这些子节点的下一级子节点也统一合并到*节点上。

5、导出阶段

重复步骤4,直至结构树中没有节点数量超过maxchildcount的层级。此时深度遍历即可得到聚类结构树。随后将聚类结构树存入缓存数据库中。

该聚类结构树对应的网址类别可以如下:

www.getweather.com/today/*?cityname=北京

www.getweather.com/today/*?cityname=*

6、分类阶段

聚类完成之后,当有新url需要进行分类时,从缓存数据库中定时同步聚类结构树。

假设新url为:

www.getweather.com/today/humidity?cityname=北京

将其进行字段切分后得到如下的目标字段:

www.getweather.com,today,humidity,cityname=北京

将各个目标字段逐层与聚类结构树中的节点进行匹配性判断。根据判断结果确定各个目标字段能够与“www.getweather.com→today→*→cityname=北京”这一路径中的各个节点相匹配。

因此可以将新url归类到“www.getweather.com/today/*?cityname=北京”这一网址类别中。

7、url分析阶段

如果接收到终端发送的针对北京天气的网址响应状态分析指令时,获取与“www.getweather.com/today/*?cityname=北京”相匹配的目标匹配网址。确定这些目标匹配网址对应的请求成功率、请求速度以及响应消耗时间。将所确定的请求成功率、请求速度以及响应消耗时间作为网址响应状态分析结果返回给终端,以使该终端在界面显示网址响应状态分析结果。

上述实施例,基于预先构建的聚类结构树来对新url进行分类,至少具有以下效果:

1)会自动判断聚类的时机,不需要进行参数的预先配置。

2)由于采用了渐进式聚类的策略,在面对海量url时序数据时,本方案能够以较短的冷启动时间完成构建url分类树,开始对后续到达的url进行聚类,并不断完善url结构树,从而提升分类的精度。

3)在面对海量url分类任务时,拥有非常好的性能。例如,在腾讯云8核心16g的云虚拟机上进行测试,本方案在构建好url结构树之后,1秒内可以完成超过50万条url的分类任务。

4)由于用户访问web应用是持续的,所以本方案尤其适用于前端项目中的用户监控。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于与上述实施例中的网址的分类方法相同的思想,本发明还提供网址的分类装置,该装置可用于执行上述网址的分类方法。为了便于说明,网址的分类装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

在一个实施例中,如图12所示,提供了一种网址的分类装置1200,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:待分类网址获取模块1201、结构树获取模块1202、逐层匹配模块1203和网址类别确定模块1204,其中:

待分类网址获取模块1201,用于获取待分类网址,对所述待分类网址进行字段切分后得到对应第一节点关系的目标字段。

结构树获取模块1202,用于获取目标聚类结构树;所述目标聚类结构树为将样本结构树中节点数量满足条件的第一目标层级的节点合并后得到,所述样本结构树为根据样本网址对应的字段构建的结构树。

逐层匹配模块1203,用于按所述第一节点关系将各个所述目标字段与所述目标聚类结构树中的各个节点进行逐层匹配。

网址类别确定模块1204,用于当各个所述目标字段与目标路径中的各个节点相匹配时,根据所述目标路径确定所述待分类网址的网址类别;所述目标路径为所述目标聚类结构树中从根节点到叶子节点的路径。

上述网址的分类装置中,能够直接基于预先构建的目标聚类结构树来对待分类网址进行分类,快速输出待分类网址的网址分类结果,有效保证网址分类的效率。

在一个实施例中,逐层匹配模块,包括:逐层匹配子模块,用于按所述第一节点关系在所述目标聚类结构树中逐层确定与各个所述目标字段相匹配的节点,得到目标节点;匹配判定子模块,用于当各个所述目标节点在所述目标聚类结构树中构成从根节点到叶子节点的路径时,判定各个所述目标字段与目标路径中的各个节点相匹配。

在一个实施例中,逐层匹配模块,还包括:字段叠加子模块,用于当各个所述目标节点在所述目标聚类结构树中无法构成从根节点到叶子节点的路径时,将各个所述目标字段按所述第一节点关系叠加至所述目标聚类结构树中,得到待合并结构树;结构树更新子模块,用于当获取到聚类指令时,对所述待合并结构树中节点数量满足条件的第二目标层级的节点进行合并,得到聚类更新结构树;所述聚类更新结构树,用于在获取到新的待分类网址时对所述新的待分类网址进行分类。

在一个实施例中,网址的分类装置,还包括:样本网址获取模块,用于获取样本网址,对所述样本网址进行字段切分后得到对应第二节点关系的样本字段;结构树构建模块,用于按所述第二节点关系对各个所述样本字段进行结构树的构建,得到所述样本结构树;节点合并模块,用于逐层对所述样本结构树进行节点合并操作,以在访问到所述第一目标层级时将所述第一目标层级中的节点合并为一个任意匹配节点,并将所述第一目标层级中各个节点的子节点合并为所述任意匹配节点的子节点;所述任意匹配节点能够与任意节点相匹配;结构树确定模块,用于将节点合并后的样本结构树作为所述目标聚类结构树。

在一个实施例中,样本网址获取模块,包括:网址接收子模块,用于接收前端监控系统发送的针对目标动态网页的网址;网址添加子模块,用于将所述针对目标动态网页的网址添加至网址集合中,并对所述网址集合进行重复网址去除处理;样本网址确定子模块,用于当所述网址集合中的网址数量大于或等于网址数量阈值时,判定聚类条件到达,将所述网址集合中的网址确定为所述样本网址。

在一个实施例中,结构树构建模块,还用于按所述第二节点关系依次将各个所述样本字段配置为所述样本结构树中的节点;其中,相同的样本字段在所述样本结构树中共用节点。

在一个实施例中,节点合并模块,包括:信息获取子模块,用于获取各个所述样本字段的标识携带信息;所述标识携带信息用于指示对应的样本字段是否携带合并禁止标识;节点数量获取子模块,用于当根据所述标识携带信息确定当前访问层级中各个节点对应的样本字段未携带所述合并禁止标识时,确定所述当前访问层级的节点数量;所述当前访问层级为当前访问到的所述目标聚类结构树中的节点层级;节点合并子模块,用于当所述当前访问层级的节点数量大于或等于节点数量阈值时,判定所述当前访问层级为所述第一目标层级,将所述当前访问层级中的各个节点合并为一个任意匹配节点。

在一个实施例中,节点合并模块,还包括:网址集合获取子模块,用于获取预设历史时间段内的历史网址集合;访问量占比获取子模块,用于确定所述历史网址集合中的各个网址在所述历史网址集合中的访问量占比;第一目标网址确定子模块,用于当所述历史网址集合中存在所述访问量占比大于访问量占比阈值的目标网址时,在所述样本网址中确定与所述目标网址对应的第一目标样本网址;第一信息确定子模块,用于将所述第一目标样本网址的各个样本字段对应的标识携带信息确定为携带合并禁止标识。

在一个实施例中,节点合并模块,还包括:第二目标网址确定子模块,用于确定所述样本网址中包含有查询字段的网址,作为第二目标样本网址;字段确定子模块,用于在各个所述样本字段中获取所述第二目标样本网址的查询字段对应的目标样本字段;第二信息确定子模块,用于将所述目标样本字段的标识携带信息确定为携带合并禁止标识。

在一个实施例中,节点合并模块,还包括:比例系数获取子模块,用于获取预设的比例系数;乘积计算子模块,用于获取所述样本网址的网址数量,并计算所述网址数量与所述比例系数的乘积;数量阈值确定子模块,用于将所述乘积确定为所述节点数量阈值。

在一个实施例中,结构树获取模块,包括:过期时间确定子模块,用于确定预先构建的待选聚类结构树的过期时间;第一结构树确定子模块,用于当所述过期时间未到达时,将所述待选聚类结构树确定为所述目标聚类结构树;第二结构树确定子模块,用于当所述过期时间到达时,获取新的样本结构树,对所述新的样本结构树中节点数量满足条件的第三目标层级的节点进行合并以得到所述目标聚类结构树。

在一个实施例中,网址的分类装置,还包括:路径标识确定模块,用于当接收到针对目标公共网关接口的网址响应状态分析指令时,确定与所述目标公共网关接口对应的路径标识;目标网址类别确定模块,用于确定与所述路径标识对应的目标网址类别;匹配网址确定模块,用于确定与所述目标网址类别相匹配的目标匹配网址;状态数据获取模块,用于获取所述目标匹配网址对应的响应状态数据;分析结果确定模块,用于根据所述响应状态数据生成所述目标公共网关接口的网址响应状态分析结果。

关于网址的分类装置的具体限定可以参见上文中对于网址的分类方法的限定,在此不再赘述。上述网址的分类装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储结构树、网址集合等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网址的分类方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1