一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于组合预测法的主题词搜索爬虫调度方法及其系统与流程

2021-10-24 03:58:00 来源:中国专利 TAG:爬虫 调度 组合 主题词 预测


1.本发明涉及爬虫调度方法技术领域,具体是指基于组合预测法的主题词搜索爬虫调度方 法及其系统。


背景技术:

2.跟踪主题需要爬虫不断获取该主题相关数据,如果在服务器资源有限的情况下优先跟踪 热点主题,就需要实现爬虫的自主调度,优先获取热点主题相关数据。当前对于爬虫的调度 方法主要有基于网站数据更新频率的爬虫调度法,基于分发url的爬虫调度法,基于网络 距离的爬虫调度法,基于节点任务分配的爬虫调度法等;其中,基于网站数据更新频率的爬 虫调度方法根据数据源网站的更新频率来调度爬虫,一定程度上减少了爬虫服务器的资源开 销,适合于调度更新频率较慢的一些网站爬虫;基于分发url的爬虫调度法通过判断网页 正文与用户设定的主题相似度来优先分发相似度高的url给爬虫爬取,无法满足优先爬取 未来热度高的主题这一需求;基于节点任务分配的爬虫调度法主要用于解决爬虫服务器之间 的负载均衡问题,通过将大量的url映射到哈希环上,将每个爬行节点对应到环状序列的 一个片段来保证爬行节点合理分配任务,并添加虚拟节点,提高爬虫系统的鲁棒性,但仍无 法满足通过热度分配任务来跟踪主题。
3.

技术实现要素:

4.基于以上问题,本发明提供了基于组合预测法的主题词搜索爬虫调度方法及其系统,通 过预测各主题未来热度,调度高热度主题对应的爬虫,从而获取更多高热度数据,实现了在 资源有限条件下,优先跟踪高热度主题的目的。
5.为解决以上技术问题,本发明采用的技术方案如下:
6.基于组合预测法的主题词搜索爬虫调度系统,包括
7.第一获取模块,根据用户设置的关键词利用主题词搜索爬虫在数据源中获取数据;
8.数据预处理模块,用于将第一获取模块获取的数据进行预处理;
9.向量空间模型,用于将预处理后的文本数据变为由特征词权重构成的多维向量;
10.分簇模块,用于对文本数据进行分簇处理,得到的每一簇作为一个主题;
11.主题词提取模块,用于分别提取每个簇的主题词并存入数据库;
12.第二获取模块,提取数据库中的主题词,根据提取的主题词,利用爬虫从数据源获取数 据;
13.解析模块,用于将第二获取模块获取的数据解析出每条文本数据相应的转发量、点赞量 和评论量;
14.真实热度指标权重计算模块,通过解析模块解析的转发量、点赞量和评论量作为各条文 本数据的真实热度指标并计算各指标权重;
15.更新模块,将第二获取模块获取的数据通过数据预处理模块、向量空间模型和分簇模块 处理后,得到每个簇的特征词,将各簇包含的部分特征词作为主题词并更新在原来的数据库 中;
16.真实热度值计算模块,利用解析模块解析出的每条文本数据相应的转发量、点赞量和评 论量以及真实热度指标权重计算模块得到的指标权重计算每条文本数据的真实热度,再根据 分簇模块得到的主题,对各主题包含的文本数据真实热度求均值,求得的均值结果作为各主 题的真实热度值;
17.预测热度值模块,用于预测下一期每个主题词的预测热度值;
18.cpu分配模块,服务器根据预测热度值赋予各主题对应的爬虫相应的cpu占用率上限, 并开启相应数量的进程数。
19.基于组合预测法的主题词搜索爬虫调度方法,包括如下步骤:
20.步骤1、设置关键词,根据关键词利用爬虫在数据源获取数据;
21.步骤2、对数据进行预处理,将预处理数据后的处理变为由特征词的权重构成的多维向 量,并划分该多维向量成簇,人工将每个簇标注为主题,每个主题内包含的特征词作为主题 词存进数据库,形成主题词数据库;
22.步骤3、提取主题词数据库中的主题词,按照主题词编写爬虫从数据源上获取数据,用 爬取的数据解析出转发量、点赞量和评论量作为真实热度指标并利用层次分析法确定真实热 度指标权重;
23.步骤4、通过步骤3获取的数据及真实热度指标计算各主题词的真实热度值;
24.步骤5、利用组合预测法预测下一期每个主题词的预测热度值;
25.步骤6、将步骤3获取的数据经过步骤1~步骤2处理后,更新主题词数据库;
26.步骤7、根据预测热度值赋予更新后主题词数据库中各主题词对应爬虫的权重值,服务 器根据权重值调整各主题词对应爬虫的cpu占用率上限和进程开启数量,并重复步骤3~步 骤7。
27.进一步,所述步骤2中,还包括如下:
28.步骤21、数据清洗,利用正则表达式去除数据中中文以外的字符;
29.步骤22、中文分词,将获取的每一条数据正文切分成词语;
30.步骤23、去停用词,将步骤12中切分好的词语去除其中的停用词;
31.步骤24、使用向量空间模型,将一条数据变成由特征词的权重构成的多维向量。
32.进一步,所述步骤2中,还包括如下:
33.采用聚类分析方法,将每个数据单独成簇,按照相似性度量标准将相似性最高的数据先 进行合并,依照数据相似度从高到低的顺序依次合并成簇,簇间的相似度随着簇的合并而降 低,直到达到相似度阈值停止,把形成的每一簇称为一个主题,将每个主题内包含的特征词 作为主题词存进数据库中,形成主题词数据库。
34.进一步,所述步骤5中,组合预测算法包括指数平滑法、反向传播神经网络和熵值法, 利用指数平滑法和反向传播神经网络分别计算出主题的预测热度值,再根据熵值法对指数平 滑法和反向传播神经网络的计算结果赋予权重,从而得到该主题的预测热度值。
35.进一步,所述指数平滑法采用二次指数平滑法得到预测热度值。
36.进一步,所述反向传播神经网络通过样本数据的训练,不断修复网络权值和阈值
使误差 函数沿负梯度方向下降,使误差函数不断减小到阈值或达到预设的迭代次数,得到输入层和 输出层权重,最后将前期真实值输入训练好的反向传播神经网络得到预测热度值。
37.进一步,熵值法通过各项指标观测值所提供的熵值大小来确定指标权重,通过熵值判断 预测热度值的离散程度。
38.进一步,所述步骤7中,采用多开进程的方法分配爬虫的cpu,根据预测热度值赋予更 新后主题词数据库中各主题词对应爬虫的权重值,服务器根据权重值调整各主题词对应爬虫 的cpu上限值与进程开启数
39.与现有技术相比,本发明的有益效果是:本技术综合了凝聚式层次聚类、指数平滑法、 反向传播神经网络、熵值法等算法,给出了主题预测热度值的计算方法,然后通过预测各主 题未来热度,调度高热度主题对应的爬虫,从而获取更多高热度数据,实现了在资源有限条 件下,优先跟踪高热度主题的目的,可有效地跟踪高热度主题,获取更多热门主题相关数据, 更加全面、及时掌握热门主题动向。
附图说明
40.图1为本实施例的流程图;
41.图2为本实施例中真实热度值分布图;
42.图3为真实热度的拟合曲线;
43.图4为本实施例中各主题1~7期的真实热度趋势;
44.图5为第8期各类主题的数据量与热度值;
45.图6为第一类主题热度随期数的变化图;
46.图7为第二类主题热度随期数的变化图;
47.图8为第三类主题热度随期数的变化图;
48.图9为第四类主题热度随期数的变化图;
49.图10为第五类主题热度随期数的变化图;
50.图11为第六类主题热度随期数的变化图;
51.图12为第七类主题热度随期数的变化图;
52.图13为第八类主题热度随期数的变化图;
53.图14为各类主题数据量随期数的变化图。
具体实施方式
54.下面结合附图对本发明作进一步的说明。本发明的实施方式包括但不限于下列实施例。
55.基于组合预测法的主题词搜索爬虫调度系统,包括第一获取模块、数据预处理模块、 向量空间模型、分簇模块、第二获取模块、真实热度指标权重计算模块、真实热度值计算模 块、更新模块、预测热度值模块和cpu分配模块。
56.进一步的是,第一获取模块,根据用户设置的关键词利用爬虫在数据源获取文本数据, 本实施例中,数据源选自微博。
57.进一步的是,数据预处理模块,用于将获取模块获取的数据进行预处理,预处理过
程 包括数据清洗、中文分词和停用词去除。其中,数据清洗主要是利用正则表达式去除中文以 外字符的过程,像@、#以及表情符号都属于需要清洗的对象;中文分词是指将没有空格的 汉字序列切分成有意义单词的过程,通过前缀词典实现高效的词图扫描并生成句子中汉字所 有可能成词的情况的有向无向图,然后利用动态规划查找最大概率路径,从而找出词语的最 大切分组合,进而将获取的每一条文本数据切分成词语;去停用词主要是通过构建停用词表, 将无法表现文本特征的词语删除。
58.进一步的是,向量空间模型是一种常用的文本表示模型,借助切词分词技术,可将任 一文本数据中的词语切分出来,按照切分顺序以每个词语为分量,则该文本数据表示为一个 词语向量。更一般的,令文本数据集合t={t1,t2,

,t
n
},其中t
i
(i=1,2,

,n)为一个文本数据,经 过去重、词频阈值限定、停用词去除等处理,可将所有文本数据的词语向量合并成为一个新 的词语向量并称为文本数据集合t的特征词库(或特征词空间),根据文本数据的词语是否 在特征词空间中出现或出现的次数等,任一文本数据t
i
均可表示为特征词空间中的一个向量, 这种表示方式称为文本数据的向量空间模型。在确定的特征词库k=(k1,k2,

,k
m
)(任一 k
j
(j=1,2,

,m)为一个特征词)下,本实施例中文本数据的向量空间模型表示为
59.t
i
=(w
i1
,w
i2
,

,w
im
),
ꢀꢀꢀ
(1)
60.其中任一w
ij
如下计算
[0061][0062]
其中r
ij
为特征词k
j
在文本数据t
i
中出现的次数,k
j
∈t
i
表示特征词k
j
在文本数据t
i
中出现,|t|为 集合t中元素的个数,即|t|=n且本实施例中对任一特征词k
j

[0063]
进一步的是,分簇模块基于文本数据的向量空间模型,采用聚类分析方法对文本数据 集合t进行聚类分析,将文本数据集合t划分成为不同的簇。聚类分析的基础是被聚类对象 之间的相似测度,本实施例中两个文本数据之间的相似测度为欧式距离,计算公式如下:
[0064][0065]
其中本实施例中w
ij
可根据公式(2)计算,t
i
和t
l
是集合t中的两个文本数据。d(t
i
,t
l
)的取值 范围在0到1中间,d(t
i
,t
l
)越小表示文本数据t
i
和t
l
越不相似,d(t
i
,t
l
)越大表示文本数据t
i
和t
l
越相似。基于文本数据之间的余弦相似测度,本实施例中采用凝聚式层次聚类法,即按照文 本数据之间的余弦相似测度及设定的相似度阈值,依据相似性最高的文本数据优先进行合并 成簇,直到所有文本数据合并成簇停止。
[0066]
进一步的是,主题词提取模块基于分簇模块的结果,将每一簇称为一个主题,记簇的 集合为t

={t1,t2,

,t
p
},则簇t
q
(q=1,2,

,p)为一个主题。根据文本数据的向量空间模型公 式(1),主题t
q
也可用矩阵表示如下:
[0067][0068]
根据公式(2),w
ij
(i=1,2,

,n,j=1,2,

,m)也可理解为特征词k
j
在文本数据t
i
中的权重。 据此,特征词k
j
在主题t
q
中的权重w
qj
如下计算
[0069][0070]
其中|t
q
|为主题t
q
中的文本数据个数。基于特征词在主题t
q
中的权重,设置权重阈值β
q
,排 除主题t
q
的特征词集合{k1,k2,

,k
m
}中权重小于阈值β
q
的特征词,剩余的特征词作为主题t
q
的主题词并将主题词存入主题词数据库,即
[0071][0072]
进一步的是,第二获取模块,提取主题词数据库中主题t
q
的主题词,根据提取的主题 词,利用爬虫从数据源获取数据,设爬虫根据主题t
q
的主题词获取的文本数据集合为 t

q
={t
′1,t
′2,

,t

n

},其中n

为爬虫根据t
q
的主题词爬到的文本数据数量;
[0073]
进一步的是,解析模块,用于将第二获取模块获取的文本数据t

i

(i

=1,2,

,n

)中解析出 转发量、点赞量和评论量;
[0074]
进一步的是,真实热度指标权重计算模块,将转发量、点赞量、评论量作为真实热度 计算指标,利用权重分析方法确定指标权重ω
i

(i

=1,2,3)
[0075]
进一步的是,本实施例中采用层次分析法确定指标权重;
[0076]
进一步的是,真实热度值计算模块,通过第二获取模块获取的文本数据、解析模块解 析的数据与真实热度指标计算模块获取的权重计算主题t
q
的在第τ期的真实热度值设 文本数据t

i

的转发量、点赞量和评论量分别为b
i
′1,b
i
′2.b
i
′3且t

i

(i

=1,2,

,n

)为爬虫在第τ期获 取到文本数据,t
i

的真实热度值计算公式如公式(7)所示,主题t
q
的在第τ期的真实热度的计算公式如公式(8)所示:
[0077][0078][0079]
更新模块,将第二获取模块获取的文本数据通过数据预处理模块和向量空间模型处理 后,更新主题词数据库。
[0080]
进一步的是,预测热度值模块,通过真实热度值计算模块获取的各主题真实热度值来 得到各主题的预测热度值。对于主题t
q
,可构造期数τ与真实热度值的对应关系如下表1所示:
[0081]
表1
[0082][0083]
在图2中展示了期数τ与真实热度值的分布关系,通过构造期数τ与真实热度值的分布关系,拟合出期数τ=7时的真实热度值曲线如图3所示,再利用现有预测方法去预 测第τ d期主题t
q
的组合预测热度值
[0084]
进一步的是,本实施例采用指数平滑法和反向传播神经网络分别计算出主题的预测热度 值,再根据熵值法对指数平滑法和反向传播神经网络的主题预测热度值计算结果赋予权重, 从而得到主题t
q
的组合预测热度值
[0085]
进一步的是,cpu分配模块,根据组合预测热度值赋予各主题对应爬虫的权重值,服务 器根据权重值调整主题t
q
对应爬虫的cpu占用率上限;
[0086]
其中,将爬虫部署在同一台linux服务器,通过linux系统自带的cpulimit命令对主题 t
q
相应爬虫的cpu上限作约束,当爬虫不超过规定的cpu使用上限时不对其加约束条件, 若爬虫即将超过其规定的cpu使用上限时,服务器会做出动态调整保证其在上限值左右浮 动,负责主题t
q
的爬虫在第τ d期的cpu使用上限的计算如公式如下:
[0087][0088]
公式中,为主题t
q
对应爬虫在第τ d期的cpu上限值,m为服务器空载时可使 用的cpu资源百分比,c

表示服务器当前已经使用的cpu百分比,为主题t
q
在第 τ d期的组合预测热度值,p为主题的总数,若主题t
q
对应爬虫消耗的cpu无法达到上 限值,则可重复开启进程,达到该爬虫充分利用cpu资源的目的,主题t
q
对应爬虫在第τ d 期的进程开启的数量如公式:
[0089][0090]
公式中,为主题t
q
对应爬虫在第τ d期自身所占cpu的百分比,表示主 题t
q
对应爬虫在第τ d期的剩余cpu资源较爬虫自身所占cpu资源的倍数,表示主 题t
q
对应爬虫在第τ d期需要开启的进程数量。公式中,当时,规定是为 了保证每个主题对应的爬虫都至少有一个进程在运行;当时,规定是为 了防止进程开启数过多而导致的运行内存不足等其它问题。
[0091]
进一步的是,若当前期数超过预测的期数τ d,重复步骤3~7。
[0092]
如图1所示的,基于组合预测法的主题词搜索爬虫调度方法,包括如下步骤:
[0093]
步骤1、设置关键词,根据关键词利用爬虫在数据源获取文本数据;
[0094]
步骤2、对文本数据进行预处理,将预处理后的文本数据变为由特征词的权重构成的多 维向量,并划分该多维向量成簇,每个簇称为主题,每个主题内包含的部分特征词作为主题 词存进数据库,形成主题词数据库;
[0095]
步骤3、按照主题的个数编写相应数量的爬虫,提取主题词数据库中的主题词,爬虫根 据主题词从数据源上获取数据,将爬取的文本数据按照转发量、点赞量和评论量建立真实热 度指标;
[0096]
步骤4、通过步骤3获取的数据及真实热度指标计算各主题的真实热度值;
[0097]
步骤5、利用组合预测法预测下一期每个主题的预测热度值;
[0098]
步骤6、将步骤3获取的文本数据经过步骤1~步骤2处理后,更新主题词数据库;
[0099]
步骤7、根据预测热度值赋予更新后主题词数据库中各主题对应爬虫的权重值,服务器 根据权重值调整各主题对应爬虫的cpu占用率上限和进程开启数量,并重复步骤3~步骤7。
[0100]
实施例
[0101]
根据用户初始设置的关键词库,主题对应的爬虫在新浪微博上爬取实时文本数据并存 储,提取其中3000条文本数据作为训练样本,分别进行中文分词、去停用词,利用公式(1) 构建向量空间,利用公式(2)求出特征项权重,利用公式(3)进行层次聚类,以100为阈 值裁剪层次聚类树,其中去停用词使用哈工大停用词词典,不可拆分词词典为人工添加,最 终将主题形成下表2:
[0102]
表2
[0103][0104]
上表共八个主题,根据主题词,利用爬虫爬取微博上相应的文本数据以及解析出每条 文本数据的转发量、点赞量和评论量,此过程中设定每个爬虫的服务器cpu使用上限为服 务器剩余cpu百分比的八分之一;本实施例中转发量、点赞量、评论量的权重使用层次分 析法确定,首先构建判断矩阵j
[0105]
[0106]
利用算数平均法得到评论量、转发量、点赞量的权重分别约为0.7012,0.1596,0.1390; 取一天作为一期,经过一周的爬取,根据公式(7)、(8)得到这一周每期(天)各主题的 真实热度值,各主题1~7期的热度趋势如图3所示,图3中横轴为期数,纵轴为真实热度 值。根据二次指数平滑法计算出各类主题第8期的指数平滑预测热度值,除第7类外其它主 题的真实热度波动较小,因此其主题的平滑系数应取0和1之间较小的数,本实施例中取0.3, 第7类主题取0.8。
[0107]
在利用反向传播神经网络预测主题热度过程中,bp神经网络的隐含层与输出层激活函 数采用relu,损失函数采用交叉熵损失函数,优化器采用adam,隐含层设为1层,隐含层 节点数设为3,输入层节点数设为3,输出层节点数设为1,学习率设为0.01。将主题一到八 的前期真实热度值序列分别划分成组,每组由4个真实热度值组成并作为一个样本,将每组 的最后一个热度值作为输出,剩余值的作为输入,对每一个样本进行学习,用于更新输入层 与隐藏层、隐藏层与输出层的连接权重。设置最大训练次数为1000,误差允许限度为0.0001 时结束神经网络学习过程。利用训练好的网络来与预测各主题第8期的预测热度值。在网络 使用过程中以第5~7期真实热度值作为输入,用训练好的网络结构得出各主题在第8期的预 测热度值。最后用熵值法综合两种方法,即对二次指数平滑法求出的第8期预测热度值与 bp神经网络求得的第8期预测热度值赋权求和,得到的第8期组合预测热度值(熵值法预 测热度值),结果(取整)如下表3所示:
[0108]
表3
[0109][0110]
熵值法的熵值与权重如下表4所示:
[0111]
表4
[0112][0113]
本实施例所使用的服务器有16个cpu,因而空载情况下服务器可使用的cpu百分比 为1600%,其它进程已经占用了近1100%的cpu,根据预测结果与公式(18)分别计算各爬虫 在第8期时,服务器需要分配的cpu上限百分比(最少为1%),查询到各爬虫所占cpu 百分比均为3%,根据公式(19)可得各爬虫在第8期的进程开启数,cpu上限与进程开启数 量结果如下表5所示:
[0114]
表5
得高热度主题能获取更多数据,从而达到优先跟踪高热度主题的目的。
[0127]
如上即为本发明的实施例。上述实施例以及实施例中的具体参数仅是为了清楚表述发 明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以 其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包 含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜