一种微博信息抓取方法及装置与流程

文档序号:11780227阅读:271来源:国知局
一种微博信息抓取方法及装置与流程
本发明涉及网络技术领域,具体涉及一种微博信息抓取方法及装置。

背景技术:
随着微博的日趋普及,微博用户量也在不断的稳步上升,每天数以千万计的用户发布的微博所包含的信息量是不可小觑的。为了从用户发布的众多微博中提取出新闻热点,或者根据用户发布的微博分析用户的兴趣,进行微博营销,就需要及时全面的抓取用户所发布的微博信息。目前的信息抓取过程主要是调用微博平台API来实现,但是出于对微博平台的维护成本以及信息保留等方面的考虑,各大微博平台对信息抓取的次数以及频率都有所限制,即抓取资源有限。为了在有限的资源内,尽量多的抓取高质量的微博信息,就需要设置一个合适的微博信息抓取周期,并按照抓取周期向微博平台发送抓取请求,获取用户发布的微博信息。但是,众所周知的,不同的微博用户具有其各自的特性,即不同用户的发帖行为会有所不同,甚至相同用户在不同时间的发帖行为也不尽相同,若按照固定周期抓取不同用户、或者同一用户在不同时间发布的微博信息,那么每次抓取过程获得的信息量必然存在较大差别。而若单次抓取过程获得的信息量较少,甚至没有抓取到任何信息,则可认为浪费了这次抓取资源,致使信息抓取效率低下。

技术实现要素:
本发明实施例的微博信息抓取方法及装置,通过变周期方式提高微博信息的抓取效率。为此,本发明实施例提供如下技术方案:一种微博信息抓取方法,所述方法包括:获取用户发布的历史微博,并根据所述历史微博的发布时间建立所述历史微博与预设时间点间的映射关系,所述预设时间点通过预设步长选取;将映射历史微博数的偏差在预设范围内的至少两个相邻预设时间点合并为一个时间段;根据每个时间段的时间长度及其映射的每条历史微博的权重确定每个时间段的抓取周期;根据每个时间段的抓取周期以及抓取初始时间点预测用户再次发布微博的时间点,并在该预测时间点上进行微博信息抓取。优选的,所述将映射历史微博数的偏差在预设范围内的至少两个相邻预设时间点合并为一个时间段,包括:统计每个预设时间点映射的历史微博数;判断相邻预设时间点映射的历史微博数之间的偏差是否在预设范围内,如果是,则将所述相邻预设时间点合并为一个时间段。优选的,预先设置一个合并窗,所述合并窗的窗口大小用于表示能够合并的预设时间点的个数,则所述将映射历史微博数的偏差在预设范围内的至少两个相邻预设时间点合并为一个时间段,包括:统计每个预设时间点映射的历史微博数;判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:如果是,则将所述合并窗内的预设时间点合并为一个时间段;如果否,则判断所述合并窗外是否存在未判断预设时间点,如果存在,则将所述合并窗顺序后移一个预设时间点,继续执行所述判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内的步骤,直至所述合并窗外不存在未判断预设时间点时结束本流程。优选的,所述方法还包括:在判断所述合并窗外不存在未判断预设时间点之后,将合并后的时间段作为预设时间点,继续执行所述判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内的步骤,直至相邻预设时间点映射的历史微博数之间的偏差超过所述预设范围时结束本流程。优选的,预先设置一个合并上限,所述方法还包括:将合并后的时间段作为预设时间点之后,判断所述预设时间点映射的历史微博数是否超过所述合并上限,如果否,则继续执行所述判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内的步骤,直至所述预设时间点映射的历史微博数超过所述合并上限时结束本流程。一种微博信息抓取装置,所述装置包括:映射单元,用于获取用户发布的历史微博,并根据所述历史微博的发布时间建立所述历史微博与预设时间点间的映射关系,所述预设时间点通过预设步长选取;合并单元,用于将映射历史微博数的偏差在预设范围内的至少两个相邻预设时间点合并为一个时间段;周期确定单元,用于根据每个时间段的时间长度及其映射的每条历史微博的权重确定每个时间段的抓取周期;预测单元,用于根据每个时间段的抓取周期以及抓取初始时间点预测用户再次发布微博的时间点,并在该预测时间点上进行微博信息抓取。优选的,所述合并单元包括:第一统计单元,用于统计每个预设时间点映射的历史微博数;第一判断单元,用于判断相邻预设时间点映射的历史微博数之间的偏差是否在预设范围内;第一合并子单元,用于在所述第一判断单元判断所述偏差在所述预设范围内时,将所述相邻预设时间点合并为一个时间段。优选的,预先设置一个合并窗,所述合并窗的窗口大小用于表示能够合并的预设时间点的个数,则所述合并单元包括:第二统计单元,用于统计每个预设时间点映射的历史微博数;第二判断单元,用于判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:第二合并子单元,用于在所述第二判断单元判断所述偏差在所述预设范围内时,则将所述合并窗内的预设时间点合并为一个时间段;第三判断单元,用于在所述第二判断单元判断所述偏差未在所述预设范围内时,判断所述合并窗外是否存在未判断预设时间点;后移单元,用于在所述第三判断单元判断所述合并窗外存在所述未判断预设时间点时,将所述合并窗顺序后移一个预设时间点,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至所述合并窗外不存在未判断预设时间点时结束。优选的,所述合并单元还包括:第三合并子单元,用于在所述第三判断单元判断所述合并窗外不存在未判断预设时间点之后,将合并后的时间段作为预设时间点,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至相邻预设时间点映射的历史微博数之间的偏差超过所述预设范围时结束。优选的,预先设置一个合并上限,所述合并单元还包括:第四判断单元,用于在所述第三判断单元判断所述合并窗外不存在未判断预设时间点之后,将合并后的时间段作为预设时间点,并判断所述预设时间点映射的历史微博数是否超过所述合并上限;所述第三合并子单元,还用于在所述第四判断单元判断所述预设时间点映射的历史微博数未超过所述合并上限时,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至所述预设时间点映射的历史微博数超过所述合并上限时结束。本发明实施的微博信息抓取方法及装置,分析不同用户在不同时间段发布微博的行为特性,并据其设置针对该名用户不同时间段的信息抓取周期,再结合初始时间点预测用户未来发布微博的时间点,并在该预测时间点上进行微博信息抓取。这样,在用户频繁发布微博的繁忙期就可多分配一些抓取资源,而在用户较少发布或者不发布微博的空闲期则分配较少的抓取资源,或者不分配抓取资源,如此,就可避免空闲期进行信息抓取导致的资源浪费,同时还能保证繁忙期有足够的抓取资源,通过这种变周期的抓取方式提高微博信息的抓取效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。图1是本发明微博信息抓取方法的流程图;图2是本发明中预设时间点与历史微博的映射关系示意图;图3是本发明中合并时间段实施例1的流程图;图4是本发明中合并时间段实施例2的流程图;图5是本发明中合并时间段与历史微博的一种映射关系示意图;图6是本发明中合并时间段实施例3的流程图;图7是本发明中合并时间段与历史微博的另一种映射关系示意图;图8是本发明中合并时间段实施例4的流程图;图9是本发明微博信息抓取装置的示意图;图10是本发明中合并单元实施例1的示意图;图11是本发明中合并单元实施例2的示意图;图12是本发明中合并单元实施例3的示意图;图13是本发明中合并单元实施例4的示意图。具体实施方式为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。为了提取新闻热点或分析用户兴趣,应及时全面的抓取用户发布的微博信息,现有技术一般采用固定周期进行信息抓取,也就是说,不论是在用户未发布微博的空闲期,还是在用户频繁发布微博的繁忙期,都会在固定周期确定出的时间点抓取信息,如此,空闲期的信息抓取过程就会造成资源浪费,而繁忙期的信息抓取过程又可能会出现资源不足等问题,致使信息抓取效率低下。针对这一问题,本发明的微博信息抓取方法及装置,先分析获得用户发布微博的行为特性,再根据其行为特性设置变周期的信息抓取方案,有针对性的进行微博信息抓取,提高信息抓取效率。下面对本发明的微博信息抓取过程进行解释说明。参见图1,示出了本发明微博信息抓取方法的流程图,可包括:步骤101,获取用户发布的历史微博,并根据所述历史微博的发布时间建立所述历史微博与预设时间点间的映射关系,所述预设时间点通过预设步长选取。考虑到各大微博平台每天对信息抓取次数以及抓取频率的限制,若想利用这有限的抓取资源,抓取到更多的有效微博信息,就应该针对不同用户发布微博的行为特性制定不同的抓取方案,即可能不同用户对应不同的抓取周期。首先获取用户已发布的历史微博数据,并通过统计分析提取出用户发布微博行为特性,或称为发布微博的规律,然后以其为依据设置针对该用户的微博信息抓取方案,即可能同一用户的不同时段对应不同的抓取周期。本发明中的用户发布微博的行为特性可以理解为,用户在什么时间发布了微博,以此提取出用户发布微博的规律,如用户在吃午饭时间、乘坐地铁时间、或者傍晚时分会较为频繁的发布微博,而在上班工作时间、晚间休息时间较少发布微博,这些都可称为是本发明中的用户发布微博的行为特性。针对这一特性,我们就可在用户频繁发布微博的时间段去抓取微博信息,在用户较少或者不发布微博的时间段不去抓取,这样就可避免空闲期对抓取资源的浪费,同时还能保证繁忙期有足够的抓取资源。在获取到用户发布的历史微博之后,要先将这些历史微博映射到一个个预设时间点上,这主要是为了整合数据,以便从这些数据中抽取出公共特性,确定出该名用户发布微博的行为特性,同时也避免了数据分散带来的程序复杂以及计算开销大等问题。需要说明的是,预设时间点是按照预设的固定步长选取出的,我们可以时、天、周、月等单位作为固定步长进行预设时间点的选取,本发明对此可不做限定。为了尽量准确的预测出用户再次发布微博的时间,进行有针对性的抓取,可以逐天分析用户发布的历史微博,提取用户每天发布微博的行为特性,对应地,就可以小时为预设步长进行时间段的选取。下面以1小时为预设步长,对本步骤选取时间点、映射历史微博的过程进行解释说明。若以1小时为预设步长,则1天选取出的预设时间点就包含0、1、2、3、…、 22、23,共计24个时间点,考虑到用户在周一到周日发布微博的习惯可能会有所不同,我们可以选取24*7个预设时间点,即168个时间点。作为本步骤的一种实现方式,在建立映射关系时,可以将1小时内发布的微博映射到前一个预设时间点(当然,也可映射到后一个预设时间点,本发明对此可不做限定),如用户在13:00到14:00发布了2条微博,则可将这2条微博映射到预设时间点13:00上,也即这一时间点对应有2条历史微博。参见图2所示示例,为根据用户在周一的4:00~14:00发布的历史微博确定出的预设时间点与历史微博间的映射关系,其中下方的数字表示预设时间点,与其对应的上方数字表示该时间点映射的历史微博数。如,用户在4:00到5:00发布了0条微博,则映射到预设时间点4:00的历史微博数就是0;在5:00到6:00发布了0条微博,则映射到预设时间点5:00的历史微博数就是0;……;在9:00到10:00发布了5条微博,则映射到预设时间点9:00的历史微博数就是5;……在13:00到14:00发布了4条微博,则映射到预设时间点13:00的历史微博数就是4。需要说明的是,除了可按上述方式确定24*7个预设时间点之外,我们还可通过工作日(周一到周五)和休息日(周六、周日)两个维度来选取时间点,这主要是因为用户在工作日的作息以及工作时间都较为固定,故其在工作日发布微博的习惯也较为统一,而休息日的作息以及活动时间则可能会发生变化,对应的发布微博的习惯也可能会有所改变,因此我们还可从工作日和休息日维度来确定预设时间点,即24*2共计48个预设时间点。在这种情况下,每个预设时间点映射的历史微博数可以是每天该小时内发布微博数之和,或者平均值,本发明对此可不做限定。下面进行举例说明:如用户在周一13:00到14:00发布了3条微博、周二13:00到14:00发布了5条微博、周三13:00到14:00发布了3条微博、周四13:00到14:00发布了4条微博、周五13:00到14:00发布了5条微博。若以历史微博总和进行映射,则该名用户在13:00到14:00共发布了20条微博,那么映射到预设时间点13:00的历史微博数就是20。若以平均值进行映射,则该名用户在13:00到14:00平均发布了4条微博,那么映射到预设时间点13:00的历史微博数就是4。步骤102,将映射历史微博数的偏差在预设范围内的至少两个相邻预设时 间点合并为一个时间段。在步骤101完成历史微博与预设时间点间的映射之后,就可知晓该名用户发布微博的行为特性,即哪些时间点是用户频繁发布微博的繁忙期,哪些时间点是用户较少或者不发微博的空闲期。这样,在繁忙期就可缩短信息抓取周期,为其多分配几次信息抓取次数,以抓到尽量多的有效信息;对应地,可将空闲期的抓取周期调整的稍长一些,甚至不为空闲期分配抓取机会,而是保留到繁忙期使用。本步骤主要是利用步骤101的映射关系找到能合并到一起的至少两个预设时间点,形成繁忙期或者空闲期的时间段,进而为不同时间段设置不同的信息抓取周期。因为本发明主要是依靠用户发布的历史微博数来确定其行为特性的,因此在合并时间段时主要考虑的也是将历史微博数相差不大的相邻时间点相合并,所谓相差不大可以理解为两个相邻时间点映射的历史微博数之差未超过预设的合法范围。若预设范围为3,则在图2所示示例中,时间点4:00映射有0条历史微博,时间点5:00映射有0条历史微博,二者之差为0,则可认为用户在时间点4:00与5:00的发帖行为相似,二者可合并为一个时间段。但是时间点6:00映射有4条历史微博,其与相邻时间点5:00之差为4,超出了预设范围,可判定用户在时间点5:00与6:00的发帖行为不同,二者不能合并为一个时间段。按照上述原理,图2所示示例,最终可被划分为图7所示的4个时间段,分别为:第一时间段:由预设时间点4:00、5:00合并成的空闲时间段;第二时间段:由预设时间点6:00、7:00、8:00、9:00合并成的繁忙时间段;第三时间段:由预设时间点10:00、11:00合并成的空闲时间段;第四时间段:由预设时间点12:00、13:00合并成的繁忙时间段。对于本步骤合并时间段的方式此处暂不详述。步骤103,根据每个时间段的时间长度及其映射的每条历史微博的权重确定每个时间段的抓取周期。在步骤102找到用户一天的微博分布情况后,也即知晓了用户一天的微博行为特性后,就可据此设置针对该用户的变周期信息抓取方案,即为每个时间 段确定一个抓取周期。一般情况下,两个相邻时间段的抓取周期不会相同,但是间隔的时间段的抓取周期可能会相同。如图2所示示例中,第二时间段的抓取周期一定与第一时间段、第三时间段不同,但却可能与第四时间段的抓取周期相同。下面对确定时间段对应的抓取周期的过程进行解释说明。首先,根据时间段的时间长度设置一个初始周期,一般情况下,初始周期不大于时间段的长度,即想要表示在该时间段内用户有发帖行为。如上述示例中的第二时间段,其时间长度为4小时,我们此时可将初始周期设置为4小时,表示用户在该时间段内具有一次发帖行为。需要说明的是,除根据时间段长度设置初始周期外,还可根据当前的信息抓取资源调整初始周期,如当前具有较为充足的抓取资源,则可缩短初始周期,如将上述示例中的初始周期调整为2小时。可根据实际情况对初始周期进行适应性调整,本发明对此可不做限定。其次,根据用户在本时间段内发布的历史微博,调整初始周期。具体地,主要是根据每条历史微博的权重调整初始周期。为本时间段映射的历史微博设置一个权重,考虑到近期发布的微博相对较早发布的微博更能体现用户当前的行为特性,所以在为历史微博设置权重时,越是最近发布的微博的权重越大,对应地较早发布的微博的权重就较小。另外,对于短时内连续发布的微博要进行降权去噪处理。这主要是因为,某些情况下,可能用户会在较短时间内连续发布多条微博(如两条微博仅间隔30秒内),此时必然会导致映射到时间点(或者合并后的时间段)的历史微博数较多,但是这种情况往往不是用户的一般行为(或称为常态行为),而是特殊情况下的特殊行为,其不能正确反映用户的行为特性,为了降低其对确定抓取周期的干扰,提高后续预测抓取时间点的准确性,此时可将这些历史微博视为噪声,通过降权的方式进行去噪处理。具体调整过程可体现为:定义时间衰减函数,计算每两条历史微博间的时间间隔权重(两条相邻历史微博的后一条微博的权重即可视为二者的时间间隔权重,如用户分别在6:10、6:30发布了两条微博,则可将6:30发布的历史微博的权重作为这两条微博间的时间间隔权重),调整后的周期为初始周期及所有历史微博的时间间隔的加权平均和,其中初始周期的权重为1。另外,本发 明采用时间作为权重是因为,用户发布微博行为的连续性和周期性。需要说明的是,如果调整后的周期大于时间段的长度,则说明用户在该时间段内发布微博的可能性较小,甚至并未发布微博,也即上文中提及的空闲期,对此可不为该时间段分配抓取资源,也即在该时间段内可不进行信息抓取。对应地,如果调整后的周期小于时间段的长度,且越小说明用户在该时间段内越活跃,可为其分配较多的抓取资源。作为本发明确定抓取周期的一种优选方案,在根据历史微博权重调整初始周期后,还可根据置信度权重继续调整。置信度权重指的是,当前时间段历史上有发帖行为的次数在统计时间范围内占的比例越高,则说明用户的发帖行为越固定,即结果越可信,权重越大,相反则表示结果不可信,权重越小。也就是说,若当前时间段为周一的12:00到13:00,则可纵向观察多个周一该时间段的微博发布情况,如果用户在多个周一的这一时间段内均有发帖行为,则说明据此确定的抓取周期较为可信。但是若用户只在某个周一的这一时间段内有发帖行为,而在其它的周一的这一时间段内没有发帖行为,则说明据此确定的抓取周期不可信,需要调整。另外,作为本发明确定抓取周期的另一种优选方案,在根据历史微博权重调整初始周期后,还可结合该名用户的影响力及其发布微博的质量进一步调整抓取周期。如果用户的影响力大,则其发布的微博可能具有较大的传播能力,这样的微博应该及时抓取到;若用户发布的微博质量好,则其发布的微博被转发的可能性很大,传播力较强,故在相同情况下,还可进一步缩小影响力大、发布微博质量高的用户的抓取周期,为其分配更多的抓取资源。用户影响力可通过关注该用户的粉丝数、该用户的关注数、该用户被提及的次数等反映,其中,粉丝数越多则影响力越大、粉丝数与关注数之比越大则影响力越大、被提及次数(可通过抓取“@用户名”的方式获取)越多则影响力越大。用户发布的微博质量可通过该用户被转发的微博数、每条被转发微博的被转发次数等反映,其中,被转发的微博数越多则说明该用户的微博质量越好、单条微博被转发的次数越多则说明该条微博的质量越好。最后,在获得调整后的抓取周期后,还要结合当前可调度的资源确认下调 整后的抓取周期是否可用。如果各个时间段总的抓取次数不超过可调用抓取次数,则认为调整后的抓取周期可用,否则认为调整后的抓取周期不可用,需要重新调整时间段的抓取周期,降低总的抓取次数。当然,在调整时间段的抓取周期时,可对每个时间段都进行调整,还可仅调整其中不太重要的时间段(即虽为繁忙期但发布微博较少的时间段)的抓取周期,最终使调整后的抓取周期可用,本发明对此可不做限定。在确定调整后的抓取周期可用后,该周期即可作为该时间段对应的抓取周期使用。步骤104,根据每个时间段的抓取周期以及抓取初始时间点预测用户再次发布微博的时间点,并在该预测时间点上进行微博信息抓取。在确定出不同时间段的抓取周期后,即可结合各时间段的抓取周期、初始时间点,预测用户未来一周可能发布微博的时间点(也即信息抓取的时间点),得到预测时间点集合,进而在预测时间点到达时调用微博平台API进行一次微博信息抓取。若图2所示示例中,第一时间段的抓取周期为0(即不抓取),第二时间段的抓取周期为15min,第三时间段的抓取周期为60min,第四时间段的抓取周期为12min,初始时间点为下周一,则预测时间点可体现为下周一的如下时间点:6:15、6:30、6:45、7:00、7:15、…、8:45、9:00、11:00、12:12、12:24、12:36、12:48。下面对步骤102合并时间段的方式进行解释说明。参见图3,示出了本发明合并时间段实施例1的流程图,可包括:步骤201,统计每个预设时间点映射的历史微博数;步骤202,判断相邻预设时间点映射的历史微博数之间的偏差是否在预设范围内,如果是,则执行步骤203;如果否则结束本合并流程;步骤203,将所述相邻预设时间点合并为一个时间段。利用步骤101的映射关系,统计出每个预设时间点映射的历史微博数,并判断其中是否存在所映射的历史微博数相差不大的时间点,再判断这些时间点是否为连续相邻的时间点,如果是,则可将这连续相邻的时间点合并为时间段。如图2所示示例,仍以预设范围为3为例,时间点6:00、7:00、8:00、9:00、 12:00、13:00所映射的历史微博数之间的偏差均未超过预设范围,则在此基础上可继续判断这些时间点能否合并为时间段,经判断发现,6:00、7:00、8:00、9:00为连续相邻,可将这四个时间点合并为一个时间段(即上文中的第二时间段);12:00、13:00为相邻时间点可被合并为上文中的第四时间段。需要说明的是,为了使本发明划分的时间段更为合理,在合并时间段之前,还可预先设置一个合并上限,用于限定一个时间段内最多可映射的历史微博数。若合并后的时间段映射的历史微博数超过合并上限,则应视情况调整合并方式。图2所示示例中,6:00、7:00、8:00、9:00四个时间点映射的总的历史微博数为4+3+3+5=15,若合并上限为12,则这种合并方式就超出了合并上限,此时即使四个时间点为连续相邻,也不能将这四个时间点合并为一个时间段,而是要将6:00、7:00、8:00三者合并为一个时间段。需要说明的是,为了使本发明划分的时间段更为合理,即使相邻时间段映射历史微博数的波动较小,还可预先设置一个相邻时间段合并上限(即上文中的预设范围)和整体波动上限(即上文中的合并上限)。相邻时间段合并上限用于保证合并的时间段,其行为的一致性;整体波动上限用于保证最终的划分方案中相邻时间段的行为是互不相同的,能够清晰划分开,以达到变周期的调度效果。参见图4,示出了本发明合并时间段实施例2的流程图,该实施例中,要预先设置一个合并窗,所述合并窗的窗口大小用于表示能够合并的预设时间点的个数。可包括如下步骤:步骤301,统计每个预设时间点映射的历史微博数;步骤302,判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:步骤303,如果是,则将所述合并窗内的预设时间点合并为一个时间段;步骤304,如果否,则判断所述合并窗外是否存在未判断预设时间点,如果存在,则执行步骤305;如果不存在,则结束本流程;步骤305,将所述合并窗顺序后移一个预设时间点,继续执行步骤302,直至所述合并窗外不存在未判断预设时间点时结束本流程。本实施例中,为了合并后的时间段的长度,在合并时间段之前,预先设置一个合并窗,用于限定单次合并过程最多可处理的预设时间点的个数。控制合并后的时间段的长度是因为,若合并后的时间段长度较小,如每个时间段长度仍为1,即最终划分方案包含168个时间段,此时每个时间段内的数据较为分散,不足以抽取出共同特性;若合并后的时间段长度较大,如每个时间段长度为24,即最终划分方案包含7个时间段,此时与固定周期抓取方案较为相似,无法较好的使用变周期法的特性。因此,在合并时间段之前,我们可先设置一个合理大小的合并窗。利用步骤101的映射关系,统计出每个预设时间点映射的历史微博数,则可利用合并窗依次判断哪些相邻的时间点可以合并。例如,合并窗大小为2,即一次合并过程中只处理2个预设时间点,那么,本实施例的实现过程可解释如下:(1)结合图2所示示例,若当前时间点4:00、5:00落在合并窗内,则判断这两个时间点映射的微博数之差是否在预设范围内,因二者均为0条微博,故可将二者合并为一个时间段,称为第一时间段。然后判断合并窗外是否还有未判断时间点,显然本示例中还存在未判断时间点,此时可后移一个合并窗,继续判断位于合并窗内的时间段6:00、7:00是否可合并,因二者映射的历史微博数的偏差在预设范围内,故也可将二者合并为一个时间段,称为第二时间段。以此类推,还可将8:00、9:00合并为一个时间段,称为第三时间段;将10:00、11:00合并为一个时间段,称为第四时间段;将12:00、13:00合并为一个时间段,称为第五时间段,直至合并窗外不存在未判断时间点后,结束合并流程,具体可参见图5所示示意图。(2)若当前的预设时间点为6:00、7:00、8:00,且这三个时间点映射的历史微博数分别为0、5、4,在这种情况下,对于合并窗内的时间点6:00、7:00来说,二者映射的历史微博数的偏差超过了预设范围,故可判定二者不能合并,此时,可继续判断合并窗外是否还有未判断时间点,若有,在将合并窗后移1个时间点,继续判断位于合并窗内的时间段7:00、8:00是否可合并,因二者映射的历史微博数的偏差在预设范围内,故可将二者合并为一个时间段。然后继 续判断合并窗外是否还存在未判断时间点,若有,则后移一个合并窗后继续判断;若无,则结束合并流程,此处不再赘述。参见图6,示出了本发明合并时间段实施例3的流程图,可包括如下步骤:步骤401,统计每个预设时间点映射的历史微博数;步骤402,判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:步骤403,如果是,则将所述合并窗内的预设时间点合并为一个时间段;步骤404,如果否,则判断所述合并窗外是否存在未判断预设时间点,如果存在,则执行步骤405;如果不存在,则执行步骤406;步骤405,将所述合并窗顺序后移一个预设时间点,继续执行步骤402,直至所述合并窗外不存在未判断预设时间点时执行步骤406;步骤406,将合并后的时间段作为预设时间点,继续执行步骤402,直至相邻预设时间点映射的历史微博数之间的偏差超过所述预设范围时结束本流程。与实施例2相比,本实施例在确定合并窗外不存在未判断时间点后,将本次合并获得的时间段视为时间点,继续判断其是否还能与相邻时间点(实质上是本次合并后的时间段)合并,如果可以,则继续合并,如果不可以,再结束合并。通过这种循环迭代的方式就可将所有具有相似发帖行为(即映射的历史微博数相差不大)的时间点合并到一起。结合图2所示示例,按照实施例2提供的方案进行第一次合并处理之后,获得了5个时间段,具体可参见图5所示示意图,本实施例中将这5个时间段视为5个时间点,继续循环迭代的进行合并处理。首先,判断第一时间段(由4:00、5:00合并而成)视为的第一时间点与第二时间段(由6:00、7:00合并而成)视为的第二时间点之间是否可合并。具体可通过以下三种方式判断:一是,分别统计两个时间点映射的历史微博总数,并判断二者之间的偏差是否在预设范围内。由图5可知,第一时间点映射的历史微博总数为0,第二时间点映射的历史微博总数为7,显然二者之间的偏差很大,不能进行合并。二是,计算两个时间点映射的历史微博的平均值,并判断二者之间的偏差是否在预设范围内。由图5可知,第一时间点映射的历史微博数的平均值为0,第二时间点映射的历史微博数的平均值为3.5,显然二者也不能进行合并。三是,获取形成时间段的每个时间点映射的历史微博数,并与该时间段相邻时间段的每个时间点映射的历史微博数相比较,判断各时间点映射的历史微博数之间偏差是否在预设范围内。由图5可知,形成第一时间段的时间点为4:00、5:00,二者映射的历史微博数分别为0、0,形成第二时间段的时间点为6:00、7:00,二者映射的历史微博数分别为4、3,第一时间段的两个时间点映射的微博数与第二时间段的两个时间点映射的微博数的偏差不在预设范围内,故二者不能进行合并。如此循环迭代处理之后,图5所示的5个时间段可最终合并为4个时间段,具体可参见图7所示示意图,其中,第一时间段由4:00、5:00合并而成,第二时间段由6:00、7:00、8:00、9:00合并而成,第三时间段由10:00、11:00合并而成,第四时间段由12:00、13:00合并而成。需要说明的是,循环迭代过程中的预设范围可与第一次合并处理时的预设范围相同,也可不同,本发明对此不做限定。另外,在循环迭代过程中,还可如实施例1一样设置一个合并上限,如此,控制结束合并流程的条件即是合并后的时间段作为预设时间点时,其映射的历史微博数超过合并上限。具体实现过程可参见图8所示合并时间段实施例4,可包括:步骤501,统计每个预设时间点映射的历史微博数;步骤502,判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:步骤503,如果是,则将所述合并窗内的预设时间点合并为一个时间段;步骤504,如果否,则判断所述合并窗外是否存在未判断预设时间点,如果存在,则执行步骤505;如果不存在,则执行步骤506;步骤505,将所述合并窗顺序后移一个预设时间点,继续执行步骤502,直至所述合并窗外不存在未判断预设时间点时执行步骤506;步骤506,将合并后的时间段作为预设时间点,判断所述预设时间点映射 的历史微博数是否超过所述合并上限,如果未超过,则继续执行步骤502,直至所述预设时间点映射的历史微博数超过所述合并上限时结束本流程;如果超过,则直接结束本合并流程。需要说明的是,在循环迭代过程中,除了可设置合并上限之外,还可通过设置迭代次数的方式控制结束合并流程,也即只要达到预设迭代次数即可结束合并过程。当然,也可综合利用合并上限、迭代次数控制结束合并流程,即不论满足哪个条件均可结束合并过程,如已达到合并上限,但还未达到预设迭代次数,此时也可结束合并过程,反之亦可结束合并过程,本发明对此可不做限定。相应地,本发明还提供一种微博信息抓取装置,如图9所示,示出了抓取装置的示意图,所述装置可包括:映射单元601,用于获取用户发布的历史微博,并根据所述历史微博的发布时间建立所述历史微博与预设时间点间的映射关系,所述预设时间点通过预设步长选取;合并单元602,用于将映射历史微博数的偏差在预设范围内的至少两个相邻预设时间点合并为一个时间段;周期确定单元603,用于根据每个时间段的时间长度及其映射的每条历史微博的权重确定每个时间段的抓取周期;预测单元604,用于根据每个时间段的抓取周期以及抓取初始时间点预测用户再次发布微博的时间点,并在该预测时间点上进行微博信息抓取。与上述合并时间段的方法实施例相对应的,本发明还提供了合并单元的4中具体实现方式,下面一一进行解释说明。参见图10,示出了合并单元实施例1的示意图,可包括:第一统计单元701,用于统计每个预设时间点映射的历史微博数;第一判断单元702,用于判断相邻预设时间点映射的历史微博数之间的偏差是否在预设范围内;第一合并子单元703,用于在所述第一判断单元判断所述偏差在所述预设范围内时,将所述相邻预设时间点合并为一个时间段。在进行时间段合并之前,还可预先设置一个合并窗,所述合并窗的窗口大小用于表示能够合并的预设时间点的个数,对应地,可参见图11示出的合并单元实施例2的示意图,可包括:第二统计单元801,用于统计每个预设时间点映射的历史微博数;第二判断单元802,用于判断位于所述合并窗内的预设时间点映射的历史微博数的偏差是否在预设范围内:第二合并子单元803,用于在所述第二判断单元判断所述偏差在所述预设范围内时,则将所述合并窗内的预设时间点合并为一个时间段;第三判断单元804,用于在所述第二判断单元判断所述偏差未在所述预设范围内时,判断所述合并窗外是否存在未判断预设时间点;后移单元805,用于在所述第三判断单元判断所述合并窗外存在所述未判断预设时间点时,将所述合并窗顺序后移一个预设时间点,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至所述合并窗外不存在未判断预设时间点时结束。在图11所示的实施例2的基础上,本发明还提供了合并单元的第三种实现方式,具体可参见图12所示的实施例3的示意图,合并单元还包括:第三合并子单元806,用于在所述第三判断单元判断所述合并窗外不存在未判断预设时间点之后,将合并后的时间段作为预设时间点,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至相邻预设时间点映射的历史微博数之间的偏差超过所述预设范围时结束。在进行时间段合并之前,还可预先设置一个合并上限,对应地,可参见图13示出的合并单元实施例4的示意图,合并单元还包括:第四判断单元807,用于在所述第三判断单元判断所述合并窗外不存在未判断预设时间点之后,将合并后的时间段作为预设时间点,并判断所述预设时间点映射的历史微博数是否超过所述合并上限;所述第三合并子单元806,还用于在所述第四判断单元判断所述预设时间点映射的历史微博数未超过所述合并上限时,通知所述第二判断单元判断所述偏差是否在所述预设范围内,直至所述预设时间点映射的历史微博数超过所述合并上限时结束。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1