﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-pinuo-随笔分类-Search Engine and IR</title><link>http://www.blogjava.net/pinuo/category/29841.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 02 Mar 2008 14:58:04 GMT</lastBuildDate><pubDate>Sun, 02 Mar 2008 14:58:04 GMT</pubDate><ttl>60</ttl><item><title>Lucene：基于Java的全文检索引擎简介(转载)</title><link>http://www.blogjava.net/pinuo/archive/2008/03/02/183308.html</link><dc:creator>pinuo</dc:creator><author>pinuo</author><pubDate>Sun, 02 Mar 2008 13:35:00 GMT</pubDate><guid>http://www.blogjava.net/pinuo/archive/2008/03/02/183308.html</guid><wfw:comment>http://www.blogjava.net/pinuo/comments/183308.html</wfw:comment><comments>http://www.blogjava.net/pinuo/archive/2008/03/02/183308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pinuo/comments/commentRss/183308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pinuo/services/trackbacks/183308.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;    基于Java的全文索引引擎Lucene简介：关于作者和Lucene的历史     全文检索的实现：Luene全文索引和数据库索引的比较     中文切分词机制简介：基于词库和自动切分词算法的比较     具体的安装和使用简介：系统结构介绍和演示     Hacking Lucene：简化的查询分析器，删除的实现，定制的排序，应用接口的扩展     从...&nbsp;&nbsp;<a href='http://www.blogjava.net/pinuo/archive/2008/03/02/183308.html'>阅读全文</a><img src ="http://www.blogjava.net/pinuo/aggbug/183308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pinuo/" target="_blank">pinuo</a> 2008-03-02 21:35 <a href="http://www.blogjava.net/pinuo/archive/2008/03/02/183308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈 Page Rank – Google 的民主表决式网页排名技术(转载)</title><link>http://www.blogjava.net/pinuo/archive/2008/03/02/183289.html</link><dc:creator>pinuo</dc:creator><author>pinuo</author><pubDate>Sun, 02 Mar 2008 11:54:00 GMT</pubDate><guid>http://www.blogjava.net/pinuo/archive/2008/03/02/183289.html</guid><wfw:comment>http://www.blogjava.net/pinuo/comments/183289.html</wfw:comment><comments>http://www.blogjava.net/pinuo/archive/2008/03/02/183289.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pinuo/comments/commentRss/183289.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pinuo/services/trackbacks/183289.html</trackback:ping><description><![CDATA[&nbsp;
<p style="line-height: 19.2pt"><span style="font-size: 10pt; font-family: 宋体">大家可能听说过，</span><span style="font-size: 10pt; font-family: Verdana">Google </span><span style="font-size: 10pt; font-family: 宋体">革命性的发明是它名为</span><span style="font-size: 10pt; font-family: Verdana"> &#8220;Page Rank&#8221; </span><span style="font-size: 10pt; font-family: 宋体">的网页排名算法，这项技术彻底解决了搜索结果排序的问题。其实最先试图给互联网上的众多网站排序的并不是</span><span style="font-size: 10pt; font-family: Verdana"> Google</span><span style="font-size: 10pt; font-family: 宋体">。</span><span style="font-size: 10pt; font-family: Verdana"><a href="http://battellemedia.com/archives/000935.php" target="_blank">Yahoo<span style="font-family: 宋体">！</span><span style="font-family: 宋体">公司最初</span></a></span><span style="font-size: 10pt; font-family: 宋体">第一个用目录分类的方式让用户通过互联网检索信息，但由于当时计算机容量和速度的限制，当时的</span><span style="font-size: 10pt; font-family: Verdana"> Yahoo</span><span style="font-size: 10pt; font-family: 宋体">！</span><span style="font-size: 10pt; font-family: 宋体">和同时代的其它搜索引擎都存在一个共同的问题：</span><span style="font-size: 10pt; font-family: 宋体">收录的网页太少，而且只能对网页中常见内容相关的实际用词进行索引。那时，用户很难找到很相关信息。我记得</span><span style="font-size: 10pt; font-family: Verdana"> 1999 </span><span style="font-size: 10pt; font-family: 宋体">年以前查找一篇论文，要换好几个搜索引擎。后来</span><span style="font-size: 10pt; font-family: Verdana"> DEC </span><span style="font-size: 10pt; font-family: 宋体">公司开发了</span><span style="font-size: 10pt; font-family: Verdana"> <a href="http://www.websearchworkshop.co.uk/altavista_history.php" target="_blank">AltaVista</a> </span><span style="font-size: 10pt; font-family: 宋体">搜索引擎，只用一台</span><span style="font-size: 10pt; font-family: Verdana"> ALPHA </span><span style="font-size: 10pt; font-family: 宋体">服务器，却收录了比以往引擎都多的网页，而且对里面的每个词进行索引。</span><span style="font-size: 10pt; font-family: Verdana">AltaVista </span><span style="font-size: 10pt; font-family: 宋体">虽然让用户搜索到大量结果，但大部分结果却与查询不太相关，有时找想看的网页需要翻好几页。所以最初的</span><span style="font-size: 10pt; font-family: Verdana"> AltaVista </span><span style="font-size: 10pt; font-family: 宋体">在一定程度上解决了覆盖率的问题，但不能很好地对结果进行排序。</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
Google </span><span style="font-size: 10pt; font-family: 宋体">的</span><span style="font-size: 10pt; font-family: Verdana"> &#8220;Page Rank&#8221; </span><span style="font-size: 10pt; font-family: 宋体">（网页排名）是怎么回事呢？其实简单说就是民主表决。打个比方，假如我们要找李开复博士，有一百个人举手说自己是李开复。那么谁是真的呢？也许有好几个真的，但即使如此谁又是大家真正想找的呢？</span><span style="font-size: 10pt; font-family: Verdana">:-) </span><span style="font-size: 10pt; font-family: 宋体">如果大家都说在</span><span style="font-size: 10pt; font-family: Verdana"> Google </span><span style="font-size: 10pt; font-family: 宋体">公司的那个是真的，那么他就是真的。</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
</span><span style="font-size: 10pt; color: green; font-family: 宋体">在互联网上，如果一个网页被很多其它网页所链接，说明它受到普遍的承认和信赖，那么它的排名就高。这就是</span><span style="font-size: 10pt; color: green; font-family: Verdana"> Page Rank </span><span style="font-size: 10pt; color: green; font-family: 宋体">的核心思想。</span><span style="font-size: 10pt; font-family: 宋体">当然</span><span style="font-size: 10pt; font-family: Verdana"> Google </span><span style="font-size: 10pt; font-family: 宋体">的</span><span style="font-size: 10pt; font-family: Verdana"> Page Rank </span><span style="font-size: 10pt; font-family: 宋体">算法实际上要复杂得多。比如说，对来自不同网页的链接对待不同，本身网页排名高的链接更可靠，于是给这些链接予较大的权重。</span><span style="font-size: 10pt; font-family: Verdana">Page Rank </span><span style="font-size: 10pt; font-family: 宋体">考虑了这个因素，可是现在问题又来了，计算搜索结果的网页排名过程中需要用到网页本身的排名，这不成了先有鸡还是先有蛋的问题了吗？</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
Google </span><span style="font-size: 10pt; font-family: 宋体">的两个创始人拉里</span><span style="font-size: 10pt; font-family: Verdana">&#8226;</span><span style="font-size: 10pt; font-family: 宋体">佩奇</span><span style="font-size: 10pt; font-family: 宋体">（</span><span style="font-size: 10pt; font-family: Verdana"><a href="http://www.google.com/intl/en/corporate/execs.html#larry" target="_blank">Larry Page</a> </span><span style="font-size: 10pt; font-family: 宋体">）和谢尔盖</span><span style="font-size: 10pt; font-family: Verdana">&#8226;</span><span style="font-size: 10pt; font-family: 宋体">布林</span><span style="font-size: 10pt; font-family: Verdana"> (<a href="http://www.google.com/intl/en/corporate/execs.html#sergey" target="_blank">Sergey Brin</a>) </span><span style="font-size: 10pt; font-family: 宋体">把这个问题变成了一个二维矩阵相乘的问题，并且用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的，并且根据这个初始值，算出各个网页的第一次迭代排名，然后再根据第一次迭代排名算出第二次的排名。他们两人从理论上证明了不论初始值如何选取，这种算法都保证了网页排名的估计值能收敛到他们的真实值。值得一提的事，这种算法是完全没有任何人工干预的。</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体">理论问题解决了，又遇到实际问题。因为互联网上网页的数量是巨大的，上面提到的二维矩阵从理论上讲有网页数目平方之多个元素。如果我们假定有十亿个网页，那么这个矩阵</span><span style="font-size: 10pt; font-family: 宋体">就有一百亿亿个元素。这样大的矩阵相乘，计算量是非常大的。拉里和谢尔盖两人利用稀疏矩阵计算的技巧，大大的简化了计算量，并实现了这个网页排名算法。今天</span><span style="font-size: 10pt; font-family: Verdana"> Google </span><span style="font-size: 10pt; font-family: 宋体">的工程师把这个算法移植到并行的计算机中，进一步缩短了计算时间，使网页更新的周期比以前短了许多。</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体">我来</span><span style="font-size: 10pt; font-family: Verdana"> Google </span><span style="font-size: 10pt; font-family: 宋体">后，拉里</span><span style="font-size: 10pt; font-family: Verdana"> (Larry) </span><span style="font-size: 10pt; font-family: 宋体">在和我们几个新员工座谈时，讲起他当年和谢尔盖</span><span style="font-size: 10pt; font-family: Verdana">(Sergey) </span><span style="font-size: 10pt; font-family: 宋体">是怎么想到网页排名算法的。他说：</span><span style="font-size: 10pt; font-family: Verdana">"</span><span style="font-size: 10pt; font-family: 宋体">当时我们觉得整个互联网就像一张大的图</span><span style="font-size: 10pt; font-family: 宋体">（</span><span style="font-size: 10pt; font-family: Verdana">Graph)</span><span style="font-size: 10pt; font-family: 宋体">，每个网站就像一个节点，而每个网页的链接就像一个弧。我想，互联网可以用一个图或者矩阵描述，我也许可以用这个发现做个博士论文。</span><span style="font-size: 10pt; font-family: Verdana">" </span><span style="font-size: 10pt; font-family: 宋体">他和谢尔盖就这样发明了</span><span style="font-size: 10pt; font-family: Verdana"> Page Rank </span><span style="font-size: 10pt; font-family: 宋体">的算法。</span><span style="font-size: 10pt; font-family: Verdana"><br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体">网页排名的高明之处在于它把整个互联网当作了一个整体对待。它无意识中符合了系统论的观点。相比之下，以前的信息检索大多把每一个网页当作独立的个体对待，很多人当初只注意了网页内容和查询语句的相关性，忽略了网页之间的关系。</span><span style="font-size: 10pt; font-family: Verdana"> <br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体">今天，</span><span style="font-size: 10pt; font-family: Verdana">Google </span><span style="font-size: 10pt; font-family: 宋体">搜索引擎比最初复杂、完善了许多。但是网页排名在</span><span style="font-size: 10pt; font-family: Verdana"> Google </span><span style="font-size: 10pt; font-family: 宋体">所有算法中依然是至关重要的。在学术界</span><span style="font-size: 10pt; font-family: Verdana">, </span><span style="font-size: 10pt; font-family: 宋体">这个算法被公认为是文献检索中最大的贡献之一，并且被很多大学引入了信息检索课程</span><span style="font-size: 10pt; font-family: Verdana"> (Information Retrieval) </span><span style="font-size: 10pt; font-family: 宋体">的教程。</span></p>
 <img src ="http://www.blogjava.net/pinuo/aggbug/183289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pinuo/" target="_blank">pinuo</a> 2008-03-02 19:54 <a href="http://www.blogjava.net/pinuo/archive/2008/03/02/183289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数学之美系列(转载)</title><link>http://www.blogjava.net/pinuo/archive/2008/03/02/183288.html</link><dc:creator>pinuo</dc:creator><author>pinuo</author><pubDate>Sun, 02 Mar 2008 11:50:00 GMT</pubDate><guid>http://www.blogjava.net/pinuo/archive/2008/03/02/183288.html</guid><wfw:comment>http://www.blogjava.net/pinuo/comments/183288.html</wfw:comment><comments>http://www.blogjava.net/pinuo/archive/2008/03/02/183288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pinuo/comments/commentRss/183288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pinuo/services/trackbacks/183288.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/pinuo/archive/2008/03/02/183288.html'>阅读全文</a><img src ="http://www.blogjava.net/pinuo/aggbug/183288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pinuo/" target="_blank">pinuo</a> 2008-03-02 19:50 <a href="http://www.blogjava.net/pinuo/archive/2008/03/02/183288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>