本發(fā)明涉及算法領(lǐng)域,具體涉及一種數(shù)據(jù)處理方法及服務器。
背景技術(shù):
隨著電子技術(shù)的不斷發(fā)展,給人們的日常生活帶來許多便利,例如:手機上安裝一些演唱歌曲類的應用(例如:唱吧,全民K歌等),用戶可在該應用上演唱歌曲,服務器獲取用戶在該應用上演唱歌曲時的聲音特征,例如:音調(diào)、點色、響度,然后根據(jù)該聲音特征提供對應的推薦歌曲,其中,推薦歌曲涉及到歌曲推薦算法。
目前歌曲推薦算法一般會采用協(xié)同過濾、音樂相似等,但是,音樂相似性基于聲音特征,由于聲音特征的獲取比較困難,從而導致算法復雜度高、計算量大,則對于大批量上線的新歌,很難及時計算出與大量老歌之間的相似度,而協(xié)同過濾基于用戶量,由于新歌涉及的用戶量小,則協(xié)同過濾的技術(shù)無法很好使用,從而導致推薦效果差。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種數(shù)據(jù)處理方法及服務器,用于解決現(xiàn)有的歌曲推薦算法復雜度高,計算量大,推薦效果差的問題,通過基于歌曲的節(jié)奏性進行計算,計算復雜度低,計算量少,從而有效提高了歌曲的推薦效率,另外,基于歌曲的節(jié)奏性進行歌曲推薦,不受用戶量的限制,從而有效提升了歌曲的推薦效果。
本發(fā)明第一方面提供一種數(shù)據(jù)處理方法,包括:
獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個;
根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度;
將所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
本發(fā)明第二方面提供一種服務器,包括:
獲取模塊,用于獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個;
第一確定模塊,用于根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度;
第二確定模塊,用于將所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
與現(xiàn)有技術(shù)不同的是,所述第一數(shù)據(jù)和所述第二數(shù)據(jù)并非是聲音特征對應的數(shù)據(jù),如果要獲取聲音特征對應的數(shù)據(jù),數(shù)據(jù)不易采集導致獲取難度大,而本發(fā)明中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,數(shù)據(jù)容易采集,從而有效降低了獲取數(shù)據(jù)的難度。當獲取被選定歌曲的第一數(shù)據(jù)與各個參考歌曲的第二數(shù)據(jù)后,由于第一數(shù)據(jù)和第二數(shù)據(jù)是基于節(jié)奏性對應的數(shù)據(jù),數(shù)據(jù)容易比對,則計算復雜度低,計算量小,從而快速地根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度,直接將所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲,從而有效提高了歌曲的推薦效率,另外,基于歌曲的節(jié)奏性進行歌曲推薦,不受用戶量的限制,從而有效提升了歌曲的推薦效果。
附圖說明
圖1為本發(fā)明實施例中服務器的一個結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例中數(shù)據(jù)處理方法的一個實施例示意圖;
圖3為本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖;
圖4為本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖;
圖5為本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖;
圖6為本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖;
圖7為本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖;
圖8為本發(fā)明實施例中服務器的另一個結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明實施例提供了一種數(shù)據(jù)處理方法及服務器,用于解決現(xiàn)有的歌曲推薦算法復雜度高,計算量大,推薦效果差的問題,通過基于歌曲的節(jié)奏性進行計算,計算復雜度低,計算量少,從而有效提高了歌曲的推薦效率,另外,基于歌曲的節(jié)奏性進行歌曲推薦,不受用戶量的限制,從而有效提升了歌曲的推薦效果。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”、“第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
在介紹本發(fā)明實施例之前,首先介紹一下本發(fā)明可能涉及的一些術(shù)語:
術(shù)語“被選定歌曲”:在終端(例如:手機等)上安裝了一些用于用戶演唱歌曲的應用(例如:唱吧,全民K歌,天天K歌,咪咕愛唱等),用戶可通過這些應用選擇自己喜歡的或者熟悉的歌曲進行演唱,該應用對應的服務器可獲取被演唱歌曲的內(nèi)容,當用戶需要該被演唱歌曲對應的推薦歌曲或者服務器默認推薦一些該被演唱歌曲相似的歌曲時,服務器將該被演唱歌曲作為被選定歌曲。
術(shù)語“第一參考歌曲”:都是服務器在歌曲庫中隨機選取的歌曲或者按照一定規(guī)則選取的一類或者一首歌曲。
術(shù)語“歌詞段落數(shù)量”:歌曲中的歌詞段落的數(shù)量,其中,該歌詞段落可根據(jù)歌詞的標點符號或者歌詞演唱的停頓時間等方式進行劃分,若按照歌詞的標點符號進行劃分,則任意兩個標點符號之間的歌詞看作一個歌詞段落,若按照歌詞演唱的停頓時間劃分,則每演唱一句歌詞就是一個歌詞段落。
術(shù)語“歌詞段落時長”:是指演唱歌詞段落所用的時間,例如:用戶演唱某句歌詞所用的時間。
術(shù)語“歌詞段落字數(shù)”:歌詞段落中所包含的字的數(shù)量,其中,字可以是一個漢字,也可以是一個英語單詞,也可以是一個數(shù)字,也可以是一個符號等,此處不做具體限定,例如:確定一個歌詞段落,該歌詞段落包含9個漢字“當孤單成為我的朋友”。
術(shù)語“歌詞字時長”:演唱歌詞中的每個字所用的時間,假設一句歌詞為“當孤單成為我的朋友”,例如:演唱“當”這個字所用的時間。
下面舉例介紹一下本發(fā)明可能涉及的應用場景:
用戶A在手機上安裝某用于演唱歌曲的應用(例如:唱吧),用戶A在唱吧這個應用上演唱自己喜歡或者熟悉的歌曲,唱吧這個應用對應的服務器獲取用戶A演唱的歌曲的內(nèi)容,該服務器通過默認或者用戶選定的方式確定被演唱的歌曲為被選定歌曲,然后,服務器通過一定的算法確定該被選定歌曲對應的推薦歌曲,并將確定的推薦歌曲給用戶A參考,其中,推薦歌曲是根據(jù)被選定歌曲的節(jié)奏特征確定的,被選定歌曲與推薦歌曲具有相似的特征,因此,因此,用戶A如果把被選定歌曲唱的不錯的話,一般也會把推薦歌曲唱曲不錯,可見,通過歌曲的節(jié)奏特征確定的推薦歌曲具有很好的推薦效果,另外,由于獲取歌曲的節(jié)奏特征比較容易,節(jié)奏特征也比較容易進行比對,因此,通過歌曲的節(jié)奏特征確定推薦歌曲的過程中涉及的計算復雜度低,計算量少,從而有效提高了歌曲的推薦效率。
下面介紹一個本發(fā)明所涉及的服務器,如圖1所示,對所述服務器的具體結(jié)構(gòu)進行介紹,所述服務器100包括:射頻(英文全稱:Radio Frequency,縮寫:RF)電路110、存儲器120、處理器130、以及電源140等部件。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的服務器100的結(jié)構(gòu)并不構(gòu)成對服務器的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
RF電路110可用于收發(fā)信息,例如:信號的接收和發(fā)送,通常,RF電路110包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器(英文全稱:Low Noise Amplifier,縮寫:LNA)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡和終端等其他設備通信。上述無線通信可以使用任一通信標準或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(英文全稱: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的軟件程序以及模塊,從而執(zhí)行服務器100的各種功能應用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)服務器100的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
處理器130是服務器100的控制中心,利用各種接口和線路連接整個服務器100的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行服務器100的各種功能和處理數(shù)據(jù),從而對服務器100進行整體監(jiān)控??蛇x的,處理器130可包括一個或多個處理單元;優(yōu)選的,處理器130可集成應用處理器和調(diào)制解調(diào)處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器130中。
服務器100還包括給各個部件供電的電源140(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器130邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。
盡管未示出,所述服務器100還可以包括輸入單元、顯示單元等,在此不再贅述。
在本發(fā)明實施例中,所述處理器130用于執(zhí)行以下步驟:
獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個;
根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度;
將所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
在一些可能的實現(xiàn)方式中,所述處理器130具體用于執(zhí)行以下步驟:
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落時長,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量和歌詞段落時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;
若是,獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和,作為第一差值和;
判斷所述第一差值和是否小于第二閾值;
若是,將所述第二閾值與所述第一差值和作差,并將作差的結(jié)果與所述第二閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,所述處理器130具體用于執(zhí)行以下步驟:
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落字數(shù),所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量和歌詞段落字數(shù)時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;
若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第二差值和;
判斷所述第二差值和是否小于第三閾值;
若是,將所述第三閾值與所述第二差值和作差,并將作差的結(jié)果與所述第三閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,所述處理器130具體用于執(zhí)行以下步驟:
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù),所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù)時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;
若是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第四閾值;
若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第三差值和;
判斷所述第三差值和是否小于第五閾值;
若是,將所述第五閾值與所述第三差值和作差,并將作差的結(jié)果與所述第五閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,所述處理器130具體用于執(zhí)行以下步驟:
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;
若是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第六閾值;
若是,分別判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)是否都相等;
若是,獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第四差值和;
判斷所述第四差值和是否小于第七閾值;
若是,將所述第七閾值與所述第四差值和作差,并將作差的結(jié)果與所述第七閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,所述處理器130具體用于執(zhí)行以下步驟:
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;
若是,獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和;
判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和是否小于第八閾值;
若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和;
判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和是否小于第九閾值;
若是,當所述被選定歌曲中存在第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)不相等時,按照預設規(guī)則處理,以使得所述被選定歌曲的第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)相等,其中,所述預設規(guī)則包括:若所述第一歌詞段落字數(shù)大于所述第二歌詞段落字數(shù),則確定所述第一歌詞段落的差異字符,并將所述第一歌詞段落的差異字符進行合并;若所述第二歌詞段落字數(shù)小于所述第二歌詞段落字數(shù),則確定所述第二歌詞段落的差異字符,并將所述第二歌詞段落的差異字符進行合并;
獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第五差值和;
判斷所述第五差值和是否小于第十閾值;
若是,將所述第十閾值與所述第五差值和作差,并將作差的結(jié)果與所述第十閾值的比值確定為所述相似度。
下面,請參閱圖2,本發(fā)明實施例中數(shù)據(jù)處理方法的一個實施例示意圖,具體流程如下:
步驟201、獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
與現(xiàn)有技術(shù)不同的是,服務器獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),該第一數(shù)據(jù)和第二數(shù)據(jù)包括歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,可見,第一數(shù)據(jù)和第二數(shù)據(jù)屬于節(jié)奏性相關(guān)的數(shù)據(jù),這些節(jié)奏性數(shù)據(jù)比較容易,從而有效降低了獲取數(shù)據(jù)的難度。
步驟202、根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度。
在本發(fā)明實施例中,通過第一數(shù)據(jù)和第二數(shù)據(jù)進行比較,確定相似度,該相似度為該被選定歌曲和各個參考歌曲的相似度。
步驟203、判斷是否存在大于第一閾值的相似度,若是,執(zhí)行步驟204,若否,結(jié)束流程。
在本發(fā)明實施例中,第一閾值由服務器或者用戶自定義設置的,當?shù)谝婚撝翟酱?,則對相似度的要求越高。
步驟204、將所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
當相似度大于第一閾值時,可以確定相似度對應的參考歌曲與該被選定歌曲相似,具體表現(xiàn)為具有很多相似的節(jié)奏性特征,則對于用戶而言,用戶演唱了被選定歌曲,還被推薦到與該被選定歌曲很相似的參考歌曲,從而獲得很好的用戶體驗。
在實際應用中,當確定所述被選定歌曲對應的推薦歌曲后,可以根據(jù)該推薦歌曲的相似度的大小,確定推薦的優(yōu)先級順序,例如:推薦歌曲A的相似度為m,推薦歌曲B的相似度為n,當m大于n時,可以優(yōu)先將推薦歌曲A推薦給用戶。
請參閱圖3,本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖,具體流程如下:
步驟301、獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
需要說明的是,步驟301與步驟201相同或相似,具體可參閱步驟201的描述,此處不再贅述。
步驟302、判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟303,若否,結(jié)束流程。
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟303,若否,結(jié)束流程。
在本發(fā)明實施例中,假設被選定歌曲的歌詞段落數(shù)量為X,那么判斷第一參考歌曲的歌詞段落數(shù)量是否也有X,若是,則執(zhí)行步驟303,若否,則將該第一參考歌曲排除,可以重新從歌曲庫中選擇另一首歌曲進行判斷與該被選定歌曲的相似度。
步驟303、獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和。
在本發(fā)明實施例中,假設被選定歌曲有X個歌詞段落,則第一參考歌曲對應的也有X個歌詞段落,其中,每個歌詞段落有對應的時長,例如:被選定歌曲的第m個歌詞段落的時長為5秒,第一參考歌曲的第m個歌詞段落的時長為4秒,則它們之間的絕對差值為1。以此類推,分別獲取X個歌詞段落時長的絕對差值,并將X個歌詞段落時長的絕對差值求和。
步驟304、判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和是否小于第八閾值,若是,執(zhí)行步驟305,若否,結(jié)束流程。
在本發(fā)明實施例中,第八閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟305、獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和。
在本發(fā)明實施例中,假設被選定歌曲有X個歌詞段落,則第一參考歌曲對應的也有X個歌詞段落,其中,每個歌詞段落有對應的字數(shù),例如:被選定歌曲的第m個歌詞段落的字數(shù)為8個,第一參考歌曲的第m個歌詞段落的字數(shù)為9個,它們之間的絕對差值為1。以此類推,分別獲取X個歌詞段落字數(shù)的絕對差值,并將X個歌詞段落字數(shù)的絕對差值求和。
步驟306、判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和是否小于第九閾值,若是,執(zhí)行步驟307,若否,結(jié)束流程。
在本發(fā)明實施例中,第九閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟307、當所述被選定歌曲中存在第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)不相等時,按照預設規(guī)則處理,以使得所述被選定歌曲的第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)相等。
其中,所述預設規(guī)則包括:若所述第一歌詞段落字數(shù)大于所述第二歌詞段落字數(shù),則確定所述第一歌詞段落的差異字符,并將所述第一歌詞段落的差異字符進行合并;若所述第二歌詞段落字數(shù)小于所述第二歌詞段落字數(shù),則確定所述第二歌詞段落的差異字符,并將所述第二歌詞段落的差異字符進行合并。
在本發(fā)明實施例中,服務器根據(jù)第一歌詞段落和第二歌詞段落確定差異字符,該差異字符可以是數(shù)字,也可以是符號,也可以是漢字,也可以是字母,可根據(jù)實際情況而確定,此處不做具體限定。
例如:被選定歌曲的第m個歌詞段落的字數(shù)為8個,第一參考歌曲的第m個歌詞段落的字數(shù)為9個,可見,有兩個字是差異字符,則需要將第一參考歌曲的第m個歌詞段落中的其中兩個字合并成一個字,合并后的第一參考歌曲的第m個歌詞段落中有8個字,這樣,被選定歌曲的第m個歌詞段落的字數(shù)與第一參考歌曲的第m個歌詞段落的字數(shù)相等。
步驟308、獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第五差值和。
在本發(fā)明實施例中,假設被選定歌曲有X個歌詞段落,則第一參考歌曲對應的也有X個歌詞段落,其中,每個歌詞段落有對應的字數(shù),例如:被選定歌曲的第m個歌詞段落中的第n個字的字時長為30毫秒,第一參考歌曲的第m個歌詞段落中的第n個字的字時長為31毫秒,它們之間的絕對差值為1。以此類推,分別獲取X個歌詞段落中的每個歌詞字時長的絕對差值,并將各個絕對差值求和。
步驟309、判斷所述第五差值和是否小于第十閾值,若是,執(zhí)行步驟310,若否,結(jié)束流程。
在本發(fā)明實施例中,第十閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟310、將所述第十閾值與所述第五差值和作差,并將作差的結(jié)果與所述第十閾值的比值確定為相似度。
在本發(fā)明實施例中,假設第十閾值為a,第五差值為b,相似度記作p,則p=(a-b)/a,可見,相似度體現(xiàn)出該第一參考歌曲與該被選定歌曲的相似程度。
步驟311、判斷所述相似度是否大于第一閾值,若是,執(zhí)行步驟312,若否,結(jié)束流程。
步驟312、將所述第一參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
當相似度大于第一閾值時,直接將第一參考歌曲確定為該被選定歌曲的推薦歌曲,由于第一數(shù)據(jù)和第二數(shù)據(jù)是基于節(jié)奏性相關(guān)的數(shù)據(jù),則基于歌曲的節(jié)奏性進行歌曲推薦,不受用戶量的限制,從而有效提升了歌曲的推薦效果。
在實際應用中,假設用戶A在自己的手機上安裝了唱吧這個應用,用戶A可通過唱吧演唱某歌曲s,并希望獲取與該歌曲s相類似的推薦歌曲,唱吧對應的服務器獲取用戶A演唱歌曲s的第一數(shù)據(jù),該第一數(shù)據(jù)包括該歌曲s的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,基于該第一數(shù)據(jù),服務器通過一定的算法從歌曲庫中選擇與歌曲s相類似的歌曲,作為該歌曲s的推薦歌曲,具體算法過程如下:
步驟1、假設歌曲s的歌詞段落數(shù)量為m,服務器從歌曲庫中選取第一參考歌曲,記作歌曲j,其中,第一參考歌曲是服務器隨機選取的,或者服務器根據(jù)歌曲s的歌曲名或者歌曲s的原唱歌手名等方式篩選的,此處不做具體限定。
步驟2、服務器獲取歌曲j的第二數(shù)據(jù),該第二數(shù)據(jù)包括歌曲j的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長。
步驟3、服務器判斷歌曲j的歌詞段落數(shù)量是否為m,若是,執(zhí)行步驟4,若否,從歌曲庫中選擇另一首歌曲重新開始執(zhí)行步驟2。
步驟4、獲取歌曲s的m個歌詞段落中每個歌詞段落時長與歌曲j中對應的每個歌詞段落時長的絕對差值,例如:將歌曲s的歌詞段落時長記作Ts,其中,Ts={t1s,t2s,t3s,…,tms},t為每個歌詞段落時長,歌曲j的歌詞段落時長記作Tj,其中,Tj={t1j,t2j,t3j,…,tmj},將m個歌詞段落時長的絕對差值求和,記作lsjt,則
步驟5、服務器判斷是否小于閾值y1,若是,執(zhí)行步驟6,若否,從歌曲庫中選擇另一首歌曲重新開始執(zhí)行步驟2。
步驟6、假設歌曲s的歌詞段落字數(shù)表示為Ds={d1s,d2s,d3s,…,dms},其中,d表示每個歌詞段落字數(shù),歌曲j的歌詞段落字數(shù)表示為Dj={d1j,d2j,d3j,…,dmj},服務器獲取歌曲s的m個歌詞段落中的每個歌詞段落字數(shù)與歌曲j中對應的每個歌詞段落字數(shù)的絕對差值的和,記作
步驟7、服務器判斷l(xiāng)sjd是否小于閾值y2,若是,執(zhí)行步驟8,若否,從歌曲庫中選擇另一首歌曲重新開始執(zhí)行步驟2。
步驟8、假設歌曲s的歌詞段落的歌詞字時長表示為Ws={w1s,w2s,w3s,…,wms},其中,w表示每個歌詞段落的歌詞字時長,假設歌曲j的歌詞段落的歌詞字時長表示為Wj={w1j,w2j,w3j,…,wmj},獲取歌曲s的m個歌詞段落中第i個歌詞段落的歌詞字時長與歌曲j中對應的第i個歌詞字時長的絕對差值的和,記作由步驟6可知,歌曲s的每個歌詞段落的歌詞段落字數(shù)與歌曲j對應的歌詞段落字數(shù)可能相等,也可能不相等,則需要將歌詞段落字數(shù)多的進行合并,使得與對應的歌詞段落字數(shù)少的字數(shù)相等。則具體合并的過程如下:
假設歌曲s的第i個歌詞段落的歌詞字時長為r表示歌曲s的第i個歌詞段落中的歌詞段落字數(shù),歌曲j的第i個歌詞段落的歌詞字時長為q表示歌曲j的第i個歌詞段落中的歌詞段落字數(shù)。
一般情況下,︱r-q︱不大于1,例如:︱r-q︱=0或者︱r-q︱=1。
當︱r-q︱=0時,則說明歌曲s的第i個歌詞段落中的歌詞段落字數(shù)與歌曲j的第i個歌詞段落的歌詞段落字數(shù)相等,則其中,a為歌詞段落字的序號。
當︱r-q︱=1時,則r-q=1或者q-r=1,假設以r-q=1為例,則新定義歌曲s的第i個歌詞段落的歌詞段落字數(shù)為其中,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的歌詞段落字數(shù)就從r變?yōu)榈膓個,就與的歌詞段落字數(shù)相等,則則如果q-r=1時,則
步驟9、判斷l(xiāng)sjw是否小于閾值y3,若是,執(zhí)行步驟10,若否,從歌曲庫中選擇另一首歌曲重新開始執(zhí)行步驟2。
步驟10、確定歌曲j和與歌曲s的相似度,記作p=(y3-lsjw)/y3,其中,p的值越大,則說明歌曲j與歌曲s的相似度越大。
步驟11、判斷相似度是否大于第一閾值,若是,執(zhí)行步驟12,若否,結(jié)束流程。
步驟12、將該歌曲j確定為歌曲s對應的推薦歌曲。
當相似度大于第一閾值時,可以確定該歌曲j與該歌曲s相似,具體表現(xiàn)為具有很多相似的節(jié)奏性特征,則對于用戶A而言,用戶A演唱了被選定歌曲s,還被推薦到與該歌曲s很相似的歌曲j,從而獲得很好的用戶體驗。
請參閱圖4,本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖,具體流程如下:
步驟401、獲取被選定歌曲的第一數(shù)據(jù)與第一參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
需要說明的是,步驟401與步驟201相同或相似,具體可參閱步驟201的描述,此處不再贅述。
步驟402、判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟403,若否,結(jié)束流程。
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落時長,所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量和歌詞段落時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟403,若否,結(jié)束流程。
與圖3所示實施例不同的是,判斷的第一數(shù)據(jù)只包括被選定歌曲的歌詞段落數(shù)量和歌詞段落時長,判斷的第二數(shù)據(jù)只包括第一參考歌曲的歌詞段落數(shù)量和歌詞段落時長。則判斷的數(shù)據(jù)參數(shù)減少,推薦的效率更快。
步驟403、獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和,作為第一差值和。
步驟403與步驟303相同或者相似,具體可參閱步驟303,此處不再贅述。
步驟404、判斷所述第一差值和是否小于第二閾值,若是,執(zhí)行步驟405,若否,結(jié)束流程。
在本發(fā)明實施例中,第二閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟405、將所述第二閾值與所述第一差值和作差,并將作差的結(jié)果與所述第二閾值的比值確定為相似度。
步驟406、判斷所述相似度是否大于第一閾值,若是,執(zhí)行步驟407,若否,結(jié)束流程。
步驟407、將所述第一參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
請參閱圖5,本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖,具體流程如下:
步驟501、獲取被選定歌曲的第一數(shù)據(jù)與第一參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
需要說明的是,步驟501與步驟201相同或相似,具體可參閱步驟201的描述,此處不再贅述。
步驟502、判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟503,若否,結(jié)束流程。
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落字數(shù),所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量和歌詞段落字數(shù)時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟503,若否,結(jié)束流程。
與圖3和圖4所示實施例不同的是,判斷的第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落字數(shù),判斷的第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量和歌詞段落字數(shù),判斷的數(shù)據(jù)參數(shù)不同,則達到的推薦效果可能也不相同。
步驟503、獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第二差值和。
需要說明的是,步驟503與步驟305相同或者相似,具體可參閱步驟305,此處不再贅述。
步驟504、判斷所述第二差值和是否小于第三閾值,若是,執(zhí)行步驟505,若否,結(jié)束流程。
步驟505、將所述第三閾值與所述第二差值和作差,并將作差的結(jié)果與所述第三閾值的比值確定為相似度。
步驟506、判斷所述相似度是否大于第一閾值,若是,執(zhí)行步驟507,若否,結(jié)束流程。
步驟507、將所述第一參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
請參閱圖6,本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖,具體流程如下:
步驟601、獲取被選定歌曲的第一數(shù)據(jù)與第一參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
需要說明的是,步驟601與步驟201相同或相似,具體可參閱步驟201的描述,此處不再贅述。
步驟602、判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟603,若否,結(jié)束流程。
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù),所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù)時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟603,若否,結(jié)束流程。
與圖3和圖4和圖5所示實施例不同的是,判斷的第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù),判斷的第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù),判斷的數(shù)據(jù)參數(shù)不同,則達到的推薦效果可能也不相同。
步驟603、分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第四閾值,若是,執(zhí)行步驟604,若否,結(jié)束流程。
與圖3所示實施例不同的是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第四閾值,可見,判斷的參數(shù)涉及到每個歌詞段落時長,判斷更細化,有利于提升被選定歌曲的推薦效果。
需要說明的是,所述第四閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟604、獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第三差值和。
需要說明的是,步驟604與步驟305相同或相似,具體可參閱步驟305的描述,此處不再贅述。
步驟605、判斷所述第三差值和是否小于第五閾值,若是,執(zhí)行步驟606,若否,結(jié)束流程。
步驟606、將所述第五閾值與所述第三差值和作差,并將作差的結(jié)果與所述第五閾值的比值確定為相似度。
步驟607、判斷所述相似度是否大于第一閾值,若是,執(zhí)行步驟608,若否,結(jié)束流程。
步驟608、將所述第一參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
請參閱圖7,本發(fā)明實施例中數(shù)據(jù)處理方法的另一個實施例示意圖,具體流程如下:
步驟701、獲取被選定歌曲的第一數(shù)據(jù)與第一參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個。
步驟702、判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟703,若否,結(jié)束流程。
當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等,若是,執(zhí)行步驟703,若否,結(jié)束流程。
需要說明的是,步驟701和步驟702與圖3所示實施例中的步驟301和步驟302相同或相似,具體可參閱步驟301和步驟302,此處不再贅述。
步驟703、分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第六閾值,若是,執(zhí)行步驟704,若否,結(jié)束流程。
與圖3所示實施例不同的是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第四閾值,可見,判斷的參數(shù)涉及到每個歌詞段落時長,判斷的參數(shù)更細化,有利于提升被選定歌曲的推薦效果。
在本發(fā)明實施例中,第六閾值可以是服務器默認的或者用戶自定義的閾值,此處不做具體限定。
步驟704、分別判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)是否都相等,若是,執(zhí)行步驟705,若否,結(jié)束流程。
與圖3所示實施例不同的是,分別判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)是否都相等,可見,判斷的參數(shù)涉及到每個歌詞段落的字數(shù),判斷的參數(shù)更細化,有利于提升被選定歌曲的推薦效果。
步驟705、獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第四差值和。
步驟706、判斷所述第四差值和是否小于第七閾值,若是,執(zhí)行步驟707,若否,結(jié)束流程。
步驟707、將所述第七閾值與所述第四差值和作差,并將作差的結(jié)果與所述第七閾值的比值確定為相似度。
步驟708、判斷所述相似度是否大于第一閾值,若是,執(zhí)行步驟708,若否,結(jié)束流程。
步驟709、將所述第一參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
需要說明的是,由于所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,則根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度有很多種,不限于上述圖3至圖7所示實施例中所描述的方法,此處不做具體限定。
為便于更好的實施本發(fā)明實施例的上述相關(guān)方法,下面還提供用于配合上述方法的相關(guān)裝置。
請參閱圖8,本發(fā)明實施例中服務器800的一個結(jié)構(gòu)示意圖,所述服務器800包括:第一獲取模塊801,第一確定模塊802,第二確定模塊803。
第一獲取模塊801,用于獲取被選定歌曲的第一數(shù)據(jù)與曲庫中的各個參考歌曲的第二數(shù)據(jù),其中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括所述各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個;
第一確定模塊802,用于根據(jù)所述第一獲取模塊801獲取的所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度;
第二確定模塊803,用于將所述第一確定模塊802確定的所述相似度大于第一閾值的參考歌曲確定為所述被選定歌曲對應的推薦歌曲。
在一些可能的實現(xiàn)方式中,當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落時長,所述第二數(shù)據(jù)包括所述第一參考歌曲的歌詞段落數(shù)量和歌詞段落時長時,所述第一確定模塊802具體用于判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;若是,獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和,作為第一差值和;判斷所述第一差值和是否小于第二閾值;若是,將所述第二閾值與所述第一差值和作差,并將作差的結(jié)果與所述第二閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量和歌詞段落字數(shù),所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量和歌詞段落字數(shù)時,所述第一確定模塊802具體用于判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第二差值和;判斷所述第二差值和是否小于第三閾值;若是,將所述第三閾值與所述第二差值和作差,并將作差的結(jié)果與所述第三閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù),所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長和歌詞段落字數(shù)時,所述第一確定模塊802具體用于判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;若是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第四閾值;若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和,作為第三差值和;判斷所述第三差值和是否小于第五閾值;若是,將所述第五閾值與所述第三差值和作差,并將作差的結(jié)果與所述第五閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,第一確定模塊802具體用于判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;若是,分別判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值是否都小于第六閾值;若是,分別判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)是否都相等;若是,獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第四差值和;判斷所述第四差值和是否小于第七閾值;若是,將所述第七閾值與所述第四差值和作差,并將作差的結(jié)果與所述第七閾值的比值確定為所述相似度。
在一些可能的實現(xiàn)方式中,當所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長,所述第二數(shù)據(jù)包括第一參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長時,第一確定模塊802具體用于判斷所述被選定歌曲的歌詞段落數(shù)量是否與所述第一參考歌曲的歌詞段落數(shù)量相等;若是,獲取所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和;判斷所述被選定歌曲的每個歌詞段落時長與所述第一參考歌曲對應的每個歌詞段落時長的絕對差值的和是否小于第八閾值;若是,獲取所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和;判斷所述被選定歌曲的每個歌詞段落字數(shù)與所述第一參考歌曲對應的每個歌詞段落字數(shù)的絕對差值的和是否小于第九閾值;若是,當所述被選定歌曲中存在第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)不相等時,按照預設規(guī)則處理,以使得所述被選定歌曲的第一歌詞段落字數(shù)與所述第一參考歌曲對應的第二歌詞段落字數(shù)相等,其中,所述預設規(guī)則包括:若所述第一歌詞段落字數(shù)大于所述第二歌詞段落字數(shù),則確定所述第一歌詞段落的差異字符,并將所述第一歌詞段落的差異字符進行合并;若所述第二歌詞段落字數(shù)小于所述第二歌詞段落字數(shù),則確定所述第二歌詞段落的差異字符,并將所述第二歌詞段落的差異字符進行合并;獲取所述被選定歌曲的每個歌詞字時長與所述第一參考歌曲對應的每個歌詞字時長的絕對差值的和,作為第五差值和;判斷所述第五差值和是否小于第十閾值;若是,將所述第十閾值與所述第五差值和作差,并將作差的結(jié)果與所述第十閾值的比值確定為所述相似度。
在實際應用中,當確定所述被選定歌曲對應的推薦歌曲后,可以根據(jù)該推薦歌曲的相似度的大小,確定推薦的優(yōu)先級順序,例如:推薦歌曲A的相似度為m,推薦歌曲B的相似度為n,當m大于n時,可以優(yōu)先將推薦歌曲A推薦給用戶。
綜上,所述第一數(shù)據(jù)和所述第二數(shù)據(jù)并非是聲音特征對應的數(shù)據(jù),如果要獲取聲音特征對應的數(shù)據(jù),數(shù)據(jù)不易采集導致獲取難度大,而本發(fā)明中,所述第一數(shù)據(jù)包括所述被選定歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,所述第二數(shù)據(jù)包括各個參考歌曲的歌詞段落數(shù)量,歌詞段落時長,歌詞段落字數(shù)和歌詞字時長中的至少一個,數(shù)據(jù)容易采集,從而有效降低了獲取數(shù)據(jù)的難度。當獲取被選定歌曲的第一數(shù)據(jù)與各個參考歌曲的第二數(shù)據(jù)后,由于第一數(shù)據(jù)和第二數(shù)據(jù)是基于節(jié)奏性對應的數(shù)據(jù),數(shù)據(jù)容易比對,則計算復雜度低,計算量小,從而快速地根據(jù)所述第一數(shù)據(jù)與所述第二數(shù)據(jù)確定相似度,直接將所述相似度大于第一閾值時的參考歌曲確定為所述被選定歌曲對應的推薦歌曲,從而有效提高了歌曲的推薦效率,另外,基于歌曲的節(jié)奏性進行歌曲推薦,不受用戶量的限制,從而有效提升了歌曲的推薦效果。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。