一种基于集成学习的URL清洗系统及方法与流程

文档序号:17696805发布日期:2019-05-17 21:37阅读:151来源:国知局

本发明涉及网络信息处理技术领域,特别是一种基于集成学习的url清洗系统及其应用该系统的方法。



背景技术:

url,也被称为网页地址,是internet上标准的资源的地址,用于完整地描述internet上网页和其他资源的地址的一种标识方法。internet上的每一个网页都具有一个唯一的url地址名称标识,通常称之为url地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是internet上的站点。简单地说,url就是web地址,俗称“网址”。通常爬虫工程师在爬完网站数据之后要对这些数据做清洗操作,其中比较麻烦的就是url的清洗。

网站的标题可以说是公司的门面,传统系统容易漏掉奇特的标题,如:“白衣天使”,这很明显能看出是医院的网站,但是通过传统系统就很可能会把这个标题过滤掉。因此,传统系统的不足之处在于需要人工去标注数据,前期会消耗一定的人力。



技术实现要素:

本发明为解决上述问题,提供了一种基于集成学习的url清洗系统及方法,通过采用朴素贝叶斯算法与正则表达式的集成学习进行网站标题的识别,能够极大的提高url的清洗效率。

为实现上述目的,本发明采用的技术方案为:

一种基于集成学习的url清洗系统,其包括:

数据爬取模块,用于爬取网站的url及其对应的网站标题;

数据标记模块,其通过判断所述网站标题是否与指定的爬取主题一致,若是,则将所述网站标题标记为a类标题,否则标记为b类标题;

初级预测模型一,用于对所标记的a类标题和b类标题进行分词,计算分词结果的权重值,然后用朴素贝叶斯算法对所述权重值进行训练和预测,得到初级预测模型一;

初级预测模型二,用于对所标记的a类标题或b类标题进行分词并统计分词结果的词频,然后根据所述分词结果的词频进行构造所述分词结果相应的正则表达式,作为初级预测模型二;

模型融合模块,其采用stacking算法对所述初级预测模型一和所述初级预测模型二的训练数据和测试数据进行融合,得到融合结果;

次级预测模型,其采用决策树算法对所述融合结果进行训练和预测,得到决策树模型,作为次级预测模型,并通过所述次级预测模型对url进行清洗。

优选的,所述的数据爬取模块中,是根据爬取主题进行设置对应的爬取关键词,并利用python爬虫进行获取所述爬取关键词相关联的url,并同时爬取所述url对应的网站标题。

进一步的,所述爬取主题为指定行业的公司类型或者指定领域的技术类别。

优选的,所述的数据标记模块中,若所述网站标题与指定的爬取主题一致,则将所述网站标题标记为a类标题;若所述网站标题与指定的爬取主题不一致或为非法标题或为状态码不为200的服务器提示标题,则标记为b类标题。

优选的,所述的初级预测模型一中,是通过计算所述a类标题和所述b类标题的分词结果的tf-idf权重值,然后用朴素贝叶斯算法对tf-idf权重值的训练和预测。

优选的,所述的初级预测模型二中,对所述a类标题和所述b类标题进行分词后,还进一步采用python中的collections包里的counter模块进行统计所述分词结果的词频,根据所述分词结果的词频进行构造所述分词结果相应的正则表达式。

优选的,所述的数据标记模块中将所述网站标题标记为a类标题和b类标题后,按预设比例将所述网站标题划分为初级训练集和初级测试集;所述初级预测模型一或所述初级预测模型二利用所述初级训练集和所述初级测试集进行模型的训练和测试。

优选的,所述的模型融合模块中,对所述初级预测模型一和所述初级预测模型二训练数据和测试数据进行融合,进一步包括:

(1)采用stacking算法将所述初级训练集和所述初级测试集分成k份数据集;

(2)对于第i份数据集,i=1~k,用剩余k-1份数据集作为次级训练集,分别对所述初级预测模型一和所述初级预测模型二进行训练,并以所述第i份数据集作为次级测试集,分别对所述初级预测模型一和所述初级预测模型二进行预测;

(3)重复步骤(2),直到完成所述k份数据集的每一份的预测,得到所述初级预测模型一和所述初级预测模型二的融合结果。

所述的次级预测模型中,采用决策树算法对所述融合结果进行训练和预测,包括:

将所述次级测试集的预测结果作为所述次级预测模型的训练数据;

根据预设的测试集对所述k份数据集进行预测,得到对应的k分预测结果,并将所述k份预测结果进行加权平均得到平均预测结果,将该平均预测结果作为所述次级预测模型输入的测试数据。

与所述清洗系统相对应的,本发明还提供一种基于集成学习的url清洗方法,其包括以下步骤:

a.爬取网站的url及其对应的网站标题;

b.判断所述网站标题是否与指定的爬取主题一致,若是,则将所述网站标题标记为a类标题,否则标记为b类标题;

c.对所标记的a类标题和b类标题进行分词;

d.计算分词结果的权重值,然后用朴素贝叶斯算法对所述权重值进行训练和预测;

e.统计分词结果的词频,然后根据所述分词结果的词频进行构造所述分词结果相应的正则表达式;

f.采用stacking算法对所述步骤d和所述步骤e的训练数据和测试数据进行融合,并以所述步骤d的预测结果和所述步骤e的预测结果作为输入特征,得到融合结果;

g.采用决策树算法对所述融合结果进行训练和预测,得到决策树模型,并通过所述决策树模型对url进行清洗。

本发明的有益效果是:

(1)本发明通过结合朴素贝叶斯算法和正则表达式的集成学习进行网站标题的识别,从而进行网站url的过滤和清洗,能够极大的提高url清洗效率,节省大量的人工检查时间;

(2)本发明仅需对与主题不符的网站标题进行构造正则表达式,无需对所有网站标题进行分析,极大的提高了计算效率;

(3)本发明通过stacking算法对所述朴素贝叶斯算法的预测结果和所述正则表达式的预测结果进行融合,提高了url验证的准确程度。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合具体实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

一种基于集成学习的url清洗系统,其包括:

数据爬取模块,用于爬取网站的url及其对应的网站标题;

数据标记模块,其通过判断所述网站标题是否与指定的爬取主题一致,若是,则将所述网站标题标记为a类标题,否则标记为b类标题;

初级预测模型一,用于对所标记的a类标题和b类标题进行分词,计算分词结果的权重值,然后用朴素贝叶斯算法对所述权重值进行训练和预测,得到初级预测模型一;

初级预测模型二,用于对所标记的a类标题或b类标题进行分词并统计分词结果的词频,然后根据所述分词结果的词频进行构造所述分词结果相应的正则表达式,作为初级预测模型二;

模型融合模块,其采用stacking算法对所述初级预测模型一和所述初级预测模型二的训练数据和测试数据进行融合,得到融合结果;

次级预测模型,其采用决策树算法对所述融合结果进行训练和预测,得到决策树模型,作为次级预测模型,并通过所述次级预测模型对url进行清洗。

所述的数据爬取模块中,是根据爬取主题进行设置对应的爬取关键词,并利用python爬虫进行获取所述爬取关键词相关联的url,并同时爬取所述url对应的网站标题。其中,所述网站标题的提取方法是采用xpath对所述爬取得到网站进行字符串匹配,获取<title></title>标签内容,即为网站标题。本实施例中,所述爬取主题为指定行业的公司类型或者指定领域的技术类别;通过爬取主题来设置爬取关键词,进而根据爬取关键词进行爬取关联的url,适用于对某一领域或某一行业或某一主题的专项分析,使得爬取的数据更具有针对性,分析结果更准确。

所述的数据标记模块中,若所述网站标题与指定的爬取主题一致,则将所述网站标题标记为a类标题;若所述网站标题与指定的爬取主题不一致或为非法标题或为状态码不为200的服务器提示标题,则标记为b类标题。

所述数据标记过程举例如下,其中,a类标题标注为1,b类标题标注为0;如表1所示:

表1-标题标记

所述的初级预测模型一中,是通过计算所述a类标题和所述b类标题的分词结果的tf-idf权重值,然后用朴素贝叶斯算法对tf-idf权重值的训练和预测。

tf-idf(termfrequency–inversedocumentfrequency)是一种用于信息检索与数据挖掘的常用加权技术。tf意思是词频(termfrequency),idf意思是逆文本频率指数(inversedocumentfrequency)。tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

所述的初级预测模型二中,对所述a类标题和所述b类标题进行分词后(可直接采用所述初级预测模型一中的分词结果),还进一步采用python中的collections包里的counter模块进行统计所述分词结果的词频,根据所述分词结果的词频进行构造所述分词结果相应的正则表达式。本实施例中,是通过对所述分词结果的词频进行从大到小的排序,并对排序在前的预设数量的分词结果进行构造相应的正则表达式;或者,采用阈值法对所述分词结果的词频进行计算,并对词频大于预设阈值的分词结果进行构造相应的正则表达式。所述正则表达式的构造过程如表2所示。

表2-构造正则表达式

其中,所述正则表达式的构造,是通过将所述分词结果与特定字符串相组合进行构造正则表达式,所述特定字符串前置于和/或后置于所述分词结果;所述特定字符串包括:通配符、转义字符、特殊意义字符、自定义字符、空白字符、匹配次数字符中的一种以上。常用的字符举例如下:

表3-正则表达式的常用字符

本实施例中,所述的数据标记模块中将所述网站标题标记为a类标题和b类标题后,按预设比例将所述网站标题划分为初级训练集和初级测试集;所述初级预测模型一或所述初级预测模型二利用所述初级训练集和所述初级测试集进行模型的训练和测试。

所述的模型融合模块中,对所述初级预测模型一和所述初级预测模型二训练数据和测试数据进行融合,进一步包括:

(1)采用stacking算法将所述初级训练集和所述初级测试集分成k份数据集;

(2)对于第i份数据集,i=1~k,用剩余k-1份数据集作为次级训练集,分别对所述初级预测模型一和所述初级预测模型二进行训练,并以所述第i份数据集作为次级测试集,分别对所述初级预测模型一和所述初级预测模型二进行预测;

(3)重复步骤(2),直到完成所述k份数据集的每一份的预测,得到所述初级预测模型一和所述初级预测模型二的融合结果。

所述的次级预测模型中,利用所述融合结果,对所述次级预测模型进行训练和预测。

其中,所述融合结果包括融合后的训练数据和融合后的预测数据。本实施例中具体采用:

将所述次级测试集的预测结果作为所述次级预测模型的训练数据;

根据预设的测试集对所述k份数据集进行预测,得到对应的k分预测结果,并将所述k份预测结果进行加权平均得到平均预测结果,将该平均预测结果作为所述次级预测模型输入的测试数据。

举例如下,采用stacking算法将所有数据集分成5份,即,k=5;以第1份数据集作为次级预测集,其余4份作为训练集,得到对应的第1组预测结果;以第2份数据集作为次级预测集,其余4份作为训练集,得到对应的第2组预测结果;以第3份数据集作为次级预测集,其余4份作为训练集,得到对应的第3组预测结果;以第4份数据集作为次级预测集,其余4份作为训练集,得到对应的第4组预测结果;以第5份数据集作为次级预测集,其余4份作为训练集,得到对应的第5组预测结果。这个过程是交叉检验,能够避免过拟合。

将所述第1组预测结果、第2组预测结果、第3组预测结果、第4组预测结果、第5组预测结果作为所述次级预测模型的训练数据;

另外,再根据预设的测试集(不同于所述5份数据集),对所述5份数据集分别进行预测,得到对应的5份预测结果;然后将该5份预测结果进行加权平均,得到平均预测结果predictions;最后,将该平均预测结果predictions作为次级预测模型输入的测试数据。

根据上述举例,对于初级预测模型一,首先利用朴素贝叶斯模型将训练数据(trainingdata)分成5(不固定)份,并进行5次训练,每次训练均选用一份不重复的数据作为测试集,剩余四份数据作为训练集,等模型训练好后再来分别预测5个训练集里的测试集和原先准备的测试集(testdata),将这个过程执行5次(参考上述举例,分成几份就执行几次,对5份testdata取加权平均得到predictions,得到次级模型的训练集。

根据上述举例,对于初级预测模型二,同样的将数据集进行拆分,并利用正则表达式进行训练和预测;由此得到次级预测模型。

最后,以所述初级预测模型一的第一初级预测结果和所述初级预测模型二的第二初级预测结果作为输入特征,输入所述次级预测模型中,得到最终预测结果,并根据最终预测结果对url进行清洗。

与所述清洗系统相对应的,本发明还提供一种基于集成学习的url清洗方法,其包括:

a.爬取网站的url及其对应的网站标题;

b.判断所述网站标题是否与指定的爬取主题一致,若是,则将所述网站标题标记为a类标题,否则标记为b类标题;

c.对所标记的a类标题和b类标题进行分词;

d.计算分词结果的权重值,然后用朴素贝叶斯算法对所述权重值进行训练和预测;

e.统计分词结果的词频,然后根据所述分词结果的词频进行构造所述分词结果相应的正则表达式;

f.采用stacking算法对所述步骤d和所述步骤e的训练数据和测试数据进行融合,并以所述步骤d的预测结果和所述步骤e的预测结果作为输入特征,得到融合结果;

g.采用决策树算法对所述融合结果进行训练和预测,得到决策树模型,并通过所述决策树模型对url进行清洗。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。

并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

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