著录项信息
专利名称 | 推荐电视节目的方法及装置 |
申请号 | CN201210248103.0 | 申请日期 | 2012-07-17 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-11-07 | 公开/公告号 | CN102769781A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N21/258 | IPC分类号 | H;0;4;N;2;1;/;2;5;8;;;H;0;4;N;2;1;/;4;6;2;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 青岛海信传媒网络技术有限公司 | 申请人地址 | 山东省青岛市崂山区松岭路399号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 聚好看科技股份有限公司 | 当前权利人 | 聚好看科技股份有限公司 |
发明人 | 刘鑫;周娣 |
代理机构 | 北京市京大律师事务所 | 代理人 | 黄启行;方晓明 |
摘要
本发明公开了一种推荐电视节目的方法及装置。该方法包括:接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;根据预先设置的电视节目权值计算公式,以及,该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。应用本发明,可以提高电视节目的推荐效率。
1.一种推荐电视节目的方法,该方法包括:
接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;
根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;
根据预先设置的电视节目权值计算公式,和该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;
根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。
2.根据权利要求1所述的方法,在选取权值最高的电视节目及该电视节目所在的频道后,生成推荐列表之前,进一步包括:
按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。
3.根据权利要求1所述的方法,在接收用户频道行为数据之前,进一步包括:
抓取用户观看电视节目的频道行为数据;
获取频道的结束观看时间与开始观看时间的时间差;
如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据。
4.根据权利要求3所述的方法,所述根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息包括:
拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;
按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。
5.根据权利要求4所述的方法,所述用户频道行为数据包括:用户名信息、开始观看时间信息、结束观看时间信息以及频道信息。
6.根据权利要求5所述的方法,所述电视节目播放时刻表包括:电视节目、开始播放时间、结束播放时间以及所属的频道;
电视节目分类信息表包括:电视节目、频道以及分类;
用户频道节目分类信息包括:用户名、频道、电视节目、分类、开始时间、结束时间。
7.根据权利要求6所述的方法,所述按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片包括:
查询用户频道行为数据中的开始观看时间以及结束观看时间,
如果记录的电视节目开始观看时间小于或等于电视节目时刻表中的开始播放时间,转换后的开始时间设置为电视节目开始播放时间,否则,转换后的开始时间设置为用户开始观看时间;
如果记录的电视节目结束观看时间大于电视节目时刻表中的结束播放时间,转换后的结束时间设置为电视节目结束播放时间,否则,转换后的结束时间设置为用户结束观看时间。
8.根据权利要求7所述的方法,所述计算该用户频道分类关联权值包括:
根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;
根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;
根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;
根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值。
9.根据权利要求7所述的方法,计算所述频道分类节目时间分布权值包括:
以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;
根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值。
10.根据权利要求7所述的方法,计算所述频道分类节目观看权值包括:
统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。
11.根据权利要求8至10任一项所述的方法,进一步包括:
对该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值进行归一化处理。
12.根据权利要求8至10任一项所述的方法,所述电视节目权值计算公式为:
φ=ξ1xρ+ξ2xλ+ξ3xκ
式中,
φ为电视节目权值;
ξ1、ξ2、ξ3分别为权重系数;
ρ为该用户频道分类关联权值;
λ为频道分类节目时间分布权值;
κ为频道分类节目观看权值。
13.根据权利要求8至10任一项所述的方法,其中,采用映射化简云计算的方式计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值。
14.一种推荐电视节目的装置,其特征在于,该装置包括:用户频道节目分类模块、计算模块、电视节目权值获取模块以及电视节目推荐模块,其中,
用户频道节目分类模块,用于接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;
计算模块,用于根据用户频道节目分类模块中的该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;
电视节目权值获取模块,用于根据预先设置的电视节目权值计算公式,以及计算模块中的该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;
电视节目推荐模块,用于根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。
15.根据权利要求14所述的装置,其特征在于,进一步包括:
权值排序模块,用于按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。
16.根据权利要求14所述的装置,其特征在于,进一步包括:
频道行为数据过滤模块,用于抓取用户观看电视节目的频道行为数据,获取频道的结束观看时间与开始观看时间的时间差,如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据,然后输出至用户频道节目分类模块。
17.根据权利要求14至16任一项所述的装置,其特征在于,所述用户频道节目分类模块包括:用户频道行为数据接收单元、拆分单元以及用户频道节目分类信息生成单元,其中,
用户频道行为数据接收单元,用于接收用户频道行为数据;
拆分单元,用于拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;
用户频道节目分类信息生成单元,用于按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据接收单元接收的用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。
18.根据权利要求14至16任一项所述的装置,其特征在于,所述计算模块包括:用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元,其中,
用户频道分类关联权值计算单元,用于根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值;
频道分类节目时间分布权值计算单元,用于以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值;
频道分类节目观看权值计算单元,用于统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。
19.根据权利要求18所述的装置,其特征在于,所述计算模块进一步包括:
归一化计算单元,用于接收用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元输出的信息,进行归一化处理后输出至电视节目权值获取模块。
推荐电视节目的方法及装置\n技术领域\n[0001] 本发明涉及数字电视技术,尤其涉及一种推荐电视节目的方法及装置。\n背景技术\n[0002] 随着国家三网融合的发展,电视市场逐渐成熟,越来越多的企业开始发展智能电视(DTV,Definition Television)。智能电视是指具备开放式操作系统与芯片,拥有开放式应用平台,可实现双向人机交互功能,能通过自主安装应用程序实现新功能或增值服务,并可借助三网接入、3C融合等满足多样化和个性化需求的终端应用平台。\n[0003] 目前,电视节目数量繁多,且更新周期较短,同时,不同频道在不同时间点或相同时间点可能具有相同的电视节目,因而,如何向用户推荐用户喜好的电视节目,以满足用户的个性化需求,是智能电视近期研究的一个热点。\n[0004] 图1为现有基于智能电视推荐电视节目的方法流程示意图。参见图1,该流程包括:\n[0005] 步骤101,采集用户观看的电视节目历史数据信息;\n[0006] 本步骤中,在用户观看电视节目时,记录并存储用户观看的电视节目历史数据信息,例如,电视节目名信息、观看电视节目的开始时间、观看时长等信息。\n[0007] 步骤102,对采集的电视节目历史数据信息进行过滤;\n[0008] 本步骤中,主要是过滤掉电视节目历史数据中无实际意义的数据信息。\n[0009] 步骤103,对过滤的电视节目历史数据进行数据属性抽取;\n[0010] 本步骤中,数据属性抽取主要是抽取出电视节目历史数据中的关键词,例如,电视节目名、开始时间等。\n[0011] 步骤104,根据抽取的数据属性进行数据聚类处理;\n[0012] 本步骤中,聚类处理是将抽取得到的数据属性,例如关键词,通过静态分类的方法,将数据分类到预先设置的不同的类别特征中,例如,预先设置的类别特征可以包括体坛风云以及影视天地等,如果关键词为甄嬛传或笑傲江湖,则将其聚类至影视天地,使得同一类别特征中的数据,例如电视节目,具有相似的一些属性,而不同类别特征中的数据具有较大的相异性。每一用户分别对应存储一份数据聚类处理结果。\n[0013] 步骤103至步骤104用于抽取出用户观看的电视节目历史数据的类别特征,可以采用词频/逆文档频率(TD/IDF,Term Frequency/Inverse Document Frequency)的统计方法实现。\n[0014] 步骤105,获取用户当前观看的电视节目数据信息,进行数据属性信息抽取;\n[0015] 本步骤中,数据属性信息至少包括电视节目名信息。\n[0016] 步骤106,将抽取的数据属性信息匹配该用户的聚类处理结果,获取匹配的聚类处理结果;\n[0017] 本步骤中,根据用户名,获取该用户的聚类处理结果,然后,根据观看的电视节目名信息,匹配设置的聚类处理结果中各类别特征中包含的电视节目,如果匹配成功,则从该匹配的类别特征中,获取相应的电视节目,得到匹配的聚类处理结果。\n[0018] 步骤105至步骤106用于根据聚类得到的类别特征信息,将抽取的数据属性信息匹配到相应的类别特征中,即获取匹配的聚类处理结果。\n[0019] 步骤107,根据匹配的聚类处理结果,生成推荐的电视节目并推送。\n[0020] 本步骤中,将匹配的类别特征中包含的电视节目形成电视节目推荐列表,向用户推送。\n[0021] 由上述可见,现有基于智能电视推荐电视节目的方法,根据收集的各用户的电视节目历史数据进行聚类处理,在进行推荐时,根据当前电视节目获取匹配的聚类处理结果,而聚类处理结果只是与当前电视节目属于同一类别特征,该类别特征中包含的电视节目,可能并不是用户观看次数较多的电视节目。因而,生成的推荐电视节目未包含用户观看次数较多的电视节目,与用户的个性化需求不符,从而降低了推荐的效率;进一步地,电视节目推荐列表中的电视节目,其播放时间以及频道是根据用户历史数据生成的,用户接收到电视节目推荐列表中的电视节目时,根据其播放时间,选择频道进行观看时,而由于电视节目已动态变化,导致无法观看推荐的电视节目,使得推荐效率进一步降低。\n发明内容\n[0022] 本发明的实施例提供一种推荐电视节目的方法,提高电视节目的推荐效率。\n[0023] 本发明的实施例还提供一种推荐电视节目的装置,提高电视节目的推荐效率。\n[0024] 为达到上述目的,本发明实施例提供的一种推荐电视节目的方法,包括:\n[0025] 接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;\n[0026] 根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;\n[0027] 根据预先设置的电视节目权值计算公式,以及,该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;\n[0028] 根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。\n[0029] 在选取权值最高的电视节目及该电视节目所在的频道后,生成推荐列表之前,进一步包括:\n[0030] 按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。\n[0031] 在接收用户频道行为数据之前,进一步包括:\n[0032] 抓取用户观看电视节目的频道行为数据;\n[0033] 获取频道的结束观看时间与开始观看时间的时间差;\n[0034] 如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据。\n[0035] 所述根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息包括:\n[0036] 拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;\n[0037] 按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。\n[0038] 所述用户频道行为数据包括:用户名信息、开始观看时间信息、结束观看时间信息以及频道信息。\n[0039] 所述电视节目播放时刻表包括:电视节目、开始播放时间、结束播放时间以及所属的频道;\n[0040] 电视节目分类信息表包括:电视节目、频道以及分类;\n[0041] 用户频道节目分类信息包括:用户名、频道、电视节目、分类、开始时间、结束时间。\n[0042] 所述按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片包括:\n[0043] 查询用户频道行为数据中的开始观看时间以及结束观看时间,\n[0044] 如果记录的电视节目开始观看时间小于或等于电视节目时刻表中的开始播放时间,转换后的开始时间设置为电视节目开始播放时间,否则,转换后的开始时间设置为用户开始观看时间;\n[0045] 如果记录的电视节目结束观看时间大于电视节目时刻表中的结束播放时间,转换后的结束时间设置为电视节目结束播放时间,否则,转换后的结束时间设置为用户结束观看时间。\n[0046] 所述计算该用户频道分类关联权值包括:\n[0047] 根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;\n[0048] 根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;\n[0049] 根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;\n[0050] 根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值。\n[0051] 计算所述频道分类节目时间分布权值包括:\n[0052] 以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;\n[0053] 根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值。\n[0054] 计算所述频道分类节目观看权值包括:\n[0055] 统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。\n[0056] 进一步包括:\n[0057] 对该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值进行归一化处理。\n[0058] 所述电视节目权值计算公式为:\n[0059] φ=ξ1xρ+ξ2xλ+ξ3xκ\n[0060] 式中,\n[0061] φ为电视节目权值;\n[0062] ξ1、ξ2、ξ3分别为权重系数;\n[0063] ρ为该用户频道分类关联权值;\n[0064] λ为频道分类节目时间分布权值;\n[0065] κ为频道分类节目观看权值。\n[0066] 采用映射化简云计算的方式计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值。\n[0067] 一种推荐电视节目的装置,该装置包括:用户频道节目分类模块、计算模块、电视节目权值获取模块以及电视节目推荐模块,其中,\n[0068] 用户频道节目分类模块,用于接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;\n[0069] 计算模块,用于根据用户频道节目分类模块中的该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;\n[0070] 电视节目权值获取模块,用于根据预先设置的电视节目权值计算公式,以及计算模块中的该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;\n[0071] 电视节目推荐模块,用于根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。\n[0072] 进一步包括:\n[0073] 权值排序模块,用于按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。\n[0074] 进一步包括:\n[0075] 频道行为数据过滤模块,用于抓取用户观看电视节目的频道行为数据,获取频道的结束观看时间与开始观看时间的时间差,如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据,然后输出至用户频道节目分类模块。\n[0076] 所述用户频道节目分类模块包括:用户频道行为数据接收单元、拆分单元以及用户频道节目分类信息生成单元,其中,\n[0077] 用户频道行为数据接收单元,用于接收用户频道行为数据;\n[0078] 拆分单元,用于拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;\n[0079] 用户频道节目分类信息生成单元,用于按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据接收单元接收的用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。\n[0080] 所述计算模块包括:用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元,其中,\n[0081] 用户频道分类关联权值计算单元,用于根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值。\n[0082] 频道分类节目时间分布权值计算单元,用于以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值;\n[0083] 频道分类节目观看权值计算单元,用于统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。\n[0084] 所述计算模块进一步包括:\n[0085] 归一化计算单元,用于接收用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元输出的信息,进行归一化处理后输出至电视节目权值获取模块。\n[0086] 由上述技术方案可见,本发明实施例提供的一种推荐电视节目的方法及装置,接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;根据预先设置的电视节目权值计算公式,以及,该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。这样,生成的推荐电视节目包含用户观看次数较多的电视节目,与用户的个性化需求相符,从而提高了电视节目的推荐效率。\n附图说明\n[0087] 为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。\n[0088] 图1为现有基于智能电视推荐电视节目的方法流程示意图。\n[0089] 图2为本发明实施例推荐电视节目的方法流程示意图。\n[0090] 图3为本发明实施例获取电视节目菜单的流程示意图。\n[0091] 图4为本发明实施例推荐电视节目的装置结构示意图。\n[0092] 图5为本发明实施例推荐电视节目的装置另一结构示意图。\n[0093] 图6为本发明实施例加载文件的流程示意图。\n[0094] 图7为本发明实施例分布式计算处理流程示意图。\n[0095] 图8为本发明实施例关系计算流程示意图。\n[0096] 图9为本发明实施例用户频道分类关联权值计算流程示意图。\n[0097] 图10为本发明实施例推荐模块生成推荐的电视节目流程示意图。\n具体实施方式\n[0098] 以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。\n[0099] 现有基于智能电视推荐电视节目的方法,由于电视节目是动态变化的,因而,根据收集的各用户的电视节目历史数据进行聚类处理,聚类处理结果只是与当前电视节目属于同一类别特征,因而,生成的推荐电视节目与当前电视节目关联较小;进一步地,聚类得到的类别特征的类别数量随电视节目的动态变化而变化,也将直接影响分类推荐的效果,从而降低了推荐的效率。\n[0100] 本发明实施例中,考虑到现有电视节目在实际应用中是动态变化的,而频道较为稳定,因而,根据获取的电视节目菜单,将频道进行分类,将用户观看的电视节目信息,转换为相应频道分类信息,并计算各频道分类之间的关联系数,依据频道分类之间的关联系数,向用户推荐电视节目,从而使得生成的推荐电视节目与用户个性化需求关联大,进而提高了电视节目的推荐效率。\n[0101] 图2为本发明实施例推荐电视节目的方法流程示意图。参见图2,该流程包括:\n[0102] 步骤201,接收用户频道行为数据,根据预先获取的电视节目菜单(EPG,Electronic Program Guide),将用户频道行为数据转换为用户频道节目分类信息;\n[0103] 本步骤中,在用户初始启动、切换或观看频道时,智能电视自动抓取用户观看电视频道的频道行为数据,上报至服务器,服务器接收到用户上报的用户频道行为数据,在经过预先设置的时间周期后,触发将该时间周期内的用户频道行为数据转换为用户频道节目分类信息,如果接收用户频道行为数据的时间点还未达到预先设置的时间周期,则将上一时间周期生成的推荐电视节目向用户推送。当然,实际应用中,如果处理能力许可,也可以在每次接收到用户的用户频道行为数据,触发进行转换流程。\n[0104] 表1为用户频道行为数据包含的内容,包括:用户名信息、开始观看时间信息、结束观看时间信息以及频道信息等。其中,与现有上报电视节目信息不同的是,用户频道行为数据中包含的是频道信息。\n[0105] 表1\n[0106] \n 用户名 开始观看时间 结束观看时间 频道\n[0107] 表1中,用户名用于记录用户信息,开始观看时间为用户观看频道中电视节目的开始时间,结束观看时间为用户结束观看同一频道的结束时间,结束观看时间与开始观看时间的时间差为频道驻留时间,频道为用户观看的频道信息,例如,CCTV-1,这样,可以采用采用频道行为数据列表的方式,记录用户在设置的时间周期内的频道行为数据,例如,如表\n2所示。\n[0108] 表2\n[0109] \n 用户名 开始观看时间 结束观看时间 频道\n User 12∶00 12∶02 CCTV-1\n User 12∶02 12∶03 CCTV-2\n User 12∶03 12∶59 CCTV-5\n[0110] 实际应用中,考虑到用户在频繁换频道时导致存储的频道行为数据量较大、以及,切换时的切换频道并非用户真正浏览的频道的问题,例如,用户连续切换频道,而在连续切换的频道中,用户并未进行观看,而如果传输该切换频道的频道行为数据,不仅增加了传输带宽以及服务器存储所需的空间,还会导致后续电视节目推荐的不准确。本发明实施例中,设置频道驻留时间阈值,在接收用户频道行为数据之前,进一步包括:\n[0111] A11,抓取用户观看电视节目的频道行为数据;\n[0112] A12,获取频道的结束观看时间与开始观看时间的时间差;\n[0113] A13,如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据。\n[0114] 本步骤中,如果频道驻留时间阈值设置为5分钟,这样,以表2为例,在12∶00~\n12∶02以及12∶02~12∶03时间段内的频道行为数据可以认为是用户切换频道的行为数据,即短暂停留的频道行为数据,该频道行为数据不能作为后续推荐电视节目的依据。\n因而,在数据库中存储并用于上报的用户频道行为数据如表3所示。\n[0115] 表3\n[0116] \n 用户名 开始观看时间 结束观看时间 频道\n User 12∶03 12∶59 CCTV-5\n[0117] 本发明实施例中,由于各频道的电视节目是动态更新的,为了避免电视节目变更导致后续推荐电视节目的误差,需要获取后续时间段内各频道播放的电视节目信息,而第三方提供的电视节目菜单由于包含一定时期范围内(当前时间之前的时间段以及当前时间之后的时间段)的各频道播放的电视节目信息。因而,如果能够获取电视节目菜单,不仅根据该电视节目菜单,可以获知用户频道行为数据中,观看时间点所在频道对应的电视节目,还可以根据该电视节目菜单,使后续推荐的电视节目及频道不会与相应频道实际播放的电视节目不一致。\n[0118] 与将用户频道行为数据转换为用户频道节目分类信息的时间周期相同,在进行转换时,准实时抓取电视节目菜单,即按照预先设置的时间周期从第三方平台上抓取电视节目菜单,电视节目菜单包含频道信息以及节目信息,其中,频道信息包含频道图标、名称等,节目信息包含节目分类、海报、语言等。关于电视节目菜单包含内容的详细描述,具体可参见相关技术文献,在此不再赘述。\n[0119] 这样,按照预先设置的时间周期从第三方平台上抓取电视节目菜单,可以保障抓取的电视节目菜单为包含过去及未来某一段时间内的最新节目数据,同时,将抓取的电视节目菜单与存储的电视节目菜单进行比较,如果抓取的电视节目菜单与存储的电视节目菜单不一致,则更新存储的电视节目菜单中相应的节目数据,否则,存储该抓取的电视节目菜单。\n[0120] 根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息包括:\n[0121] A21,拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;\n[0122] 本步骤中,对电视节目菜单进行分解,拆分为电视节目播放时刻表以及电视节目分类信息表,并存入数据库中。其中,\n[0123] 电视节目播放时刻表记录过去至未来一段时间内的电视节目播放信息,通过将电视节目播放时刻表记录的过去时间的节目播放信息与用户频道行为数据结合后,可以得到该用户观看的频道信息以及观看的电视节目信息,电视节目播放时刻表中未来时间段的节目播放信息用于在后续流程中,向用户推荐电视节目。\n[0124] 电视节目播放时刻表包括:电视节目、开始播放时间、结束播放时间以及所属的频道等信息。\n[0125] 表4为拆分得到的电视节目播放时刻表。\n[0126] 表4\n[0127] \n 电视节目 开始播放时间 结束播放时间 频道\n[0128] 表5为拆分得到的电视节目分类信息表,包括:电视节目、频道以及分类等信息。\n[0129] 表5\n[0130] \n 电视节目 频道 分类\n[0131] 表5中,分类信息可通过解析抓取的电视节目菜单获取,例如,分类信息可以包括:综艺娱乐、影视天地、体坛风云、新闻时事以及其他节目等。\n[0132] A22,按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。\n[0133] 本步骤中,从数据库中读取存储的各用户的频道行为数据,并按照电视节目播放时刻表(表4)中包含的时间(开始播放时间以及结束播放时间)进行切片,转换为用户观看每一电视节目的时间;同时,结合电视节目分类信息表(表5),组合成用户频道节目分类信息表(表6),并将该用户频道节目分类信息表上传至文件服务器中。\n[0134] 用户频道节目分类信息包括:用户名、频道、电视节目、分类、开始时间、结束时间等信息,当然,还可以根据结束时间和开始时间计算观看时长。\n[0135] 表6为根据频道行为数据生成的用户频道节目分类信息表。\n[0136] 表6\n[0137] \n 用户名 频道 电视节目 分类 开始时间 结束时间 观看时长[0138] 本步骤中,按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据进行切片包括:\n[0139] 查询用户频道行为数据中的开始观看时间以及结束观看时间,\n[0140] 如果记录的电视节目开始观看时间小于或等于电视节目时刻表中的开始播放时间,转换后的开始时间设置为电视节目开始播放时间,否则,转换后的开始时间设置为用户开始观看时间;\n[0141] 如果记录的电视节目结束观看时间大于电视节目时刻表中的结束播放时间,转换后的结束时间设置为电视节目结束播放时间,否则,转换后的结束时间设置为用户结束观看时间。\n[0142] 本步骤中,如果电视节目开始观看时间小于或等于电视节目时刻表中的开始播放时间,表明用户在当前频道观看时,该频道在此时还未进行节目播放,例如,当前频道正在播放广告或停止播放,则可以根据预先设置的策略,例如,预先设置的策略将广告播放时间计算在内,则表6中转换后的开始时间为用户实际观看该频道的时间,即表1中记录的开始观看时间,当然,如果预先设置的策略是将广告播放时间不计算在内,则表6中,转换后的开始时间设置为电视节目开始播放时间,即表3中记录的开始播放时间。\n[0143] 同样地,如果用户的频道行为数据中,记录的电视节目结束观看时间大于表4中的结束播放时间,表明用户在该电视节目还未放完毕后,还在观看,例如,当前频道正在播放广告或停止播放,则表6中转换后的结束时间,根据预先设置的不同策略,可以设置为用户实际观看该频道的时间,即表1中记录的结束观看时间,也可以设置为电视节目结束播放时间,即表3中记录的结束播放时间。对于电视节目结束观看时间小于或等于表4中的结束播放时间的情形,表明用户在该电视节目还未播放完毕时,就已结束观看,则表6中转换后的结束时间为用户实际结束观看该频道的时间,即表1中记录的结束观看时间。\n[0144] 图3为本发明实施例获取电视节目菜单的流程示意图。参见图3,该流程包括:\n[0145] 步骤301,按照预先设置的时间周期扫描电视节目菜单文件夹;\n[0146] 本步骤中,电视节目菜单可通过向第三方发送获取电视节目菜单请求,获取从第三方下发的电视节目菜单。较佳地,在发送的获取电视节目菜单请求中,还可以携带电视节目菜单所在的时间段信息,该时间段信息包括当前时间前一段时间信息以及当前时间后一段时间信息。\n[0147] 步骤302,判断电视节目菜单文件夹中是否存在电视节目菜单文件,如果是,执行步骤303,否则,执行步骤312;\n[0148] 步骤303,读取电视节目菜单文件夹,并对包含的电视节目菜单文件进行排序;\n[0149] 步骤304,对排序的电视节目菜单文件进行判断,如果该文件被处理过,返回执行步骤303,否则,执行步骤305;\n[0150] 步骤305,解析电视节目菜单文件;\n[0151] 步骤306,判断解析的电视节目菜单文件是否存在记录,如果是,执行步骤307,否则,执行步骤321;\n[0152] 步骤307,将电视节目菜单拆分为电视节目播放时刻表以及电视节目分类信息表;\n[0153] 步骤308,判断是否已存储有电视节目播放时刻表,如果是,执行步骤309a,否则,执行步骤309b;\n[0154] 步骤309a,以拆分的电视节目播放时刻表更新存储的电视节目播放时刻表;\n[0155] 步骤309b,新增拆分的电视节目播放时刻表;\n[0156] 步骤310,判断是否已存储有电视节目分类信息表,如果是,以拆分的电视节目分类信息表更新存储的电视节目分类信息表,返回执行步骤306,如果否,执行步骤311;\n[0157] 步骤311,新增拆分的电视节目分类信息表,返回执行步骤306;\n[0158] 步骤312,移动过期电视节目菜单,进入休眠状态,返回执行步骤301;\n[0159] 步骤321,删除该频道非本次更新的节目记录,返回执行步骤302。\n[0160] 步骤202,根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;\n[0161] 本步骤中,如果观看某一频道分类下的电视节目的用户数越多、且被该用户观看的次数越多,表明该频道分类下的电视节目在满足大众用户需求的基础上,还能满足用户的个性化需求,推荐该电视节目,越能被该用户接受,推荐的效率也就越高。\n[0162] 其中,计算该用户频道分类关联权值具体包括:\n[0163] A31,根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;\n[0164] 本步骤中,频道分类的观看次数是指各用户在统计的时间周期内,观看该频道分类的总次数。\n[0165] A32,根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;\n[0166] 本步骤中,两个频道分类同时出现的次数用于表示两个频道分类之间的关联关系,也就是说,在预先设置的时间段内,如果用户观看了频道A,则同时还观看频道B的可能性。\n[0167] 两个频道同时出现的次数,即在预设时间段内,用户观看的各频道的交集,举例来说,如果所有用户在预设时间段内,观看频道1的次数为5次,观看频道2的次数为3次,观看频道3的次数为4次,则频道1和频道2同时出现的次数为3次;频道1和频道3同时出现的次数为4次;频道2和频道3同时出现的次数为3次;频道1和频道1同时出现的次数为5次。\n[0168] A33,根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;\n[0169] A34,根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值。\n[0170] 本步骤中,抽取获取的每两个频道分类同时出现的所有用户观看次数,形成矩阵,抽取各频道分类的该用户观看次数,形成另一矩阵,将两矩阵相乘,得到该用户各频道分类关联权值矩阵。\n[0171] 实际应用中,采用MapReduce算法,将上述每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数转换为矩阵,采用共现矩阵计算方式,计算出频道分类关联权值矩阵。关于该步骤,后续再进行详细描述。\n[0172] 较佳地,在得到该用户各频道分类关联权值矩阵后,可以进行归一化处理,即进行[0,1]区间的规范化。例如,以频道分类关联权值矩阵为例,设第i个频道分类关联权值为xi,对序列x1,x2,...,xn进行变换:\n[0173] \n[0174] 则新序列y1,y2,...,yn∈[0,1]且无量纲,其中,yi为第i个频道分类关联归一化权值。\n[0175] 计算频道分类节目时间分布权值具体包括:\n[0176] A41,以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;\n[0177] 本步骤中,频道分类节目时间分布权值计算的计算维度为频道分类、时间段、观看次数,例如,以15分钟为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的观看次数,观看次数集中的时间段即为热播时间段。\n[0178] A42,根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值。\n[0179] 本步骤中,从电视节目播放时刻表中获取电视节目的播放时间信息,根据各频道分类下电视节目的播放时间,查询分割的各时间段内的观看次数分布,获取各频道分类下的各电视节目对应的时间段内的平均观看次数,作为频道分类节目时间分布权值。\n[0180] 较佳地,如前所述,可以根据如前所述的归一化公式,对获取的频道分类节目时间分布权值进行归一化处理,得到频道分类节目时间分布归一化权值。即在预先设置的时间段内,获取电视节目播放时间范围内所有时间段的观看次数的平均值,进行归一化处理,得到频道分类节目时间分布归一化权值。\n[0181] 计算频道分类节目观看权值包括:\n[0182] 统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。\n[0183] 本步骤中,根据用户频道节目分类信息表中各用户观看电视节目的信息,汇总各频道分类下各电视节目对应的所有用户观看次数信息。\n[0184] 本发明实施例中,假设电视节目P的播放时间段为:8∶00~9∶00,如果用户A观看电视节目的时间段为:8∶05~8∶15、8∶35~9∶00,则汇总的电视节目P观看次数为2,然后,统计每一电视节目在预设时间段内被所有用户观看的次数。\n[0185] 较佳地,可以根据如前所述的归一化公式,对获取的各电视节目的所有用户观看次数信息进行归一化处理,得到节目观看归一化权值。\n[0186] 步骤203,根据预先设置的电视节目权值计算公式,以及,该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;\n[0187] 本步骤中,电视节目权值计算公式为:\n[0188] φ=ξ1xρ+ξ2xλ+ξ3xκ\n[0189] 式中,\n[0190] φ为电视节目权值,也就是电视节目综合评分;\n[0191] ξ1、ξ2、ξ3分别为权重系数;\n[0192] ρ为该用户频道分类关联权值;\n[0193] λ为频道分类节目时间分布权值;\n[0194] κ为频道分类节目观看权值。\n[0195] 其中,权重系数可以采用层次分析法来确定,该方法已经在指标权重系数的确定方法中被广泛的应用,具体可参见相关技术文献,在此不再复述。\n[0196] 当然,实际应用中,如前所述,如果进行了归一化处理,则电视节目权值计算公式中,ρ、λ以及κ分别采用相应的归一化数值。\n[0197] 步骤204,根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。\n[0198] 本步骤中,同一电视节目,在不同的频道分类下,具有不同的权值,本发明实施例中,从中选取权值最高的电视节目所在的频道分类。\n[0199] 实际应用中,为了减少电视节目的动态更新导致无法观看到推荐的电视节目的情形,本发明实施例中,进一步包括:\n[0200] 从电视节目播放时刻表中,获取当前时间后所述权值最高的频道分类播放的该电视节目的时间信息,携带在推荐列表中。这样,在电视节目播放时刻表中找到该频道分类N天的电视节目及播放时刻,可以保障用户能观看到推荐的电视节目。\n[0201] 较佳地,在选取权值最高的电视节目及该电视节目所在的频道后,生成推荐列表之前,该方法还可以进一步包括:\n[0202] 步骤205,按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。\n[0203] 由上述可见,本发明实施例的推荐电视节目的方法,根据电视节目菜单对接收的用户频道行为数据进行转换,生成用户频道节目分类信息;根据该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;根据计算得到的结果获取各频道分类下的电视节目权值;选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。这样,生成的推荐电视节目包含用户观看次数较多的电视节目,与用户的个性化需求相符,从而提高了电视节目的推荐效率;进一步地,推荐的电视节目,其播放时间以及频道是根据电视节目菜单生成的,能够保障用户观看到推荐的电视节目;而且,采用频道分类进行相关计算,避免了节目变动,由于频道分类包含有多个电视节目,也使得频道分类的矩阵计算量大大减少,提高了计算效率。具体来说,其有益效果包括:\n[0204] 1.避免由于电视节目的变更或新增无法进行推荐,通过频道分类排行,解决了新增的电视节目由于无历史数据无法进行推荐的问题。\n[0205] 2.在进行关联计算时,以频道分类生成的矩阵,相对于以用户生成的矩阵以及以电视节目生成的矩阵,具有相对稳定的特点,易于采用分布式计算的技术实现;同时相对于频繁的计算,也可以提高计算效率,从而提高关联的准确度。\n[0206] 3.在计算推荐给用户的电视节目时,频道分类节目时间分布权值是所有用户观看频道的社会化的共性体现,从而结合了多个用户的社会化和单个用户的个性化,使得推荐的电视节目更为准确。\n[0207] 4.在实际应用过程中,电视节目是动态变化的,该方法在每次推荐时,利用当前获取的电视节目播放时刻表进行推荐节目的计算,避免电视节目动态变化的影响,具有实时性,保证了推荐结果的准确性。\n[0208] 图4为本发明实施例推荐电视节目的装置结构示意图。参见图4,该装置包括:用户频道节目分类模块、计算模块、电视节目权值获取模块以及电视节目推荐模块,其中,[0209] 用户频道节目分类模块,用于接收用户频道行为数据,根据预先获取的电视节目菜单,将用户频道行为数据转换为用户频道节目分类信息;\n[0210] 计算模块,用于根据用户频道节目分类模块中的该用户频道节目分类信息以及接收的其他用户频道节目分类信息,分别计算该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值;\n[0211] 电视节目权值获取模块,用于根据预先设置的电视节目权值计算公式,以及计算模块中的该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,获取各频道分类下的电视节目权值;\n[0212] 电视节目推荐模块,用于根据获取的各频道分类下的电视节目权值,选取权值最高的频道分类对应的电视节目,生成推荐列表,向用户推荐。\n[0213] 较佳地,该装置进一步包括:\n[0214] 权值排序模块,用于按照权值进行排序,提取排序前预定数目的电视节目及该电视节目所在的频道。\n[0215] 实际应用中,该装置还可以进一步包括:\n[0216] 频道行为数据过滤模块,用于抓取用户观看电视节目的频道行为数据,获取频道的结束观看时间与开始观看时间的时间差,如果获取的时间差小于预先设置的频道驻留时间阈值,删除该频道行为数据,然后输出至用户频道节目分类模块。\n[0217] 其中,\n[0218] 用户频道节目分类模块包括:用户频道行为数据接收单元、拆分单元以及用户频道节目分类信息生成单元(图中未示出),其中,\n[0219] 用户频道行为数据接收单元,用于接收用户频道行为数据;\n[0220] 拆分单元,用于拆分电视节目菜单为电视节目播放时刻表以及电视节目分类信息表;\n[0221] 用户频道节目分类信息生成单元,用于按照拆分的电视节目时刻表中包含的时间,对用户频道行为数据接收单元接收的用户频道行为数据进行切片,结合拆分的电视节目分类表,生成用户频道节目分类信息。\n[0222] 计算模块包括:用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元(图中未示出),其中,\n[0223] 用户频道分类关联权值计算单元,用于根据该用户频道节目分类信息以及其他用户频道节目分类信息,统计各频道分类的所有用户观看次数;根据各频道分类的所有用户观看次数,获取每两个频道分类同时出现的所有用户观看次数;根据该用户频道节目分类信息,统计各频道分类的该用户观看次数;根据获取的每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数,获取该用户频道分类关联权值。\n[0224] 本发明实施例中,采用MapReduce算法,将上述每两个频道分类同时出现的所有用户观看次数以及各频道分类的该用户观看次数转换为矩阵,采用共现矩阵计算方式,计算出频道分类关联权值矩阵。\n[0225] 频道分类节目时间分布权值计算单元,用于以预设时间为单位分割预先设置的时间周期,计算各频道分类在分割的各时间段内的所有用户观看次数;根据分割的各时间段内的观看次数分布,以及各频道分类下电视节目的播放时间,计算各频道分类下的各电视节目对应的频道分类节目时间分布权值;\n[0226] 频道分类节目观看权值计算单元,用于统计用户频道节目分类信息中,频道分类下各电视节目的所有用户观看次数信息,作为频道分类节目观看权值。\n[0227] 较佳地,该计算模块进一步包括:\n[0228] 归一化计算单元,用于接收用户频道分类关联权值计算单元、频道分类节目时间分布权值计算单元以及频道分类节目观看权值计算单元输出的信息,进行归一化处理后输出至电视节目权值获取模块。\n[0229] 图5为本发明实施例推荐电视节目的装置另一结构示意图。参见图5,该装置包括:用户频道行为数据抓取模块、电视节目菜单抓取模块、第一数据库模块、转换模块、第二数据库模块、计算模块、分布式文件系统模块、监控模块以及推荐模块,其中,[0230] 通过用户频道行为数据抓取模块抓取用户频道行为数据,并输出至第一数据库模块进行存储;通过电视节目菜单抓取模块抓取电视节目菜单,输出至第一数据库模块进行存储;转换模块读取第一数据库模块中存储的数据,根据计算模块所需要的数据格式,对第一数据库模块中的数据进行转换并进行简单统计汇总,包括用户频道行为数据拆分以及汇总电视节目观看次数信息,输出至监控模块以及第二数据库模块;监控模块用于监控文件服务器(该装置)指定的文件路径,将文件路径中包含的文件,即对用户频道行为数据进行拆分后形成的文件,加载至分布式文件系统(HDFS,Hadoop Distributed File System)模块中,加载后通知计算模块进行增量计算,同时记录通知结果。\n[0231] 本发明实施例中,为了能够将文件以增量的方式加载至HDFS模块中,设置拆分后形成的文件体现增量顺序,即文件的命名采用“文件名称+时间+序列号”方式。其中,时间采用6位的字符串,序列号以天为单位,表示该文件为当天生成的第几个文件。\n[0232] 对于加载成功的文件进行备份并记录加载日志;对于加载失败的文件,进行重试加载,多次重试后,重试加载失败的文件不进行备份,并记录加载日志。\n[0233] 对于加载失败的情形,监控模块开启单独的线程进行通知。\n[0234] 图6为本发明实施例加载文件的流程示意图。参见图6,该流程包括:\n[0235] 步骤601,按照预先设置的时间周期扫描指定文件路径中包含的文件;\n[0236] 本步骤中,文件即对用户频道行为数据进行拆分后形成的文件,该文件存储在指定文件路径中。\n[0237] 步骤602,判断是否有新增文件,如果有,执行步骤603,否则,置于休眠状态,在下一个时间周期到来时,返回执行步骤601;\n[0238] 步骤603,获取指定文件路径中包含的文件列表;\n[0239] 步骤604,对文件列表进行升序处理;\n[0240] 步骤605,判断是否有未加载的文件,如果是,执行步骤606,否则,执行步骤611;\n[0241] 步骤606,将未加载的文件加载至HDFS模块;\n[0242] 步骤607,判断加载是否成功,如果是,执行步骤608,否则,执行步骤621;\n[0243] 步骤608,移动该加载的文件至备份路径中;\n[0244] 步骤609,记录加载日志,返回执行步骤605;\n[0245] 步骤611,通知计算模块进行增量计算;\n[0246] 步骤612,记录通知结果;\n[0247] 步骤621,判断是否超过预先设置的重试加载次数,如果是,执行步骤609,否则,返回执行步骤606。\n[0248] 计算模块,用于根据加载至分布式文件系统模块中文件包含的数据,进行关联性计算,并输出至推荐模块,最后由推荐模块根据预先计算好的数据模型以及用户的当前频道行为数据,生成推荐的电视节目。\n[0249] 本发明实施例中,计算模块分为三部分:消息监控、关系计算、个性化计算。在关系计算和个性化计算中,较佳地,使用映射化简(MapReduce)云计算的方式。其中,[0250] MapReduce通过主机,即文件服务器,将对数据集的大规模操作分发给集群系统中的每个工作节点(Worker),包括映射工作节点(Map Worker)以及化简工作节点(Reduce Worker),即上报用户频道行为数据的各客户端,各节点周期性地向主机返回完成的工作和状态信息。\n[0251] 集群中的每个节点上都运行一个独立的Mapper程序实例,程序中包含一个特殊的副本,即主机(Master),剩余的其它副本被分配给Master管理的工作节点(Worker),Master用于管理空闲的Worker并将映射(Map)任务、和/或,化简(Reduce)任务分配给Worker,Worker用于完成映射任务以及化简任务,包括映射工作节点(Map Worker)以及化简工作节点(Reduce Worker)。\n[0252] Map Worker,用于接收主机下发的拆分后的数据块,为每个输入的数据块设置键值(key/value)对,然后,唤醒用户自定义的Map函数进行Map计算,并将Map函数产生的Map结果缓存在临时存放的内存中,然后写入磁盘,并将写入磁盘的Map结果的物理地址传送给Master,以便于Master将Map结果分配给空闲的Reduce Worker执行Reduce任务。\n[0253] Reduce Worker,当用户远程调用由Map Worker处理的缓存Map结果数据时,通知Reduce Worker;当Reduce Worker读取了所有的中间数据时,汇集所有相同中间键的数据;\n采用并行处理Reduce任务,预先进行排序处理,以避免多个不同的键映射到相同的任务中的情形;每个用户的每个唯一键和该用户相应的数据均通过Reduce Worker传递给Reduce函数;将Reduce函数的输出写入分布式文件系统中。\n[0254] 在所有的Map和Reduce函数运行结束后,Master将控制权发送给客户端。\n[0255] 本发明实施例中,分布式计算系统采用MapReduce方式,该系统的逻辑结构由NameNode、JobTrackers、DataNode以及TaskTrackers组成。\n[0256] 其中,JobTrackers以及TaskTrackers为MapReduce的引擎,并以JobTracker为主,进行工作任务分配以及负责与用户程序通信;NameNode负责管理文件系统名称空间和控制外部客户机的访问;NameNode决定是否将文件映射到DataNode上的复制块上。其中,NameNode和JobTrackers只能有一个,而DataNode以及TaskTrackers可以根据部署的需要,配置一个或者多个。\n[0257] 图7为本发明实施例分布式计算处理流程示意图。参见图7,该流程包括:\n[0258] 步骤701,将数据加载至HDFS模块;\n[0259] 步骤702,HDFS模块将任务输入给JobTrackers;\n[0260] 步骤703,JobTrackers分配任务;\n[0261] 本步骤中,JobTrackers将任务分配给各节点。\n[0262] 步骤704,DataNode读取HDFS数据块;\n[0263] 步骤705,Mapper处理数据;\n[0264] 步骤706,输出中间结果至本地磁盘;\n[0265] 步骤707,通知TaskTrackers任务结束以及中间结果的数据路径;\n[0266] 步骤704至步骤707通过Mapper worker执行。\n[0267] 步骤708,TaskTrackers监控分配的各任务;\n[0268] 步骤709,读取中间数据;\n[0269] 步骤710,Reduce worker处理中间数据;\n[0270] 步骤711,输出中间结果至本地磁盘;\n[0271] 步骤712,通知TaskTrackers任务结束以及中间结果的数据路径;\n[0272] 步骤710至步骤712通过Reduce worker执行。\n[0273] 步骤713,TaskTrackers监控所有任务完成后,通知JobTrackers。\n[0274] 消息监控:用于实时接收通知消息,将接收到的文件加入待计算的队列中,等待计算部分进行关系计算。本发明实施例中,消息监控采用内存与数据库同步的方式,即当前处理时,从内存的队列中读取数据,处理后从队列中移除该数据,同时修改其数据库中的状态,例如,移表或置标记位。也就是说,在当前处理时,将接收的文件写入数据库,携带未处理标识,在进行计算后,将该未处理标识更新为已处理标识,这样,在出现故障时,可以根据数据库存储的文件标识进行加载,可以避免多次访问数据库。实际应用中,数据库中存储的数据相当于是数据副本,一旦出现故障可以通过副本进行恢复,副本携带是否已经处理过的标记,标记的方式可以采用分表存储或者标记位。\n[0275] 关系计算,包括该用户频道分类关联权值计算,当待计算的队列中存在待处理的文件时,启动关系计算流程。即获取待计算的文件列表,对于每一个待计算的文件,进行计算,然后将计算结果更新至第二数据库模块中。\n[0276] 图8为本发明实施例关系计算流程示意图。参见图8,该流程包括:\n[0277] 步骤801,判断待计算的队列是否为空,如果是,置于休眠状态,在下一时间周期继续进行判断,否则,执行步骤802;\n[0278] 实际应用中,还可以将待计算的队列中待处理的文件列表依序进行合并,合并成一个待处理的文件。\n[0279] 步骤802,将文件内容转换为预先设置的格式,例如,>格式。\n[0280] 步骤803,汇总统计每两个频道分类共同出现的次数;\n[0281] 本步骤中,将表6中的频道、分类合并为唯一属性,即频道分类,例如,CCTV1新闻。\n抽取所有频道分类,逐个成对在表6中查找本对频道分类被同一用户同时观看的次数,总次数即共同出现的频率,依此来反映这两个频道分类的关系。\n[0282] 步骤804,更新频道分类关系数据库;\n[0283] 本步骤中,频道分类本身作为一个属性存在,例如,CCTV1新闻、CCTV1动画等,频道分类关系为两者共同出现的频率。\n[0284] 如果该对频道分类的关系数据已存在,则追加次数,否则将该对频道分类的关系数据记入数据库。\n[0285] 如前所述,如果合并成一个待处理的文件,则可以采用MapReduce的云计算的方式实现步骤802至步骤804。这样,当文件堆积时,可以提高频道分类关系计算的处理效率;\n或者,当计算部分采用定时处理时,也可以提高效率。\n[0286] 步骤803至步骤804用于完成频道分类关系计算。\n[0287] 步骤805,将该文件从待计算的队列中移除,并修改数据库中该文件的处理状态。\n[0288] 个性化计算,包括频道分类节目时间分布权值计算以及频道分类节目观看权值计算。\n[0289] 其中,频道分类节目时间分布权值计算的计算维度为频道、时间段、所有用户观看次数,具体来说,按照预先设置的时间周期(定时)计算用户近N天/M月观看频道的时间分布;将24小时按照固定时间长度进行切段,汇总每个时间段内的用户观看次数。\n[0290] 图9为本发明实施例用户频道分类关联权值计算流程示意图。参见图9,该流程包括:\n[0291] 步骤901,读取频道分类信息;\n[0292] 步骤902,加载至HDFS模块中;\n[0293] 步骤903,汇总用户频道分类;\n[0294] 步骤904,将频道分类信息转换为矩阵;\n[0295] 本步骤中,频道分类信息存储在第一数据库模块中。\n[0296] 步骤905,计算用户频道分类关联权值;\n[0297] 本步骤中,用户频道分类关联权值是指用户看了或者没有看过的频道分类的一个排行。例如,用户观看了CCTV1新闻,则与该CCTV1新闻频道分类相关的CCTV13新闻频道分类可能是用户喜欢的。\n[0298] 步骤906,将结果存储至第二数据库模块中。\n[0299] 其中,步骤902和步骤904可采用MapReduce的分布式计算的方式实现。\n[0300] 推荐模块,用于上述的计算结果,生成推荐的电视节目。\n[0301] 图10为本发明实施例推荐模块生成推荐的电视节目流程示意图。参见图10,该流程包括:\n[0302] 步骤1001,获取当前频道和用户信息;\n[0303] 步骤1002,将获取的当前频道和用户信息转换为频道分类信息;\n[0304] 步骤1003,获取该用户当前频道分类的关联频道分类;\n[0305] 本步骤中,根据当前频道对应的节目分类获取关联频道分类。\n[0306] 步骤1004,将获取的关联频道分类转换为电视节目;\n[0307] 本步骤中,获取每个关联频道分类对应的电视节目。\n[0308] 步骤1005,查询得到该用户的行为分布时间;\n[0309] 本步骤中,如果关联频道分类对应的电视节目数为多个时,由于推荐提供的是N天的电视节目,以供用户预约或者切换,而频道节目本身也会存在同一个分类有多个电视节目。因此,在计算推荐的电视节目时,需要考虑用户的行为分布时间以及节目自身的被关注的程度,即频道分类节目时间分布权值。\n[0310] 步骤1006,查询得到关联频道分类对应的各电视节目的观看次数,即频道分类节目观看权值;\n[0311] 步骤1007,根据预先设置的排序公式计算各电视节目的排名,即各频道分类下的电视节目权值;\n[0312] 步骤1008,将排名前预先设置数的电视节目作为推荐的电视节目,推送给用户。\n[0313] 本步骤中,将排名前N的电视节目推荐给用户。若该用户近期没有观看频道,则将该用户的所在地区排名靠前的频道分类作为该用户的喜好,并推荐给用户。\n[0314] 以下举一具体实施例,对本发明推荐电视节目的方法作详细说明。\n[0315] 1、用户频道行为数据抓取:\n[0316] 初始的用户频道行为数据中存在选台等无效数据,可设置过滤条件,例如,设置频道驻留时间阈值进行过滤,举例来说,设置频道驻留时间阈值为5分钟,对初始的用户频道行为数据过滤后,得到有效的用户频道行为数据。\n[0317] 表7记录的为用户A、用户B及用户C在某一段时间内初始的用户频道行为数据。\n[0318] 表7\n[0319] \n[0320] \n[0321] 表7中,通过获取用户初始的用户频道行为数据,可以了解用户行为信息,获取用户在过去一段时间内的行为数据。如果设置频道驻留时间阈值为5分钟,则表7中,以加粗、斜体记录的用户频道行为数据将被过滤掉,即有效的用户频道行为数据为不包括表7中以加粗、斜体记录的用户频道行为数据。\n[0322] 2、电视节目菜单抓取:\n[0323] 电视节目菜单从第三方平台上按照预先设置的时间周期进行抓取。\n[0324] 抓取的电视节目菜单为某一段时间内的最新节目数据,将抓取的电视节目菜单与存储的电视节目菜单进行比较,如果抓取的电视节目菜单与存储的电视节目菜单不一致,则更新存储的电视节目菜单中相应的节目数据,否则,存储该抓取的电视节目菜单。\n[0325] 本发明实施例中,在对抓取的电视节目菜单进行存储后,再对存储的电视节目菜单进行分割,分割为电视节目播放时刻表、电视节目类型表以及电视节目分类信息表等。其中,电视节目播放时刻表记录过去至未来一段时间内的电视节目播放信息,通过将电视节目播放时刻表记录的过去时间的节目播放信息与用户频道行为数据结合后,可以得到该用户观看的频道信息,电视节目播放时刻表中未来时间段的节目播放信息用来后续向用户推荐电视节目。\n[0326] 表8为分割得到的示意性电视节目播放时刻表。\n[0327] 表8\n[0328] \n[0329] \n[0330] 表9为分割得到的电视节目类型表,包括分类标识信息以及分类信息。\n[0331] 表9\n[0332] \n 分类标识 分类\n 200 综艺娱乐\n 201 影视天地\n 202 体坛风云\n 203 新闻时事\n 204 其他节目\n[0333] 表10为分割得到的电视节目分类信息表。\n[0334] 表10\n[0335] \n[0336] \n[0337] 3、用户频道行为数据转换:\n[0338] 1)、用户频道行为数据拆分:\n[0339] 将用户观看频道的开始观看时间、结束观看时间按照电视节目时间,即开始播放时间以及结束播放时间,转换为每个电视节目的实际开始观看时间、时长,生成用户频道节目分类信息表。\n[0340] 以时间段2012-7-18∶00~9∶30为例,根据表7得到的用户频道节目分类信息表如表11所示。\n[0341] 表11\n[0342] \n[0343] 2)、汇总电视节目观看次数\n[0344] 本发明实施例中,假设电视节目P的播放时间段为:8∶00~9∶00,如果用户A观看电视节目的时间段为:8∶05~8∶15、8∶35~9∶00,则汇总的电视节目P观看次数为2,然后,统计每一电视节目在预设时间段内被用户观看的次数。\n[0345] 根据表11汇总得到的电视节目观看次数如表12所示。\n[0346] 表12\n[0347] \n 频道 电视节目 观看次数\n CCTV-1 第一时间 3\n CCTV-2 新闻早报 1\n[0349] 4、用户频道分类关联权值计算:\n[0350] 1)、频道分类关联信息:\n[0351] 统计两个频道分类同时出现的次数,即在预设时间段内,用户观看的各频道分类次数的交集。\n[0352] 表13为统计得到的所有用户示意性的频道分类关联信息表。\n[0353] 表13\n[0354] \n[0355] 2)、归一化频道分类关联信息,得到用户频道分类关联权值:\n[0356] 本步骤中,MapReduce将频道分类关联信息转换为相应的矩阵,结合用户对频道分类的观看次数,采用共现矩阵计算方式,计算出用户频道分类关联权值。\n[0357] 将表13所示的频道分类关联信息转换为相应的矩阵为:\n[0358] \n[0359] 某一用户对频道分类的观看次数形成的矩阵为:\n[0360] \n[0361] 则计算公式为:\n[0362] \n[0363] 式中,α1至α6依序为表13列中各频道分类的用户频道分类关联权值。\n[0364] 表14为计算得到的归一化用户频道分类关联权值表。\n[0365] 表14\n[0366] \n 用户频道分类关联权值\n CCTV-1影视天地 0.580\n CCTV-1其他节目 0.000\n CCTV-1综艺娱乐 0.400\n CCTV-2新闻时事 1.000\n CCTV-2综艺娱乐 0.113\n CCTV-2影视天地 0.267\n[0367] 3)、频道分类节目时间分布权值:\n[0368] 本发明实施例中,首先,以15分钟为单位分割预先设置的时间段,计算各频道在分割的各时间段内的观看次数,观看次数集中的时间段即为热播时间段。\n[0369] 表15为一段时间内对CCTV-2进行统计得到的观看次数分布表。\n[0370] 表15\n[0371] \n 频道 分割开始时间 分割结束时间 观看次数\n CCTV-2 6∶00 6∶15 25\n CCTV-2 6∶15 6∶30 15\n CCTV-2 6∶30 6∶45 30\n CCTV-2 6∶45 7∶00 56\n CCTV-2 7∶00 7∶15 80\n CCTV-2 7∶15 7∶30 78\n CCTV-2 7∶30 7∶45 90\n CCTV-2 7∶45 8∶00 95\n[0372] 本发明实施例中,采用MapReduce分布式进行计算,能够提高计算性能,同时,频道分类矩阵比较稳定,可以进行离线计算,相比较节目矩阵,降低了关联矩阵的计算量。\n[0373] 其次,根据观看次数分布表,以及各频道分类下电视节目的播放时间计算该播放时间对应的频道分类节目时间分布权值。\n[0374] 本步骤中,从电视节目播放时刻表中获取电视节目的播放时间信息,根据各频道分类下电视节目的播放时间,查询观看次数分布表,获取该时间段内的平均观看次数,根据归一化公式进行归一化处理,得到电视节目时间分布信息系数。即在预先设置的时间段内,获取电视节目播放时间范围内所有时间段的观看次数的平均值,进行归一化处理,作为频道分类节目时间分布权值。\n[0375] 表16为依据表15计算得到的频道分类节目时间分布权值表。\n[0376] 表16\n[0377] \n[0378] 5、推荐电视节目:\n[0379] 首先,统计电视节目在各频道分类下的频道分类节目观看权值;\n[0380] 本步骤中,由于电视节目在不同的频道中,其播放时间点也可能不同,因而,对于不同的频道分类,对应的频道分类节目观看权值也会不同。则统计该电视节目在不同频道分类下的观看次数,并进行归一化处理,得到电视节目在各频道分类下的频道分类节目观看权值。\n[0381] 表17为根据表15以及表16计算得到的频道分类节目观看权值表。\n[0382] 表17\n[0383] \n 电视节目 频道分类节目观看权值\n 新闻早报 0.23\n 新闻调查 0.1\n[0384] 其次,根据该用户频道分类关联权值、频道分类节目时间分布权值以及频道分类节目观看权值,得到电视节目分值;\n[0385] 本步骤中,电视节目分值计算公式为:\n[0386] φ=ξ1xρ+ξ2xλ+ξ3xκ\n[0387] 式中,\n[0388] ξ1=0.6,ξ2=0.3,ξ3=0.1;\n[0389] 对于新闻早报,ρ=0.496,λ=0.22,κ=0.23;\n[0390] 对于新闻调查,ρ=0.496,λ=0.12,κ=0.1。\n[0391] 表18为计算得到的电视节目分值表。\n[0392] 表18\n[0393] \n 电视节目 电视节目分值\n 新闻早报 0.6x0.496+0.3x0.22+0.1x0.23=0.3866\n 新闻调查 0.6x0.496+0.3x0.12+0.1x0.1=0.3436\n[0394] 最后,从计算得到的各频道分类下的电视节目分值中,选取分值最高的频道分类下的电视节目,向用户推荐。\n[0395] 本步骤中,由于同一个电视节目在不同的频道分类下,具有不同的电视节目分值,因而,只需选取其中分值最高的电视节目及所在频道,作为向用户推荐的电视节目。当然,实际应用中,如果向用户推荐的电视节目中,包含有用户当前观看的电视节目,则过滤掉当前电视节目,避免删除其它时间点该节目的播出推荐。\n[0396] 显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
法律信息
- 2017-02-15
专利权的转移
登记生效日: 2017.01.20
专利权人由青岛海信传媒网络技术有限公司变更为聚好看科技股份有限公司
地址由266061 山东省青岛市崂山区香港东路248号131室变更为266100 山东省青岛市崂山区松岭路399号
- 2015-01-21
- 2012-12-26
实质审查的生效
IPC(主分类): H04N 21/258
专利申请号: 201210248103.0
申请日: 2012.07.17
- 2012-11-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-12-26
|
2007-07-25
| | |
2
| |
2007-11-21
|
2006-12-22
| | |
3
| |
2008-04-16
|
2007-11-20
| | |
4
| |
2010-10-13
|
2010-04-24
| | |
5
| |
2009-03-11
|
2008-08-01
| | |
6
| |
2006-04-05
|
2004-09-29
| | |
7
| |
2008-06-18
|
2007-07-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |