引文分析中,以被引次数作为测度指标,常常出现大量相同的被引次数(tie),例如,两篇论文都被引用了50次。我们认为, 不同级别学者施引的份量(权重)是不同的 。但当前引文分析中,统计被引次数时大牛的引用与新手的引用被视为等同,将不同级别学者的引用做几何累加。“被引次数”、“期刊影响因子”、“即年指标”、“ h 指数”等指标无不如此。为了合理地给不同的施引赋予不同的权重, 我们 改进 Google的PageRank算法,提出ArticleRank算法 。与“被引次数 ”这一指标相比, 该算法能有效地区分不同级别学者的引用,尤其适合测度高被引论文的学术影响力。 论文发表在Aslib Proceedings(SSCI收录),附论文标题与摘要: ArticleRank: a PageRank-based alternative to numbers of citations for analysing citation networks Abstract Purpose – The purpose of this paper is to suggest an alternative to the widely used Times Cited criterion for analysing citation networks. The approach involves taking account of the natures of the papers that cite a given paper, so as to differentiate between papers that attract the same number of citations. Design/methodology/approach – ArticleRank is an algorithm that has been derived from Google’s PageRank algorithm to measure the influence of journal articles. ArticleRank is applied to two datasets – a citation network based on an early paper on webometrics, and a self-citation network based on the 19 most cited papers in the Journal of Documentation – using citation data taken from the Web of Knowledge database. Findings – ArticleRank values provide a different ranking of a set of papers from that provided by the corresponding Times Cited values, and overcomes the inability of the latter to differentiate between papers with the same numbers of citations. The difference in rankings between Times Cited and ArticleRank is greatest for the most heavily cited articles in a dataset. Originality/value – This is a novel application of the PageRank algorithm. Keywords – Bibliographies, Reference services Paper type – Research paper
本来是按照之前的计划来的,但是突然有个想法觉的pagerank貌似能和 异构网络结合一下,然后想突击一个实验,, 但是在读论文和做实验的时候,真是卡的不行。 有一些知识点,比如EM算法和 SVM算法的实现 等基础 性知识花费时间太多,这些算法吧,大家说起来都知道,但是实现或者能用起来是个问题。 现在感觉处于一个递归返回的过程中,所以先把我这几天关于 PageRank 的一些总结和想法贴上,,只是一个类似于草稿的形式。等这个体系好了以后,我再美化下。 内容: pageRank 一些基本知识总结: pagerank资料.zip 但是PageRank 自提出之后,就有很多问题了,如下面所列。 然后这所有的分类都归属到,techniques to combat link based spam, 都是基于链接的对抗方法 link farms 构造大量的虚拟网页,相互指向 危害很严重的 好的网页排名上去,坏的网页排名下去,这是最正常的情况吧, 那么什么是不好的情况呢,好的网页排名下降,或者是坏的网页的排名上升 而实际上,这样做的方法 这里介绍一种 叫做 trustrank 的方法 comment spam 评论垃圾 product network 那么这里的 comment network 就是这样的感觉 comment spam,感觉这招叫做借刀杀人,比如一个人开了一个博客 或者说是新浪的博客吧,写了一篇非常好的文章,各种人都转载,然后就有一堆贱人在下面留言,留下一堆spam 网页的链接 这样做的结果就是把好我网页给拖下水 link bombing 连接炸弹 同样是构造大量的虚拟网页,不过其目的是占领某一个关键词 构造大量的网页包含相同的关键词,以及超链接,链接到目标网页去, 这是一种另类的破坏 google 或者百度 都是屏蔽了一些关键词的 比如胡春华,令计划,李小鹏 这样的一些背后的大佬 还有一些被抹杀的事件,比如林彪,江青,孙维世 好吧,这就是传说中的无辜躺枪,知道为什么google 经常被屏蔽吗。。 针对这种躺枪的情况,我自己觉的真是没有什么办法了,只能是当有用户报告这个关键词的时候,然后对这个关键词的 返回结果做特殊的处理,因为这样的情况实际上没有多大的危害的而且也可以被快速修正 pager Rank 还有什么不好的地方呢: 新的网页排名肯定非常靠后,可能要出现很久之后才能得到很好的排名, 那么这个google 也是没有办法解决的 SEO就是一项为这项工作而生的,google bomb 是将这项工作做到疯狂的结果 再换一个思维,你转载别人的文章有什么好处,你自己写了篇博客 对于你的pagerank 值是一点用处都没有的,但是他的文章能被大量转载说明他的确能解决一些问题,然后这篇文章里面所包含的关键词是遇到相同问题的用户 那么实际上这个就要从信息传播的角度上来考虑了, 一方面你转载这篇文章,是因为你这篇文章的确有你所需要和欣赏的地方, 另一方面这篇文章通过你这样的转载的话,也可以让你的读者看到这条信息,如果他觉的有用,他也可能转载你的文章,那么这样的话,就对你的博客的pageRank值有提升 另外一方面呢,如果这篇文章应该是够嗷嗷了一些比较好的SEO 工作,那么你如果转载这篇文章的话,在搜索引擎进行检索的时候,你的排名也会得到相应的提高,甚至如果你在他的基础上做了进一步的SEO 优化,那么你可能会赚取更多的点击量。 举一个极端的例子 比如 如何成为 《XXX的女婿》(你懂得),这篇文章里面包含了包含了很多 非常少见的关键词 刘牛珍,杀狗坡,跑山王,而且出现次数比较多, 整个网络上除了原作者之外,只有你转载的了这篇文章,那么你搜索 如何成为XXX的女婿,那么你的排名也一定会非常的高,然后做进一步优化,将那几个特殊的关键词再进行进一步扩展,例如 《刘牛珍 和 XXX的情史》 那么当用户看原作者文章的时候,一看到刘牛珍的话,肯定不知道是谁,他会再搜索 XXX 刘牛珍,这样你就又能增加点击量了 link farm harmful: A. Borodin, G. O. Roberts, J. S. Rosenthal, and P. Tsaparas. Finding authorities and hubs from link structures on the world wide web. In Proceedings of the 10th International World Wide Web Conference, pages 415–429, Hong Kong, China, May 2001. R. Lempel and S. Moran. The stochastic approach for link-structure analysis (SALSA) and the TKC effect. Computer Networks, 33(1–6):387–401, 2000. Approaches: A graph theory-based approach can be used to detect link farms. Wu and Davison used bipartite graph for finding spam in B. Wu and B. D. Davison. Undue influence: Eliminating the impact of link plagiarism on web search rankings. In Proceedings of the 21st Annual ACM Symposium on Applied Computing, pages 1099–1104, Dijon, France, Apr. 2006. Some researchers have proposed utilizing statistical approaches to detect link farms. M. Cafarella and D. Cutting. Building Nutch: Open source. Queue, 2(2):54–61, Apr. 2004. 所以这个有什么解决的方法呢: 让网站自己管理,这些评论,前面自己加一个 no-follow 的标签 在提取这些网页内容的时候,由google自己来做处理,啊,这一听就是一个无比坑爹的想法,这主公事情肯定是可以分而治之的啊 但就是这样的愚蠢的想法,竟然还有人发了非常好的文章,,所谓学术界就是你说别人是不对,然后证明他对能发文章,证明他错也能发文章(其实也不对,只要将这种方法运用到各个子网站上就行了) 针对这种躺枪的情况,我自己觉的真是没有什么办法了,只能是当有用户报告这个关键词的时候,然后对这个关键词的 返回结果做特殊的处理,因为这样的情况实际上没有多大的危害的而且也可以被快速修正
1、表准备 存储所有网页的基本信息 CREATE TABLE ( IDENTITY (1, 1) NOT NULL , (900) COLLATE Chinese_PRC_CI_AS NULL , COLLATE Chinese_PRC_CI_AS NULL , NULL , NULL , CONSTRAINT PRIMARY KEY CLUSTERED ( ) ON ) ON TEXTIMAGE_ON GO 存储网页链接关系 CREATE TABLE ( NULL , (900) COLLATE Chinese_PRC_CI_AS NULL , NULL , (900) COLLATE Chinese_PRC_CI_AS NULL ) ON GO 2、执行脚本,填充WebPages中的REFCOUNT,使之成为链出网页的数量 declare cur_webpages cursor for select docid from webpages declare @docid int open cur_webpages fetch next from cur_webpages into @docid while (@@fetch_status=0) begin declare @rcount int select @rcount=count(*) from pagelinks where docid=@docid update webpages set refcount=@rcount WHERE CURRENT OF cur_webpages fetch next from cur_webpages into @docid end close cur_webpages deallocate cur_webpages 3、填充初始值 update webpages set weight=1.0/(select count(*) from webpages) update webpages set REVWEIGHT=0 4、计算PageRank的SQL脚本 declare @count int set @count=0 while(@count=7) begin declare cur_webpages cursor for select docid,refcount,weight,revweight from webpages declare @docid int declare @refcount int declare @weight float declare @revweight float if(@count%2=0) select docid,weight into pagebak from webpages else select docid,revweight as weight into pagebak from webpages CREATE INDEX ON . ( ) open cur_webpages fetch next from cur_webpages into @docid,@refcount,@weight,@revweight while (@@fetch_status=0) begin if @refcount0 begin if(@count%2=0) update pagebak set weight=weight+(@weight/@refcount) where docid in (select anchordocid from pagelinks where docid=@docid ) else update pagebak set weight=weight+(@revweight/@refcount) where docid in (select anchordocid from pagelinks where docid=@docid ) end fetch next from cur_webpages into @docid,@refcount,@weight,@revweight end close cur_webpages deallocate cur_webpages if(@count%2=0) begin update webpages set revweight=0.2+(select weight from pagebak where pagebak.docid=webpages.docid) update webpages set revweight=revweight/(select sum(revweight) from webpages) end else begin update webpages set weight=0.2+(select weight from pagebak where pagebak.docid=webpages.docid) update webpages set weight=weight/(select sum(weight) from webpages) end drop table pagebak select * from webpages set @count=@count+1 end
From: http://www.technologyreview.com/blog/arxiv/24821/ Scientist Finds PageRank-Type Algorithm from the 1940s Google's PageRank algorithm was developed in 1998. But a project to trace the history of such algorithms reveals an example from the 1940s. kfc 02/17/2010 7 Comments