当前ossean去重过程如下:
问题及优化:
1.目前通过homepage 判断是否是相同项目,只是简单地字符串判别(加上https等前缀)是否相等。
然而不同社区对项目的链接的地址不一样,比如:
OSChina上tortoise svn的主页地址为:http://tortoisesvn.tigris.org/;
Openhub上tortoise svn的地址为:http://tortoisesvn.net;
解决方法:可以过滤掉一级域名、社区前缀、后缀信息,进行比较。
2.当前默认若项目来自同一社区,则判别不重复。
sourceforge社区有很多相同项目,比如Hibernate在sourceforge中,很多都是个人上传的项目,名字相同,且这些项目没有项目标签和描述信息,是否可以根据页面信息,下载量等直接过滤掉,因为本身价值不大。
https://sourceforge.net/projects/hibernate/?source=directory-featured
https://sourceforge.net/projects/hibernatemyproject/?source=directory;
https://sourceforge.net/projects/hibneraexample/?source=directory;
3.由项目名相同判断是否重复,不够准确
应该在这个判断基础上,再通过homepage,项目tag、描述进行相似度比较。
4.别名(同义词)提取算法还可优化,去重主要通过别名(包含项目名称)得到与新项目相关联的匹配项目,有时候没有提取到,导致漏掉一些名字相似的匹配项目,比如openhub的spring 和sourceforge社区的 spring framework,实为同一项目。
另外,对于具有相同别名但识别为不同项目的,应只对其中一个项目保留该别名,即所有项目最终都不应保留相同别名,使得后面的项目,帖子匹配更精确。
5.根据项目标签和描述信息计算相似度,效果不是很好,继续优化根据tag和描述信息计算相似度的算法。
总结:应当主要通过homepage来匹配项目,项目名称相同的需要再利用其他信息判别,要尽量保证匹配的项目一定是重复的,且一个别名只对应一个项目,否则对于后面的项目帖子匹配会有影响。