搜索相关知识
1,TF-IDF (Term Frequence - Inverse Document Frequency)
这个算法用来评价一个词(Term)对整个文档的重要程度,它只考虑了两个因素:(1) 这个词条在本文档中出现的次数是否高 (2) 这个词在所有文档中出现的次数是否高。算法的思想很容易搞懂:在本文档中出现次数多的词儿自然是重要的,但是得惩罚那些常用词汇,也就是所有文档中出现的次数都很高词。TF-IDF经常用在搜索引擎,用来计算query与document的相关度。
公式去看维基百科:http://en.wikipedia.org/wiki/Tf%E2%80%93idf
2,VSM 空间向量模型
是一个用来表示文本文件的代数模型。
维基百科:http://zh.wikipedia.org/wiki/%E5%90%91%E9%87%8F%E7%A9%BA%E9%96%93%E6%A8%A1%E5%9E%8B
3,PageRank Algorithm
PageRank是用来衡量一个网页质量的算法。下面这句话概括的非常精辟:
“PageRank works by counting the number and quality of links to a page to determine a rough estimate of how important the website is. The underlying assumption is that more important websites are likely to receive more links from other websites.”
PageRank算法的输出是一个概率分布,这个概率分布描述了任意一次点击到达互联网上的某一个网页的概率(represent the likelihood that a person randomly clicking on links will arrive at any particular page)。
维基百科:http://en.wikipedia.org/wiki/PageRank
4,BM25
http://www.luokr.com/p/7
5,suggestion
在搜索框中输入一个词的时候,会出现提示词,这一技术是如何实现的呢?
最基本的一种方法是trie树+topK。当用户输入一个词的时候,利用trie树找到以这个词为前缀的所有词,然后利用TopK算法找到热度排名前K的几个词。当然,数据库里面会存每个搜索过关键词的频度数据。
具体参考:http://blog.csdn.net/v_july_v/article/details/11288807
6,如何实现拼写检查
http://blog.afterthedeadline.com/2010/01/29/how-i-trie-to-make-spelling-suggestions/ (还未读,有时间读一读~)
7,倒排索引 (reverse index)
(1)倒排索引是用来做什么的?
索引都是用来寻找数据的。倒排索引就是用来根据内容查找文档的。(在文档中查找内容,叫正排索引)。常用在文档检索中。
(2)倒排索引的工作原理?
如下图,给定一个单词,就可以知道所有出现过该词的文档。
可以用这个词在文档出现的次数作为权重
8,图解google搜索过程