在公式(1)中,W(t,d)是指在文本d中条目t的权值,tf(t,d)是指在文本d中条目t的频率,N表示存在的文本数量,nt意味着文本中包括条目t的数量,分母是一个归一化因子。
在实践中,我们注意到,条目出现的位置是非常重要的。例如,标题,开头或者结尾处出现的题目大部分都是关键字。因此,我们修改的权值计算公式,它可以使用公式(2)来描述:
当条目出现在标题,开头或结尾部分是,at =0.5。当条目出现在其余部分是,at为零。
当计算完矩阵D后,我们开始计算的K秩近似矩阵Dk,其基于矩阵D的SVD(奇异值分解)。奇异值分解后,矩阵D可表示为:D =UΛVT。在这里,U代表D的左奇异矩阵和V代表D的右奇异矩阵。 Λ是对角矩阵包含D的奇异值降序。然后在K秩近似矩阵Dk可形成与前面的“K”列在U和V列,即Dk=UkΛkVkT。Uk和Vk列正交。 Dk是用来表示D近似值,并且Uk和Vk分别代表条目向量和文本向量。本文来自辣~文'论,文·网原文请找腾讯324-9114
3.当网络蜘蛛正在进行搜索时,它绘制出超链接的圆周项并命名为X,然后在将X放入到队列中。X的特征向量是:X=(x1,x2,x3,…,xr),xi可以通过修改后公式(2)权重来计算。X项目进入Dk的空间然后产生XX:XX=XTUkΛk-1。现在我们来计算XX和Vk的行向量之间的相似性。假设 XX = (X¬1,... , XK),一个由Vk确定的行向量是
论文网http://www.751com.cn/ V =( V1,... Vk),计算相似性的公式为:
将所得到的相似性求和,并将总和和一个给定的值进行比较。如果总和高于给定值,我们认为超链接和商业相关。
3程序优化
3.1过滤文本中的条目
实验表明,文本矩阵的文度不能太大。否则,将会需要花更多的时间来判断超链接是否面向商业。因此,我们通常使用分解方案分解文字和签署条目的属性。删除那些对于认识条目是否为面向商业做出最少贡献的东西,如介词,并保持名词,动词,形容词和副词。我们将动词分为三组:连接动词,状态动词和行为动词。然后删除连接动词和状态动词。计算剩余条目的权值,以降序排的方式用数组进行排列,然后使用最顶端的n个条目。
3.2使用线程池
实验表明,多线程机制可以提高网络蜘蛛的效率。通过使用多线程技术,网络蜘蛛可以请求或等待其他页面处理,并同时处理当前的页面。通常蜘蛛程序为每个请求建立一个线程。但是也要花费相当多的成本用于为每个需求建立一个新的线程。当有很多的需求时,比起处理当前线程,将花费更多的时间和系统资源用于建立和销毁线程。所以我们使用线程池来解决这个问题。在线程池中,线程数是事先给定的。过多或过少的线程会降低网络蜘蛛的效率。通过线程池将任务分配给每个线程。当一个线程完成一个任务后,线程池将分配给它下一个新的任务。由于线程的数量是一定的,额外的线程不能建立。
我们可以使用一个可用的线程池方案,而不是自己设计新线程池。杰夫希顿在他的论文“创建了Java线程池”提供了一个线程池类,这在 可以找到。Doug Lea也开发了一个并发实用程序util.concurrent,这是一个开源的程序。在开源集中,PooledExecutor类是非常有效和广泛使用的,这是基于工作队列的权利的实现。在我们的实验中使用的线程池由杰夫希顿编写。本文来自辣~文'论,文·网原文请找腾讯32^49114
现在,使用线程池的算法可以描述为如下步骤:
(1)建立一个给定的大小为n的线程池;
(2)为其他网址检查等待队列。如果有等待网页需要处理,转至步骤(3)如果为空,程序结束。
(3)建立一个工作线程MySpiderWorker处理的下一个URL;为空闲线程检查线程池。如果有空闲线程,用它来处理MySpiderWorker,然后转向步骤(2)如果为null,保持MySpiderWorker等待直到在线程池中出现一个空闲线程。
上一页 [1] [2] [3] [4] 下一页
网络信息过滤技术英文文献和翻译 第2页下载如图片无法显示或论文不完整,请联系qq752018766