MapReduce在搜索引擎中一些应用

本文介绍了MapReduce在搜索引擎中的应用,包括构建word-doc矩阵、图的宽度优先遍历(Dijkstra算法)、Page Rank网页排序算法,以及在HMM和K-means算法中的作用。MapReduce在处理大规模数据时,如Dijkstra算法的迭代实现,展示了其处理分布式计算的能力,但面对密集图时效率不如单进程算法。Page Rank通过迭代计算网页重要度,而HMM和K-means则分别在语音识别和聚类分析中有广泛应用。
摘要由CSDN通过智能技术生成

word-doc矩阵

在进行文件分类或文档检索的时候,我们通常需要建立一个word-doc矩阵,来记录每个词在每篇文档中出现的次数。

class Mapper
	method map(docid id,doc d)
		foreach term in d
			Emit(pair(term,id),1)

一种更高效的方法是在mapper侧进行聚合。

class Mapper
	method map(docid id,doc d)
		H := new AssociativeArray
		foreach term in d
			H{term} := H{term}+1
		foreach term in H
			Emit(pair(term,id),H{term})

图的宽度优先遍历

现代的爬虫一般采用宽度优先的规则来遍历网络。还有在Dijkstra算法中也是一种宽度优先的规则--每发再一个新的最近点,就更新与之相邻的节点的dist。我们可以用MapReduce迭代的方式来实现Dijkstra算法。每轮迭代运行一次Map-Reduce,最多迭代N次,N是图中节点的个数。用邻接链表来存储图。算法开始时,起始节点的dist赋0,其余的节点dist赋无穷大。先考虑简单的情形--每条边的权值都是1。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值