Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186424
  • 博文数量: 13
  • 博客积分: 1660
  • 博客等级: 上尉
  • 技术积分: 688
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 16:38
文章分类
文章存档

2014年(2)

2013年(11)

分类: 大数据

2013-01-14 22:03:18

1.爬虫,广度优先遍历
问题:

a数据量大的时候,如何快速判断是否已经读取过。

    -------布隆过滤,最先用在反垃圾邮件上,范化的hash?,特点是占空间小,代价是可以会漏算,但是不会冤枉。

b分布式爬虫怎么并发
c递归树里某一层的量太大了,放在哪里,数据库里?


2.大型的搜索引擎会建立倒排索引,书中目前木有。
word1-->doc1--->doc4--->doc5--->doc8……
word2-->doc2--->doc3--->doc4--->doc6……
word3-->doc1--->doc2--->doc5--->doc10……
用3个指针循环嵌套找出多词查询

3.索引在数据库中的schema。这里例子太简单了。
5张表,wordlist(id,word),urllist(id,url),wordlocation(urlid,wordid,location),
这里的location是指的单个url的wordlist的下标。
linklist(linkid,pre_urlid,next_urlid),
linkword(wordid,linkid)

4.查询,例如找出单词10和单词17的:

select w0.urlid,w0.location,w1.location
from wordlocation w0 , wordlocation w1
where w0.urlid = w1.urlid
and w0.wordid = 10
and w0.wordid = 17


5.排序,PagRank算法
词频TF(word) = 单词在文档中的概率
文频DF(word) = log (   包含单词word的文档概率 )
TF-IDF = sum(TF/DF)   
例如对"the",所有文档都出现,那么DF=0,没有权重

对于4中找出来的docment链表{1,2,3,4,5,6,7,8,9,10}怎么排序?

A.计算上诉的pagerank,简单的就是看谁的入度最大。
B.计算linkword里的wordid,出现则重要
C.看word在doc中排的位置(越早出现,越重要)
D.DF(单词对这个文档的频率越大,文档权重越高)


6.让搜索引擎从点击中学习
将点击反馈到搜索排名里


如果详细了解主流的算法,推荐《这就是搜索引擎》。后续写读书笔记。

阅读(2422) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~