Google - 数学之美系列 - 我的小结

今天从头到尾的把吴军研究员写的数学之美系列又阅读了一遍。打算从程序员的角度,把与搜索引擎相关的内容整理一下。

要做一个搜索引擎,首先就得把尽量多的网页下载回来。而为了能获得尽量多的网页,就需要对互联网进行一个遍历?这里面用到的就是图论的内容,遍历可以分为两种深度优先或广度优先。当然在遍历过程中需要标记哪个页面已经访问过,而哪些尚未被访问,这里可以使用哈希表进行标记,但由于网址的长度比较大,所以,为了节省空间,我们可以为每个网址产生一个唯一的信息指纹

当我们获取了网页以后,要进行的第二个工作就是对他进行索引,而为了索引,则必须首先对其进行分词,也就是把句子转化为词语,这里需要用到统计语言模型。分好词以后,我们就可以真正的进行索引操作,这里使用的就是布尔代数,对于每一个关键词,我们都有一个二进制数,该二进制数的每一位就对应到一篇文章,如果该文章包含了该关键词,那么该文章对应的位就标记为1,否则标记为0

在索引时,我们还需要计算每个页面的PageRank,从而决定在查询时,应该把那些页面放到前面。

完成了索引的工作以后,我们的数据库就基本建成了,接下来的工作就是等待用户进行查询。

由于词语一般都具有多义性,所以,在查询时,我们首先需要判断用户到底是想要词的哪个意思。如果用户的查询词语不止一个,那么我们就可以利用互信息,来判断用户的查询意图,提高查询的准确性。通过之前建立的索引,我们可以很容易的找到包含这些关键词的页面都有哪些。

在得到这些页面以后,返回用户以前,我们还需要对结果进行排序。这里我们一方面需要参考页面的PageRank值,另一方面还需要考虑关键词的TF/IDF(词频-反向文档频率)值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值