一种数据处理方法及服务器与流程

文档序号:12364503阅读:197来源:国知局
一种数据处理方法及服务器与流程

本发明涉及算法领域,具体涉及一种数据处理方法及服务器。



背景技术:

随着电子技术的不断发展,给人们的日常生活带来许多便利,例如:手机上安装一些演唱歌曲类的应用(例如:唱吧,全民K歌等),用户可在该应用上演唱歌曲,服务器获取用户在该应用上演唱歌曲时的声音特征,例如:音调、点色、响度,然后根据该声音特征提供对应的推荐歌曲,其中,推荐歌曲涉及到歌曲推荐算法。

目前歌曲推荐算法一般会采用协同过滤、音乐相似等,但是,音乐相似性基于声音特征,由于声音特征的获取比较困难,从而导致算法复杂度高、计算量大,则对于大批量上线的新歌,很难及时计算出与大量老歌之间的相似度,而协同过滤基于用户量,由于新歌涉及的用户量小,则协同过滤的技术无法很好使用,从而导致推荐效果差。



技术实现要素:

本发明实施例提供了一种数据处理方法及服务器,用于解决现有的歌曲推荐算法复杂度高,计算量大,推荐效果差的问题,通过基于歌曲的节奏性进行计算,计算复杂度低,计算量少,从而有效提高了歌曲的推荐效率,另外,基于歌曲的节奏性进行歌曲推荐,不受用户量的限制,从而有效提升了歌曲的推荐效果。

本发明第一方面提供一种数据处理方法,包括:

获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个;

根据所述第一数据与所述第二数据确定相似度;

将所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

本发明第二方面提供一种服务器,包括:

获取模块,用于获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个;

第一确定模块,用于根据所述第一数据与所述第二数据确定相似度;

第二确定模块,用于将所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

与现有技术不同的是,所述第一数据和所述第二数据并非是声音特征对应的数据,如果要获取声音特征对应的数据,数据不易采集导致获取难度大,而本发明中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,数据容易采集,从而有效降低了获取数据的难度。当获取被选定歌曲的第一数据与各个参考歌曲的第二数据后,由于第一数据和第二数据是基于节奏性对应的数据,数据容易比对,则计算复杂度低,计算量小,从而快速地根据所述第一数据与所述第二数据确定相似度,直接将所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲,从而有效提高了歌曲的推荐效率,另外,基于歌曲的节奏性进行歌曲推荐,不受用户量的限制,从而有效提升了歌曲的推荐效果。

附图说明

图1为本发明实施例中服务器的一个结构示意图;

图2为本发明实施例中数据处理方法的一个实施例示意图;

图3为本发明实施例中数据处理方法的另一个实施例示意图;

图4为本发明实施例中数据处理方法的另一个实施例示意图;

图5为本发明实施例中数据处理方法的另一个实施例示意图;

图6为本发明实施例中数据处理方法的另一个实施例示意图;

图7为本发明实施例中数据处理方法的另一个实施例示意图;

图8为本发明实施例中服务器的另一个结构示意图。

具体实施方式

本发明实施例提供了一种数据处理方法及服务器,用于解决现有的歌曲推荐算法复杂度高,计算量大,推荐效果差的问题,通过基于歌曲的节奏性进行计算,计算复杂度低,计算量少,从而有效提高了歌曲的推荐效率,另外,基于歌曲的节奏性进行歌曲推荐,不受用户量的限制,从而有效提升了歌曲的推荐效果。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在介绍本发明实施例之前,首先介绍一下本发明可能涉及的一些术语:

术语“被选定歌曲”:在终端(例如:手机等)上安装了一些用于用户演唱歌曲的应用(例如:唱吧,全民K歌,天天K歌,咪咕爱唱等),用户可通过这些应用选择自己喜欢的或者熟悉的歌曲进行演唱,该应用对应的服务器可获取被演唱歌曲的内容,当用户需要该被演唱歌曲对应的推荐歌曲或者服务器默认推荐一些该被演唱歌曲相似的歌曲时,服务器将该被演唱歌曲作为被选定歌曲。

术语“第一参考歌曲”:都是服务器在歌曲库中随机选取的歌曲或者按照一定规则选取的一类或者一首歌曲。

术语“歌词段落数量”:歌曲中的歌词段落的数量,其中,该歌词段落可根据歌词的标点符号或者歌词演唱的停顿时间等方式进行划分,若按照歌词的标点符号进行划分,则任意两个标点符号之间的歌词看作一个歌词段落,若按照歌词演唱的停顿时间划分,则每演唱一句歌词就是一个歌词段落。

术语“歌词段落时长”:是指演唱歌词段落所用的时间,例如:用户演唱某句歌词所用的时间。

术语“歌词段落字数”:歌词段落中所包含的字的数量,其中,字可以是一个汉字,也可以是一个英语单词,也可以是一个数字,也可以是一个符号等,此处不做具体限定,例如:确定一个歌词段落,该歌词段落包含9个汉字“当孤单成为我的朋友”。

术语“歌词字时长”:演唱歌词中的每个字所用的时间,假设一句歌词为“当孤单成为我的朋友”,例如:演唱“当”这个字所用的时间。

下面举例介绍一下本发明可能涉及的应用场景:

用户A在手机上安装某用于演唱歌曲的应用(例如:唱吧),用户A在唱吧这个应用上演唱自己喜欢或者熟悉的歌曲,唱吧这个应用对应的服务器获取用户A演唱的歌曲的内容,该服务器通过默认或者用户选定的方式确定被演唱的歌曲为被选定歌曲,然后,服务器通过一定的算法确定该被选定歌曲对应的推荐歌曲,并将确定的推荐歌曲给用户A参考,其中,推荐歌曲是根据被选定歌曲的节奏特征确定的,被选定歌曲与推荐歌曲具有相似的特征,因此,因此,用户A如果把被选定歌曲唱的不错的话,一般也会把推荐歌曲唱曲不错,可见,通过歌曲的节奏特征确定的推荐歌曲具有很好的推荐效果,另外,由于获取歌曲的节奏特征比较容易,节奏特征也比较容易进行比对,因此,通过歌曲的节奏特征确定推荐歌曲的过程中涉及的计算复杂度低,计算量少,从而有效提高了歌曲的推荐效率。

下面介绍一个本发明所涉及的服务器,如图1所示,对所述服务器的具体结构进行介绍,所述服务器100包括:射频(英文全称:Radio Frequency,缩写:RF)电路110、存储器120、处理器130、以及电源140等部件。本领域技术人员可以理解,图2中示出的服务器100的结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

RF电路110可用于收发信息,例如:信号的接收和发送,通常,RF电路110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:Low Noise Amplifier,缩写:LNA)、双工器等。此外,RF电路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)等。

存储器120可用于存储软件程序以及模块,处理器130通过运行存储在存储器120的软件程序以及模块,从而执行服务器100的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器100的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器130是服务器100的控制中心,利用各种接口和线路连接整个服务器100的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行服务器100的各种功能和处理数据,从而对服务器100进行整体监控。可选的,处理器130可包括一个或多个处理单元;优选的,处理器130可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器130中。

服务器100还包括给各个部件供电的电源140(比如电池),优选的,电源可以通过电源管理系统与处理器130逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,所述服务器100还可以包括输入单元、显示单元等,在此不再赘述。

在本发明实施例中,所述处理器130用于执行以下步骤:

获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个;

根据所述第一数据与所述第二数据确定相似度;

将所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

在一些可能的实现方式中,所述处理器130具体用于执行以下步骤:

当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落时长,所述第二数据包括第一参考歌曲的歌词段落数量和歌词段落时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;

若是,获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和,作为第一差值和;

判断所述第一差值和是否小于第二阈值;

若是,将所述第二阈值与所述第一差值和作差,并将作差的结果与所述第二阈值的比值确定为所述相似度。

在一些可能的实现方式中,所述处理器130具体用于执行以下步骤:

当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落字数,所述第二数据包括第一参考歌曲的歌词段落数量和歌词段落字数时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;

若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第二差值和;

判断所述第二差值和是否小于第三阈值;

若是,将所述第三阈值与所述第二差值和作差,并将作差的结果与所述第三阈值的比值确定为所述相似度。

在一些可能的实现方式中,所述处理器130具体用于执行以下步骤:

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长和歌词段落字数,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长和歌词段落字数时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;

若是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第四阈值;

若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第三差值和;

判断所述第三差值和是否小于第五阈值;

若是,将所述第五阈值与所述第三差值和作差,并将作差的结果与所述第五阈值的比值确定为所述相似度。

在一些可能的实现方式中,所述处理器130具体用于执行以下步骤:

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;

若是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第六阈值;

若是,分别判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数是否都相等;

若是,获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第四差值和;

判断所述第四差值和是否小于第七阈值;

若是,将所述第七阈值与所述第四差值和作差,并将作差的结果与所述第七阈值的比值确定为所述相似度。

在一些可能的实现方式中,所述处理器130具体用于执行以下步骤:

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;

若是,获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和;

判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和是否小于第八阈值;

若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和;

判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和是否小于第九阈值;

若是,当所述被选定歌曲中存在第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数不相等时,按照预设规则处理,以使得所述被选定歌曲的第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数相等,其中,所述预设规则包括:若所述第一歌词段落字数大于所述第二歌词段落字数,则确定所述第一歌词段落的差异字符,并将所述第一歌词段落的差异字符进行合并;若所述第二歌词段落字数小于所述第二歌词段落字数,则确定所述第二歌词段落的差异字符,并将所述第二歌词段落的差异字符进行合并;

获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第五差值和;

判断所述第五差值和是否小于第十阈值;

若是,将所述第十阈值与所述第五差值和作差,并将作差的结果与所述第十阈值的比值确定为所述相似度。

下面,请参阅图2,本发明实施例中数据处理方法的一个实施例示意图,具体流程如下:

步骤201、获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

与现有技术不同的是,服务器获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,该第一数据和第二数据包括歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,可见,第一数据和第二数据属于节奏性相关的数据,这些节奏性数据比较容易,从而有效降低了获取数据的难度。

步骤202、根据所述第一数据与所述第二数据确定相似度。

在本发明实施例中,通过第一数据和第二数据进行比较,确定相似度,该相似度为该被选定歌曲和各个参考歌曲的相似度。

步骤203、判断是否存在大于第一阈值的相似度,若是,执行步骤204,若否,结束流程。

在本发明实施例中,第一阈值由服务器或者用户自定义设置的,当第一阈值越大,则对相似度的要求越高。

步骤204、将所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

当相似度大于第一阈值时,可以确定相似度对应的参考歌曲与该被选定歌曲相似,具体表现为具有很多相似的节奏性特征,则对于用户而言,用户演唱了被选定歌曲,还被推荐到与该被选定歌曲很相似的参考歌曲,从而获得很好的用户体验。

在实际应用中,当确定所述被选定歌曲对应的推荐歌曲后,可以根据该推荐歌曲的相似度的大小,确定推荐的优先级顺序,例如:推荐歌曲A的相似度为m,推荐歌曲B的相似度为n,当m大于n时,可以优先将推荐歌曲A推荐给用户。

请参阅图3,本发明实施例中数据处理方法的另一个实施例示意图,具体流程如下:

步骤301、获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

需要说明的是,步骤301与步骤201相同或相似,具体可参阅步骤201的描述,此处不再赘述。

步骤302、判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤303,若否,结束流程。

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括所述第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤303,若否,结束流程。

在本发明实施例中,假设被选定歌曲的歌词段落数量为X,那么判断第一参考歌曲的歌词段落数量是否也有X,若是,则执行步骤303,若否,则将该第一参考歌曲排除,可以重新从歌曲库中选择另一首歌曲进行判断与该被选定歌曲的相似度。

步骤303、获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和。

在本发明实施例中,假设被选定歌曲有X个歌词段落,则第一参考歌曲对应的也有X个歌词段落,其中,每个歌词段落有对应的时长,例如:被选定歌曲的第m个歌词段落的时长为5秒,第一参考歌曲的第m个歌词段落的时长为4秒,则它们之间的绝对差值为1。以此类推,分别获取X个歌词段落时长的绝对差值,并将X个歌词段落时长的绝对差值求和。

步骤304、判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和是否小于第八阈值,若是,执行步骤305,若否,结束流程。

在本发明实施例中,第八阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤305、获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和。

在本发明实施例中,假设被选定歌曲有X个歌词段落,则第一参考歌曲对应的也有X个歌词段落,其中,每个歌词段落有对应的字数,例如:被选定歌曲的第m个歌词段落的字数为8个,第一参考歌曲的第m个歌词段落的字数为9个,它们之间的绝对差值为1。以此类推,分别获取X个歌词段落字数的绝对差值,并将X个歌词段落字数的绝对差值求和。

步骤306、判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和是否小于第九阈值,若是,执行步骤307,若否,结束流程。

在本发明实施例中,第九阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤307、当所述被选定歌曲中存在第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数不相等时,按照预设规则处理,以使得所述被选定歌曲的第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数相等。

其中,所述预设规则包括:若所述第一歌词段落字数大于所述第二歌词段落字数,则确定所述第一歌词段落的差异字符,并将所述第一歌词段落的差异字符进行合并;若所述第二歌词段落字数小于所述第二歌词段落字数,则确定所述第二歌词段落的差异字符,并将所述第二歌词段落的差异字符进行合并。

在本发明实施例中,服务器根据第一歌词段落和第二歌词段落确定差异字符,该差异字符可以是数字,也可以是符号,也可以是汉字,也可以是字母,可根据实际情况而确定,此处不做具体限定。

例如:被选定歌曲的第m个歌词段落的字数为8个,第一参考歌曲的第m个歌词段落的字数为9个,可见,有两个字是差异字符,则需要将第一参考歌曲的第m个歌词段落中的其中两个字合并成一个字,合并后的第一参考歌曲的第m个歌词段落中有8个字,这样,被选定歌曲的第m个歌词段落的字数与第一参考歌曲的第m个歌词段落的字数相等。

步骤308、获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第五差值和。

在本发明实施例中,假设被选定歌曲有X个歌词段落,则第一参考歌曲对应的也有X个歌词段落,其中,每个歌词段落有对应的字数,例如:被选定歌曲的第m个歌词段落中的第n个字的字时长为30毫秒,第一参考歌曲的第m个歌词段落中的第n个字的字时长为31毫秒,它们之间的绝对差值为1。以此类推,分别获取X个歌词段落中的每个歌词字时长的绝对差值,并将各个绝对差值求和。

步骤309、判断所述第五差值和是否小于第十阈值,若是,执行步骤310,若否,结束流程。

在本发明实施例中,第十阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤310、将所述第十阈值与所述第五差值和作差,并将作差的结果与所述第十阈值的比值确定为相似度。

在本发明实施例中,假设第十阈值为a,第五差值为b,相似度记作p,则p=(a-b)/a,可见,相似度体现出该第一参考歌曲与该被选定歌曲的相似程度。

步骤311、判断所述相似度是否大于第一阈值,若是,执行步骤312,若否,结束流程。

步骤312、将所述第一参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

当相似度大于第一阈值时,直接将第一参考歌曲确定为该被选定歌曲的推荐歌曲,由于第一数据和第二数据是基于节奏性相关的数据,则基于歌曲的节奏性进行歌曲推荐,不受用户量的限制,从而有效提升了歌曲的推荐效果。

在实际应用中,假设用户A在自己的手机上安装了唱吧这个应用,用户A可通过唱吧演唱某歌曲s,并希望获取与该歌曲s相类似的推荐歌曲,唱吧对应的服务器获取用户A演唱歌曲s的第一数据,该第一数据包括该歌曲s的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,基于该第一数据,服务器通过一定的算法从歌曲库中选择与歌曲s相类似的歌曲,作为该歌曲s的推荐歌曲,具体算法过程如下:

步骤1、假设歌曲s的歌词段落数量为m,服务器从歌曲库中选取第一参考歌曲,记作歌曲j,其中,第一参考歌曲是服务器随机选取的,或者服务器根据歌曲s的歌曲名或者歌曲s的原唱歌手名等方式筛选的,此处不做具体限定。

步骤2、服务器获取歌曲j的第二数据,该第二数据包括歌曲j的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长。

步骤3、服务器判断歌曲j的歌词段落数量是否为m,若是,执行步骤4,若否,从歌曲库中选择另一首歌曲重新开始执行步骤2。

步骤4、获取歌曲s的m个歌词段落中每个歌词段落时长与歌曲j中对应的每个歌词段落时长的绝对差值,例如:将歌曲s的歌词段落时长记作Ts,其中,Ts={t1s,t2s,t3s,…,tms},t为每个歌词段落时长,歌曲j的歌词段落时长记作Tj,其中,Tj={t1j,t2j,t3j,…,tmj},将m个歌词段落时长的绝对差值求和,记作lsjt,则

步骤5、服务器判断是否小于阈值y1,若是,执行步骤6,若否,从歌曲库中选择另一首歌曲重新开始执行步骤2。

步骤6、假设歌曲s的歌词段落字数表示为Ds={d1s,d2s,d3s,…,dms},其中,d表示每个歌词段落字数,歌曲j的歌词段落字数表示为Dj={d1j,d2j,d3j,…,dmj},服务器获取歌曲s的m个歌词段落中的每个歌词段落字数与歌曲j中对应的每个歌词段落字数的绝对差值的和,记作

步骤7、服务器判断lsjd是否小于阈值y2,若是,执行步骤8,若否,从歌曲库中选择另一首歌曲重新开始执行步骤2。

步骤8、假设歌曲s的歌词段落的歌词字时长表示为Ws={w1s,w2s,w3s,…,wms},其中,w表示每个歌词段落的歌词字时长,假设歌曲j的歌词段落的歌词字时长表示为Wj={w1j,w2j,w3j,…,wmj},获取歌曲s的m个歌词段落中第i个歌词段落的歌词字时长与歌曲j中对应的第i个歌词字时长的绝对差值的和,记作由步骤6可知,歌曲s的每个歌词段落的歌词段落字数与歌曲j对应的歌词段落字数可能相等,也可能不相等,则需要将歌词段落字数多的进行合并,使得与对应的歌词段落字数少的字数相等。则具体合并的过程如下:

假设歌曲s的第i个歌词段落的歌词字时长为r表示歌曲s的第i个歌词段落中的歌词段落字数,歌曲j的第i个歌词段落的歌词字时长为q表示歌曲j的第i个歌词段落中的歌词段落字数。

一般情况下,︱r-q︱不大于1,例如:︱r-q︱=0或者︱r-q︱=1。

当︱r-q︱=0时,则说明歌曲s的第i个歌词段落中的歌词段落字数与歌曲j的第i个歌词段落的歌词段落字数相等,则其中,a为歌词段落字的序号。

当︱r-q︱=1时,则r-q=1或者q-r=1,假设以r-q=1为例,则新定义歌曲s的第i个歌词段落的歌词段落字数为其中,b∈[1,q],b表示合并的歌词段落字的序号,则,若a<b,则kasib=kasib,若a=b,则kasib=kasib+ka+1sib,若a>b,则kasib=ka+1sib

可见,通过歌曲段落字合并后,之前的一个变换成q个可能的,当b=1时,将k1si和k2si进行合并,以此类推,这样,ws的歌词段落字数就从r变为的q个,就与的歌词段落字数相等,则则如果q-r=1时,则

步骤9、判断lsjw是否小于阈值y3,若是,执行步骤10,若否,从歌曲库中选择另一首歌曲重新开始执行步骤2。

步骤10、确定歌曲j和与歌曲s的相似度,记作p=(y3-lsjw)/y3,其中,p的值越大,则说明歌曲j与歌曲s的相似度越大。

步骤11、判断相似度是否大于第一阈值,若是,执行步骤12,若否,结束流程。

步骤12、将该歌曲j确定为歌曲s对应的推荐歌曲。

当相似度大于第一阈值时,可以确定该歌曲j与该歌曲s相似,具体表现为具有很多相似的节奏性特征,则对于用户A而言,用户A演唱了被选定歌曲s,还被推荐到与该歌曲s很相似的歌曲j,从而获得很好的用户体验。

请参阅图4,本发明实施例中数据处理方法的另一个实施例示意图,具体流程如下:

步骤401、获取被选定歌曲的第一数据与第一参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

需要说明的是,步骤401与步骤201相同或相似,具体可参阅步骤201的描述,此处不再赘述。

步骤402、判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤403,若否,结束流程。

当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落时长,所述第二数据包括所述第一参考歌曲的歌词段落数量和歌词段落时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤403,若否,结束流程。

与图3所示实施例不同的是,判断的第一数据只包括被选定歌曲的歌词段落数量和歌词段落时长,判断的第二数据只包括第一参考歌曲的歌词段落数量和歌词段落时长。则判断的数据参数减少,推荐的效率更快。

步骤403、获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和,作为第一差值和。

步骤403与步骤303相同或者相似,具体可参阅步骤303,此处不再赘述。

步骤404、判断所述第一差值和是否小于第二阈值,若是,执行步骤405,若否,结束流程。

在本发明实施例中,第二阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤405、将所述第二阈值与所述第一差值和作差,并将作差的结果与所述第二阈值的比值确定为相似度。

步骤406、判断所述相似度是否大于第一阈值,若是,执行步骤407,若否,结束流程。

步骤407、将所述第一参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

请参阅图5,本发明实施例中数据处理方法的另一个实施例示意图,具体流程如下:

步骤501、获取被选定歌曲的第一数据与第一参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

需要说明的是,步骤501与步骤201相同或相似,具体可参阅步骤201的描述,此处不再赘述。

步骤502、判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤503,若否,结束流程。

当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落字数,所述第二数据包括所述第一参考歌曲的歌词段落数量和歌词段落字数时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤503,若否,结束流程。

与图3和图4所示实施例不同的是,判断的第一数据包括所述被选定歌曲的歌词段落数量和歌词段落字数,判断的第二数据包括所述第一参考歌曲的歌词段落数量和歌词段落字数,判断的数据参数不同,则达到的推荐效果可能也不相同。

步骤503、获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第二差值和。

需要说明的是,步骤503与步骤305相同或者相似,具体可参阅步骤305,此处不再赘述。

步骤504、判断所述第二差值和是否小于第三阈值,若是,执行步骤505,若否,结束流程。

步骤505、将所述第三阈值与所述第二差值和作差,并将作差的结果与所述第三阈值的比值确定为相似度。

步骤506、判断所述相似度是否大于第一阈值,若是,执行步骤507,若否,结束流程。

步骤507、将所述第一参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

请参阅图6,本发明实施例中数据处理方法的另一个实施例示意图,具体流程如下:

步骤601、获取被选定歌曲的第一数据与第一参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

需要说明的是,步骤601与步骤201相同或相似,具体可参阅步骤201的描述,此处不再赘述。

步骤602、判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤603,若否,结束流程。

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长和歌词段落字数,所述第二数据包括所述第一参考歌曲的歌词段落数量,歌词段落时长和歌词段落字数时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤603,若否,结束流程。

与图3和图4和图5所示实施例不同的是,判断的第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长和歌词段落字数,判断的第二数据包括所述第一参考歌曲的歌词段落数量,歌词段落时长和歌词段落字数,判断的数据参数不同,则达到的推荐效果可能也不相同。

步骤603、分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第四阈值,若是,执行步骤604,若否,结束流程。

与图3所示实施例不同的是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第四阈值,可见,判断的参数涉及到每个歌词段落时长,判断更细化,有利于提升被选定歌曲的推荐效果。

需要说明的是,所述第四阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤604、获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第三差值和。

需要说明的是,步骤604与步骤305相同或相似,具体可参阅步骤305的描述,此处不再赘述。

步骤605、判断所述第三差值和是否小于第五阈值,若是,执行步骤606,若否,结束流程。

步骤606、将所述第五阈值与所述第三差值和作差,并将作差的结果与所述第五阈值的比值确定为相似度。

步骤607、判断所述相似度是否大于第一阈值,若是,执行步骤608,若否,结束流程。

步骤608、将所述第一参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

请参阅图7,本发明实施例中数据处理方法的另一个实施例示意图,具体流程如下:

步骤701、获取被选定歌曲的第一数据与第一参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个。

步骤702、判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤703,若否,结束流程。

当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括所述第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等,若是,执行步骤703,若否,结束流程。

需要说明的是,步骤701和步骤702与图3所示实施例中的步骤301和步骤302相同或相似,具体可参阅步骤301和步骤302,此处不再赘述。

步骤703、分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第六阈值,若是,执行步骤704,若否,结束流程。

与图3所示实施例不同的是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第四阈值,可见,判断的参数涉及到每个歌词段落时长,判断的参数更细化,有利于提升被选定歌曲的推荐效果。

在本发明实施例中,第六阈值可以是服务器默认的或者用户自定义的阈值,此处不做具体限定。

步骤704、分别判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数是否都相等,若是,执行步骤705,若否,结束流程。

与图3所示实施例不同的是,分别判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数是否都相等,可见,判断的参数涉及到每个歌词段落的字数,判断的参数更细化,有利于提升被选定歌曲的推荐效果。

步骤705、获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第四差值和。

步骤706、判断所述第四差值和是否小于第七阈值,若是,执行步骤707,若否,结束流程。

步骤707、将所述第七阈值与所述第四差值和作差,并将作差的结果与所述第七阈值的比值确定为相似度。

步骤708、判断所述相似度是否大于第一阈值,若是,执行步骤708,若否,结束流程。

步骤709、将所述第一参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

需要说明的是,由于所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,则根据所述第一数据与所述第二数据确定相似度有很多种,不限于上述图3至图7所示实施例中所描述的方法,此处不做具体限定。

为便于更好的实施本发明实施例的上述相关方法,下面还提供用于配合上述方法的相关装置。

请参阅图8,本发明实施例中服务器800的一个结构示意图,所述服务器800包括:第一获取模块801,第一确定模块802,第二确定模块803。

第一获取模块801,用于获取被选定歌曲的第一数据与曲库中的各个参考歌曲的第二数据,其中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括所述各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个;

第一确定模块802,用于根据所述第一获取模块801获取的所述第一数据与所述第二数据确定相似度;

第二确定模块803,用于将所述第一确定模块802确定的所述相似度大于第一阈值的参考歌曲确定为所述被选定歌曲对应的推荐歌曲。

在一些可能的实现方式中,当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落时长,所述第二数据包括所述第一参考歌曲的歌词段落数量和歌词段落时长时,所述第一确定模块802具体用于判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;若是,获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和,作为第一差值和;判断所述第一差值和是否小于第二阈值;若是,将所述第二阈值与所述第一差值和作差,并将作差的结果与所述第二阈值的比值确定为所述相似度。

在一些可能的实现方式中,当所述第一数据包括所述被选定歌曲的歌词段落数量和歌词段落字数,所述第二数据包括第一参考歌曲的歌词段落数量和歌词段落字数时,所述第一确定模块802具体用于判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第二差值和;判断所述第二差值和是否小于第三阈值;若是,将所述第三阈值与所述第二差值和作差,并将作差的结果与所述第三阈值的比值确定为所述相似度。

在一些可能的实现方式中,当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长和歌词段落字数,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长和歌词段落字数时,所述第一确定模块802具体用于判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;若是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第四阈值;若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和,作为第三差值和;判断所述第三差值和是否小于第五阈值;若是,将所述第五阈值与所述第三差值和作差,并将作差的结果与所述第五阈值的比值确定为所述相似度。

在一些可能的实现方式中,当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,第一确定模块802具体用于判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;若是,分别判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值是否都小于第六阈值;若是,分别判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数是否都相等;若是,获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第四差值和;判断所述第四差值和是否小于第七阈值;若是,将所述第七阈值与所述第四差值和作差,并将作差的结果与所述第七阈值的比值确定为所述相似度。

在一些可能的实现方式中,当所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长,所述第二数据包括第一参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长时,第一确定模块802具体用于判断所述被选定歌曲的歌词段落数量是否与所述第一参考歌曲的歌词段落数量相等;若是,获取所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和;判断所述被选定歌曲的每个歌词段落时长与所述第一参考歌曲对应的每个歌词段落时长的绝对差值的和是否小于第八阈值;若是,获取所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和;判断所述被选定歌曲的每个歌词段落字数与所述第一参考歌曲对应的每个歌词段落字数的绝对差值的和是否小于第九阈值;若是,当所述被选定歌曲中存在第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数不相等时,按照预设规则处理,以使得所述被选定歌曲的第一歌词段落字数与所述第一参考歌曲对应的第二歌词段落字数相等,其中,所述预设规则包括:若所述第一歌词段落字数大于所述第二歌词段落字数,则确定所述第一歌词段落的差异字符,并将所述第一歌词段落的差异字符进行合并;若所述第二歌词段落字数小于所述第二歌词段落字数,则确定所述第二歌词段落的差异字符,并将所述第二歌词段落的差异字符进行合并;获取所述被选定歌曲的每个歌词字时长与所述第一参考歌曲对应的每个歌词字时长的绝对差值的和,作为第五差值和;判断所述第五差值和是否小于第十阈值;若是,将所述第十阈值与所述第五差值和作差,并将作差的结果与所述第十阈值的比值确定为所述相似度。

在实际应用中,当确定所述被选定歌曲对应的推荐歌曲后,可以根据该推荐歌曲的相似度的大小,确定推荐的优先级顺序,例如:推荐歌曲A的相似度为m,推荐歌曲B的相似度为n,当m大于n时,可以优先将推荐歌曲A推荐给用户。

综上,所述第一数据和所述第二数据并非是声音特征对应的数据,如果要获取声音特征对应的数据,数据不易采集导致获取难度大,而本发明中,所述第一数据包括所述被选定歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,所述第二数据包括各个参考歌曲的歌词段落数量,歌词段落时长,歌词段落字数和歌词字时长中的至少一个,数据容易采集,从而有效降低了获取数据的难度。当获取被选定歌曲的第一数据与各个参考歌曲的第二数据后,由于第一数据和第二数据是基于节奏性对应的数据,数据容易比对,则计算复杂度低,计算量小,从而快速地根据所述第一数据与所述第二数据确定相似度,直接将所述相似度大于第一阈值时的参考歌曲确定为所述被选定歌曲对应的推荐歌曲,从而有效提高了歌曲的推荐效率,另外,基于歌曲的节奏性进行歌曲推荐,不受用户量的限制,从而有效提升了歌曲的推荐效果。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1