技术领域
[0001] 本申请涉及网络投票技术领域,尤其涉及一种网络投票方法及装置。
相关背景技术
[0002] 目前的网络投票系统往往基于投票对象的名字或介绍进行投票,这种方式的弊端在于,投票者主要依靠对投票对象以往的印象来进行评分,且易于进行机器和人工刷票。针对上述投票系统,目前采用的防刷票策略为,利用投票请求的地点聚集度来判断某个地址的用户是否为刷票用户,如果某个地址的聚集度超过设定阈值,则认为这个地址的用户都为刷票用户,刷票用户的投票结果为不合规投票结果,将不合规投票结果滤除,然而,如果聚集度超过设定阈值的地区真实投票用户很多,上述策略会造成误判,如果聚集度没有超过设定阈值的地区存在少量的刷票,上述策略会造成漏判,可见,现有的防刷票策略存在误判和漏判的问题。
具体实施方式
[0016] 下面结合本申请实施例中的附图对本申请实施例进行描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
[0017] 下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
[0018] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0019] 在介绍本申请提供的网络投票方法之前,先对本申请涉及的系统架构进行说明。
[0020] 如图1所示,系统架构可以包括终端100和服务器200,其中,服务器200可以包括一个或者多个服务器(图1中以包括一个服务器作为示例进行说明) 。
[0021] 用户可以使用终端100通过网络(有线网络或无线网络)与服务器200交互,以接收或发送消息等。终端100上可以安装有各种客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、视频播放软件、即时通信工具、邮箱客户端、社交平台软件等。
[0022] 接下来描述上述终端100的产品形态。
[0023] 上述的终端100可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例对此不作任何限制。
[0024] 图2示出了终端100的一种可选的硬件结构示意图。
[0025] 参考图2所示,终端100可以包括射频单元110、存储器120、输入单元130、显示单元140、摄像头150(可选的)、音频电路160(可选的)、扬声器161(可选的)、麦克风162(可选的)、耳机插孔163(可选的)、处理器170、外部接口180、电源190等部件。本领域技术人员可以理解,图2仅仅是终端100的举例,并不构成对终端100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
[0026] 输入单元130可用于接收输入的数字或字符信息,以及产生与该终端100的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触摸屏131(可选的)和/或其他输入设备132。触摸屏131可收集用户在其上或附近的触摸操作(比如用户使用手指、关节、触笔等任何适合的物体在触摸屏上或在触摸屏附近的操作),并根据预先设定的程序驱动相应的连接装置。触摸屏可以检测用户对触摸屏的触摸动作,将该触摸动作转换为触摸信号发送给该处理器170,并能接收该处理器170发来的命令并加以执行;该触摸信号至少包括触点坐标信息。触摸屏131可以提供该终端100和用户之间的输入界面和输出界面。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏。除了触摸屏131,输入单元130还可以包括其他输入设备。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0027] 显示单元140可用于显示由用户输入的信息或提供给用户的信息、终端的各种菜单、交互界面、文件显示和/或任意一种多媒体文件的播放。
[0028] 存储器120可用于存储指令和数据,存储器120可主要包括存储指令区和存储数据区,存储数据区可存储各种数据,如多媒体文件、文本等;存储指令区可存储操作系统、应用、至少一个功能所需的指令等软件单元,或者他们的子集、扩展集。还可以包括非易失性随机存储器;向处理器170提供包括管理计算处理设备中的硬件、软件以及数据资源,支持控制软件和应用。还用于多媒体文件的存储,以及运行程序和应用的存储。
[0029] 处理器170是终端100的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的指令以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据,从而对终端100进行整体控制。可选的,处理器170可包括一个或多个处理单元;优选的,处理器170可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器170中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,他们也可以在独立的芯片上分别实现。处理器170还可以用于产生相应的操作控制信号,发给计算处理设备相应的部件,读取以及处理软件中的数据,尤其是读取和处理存储器120中的数据和程序,以使其中的各个功能模块执行相应的功能,从而控制相应的部件按指令的要求进行动作。
[0030] 射频单元110(可选的)可用于收发信息或通话过程中信号的接收和发送,例如,将基站的下行信息接收后,给处理器170处理;另外,将设计上行的数据发送给基站。通常,射频单元110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,射频单元110还可以通过无线通信与网络设备和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
[0031] 其中,在本申请实施例中,射频单元110可以将数据发送至其他设备,也可接收其他设备发送来的数据。应理解,该射频单元110为可选的,其可以被替换为其他通信接口,例如可以是网口。
[0032] 终端100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器170逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0033] 终端100还包括外部接口180,该外部接口可以是标准的Micro USB接口,也可以使多针连接器,可以用于连接终端100与其他装置进行通信,也可以用于连接充电器为终端充电。
[0034] 尽管未示出,终端100还可以包括闪光灯、无线保真(wireless fidelity,WiFi)模块、蓝牙模块、不同功能的传感器等,在此不再赘述。
[0035] 接下来描述上述服务器200的产品形态。
[0036] 图3提供了上述服务器200的一种结构示意图,如图3所示,服务器200包括总线201、处理器202、通信接口203和存储器204。处理器202、存储器204和通信接口203之间通过总线201通信。
[0037] 总线201可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0038] 处理器202可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
[0039] 存储器204可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器204还可以包括非易失性存储器(non‑volatile memory),例如只读存储器(read‑only memory,ROM),快闪存储器,机械硬盘(hard drive drive,HDD)或固态硬盘(solid state drive,SSD)。
[0040] 需要说明的是,本申请实施例所提供的网络投票方法一般由服务器200执行,有鉴于此,存储器204可以用于存储网络投票方法相关的软件代码,处理器202可以调用存储器204存储的软件代码,也可以调度其他单元以实现相应的功能。
[0041] 应理解,上述终端100和服务器200可以为集中式或者是分布式的设备,上述终端100和服务器200中的处理器(例如处理器170以及处理器202)可以为硬件电路(如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field‑programmable gate array,FPGA)、通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器等等)、或这些硬件电路的组合,例如,处理器可以为具有执行指令功能的硬件系统,如CPU、DSP等,或者为不具有执行指令功能的硬件系统,如ASIC、FPGA等,或者为上述不具有执行指令功能的硬件系统以及具有执行指令功能的硬件系统的组合。
[0042] 接下来通过下述实施例对本申请提供的网络投票方法进行介绍。
[0043] 请参阅图4,示出了本申请实施例提供的一种网络投票方法的流程示意图,该方法可以包括:步骤S401:从内容涉及多个对象的视频中获取若干个投票对象分别对应的视频片段。
[0044] 步骤S401中的视频可以为选秀类节目的视频,其为内容涉及多个对象的长视频,其中,长视频的视频内容中涉及的多个对象包括若干个投票对象,步骤S401的目的在于,从内容涉及多个对象的长视频中获取每个投票对象对应的视频片段。需要说明的是,一个投票对象对应的视频片段中的主要对象为该投票对象。
[0045] 步骤S402:将若干个投票对象分别对应的视频片段分发给多个用户,以便多个用户观看分发的视频片段并对观看的视频片段所对应的投票对象进行投票。
[0046] 现有的网络投票方法中,用户主要依靠对投票对象以往的印象进行投票,而本申请不同,本申请彻底改变了投票方式,在获得若干个投票对象分别对应的视频片段后,将若干个投票对象分别对应的视频片段分发给多个用户,多个用户观看投票对象对应的视频片段,进而,根据视频片段中投票对象的表现对投票对象进行投票,相比于现有的网络投票方法,本申请实施例提供的网络投票方式更公平客观。
[0047] 步骤S403:获取多个用户的投票行为数据。
[0048] 其中,一个用户的投票行为数据包括该用户的视频片段观看时长(该用户对其所观看的视频片段的观看时长),以及该用户对所观看的视频片段对应的投票对象的投票结果。
[0049] 步骤S404:根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果。
[0050] 可以理解的是,刷票用户通常不会认真看视频,即,其对于视频片段的观看时长往往较短,有鉴于此,本申请实施例根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果。
[0051] 步骤S405:将识别出的不合规投票结果过滤掉,并对剩余的投票结果进行统计。
[0052] 在识别出不合规投票结果后,从多个用户的投票结果中,将不合规投票结果过滤掉,进而,对多个用户的剩余投票结果进行统计。
[0053] 在一种可能的实现方式中,对多个用户的剩余投票结果进行统计的过程可以包括:针对每个投票对象,从剩余的投票结果中统计属于该投票对象的投票结果的总数量,并从属于该投票对象的投票结果中统计指示用户喜欢该投票对象的投票结果的总数量,根据属于该投票对象的投票结果的总数量以及指示用户喜欢该投票对象的投票结果的总数量,确定该投票对象的受欢迎程度。
[0054] 若将属于一投票对象的投票结果的总数量表示为vote_all,将属于该投票对象的投票结果中指示用户喜欢该投票对象的投票结果的总数量表示为vote_like,则该投票对象的受欢迎程度popular=vote_like/vote_all。
[0055] 本申请实施例提供的网络投票方法,首先从内容涉及多个对象的视频中获取若干个投票对象分别对应的视频片段,然后将若干个投票对象分别对应的视频片段分发给多个用户,以便多个用户观看分发的视频片段并对观看的视频片段所对应的投票对象进行投票,接着获取多个用户的投票行为数据(包括视频片段观看时长以及对所观看的视频片段对应的投票对象的投票结果),然后根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果,最后将识别出的不合规投票结果过滤掉,并对剩余的投票结果进行统计。本申请实施例提供的网络投票方法提供了一种全新的网络投票方式,即,将若干个投票对象分别对应的视频片段分发给多个用户,以使用户观看投票对象对应的视频片段,进而,根据视频片段中投票对象的表现对投票对象进行投票,相比于现有的网络投票方法,本申请实施例提供的网络投票方式更公平客观,在提供了全新网络投票方式的基础上,本申请实施例还提供了防刷票策略,即根据用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果,这种刷票策略具有较高的识别准确率,能够保证投票在合规的情况下进行,另外,本申请提供的网络投票方法还增加了用户的互动感,进而能够提升节目的收视率和传播度。
[0056] 在本申请的另一实施例中,对上述实施例中的“步骤S401:从内容涉及多个对象的视频中获取若干个投票对象分别对应的视频片段”的具体实现过程进行介绍。
[0057] 请参阅图5,示出了从内容涉及多个对象的视频中获取若干个投票对象分别对应的视频片段的流程示意图,可以包括:步骤S501:从视频包含的视频帧中检测出目标人脸,并从若干个投票对象中确定目标人脸对应的投票对象,以得到视频包含的视频帧的人脸识别结果。
[0058] 其中,一视频帧中的目标人脸为该视频帧中人脸占比最大的人脸。
[0059] 在一种可能的实现方式中,步骤S501的具体实现过程可以包括:每隔n(比如n=5)帧从视频中抽取一个视频帧,针对抽取的每个视频帧,对其进行人脸检测,以得到视频帧包含的人脸,确定检测出的每个人脸的人脸占比(人脸占比指的是,人脸区域在整个视频帧所占的比例),将人脸占比最大的人脸确定为目标人脸,从若干个投票对象中确定目标人脸所属的投票对象,以得到视频帧的人脸识别结果(一视频帧的人脸识别结果即为该视频帧中目标人脸所属的投票对象)。
[0060] 其中,从若干个投票对象中确定目标人脸所属的投票对象的过程可以包括:针对目标人脸提取人脸特征,作为目标人脸特征,计算目标人脸特征与每个投票对象的人脸特征的相似度,将与目标人脸特征的相似度最高的人脸特征所属的投票对象确定为目标人脸所属的投票对象。需要说明的是,可预先获取各投票对象的人脸图像,然后针对各投票对象的人脸图像提取人脸特征,以得到各投票对象的人脸特征。
[0061] 需要说明的是,为了提高数据处理效率,上述实现方式每隔n帧从视频中抽取一个视频帧进行处理,当然,本实施例并不限定于此,也可对视频包含的每个视频帧进行处理,如此获得的是视频包含的每个视频帧的人脸识别结果。
[0062] 步骤S502:根据视频包含的视频帧的人脸识别结果,从视频中提取出若干个投票对象分别对应的视频片段。
[0063] 具体的,可根据视频包含的视频帧的人脸识别结果,获得每个投票对象出现的帧号序列,进而,可根据每个投票对象出现的帧号序列,从视频帧中提取出每个投票对象对应的视频片段,从而,最终获得若干个投票对象分别对应的视频片段。需要说明的是,一个投票对象对应的视频片段可能为一个,也可能为多个。
[0064] 在一种可能的实现方式中,可将经由步骤S502获得的视频片段作为最终的视频片段。
[0065] 考虑到经由步骤S502获得的视频片段中可能包含时长较短的视频片段,也可能包含美学效果不佳的视频片段,有鉴于此,在另一种可能的实现方式中,从视频中提取出若干个投票对象分别对应的视频片段后,可执行如下步骤S503。
[0066] 步骤S503:将提取出的视频片段中时长小于第一预设时长阈值的视频片段和/或美学得分小于预设美学得分阈值的视频片段过滤掉。
[0067] 需要说明的是,可基于美学模型预测提取出的每个视频片段的美学得分。
[0068] 经由上述过程可获得若干个投票对象分别对应的视频片段。
[0069] 在本申请的另一实施例中,对上述实施例中的步骤S402中“将若干个投票对象分别对应的视频片段分发给多个用户”的具体实现过程进行介绍。
[0070] 将若干个投票对象分别对应的视频片段分发给多个用户的过程可以包括:针对每个用户,当接收到该用户的视频片段分发请求时,以最大分配投票对象的分配用户数与最小分配投票对象的分配用户数的差值小于预设值为约束条件,确定能够最大化视频片段观看总时长的K个投票对象及对应视频片段;将确定出的视频片段分发给该用户。
[0071] 其中,一投票对象的分配用户数指的是,为该投票对象的视频片段分配的用户的数量,最大分配投票对象为K个投票对象中分配用户数最多的投票对象,最小分配投票对象为K个投票对象中分配用户数最少的投票对象,K为大于1的整数。
[0072] 上述“以最大分配投票对象的分配用户数与最小分配投票对象的分配用户数的差值小于预设值为约束条件,确定能够最大化视频片段观看总时长的K个投票对象及对应视频片段”可表示为下式: (1)
上式(1)中, 中的 表示第i个投票对象, 表示第i+1个投票对
象,…, 表示第i+k‑1个投票对象, 表示K个投票对象,
表示最大化K个投票对象的视频片段观看总时长,maxMe表示
最大分配投票对象的分配用户数,minMe表示最小分配投票对象的分配用户数。需要说明的是,α与视频片段未来的用户访问量(访问视频片段的用户的数量)有关,视频片段未来的用户访问量可利用用户访问量预测模型预测得到,其中,用户访问量预测模型可以过去Q天(比如90天)的用户访问量为训练数据训练得到,其可预测未来P天(比如3天)的用户访问量。
[0073] 考虑到上式(1)直接求解复杂度较高,本申请采用近似算法确定能够最大化视频片段观看总时长的K个投票对象及对应视频片段,图6示出了具体实现流程,可以包括:步骤S601:从若干个投票对象中筛选出分配用户数最少的K个投票对象。
[0074] 可统计每个投票对象的分配用户数,进而确定出分配用户数最少的K个投票对象。
[0075] 步骤S602:对筛选出的K个投票对象分别对应的视频片段进行质量评估,得到筛选出的K个投票对象分别对应的视频片段的质量得分。
[0076] 在一种可能的实现方式中,针对筛选出的K个投票对象分别对应的视频片段中的每个视频片段,可根据该视频片段的历史观看总次数以及历史观看总时长,确定该视频片段的质量得分。其中,一视频片段的历史观看总次数指的是,该视频片段被用户观看过的总次数,一视频片段的历史观看总时长指的是,该视频片段被用户观看过的总时长。
[0077] 示例性的,一视频片段的历史观看总次数为30次,历史观看总时长为180分钟,则该视频片段的质量得分可以为180/30=6分。
[0078] 在另一种可能的实现方式中,针对筛选出的K个投票对象分别对应的视频片段中的每个视频片段,若该视频片段的分配用户数大于或等于100,则根据该视频片段的历史观看总次数以及历史观看总时长,确定该视频片段的质量得分,若该视频片段的分配用户数小于100,则根据所有视频片段的历史观看总次数以及历史观看总时长,确定该视频片段的质量得分。示例性的,一视频片段的分配用户数为30,所有视频片段的历史观看总次数为100次,所有视频片段的历史观看总时长为600分钟,则该视频片段的质量得分为600/100=6分,即,若视频片段的分配用户数小于100,则将所有视频片段的平均质量得分作为该视频片段的质量得分。
[0079] 步骤S603:对该用户历史观看的视频片段进行质量评估,得到该用户历史观看视频片段的质量得分。
[0080] 具体的,根据该用户对于视频片段的历史观看总次数以及历史观看总时长,确定该用户历史观看视频片段的质量得分。
[0081] 示例性的,该用户对于视频片段的历史观看总次数为10次,对于视频片段的历史观看总时长为50分钟,则该用户历史观看视频片段的质量得分可以为50/10=5分。
[0082] 步骤S604:根据该用户历史观看视频片段的质量得分以及筛选出的K个投票对象分别对应的视频片段的质量得分,从筛选出的K个投票对象分别对应的视频片段中筛选视频片段,以得到由筛选出的视频片段组成的候选视频片段集。
[0083] 假设该用户历史观看视频片段的质量得分为s,则可从K个投票对象分别对应的视频片段中筛选质量得分大于s的视频片段,由筛选出的视频片段组成候选视频片段集,示例性的,K个投票对象分别对应的视频片段包括V1、V2、V3、…、V9、V10,假设V1、V3、V5、V8的质量得分大于该用户历史观看视频片段的质量得分s,则由V1、V3、V5、V8组成候选视频片段集。
[0084] 步骤S605:预测该用户对于候选视频片段集中每个视频片段的观看时长。
[0085] 具体的,针对候选视频片段集中的每个视频片段,可根据该用户本身的信息(比如用户所使用的电子设备、用户发送视频片段分发请求的地址等等)、该用户的行为信息以及该视频片段的相关信息(比如视频片段的类型、时长、上线时间、对应的投票对象等),预测该用户对于该视频片段的观看时长。
[0086] 在一种可能的实现方式中,可将该用户本身的信息、该用户的行为信息以及该视频片段的相关信息输入预先训练得到的观看时长预测模型,观看时长预测模型根据输入预测该用户对于该视频片段的观看时长。其中,观看时长预测模型采用标注有观看时长的训练数据(训练数据包括用户本身的信息、用户的行为信息以及视频片段的相关信息)训练得到。
[0087] 步骤S606:根据该用户对于候选视频片段集中每个视频片段的观看时长,从候选视频片段集中筛选出N条视频片段。
[0088] 其中,N为大于0的整数。
[0089] 在一种可能的实现方式中,可先从候选视频片段集中将该用户观看过的视频片段过滤掉,然后从候选视频片段集中剩余的视频片段中筛选出观看时长最长的N条视频片段,进而将筛选出的观看时长最长的N条视频片段分发给该用户。
[0090] 在另一种可能的实现方式中,可先从候选视频片段集中将该用户观看过的视频片段过滤掉,然后根据观看时长,同时结合上线时间、质量得分、投票对象间隔等,从候选视频片段集中筛选出N条视频片段,比如,先按观看时长由大到小的顺序,对候选视频片段集中剩余的视频片段进行排序,然后根据上线时间、质量得分、投票对象间隔(使同一投票对象的视频片段隔开)等进行重排,进而根据重排结果确定需要分发给该用户的视频片段。
[0091] 在本申请的另一实施例中,网络投票方法还可以包括:针对若干个投票对象分别对应的视频片段中的每个视频片段,根据该视频片段的上线时间、分配用户数以及质量得分,确定是否需要将该视频片段的状态设置为不可访问,若需要将该视频片段的状态设置为不可访问,则设置该视频片段的状态为不可访问。
[0092] 示例性的,若一视频片段的上线时间超过3天,分配用户数大于100,视频质量得分排名后20%,则可将该视频片段的状态设置为不可访问。需要说明的是,上述阈值(3天、100、20%)仅为示例,实际应用场景中可灵活配置。
[0093] 需要说明的是,可每隔一段时间(比如每隔一天)根据视频片段的上线时间、分配用户数、质量得分检测是否有需要设置为不可访问的视频片段,进而将这些视频片段的状态设置为不可访问。
[0094] 在本申请的另一实施例中,对上述实施例中的“步骤S404:根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果”的具体实现过程进行介绍。
[0095] 步骤S404的实现方式有多种,本实施例提供两种可选的实现方式。
[0096] 根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果的第一种实现方式:针对每个用户的每条投票行为数据:判断该条投票行为数据中的视频片段观看时长是否小于第二预设时长阈值;若该条投票行为数据中的视频片段观看时长小于第二预设时长阈值,则确定该条投票行为数据中的投票结果为不合规投票结果。
[0097] 请参阅图7,示出了根据多个用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果的第二种实现方式:步骤S701:针对每个用户的每条投票行为数据,判断该条投票行为数据中的视频片段观看时长是否小于第二预设时长阈值。
[0098] 步骤S702:若该条投票行为数据中的视频片段观看时长小于第二预设时长阈值,则确定该条投票行为数据中的投票结果为不合规投票结果。
[0099] 示例性的,第二预设时长阈值为3秒,若一用户的一条投票行为数据中的视频片段观看时长小于3秒,则判定该用户的该条投票行为数据中的投票结果为不合规投票结果。
[0100] 若该条投票行为数据中的视频片段观看时长不小于第二预设时长阈值,则暂定该条投票行为数据中的投票结果为合规投票结果。
[0101] 步骤S703:统计每个用户的不合规投票比例。
[0102] 其中,一个用户的不合规投票比例指的是,该用户的不合规投票结果的总数量与该用户的投票结果的总数量的比值。
[0103] 步骤S704:将不合规投票比例大于预设的不合规投票比例阈值的用户确定为刷票用户。
[0104] 若一用户的不合规投票比例大于预设的不合规投票比例阈值(比如50%),则判定该用户为刷票用户。
[0105] 步骤S705:将确定出的刷票用户的所有投票结果确定为不合规投票结果。
[0106] 本实现方式将刷票用户的所有投票结果判定为不合规投票结果。
[0107] 以上介绍了本申请实施例提供的网络投票方法,以下将介绍上述的网络投票方法对应的装置。
[0108] 请参阅图8,图8为本申请实施例提供的一种网络投票装置的结构示意图,该网络投票装置可以包括:视频理解切片模块801、视频片段分发模块802、刷票识别模块803和投票统计模块804。
[0109] 视频理解切片模块801,用于从内容涉及多个对象的视频中获取若干个投票对象分别对应的视频片段。
[0110] 视频片段分发模块802,用于将所述若干个投票对象分别对应的视频片段分发给多个用户,以便所述多个用户观看分发的视频片段并对观看的视频片段所对应的投票对象进行投票。
[0111] 刷票识别模块803,用于获取所述多个用户的投票行为数据,其中,所述投票行为数据包括视频片段观看时长,以及对所观看的视频片段对应的投票对象的投票结果;以及根据所述多个用户的视频片段观看时长,从所述多个用户的投票结果中识别出不合规投票结果。
[0112] 投票统计模块804,用于将刷票识别模块803识别出的不合规投票结果过滤掉,对剩余的投票结果进行统计。
[0113] 在一种可能的实现方式中,视频理解切片模块801可以包括人脸检测及人脸识别模块和视频片段提取模块。
[0114] 人脸检测及人脸识别模块,用于从所述视频包含的视频帧中检测出目标人脸,并从所述若干个投票对象中确定所述目标人脸所属的投票对象,以得到所述视频包含的视频帧的人脸识别结果。
[0115] 其中,一视频帧中的目标人脸为该视频帧中人脸占比最大的人脸。
[0116] 视频片段提取模块,用于根据所述视频包含的视频帧的人脸识别结果,从所述视频中提取出所述若干个投票对象分别对应的视频片段。
[0117] 在一种可能的实现方式中,视频片段分发模块802可以包括:投票明星及视频片段确定模块和视频片段分发模块。
[0118] 投票对象及视频片段确定模块,用于针对每个用户:当接收到该用户的视频片段分发请求时,以最大分配投票对象的分配用户数与最小分配投票对象的分配用户数的差值小于预设值为约束条件,确定能够最大化视频片段观看总时长的K个投票对象及对应视频片段。
[0119] 其中,一投票对象的分配用户数指的是,为该投票对象的视频片段分配的用户的数量,所述最大分配投票对象为所述K个投票对象中分配用户数最多的投票对象,所述最小分配投票对象为所述K个投票对象中分配用户数最少的投票对象,K为大于1的整数。
[0120] 视频片段分发模块,用于将确定出的视频片段分发给该用户。
[0121] 在一种可能的实现方式中,投票对象及视频片段确定模块在以最大分配投票对象的分配用户数与最小分配投票对象的分配用户数的差值小于预设值为约束条件,确定能够最大化视频片段观看总时长的K个投票对象及对应视频片段时,具体用于:从所述若干个投票对象中筛选出分配用户数最少的K个投票对象;
对筛选出的K个投票对象分别对应的视频片段进行质量评估,得到筛选出的K个投票对象分别对应的视频片段的质量得分;
对该用户历史观看的视频片段进行质量评估,得到该用户历史观看视频片段的质量得分;
根据该用户历史观看视频片段的质量得分以及筛选出的K个投票对象分别对应的视频片段的质量得分,从筛选出的K个投票对象分别对应的视频片段中筛选视频片段,以得到由筛选出的视频片段组成的候选视频片段集;
预测该用户对于所述候选视频片段集中每个视频片段的观看时长;
根据该用户对于所述候选视频片段集中每个视频片段的观看时长,从所述候选视频片段集中筛选出N条视频片段,其中,N为大于0的整数。
[0122] 在一种可能的实现方式中,投票对象及视频片段确定模块在对筛选出的K个投票对象分别对应的视频片段进行质量评估,得到筛选出的K个投票对象分别对应的视频片段的质量得分时,具体用于:针对筛选出的K个投票对象分别对应的视频片段中的每个视频片段:根据该视频片段的历史观看总次数以及历史观看总时长,确定该视频片段的质量得分;
在一种可能的实现方式中,投票对象及视频片段确定模块在对该用户历史观看的视频片段进行质量评估,得到该用户历史观看视频片段的质量得分时,具体用于:
根据该用户对于视频片段的历史观看总次数以及历史观看总时长,确定该用户历史观看视频片段的质量得分。
[0123] 在一种可能的实现方式中,网络投票装置还可以包括:生命周期管理模块。
[0124] 生命周期管理模块,用于针对所述若干个投票对象分别对应的视频片段中的每个视频片段:根据该视频片段的上线时间、分配用户数和质量得分,确定是否需要将该视频片段的状态设置为不可访问,若需要将该视频片段的状态设置为不可访问,则设置该视频片段的状态为不可访问。
[0125] 在一种可能的实现方式中,刷票识别模块803在根据所述多个用户的视频片段观看时长,从所述多个用户的投票结果中识别出不合规投票结果时,具体用于:针对每个用户的每条投票行为数据:判断该条投票行为数据中的视频片段观看时长是否小于预设时长阈值;若该条投票行为数据中的视频片段观看时长小于所述预设时长阈值,则确定该条投票行为数据中的投票结果为不合规投票结果。
[0126] 在另一种可能的实现方式中,刷票识别模块803在根据所述多个用户的视频片段观看时长,从所述多个用户的投票结果中识别出不合规投票结果时,具体用于:针对每个用户的每条投票行为数据:判断该条投票行为数据中的视频片段观看时长是否小于预设时长阈值;若该条投票行为数据中的视频片段观看时长小于所述预设时长阈值,则确定该条投票行为数据中的投票结果为不合规投票结果;
统计每个用户的不合规投票比例,其中,一个用户的不合规投票比例指的是,该用户的不合规投票结果的总数量与该用户的投票结果的总数量的比值;
将不合规投票比例大于预设的不合规投票比例阈值的用户确定为刷票用户,将确定出的刷票用户的所有投票结果确定为不合规投票结果。
[0127] 在一种可能的实现方式中,投票统计模块804在对剩余的投票结果进行统计时,具体用于:针对每个投票对象:从剩余的投票结果中统计属于该投票对象的投票结果的总数量,并从属于该投票对象的投票结果中统计指示用户喜欢该投票对象的投票结果的总数量;根据所述属于该投票对象的投票结果的总数量以及所述指示用户喜欢该投票对象的投票结果的总数量,确定该投票对象的受欢迎程度。
[0128] 本申请实施例提供的网络投票装置提供了一种全新的网络投票方式,即,将若干个投票对象分别对应的视频片段分发给多个用户,以使用户观看投票对象对应的视频片段,进而,根据视频片段中投票对象的表现对投票对象进行投票,相比于现有的网络投票方式,本申请实施例提供的网络投票装置提供的投票方式更公平客观,在提供了全新网络投票方式的基础上,本申请实施例提供的网络投票装置还提供了防刷票策略,即根据用户的视频片段观看时长,从多个用户的投票结果中识别出不合规投票结果,这种刷票策略具有较高的识别准确率,能够保证投票在合规的情况下进行,另外,本申请提供的网络投票装置还增加了用户的互动感,进而能够提升节目的收视率和传播度。
[0129] 本申请实施例还提供了一种电子设备,该电子设备可以包括:至少一个处理器,至少一个通信接口,至少一个存储器和至少一个通信总线。
[0130] 在本申请实施例中,处理器、通信接口、存储器、通信总线的数量为至少一个,且处理器、通信接口、存储器通过通信总线完成相互间的通信;处理器可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等;
存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于实现上述实施例提供的网络投票方法的步骤。
[0131] 本申请实施例还提供一种计算机存储介质,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备实现上述实施例提供的网络投票方法的步骤。
[0132] 本申请实施例还提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令在电子设备上运行时,使得电子设备实现上述实施例提供的网络投票方法的步骤。
[0133] 另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0134] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
[0135] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0136] 所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。