我已阅读http://en.wikipedia.org/wiki/PageRank中的解释,我理解页面排名是通过传入链接和外出链接计算的。
我在抓取网页并在db中存储时有一个抓取工具我需要一个页面排名算法。 我有一个包含以下值的数据库
Title
url
content_html
outgoing_links(external domain)
internal_links(the links with same domain of the url)
你可以解释我是否需要任何其他值来计算页面排名和。请解释如何使用java
计算它答案 0 :(得分:1)
PageRank的核心是线性代数特征值问题:
http://www.rose-hulman.edu/~bryan/googleFinalVersionFixed.pdf
如果你不知道线性代数或特征值问题,或者不愿意阅读本文,那么你就不太可能解决这个问题。正如爱因斯坦所说,“让问题尽可能简单,但不要简单......”
论文的标题是旧的;它指的是谷歌大约在2004年的市值。今早它的价格高达211亿美元。
这项技术一直没有停滞不前。谷歌继续以专有方式调整算法。但是这篇论文解释了它的核心。
答案 1 :(得分:1)
您有几个选择。如果您想自己完成这一切,那么duffymo的解决方案是完美的,但如果您想使用现有的库,我会建议类似于Jung的图形。
我不确定您是否熟悉graphs,但它们可用于存储链接的结构,而且大多数库中都包含pagerank。根据您的想法,良好的内存解决方案是Jung,但是如果您需要持久的数据库存储,而不是将数据加载到Neo4J,那么就必须安装gremlin做pagerank)。
以上是Java解决方案,但如果你想自己做(并且像我一样不喜欢干燥的研究论文),那么我会强烈建议书编程集体智慧。他们经历了(第4章?我认为)从头开始创建一个搜索引擎,其中包括用于监控点击的pagerank和神经网络。根据您的上述要求,唯一的问题是本书是用python编写的,但您可以轻松地将逻辑应用于java。如果您已经了解了一些python,那么您甚至可以免费下载书籍源代码并查看软件(但是源代码中的代码背后的数学没有解释)。
希望有所帮助