一.整体设计目标
微博是一个类似于巨大广场的社交平台,在这个广场上你的声音可能被任何人看到,也有可能淹没在巨量的声音中,那么如何在这个广场上找到与你喜好相似,一拍即合的朋友呢?
本程序利用协同过滤算法,根据用户之间的关注的相似性进行推荐关注,以做到为其推荐的用户为与其关注相似度最高的用户。
基本操作方法是遍历数据中的每个用户,取出其关注。基于当前用户的关注列表集合,对其相似用户集合进行过滤,得出与其最相似的用户(共同关注最多的用户)
————————————————————————
正如前言所说,微博这个巨大广场上有着海量的用户和极大量的数据,任何两个用户的关注列表内容可能风马牛不相及,我们也没有微博运营方那样拥有最全面的关注数据,所以想要选取“有着一部分关注是相同的”、“为某个共同爱好聚集到一起的”的用户,有以下选择方法:
- 去明星的粉丝列表爬取其粉丝
- 去因兴趣聚集的超级话题内爬取发言用户
第一个方法的弊端在于一些明星或营销号有着很多的僵尸粉(只维持最基本的发言保证账号活性,实际并非作为一个人的日常生活账号使用,不能代表个人),超级话题的粉丝列表也有这种弊端,故选取的是最近风头较热的手机游戏“摩尔庄园”超级话题,并选择的是超级话题内最近发言的用户爬取其关注列表。这样一来既可以保证爬取的用户近期都有着最基本的共同爱好,也可以保证他们是活人而非僵尸号。
二.代码总体框架
总共有两个部分,分别为爬虫部分和计算推荐部分
爬虫部分是我在GitHub上找到的现成的改了改(自己试着写了