本申請涉及信息推送技術(shù)領(lǐng)域,更具體地說,涉及一種信息推送方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)的發(fā)展,各式各樣的社交軟件如雨后春筍般呈現(xiàn)。社交軟件可以提供用戶發(fā)表文字、圖片等功能,同時用戶還可以通過其它軟件將文章或者音樂分享到社交軟件中,以供好友進(jìn)行評論等操作。
伴隨著社交軟件的普及,出現(xiàn)了一種借助社交軟件向用戶推送信息的技術(shù)??梢岳斫獾氖?,不同用戶對待不同的推送信息的態(tài)度不同,就某條推送信息而言,有些用戶可能會比較喜歡,而其它用戶可能會比較厭惡。因此,需要一種信息推送方案,以實現(xiàn)向用戶推送用戶喜好的信息。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┝艘环N信息推送方法及裝置,用于提供一種信息推送方案,以實現(xiàn)向用戶推送用戶喜好的信息的目的。
為了實現(xiàn)上述目的,現(xiàn)提出的方案如下:
一種信息推送方法,包括:
確定待推送信息及目標(biāo)用戶;
確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度;
讀取待推送信息的歷史喜好度集合,所述歷史喜好度集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度;
根據(jù)所述當(dāng)前喜好度及所述歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度;
當(dāng)所述程度符合設(shè)定程度條件時,向所述目標(biāo)用戶推送所述待推送信息。
一種信息推送裝置,包括:
數(shù)據(jù)確定單元,用于確定待推送信息及目標(biāo)用戶;
當(dāng)前喜好度確定單元,用于確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度;
歷史喜好度集合讀取單元,用于讀取待推送信息的歷史喜好度集合,所述歷史喜好度集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度;
喜好程度確定單元,用于根據(jù)所述當(dāng)前喜好度及所述歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度;
信息推送單元,用于當(dāng)所述程度符合設(shè)定程度條件時,向所述目標(biāo)用戶推送所述待推送信息。
從上述的技術(shù)方案可以看出,應(yīng)用本申請實施例提供的信息推送方法,首先確定待推送信息及目標(biāo)用戶,進(jìn)而確定待推送信息與目標(biāo)用戶的當(dāng)前喜好度,讀取待推送信息的歷史喜好度集合,該集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度,根據(jù)當(dāng)前喜好度和歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度,當(dāng)所述程度符合設(shè)定程度條件時,向目標(biāo)用戶推送所述待推送信息。本申請先確定目標(biāo)用戶對待推送信息的當(dāng)前喜好度,并根據(jù)待推送信息的歷史喜好度集合確定目標(biāo)用戶相對于歷史用戶喜好該待推送信息的程度,當(dāng)程度滿足設(shè)定程度條件時才向目標(biāo)用戶推送該待推送信息,從而實現(xiàn)了向目標(biāo)用戶推送的均為目標(biāo)用戶喜好的消息的目的。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實施例公開的一種信息推送方法流程圖;
圖2為本申請實施例公開的另一種信息推送方法流程圖;
圖3為本申請實施例公開的又一種信息推送方法流程圖;
圖4為本申請實施例公開的一種歷史評分序列示意圖;
圖5為本申請實施例公開的一種比例確定方法流程圖;
圖6為本申請實施例公開的一種歷史評分序列和統(tǒng)計數(shù)組結(jié)構(gòu)示意圖;
圖7為本申請實施例公開的另一種比例確定方法流程圖;
圖8為本申請實施例公開的一種歷史評分序列、統(tǒng)計數(shù)組和計和數(shù)組結(jié)構(gòu)示意圖;
圖9為本申請實施例公開的一種信息推送裝置結(jié)構(gòu)示意圖;
圖10為本申請實施例公開的一種服務(wù)器的硬件結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
本申請?zhí)峁┝艘环N應(yīng)用于服務(wù)器的信息推送方案,以向用戶推送用戶喜好的信息。
參見圖1,圖1為本申請實施例公開的一種信息推送方法流程圖。
如圖1所示,該方法包括:
步驟s100、確定待推送信息及目標(biāo)用戶;
具體地,目標(biāo)用戶為待定接收所述待推送信息的用戶。確定待推送信息和目標(biāo)用戶的方式可以有多種,如:
客戶端向服務(wù)器發(fā)送信息獲取請求,該請求包含了所要獲取信息的id,以及用戶id。服務(wù)器通過信息id查找對應(yīng)的信息,將其確定為待推送信息。服務(wù)器通過用戶id查找對應(yīng)的用戶,將其確定為目標(biāo)用戶。
除此之外,確定待推送信息和目標(biāo)用戶的方式還可以是:
服務(wù)器隨機(jī)選擇一條信息和一個用戶,將選擇的信息作為待推送信息,將選擇的用戶作為目標(biāo)用戶,等等。
可選的,對于待推送信息,其可以是廣告、天氣預(yù)報等等多種形式,對此本申請不進(jìn)行限定。
步驟s110、確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度;
具體地,服務(wù)器可以預(yù)先估計目標(biāo)用戶對所述待推送信息的喜好度,作為當(dāng)前喜好度。預(yù)估時可以綜合考慮目標(biāo)用戶的關(guān)聯(lián)信息以及待推送信息,來估計當(dāng)前喜好度。
當(dāng)前喜好度可以是以分值形式,或者是以等級形式等等。
步驟s120、讀取待推送信息的歷史喜好度集合;
其中,所述歷史喜好度集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度。
具體地,在本次確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度之前,針對所述待推送信息還確定過與其它歷史用戶的喜好度,這些喜好度作為歷史喜好度記錄在所述待推送信息的歷史喜好度集合中。
步驟s130、根據(jù)所述當(dāng)前喜好度及所述歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度;
具體地,歷史喜好度集合中記錄了歷史用戶對所述待推送信息的歷史喜好度,通過對比當(dāng)前喜好度和歷史喜好度集合中各個歷史喜好度,可以確定出目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度。
步驟s140、當(dāng)所述程度符合設(shè)定程度條件時,向所述目標(biāo)用戶推送所述待推送信息。
具體地,本申請預(yù)先設(shè)定了程度條件,當(dāng)上一步驟確定的程度符合設(shè)定程度條件時,即確定目標(biāo)用戶喜好該待推送信息,因此向其推送所述待推送信息。
應(yīng)用本申請實施例提供的信息推送方法,首先確定待推送信息及目標(biāo)用戶,進(jìn)而確定待推送信息與目標(biāo)用戶的當(dāng)前喜好度,讀取待推送信息的歷史喜好度集合,該集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度,根據(jù)當(dāng)前喜好度和歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度,當(dāng)所述程度符合設(shè)定程度條件時,向目標(biāo)用戶推送所述待推送信息。本申請先確定目標(biāo)用戶對待推送信息的當(dāng)前喜好度,并根據(jù)待推送信息的歷史喜好度集合確定目標(biāo)用戶相對于歷史用戶 喜好該待推送信息的程度,當(dāng)程度滿足設(shè)定程度條件時才向目標(biāo)用戶推送該待推送信息,從而實現(xiàn)了向目標(biāo)用戶推送的均為目標(biāo)用戶喜好的消息的目的。
需要說明的是,上述已經(jīng)列舉過喜好度的形式,其可以是評分值或者等級等形式。在本實施例中,設(shè)定當(dāng)前喜好度為所述待推送信息的當(dāng)前用戶評分,且歷史喜好度集合為歷史評分序列,歷史評分序列中記錄有歷史確定的所述待推送信息的至少一個歷史用戶評分。
用戶評分的確定過程可以是根據(jù)待推送信息及目標(biāo)用戶的關(guān)聯(lián)信息而確定,例如考慮目標(biāo)用戶的性別、職業(yè)等,以及待推送信息的歸類,綜合確定用戶評分。詳細(xì)的用戶評分確定過程本申請不進(jìn)行介紹,可以參照現(xiàn)有相關(guān)介紹。
參見圖2,圖2為本申請實施例公開的另一種信息推送方法流程圖。
如圖2所示,該方法包括:
步驟s200、確定待推送信息及目標(biāo)用戶;
具體地,目標(biāo)用戶為待定接收所述待推送信息的用戶。
可選的,對于待推送信息,其可以是廣告、天氣預(yù)報等等多種形式,對此本申請不進(jìn)行限定。
步驟s210、確定所述待推送信息與目標(biāo)用戶的當(dāng)前用戶評分;
具體地,服務(wù)器可以綜合考慮目標(biāo)用戶的關(guān)聯(lián)信息以及待推送信息,來估計目標(biāo)用戶對待推送信息的當(dāng)前用戶評分。
步驟s220、讀取待推送信息的歷史評分序列;
其中,所述歷史評分序列中記錄有歷史確定的所述待推送信息的至少一個歷史用戶評分。
步驟s230、確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例;
具體地,該比例可以看作當(dāng)前用戶評分在歷史評分序列中的排名。
舉例如,歷史評分序列中包含10個歷史用戶評分,依次為1、2、3……9、10。當(dāng)前用戶評分為4,則歷史評分序列中小于4的歷史用戶評分包含1、2、3共3個歷史用戶評分,因此所述比例為3/10。
步驟s240、在判斷所述比例大于預(yù)置的擇優(yōu)比例時,向所述目標(biāo)用戶推 送所述待推送信息。
具體地,本申請預(yù)先設(shè)定了擇優(yōu)比例,當(dāng)判斷所述比例大于擇優(yōu)比例時,向目標(biāo)用戶推送所述待推送信息。擇優(yōu)比例的大小可以根據(jù)實際情況而調(diào)整。
可以理解的是,上述步驟s230還可以是:確定所述歷史評分序列中,大于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例。
在此基礎(chǔ)上,步驟s240的過程為:在判斷所述比例小于預(yù)置的擇優(yōu)比例時,向所述目標(biāo)用戶推送所述待推送信息。
參見圖3,圖3為本申請實施例公開的又一種信息推送方法流程圖。
如圖3所示,該方法包括:
步驟s300、確定待推送信息及目標(biāo)用戶;
具體地,目標(biāo)用戶為待定接收所述待推送信息的用戶。
可選的,對于待推送信息,其可以是廣告、天氣預(yù)報等等多種形式,對此本申請不進(jìn)行限定。
步驟s310、確定所述待推送信息與目標(biāo)用戶的當(dāng)前用戶評分;
具體地,服務(wù)器可以綜合考慮目標(biāo)用戶的關(guān)聯(lián)信息以及待推送信息,來估計目標(biāo)用戶對待推送信息的當(dāng)前用戶評分。
步驟s320、讀取待推送信息的歷史評分序列;
其中,所述歷史評分序列中記錄有歷史確定的所述待推送信息的至少一個歷史用戶評分。
步驟s330、確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例;
具體地,該比例可以看作當(dāng)前用戶評分在歷史評分序列中的排名。
步驟s340、將所述當(dāng)前用戶評分添加到所述歷史評分序列中,并從中刪除最早添加的一個歷史用戶評分;
具體地,本實施例中設(shè)定待推送消息的歷史評分序列為一個固定長度的滑窗,每當(dāng)針對待推送消息確定一個當(dāng)前用戶評分時,將當(dāng)前用戶評分添加到歷史評分序列中,并將序列中最早添加的一個歷史用戶評分刪掉,保證序列中評分的個數(shù)不變。如圖4所示,當(dāng)最新確定的當(dāng)前用戶評分“5997”加 入歷史評分序列時,將序列中末端的最早添加的歷史用戶評分“1001”刪除掉。
步驟s350、在判斷所述比例大于預(yù)置的擇優(yōu)比例時,向所述目標(biāo)用戶推送所述待推送信息。
相比于上述實施例,本實施例在確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例之后,進(jìn)一步增加了將當(dāng)前用戶評分添加到所述歷史評分序列中,并從中刪除最早添加的一個歷史用戶評分的操作。
其中,當(dāng)前用戶評分序列中評分的個數(shù)可以根據(jù)實際情況設(shè)定,例如5萬個等。
進(jìn)一步的,對于確定的當(dāng)前用戶評分和歷史用戶評分序列中的歷史用戶評分,其均屬于閉區(qū)間[a,b]內(nèi)的整數(shù),其中a和b均為整數(shù)。
當(dāng)然,若采用現(xiàn)有計算方法得到的當(dāng)前用戶評分為非整數(shù),則可以通過整數(shù)化處理得到整數(shù)形式的當(dāng)前用戶評分。同理針對歷史用戶評分。
需要說明的是,整數(shù)格式的當(dāng)前用戶評分和歷史用戶評分均屬于相同的閉區(qū)間,也即當(dāng)前用戶評分和歷史用戶評分最低不能夠低于a,最高不能超過b。一般性的,a值為0,b值根據(jù)實際情況而定,如1000等。
在此基礎(chǔ)上,本實施例介紹上述確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例的具體實現(xiàn)方式。
如圖5所示,該過程包括:
步驟s500、讀取預(yù)置的統(tǒng)計數(shù)組;
具體地,本申請預(yù)先構(gòu)建了統(tǒng)計數(shù)組arr。所述統(tǒng)計數(shù)組的長度為b-a,且統(tǒng)計數(shù)組中各元素按照由a到b的下標(biāo)順序排列,其中,每個元素的值為歷史評分序列中與所述元素的下標(biāo)相等的歷史用戶評分的個數(shù)。
步驟s510、將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素的值加1;
步驟s520、將所述統(tǒng)計數(shù)組中,下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素的值減1;
具體地,由于歷史評分序列中最早添加的一個歷史用戶評分需要從序列中刪除掉,因此需要將下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素的值減1。
步驟s530、將所述統(tǒng)計數(shù)組中,首個元素、下標(biāo)與所述當(dāng)前用戶評分相等的元素以及二者間的各元素的值求和,得到元素和值;
步驟s540、計算所述元素和值與所述歷史評分序列中歷史用戶評分的總個數(shù)的比值。
本實施例提供了一種快速計算所述比例的方法,通過構(gòu)建統(tǒng)計數(shù)組的形式,以空間占用來換取計算速度的提升。
為了便于理解上述實施過程,本申請通過一個具體實例對上述過程進(jìn)行介紹。
如圖6所示:
假設(shè)當(dāng)前用戶評分和歷史用戶評分均屬于閉區(qū)間[0,10000]。當(dāng)前用戶評分為5997。統(tǒng)計數(shù)組的長度為10000。歷史用戶評分序列的長度為50000。
在統(tǒng)計數(shù)組arr中查詢下標(biāo)為5997的元素,其位于圖6中[5000,6000)所指代行的倒數(shù)第三個元素,將該元素的值加1,即圖6所示的“0+1”;
進(jìn)一步,在統(tǒng)計數(shù)組arr中查詢下標(biāo)為1001的元素,其位于圖6中[1000,2000)所指代行的正數(shù)第二個元素,將該元素的值減1,即圖6所示的“1-1”。
計算統(tǒng)計數(shù)組arr中下標(biāo)為0-5997的各元素的值的和,得到元素和值25000,進(jìn)一步確定比例為:25000/50000=0.5。
由上述實施例可知,在計算統(tǒng)計數(shù)組arr中下標(biāo)為0-5997的各元素的值的和時,需要逐個掃描各元素的值,這在一定程度上也會降低計算速度。
為此,在上述實施例的基礎(chǔ)上,本申請進(jìn)一步提供了另一種確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例的具體實現(xiàn)方式。
在本實施例中,統(tǒng)計數(shù)組被預(yù)先拆分為若干個子數(shù)組,各子數(shù)組的長度相同。如圖6所示的,可以將統(tǒng)計數(shù)組arr[10000]均分為100個長度為1000的子數(shù)組。
參見圖7所示,確定比例的過程包括:
步驟s700、讀取預(yù)置的統(tǒng)計數(shù)組;
具體地,本申請預(yù)先構(gòu)建了統(tǒng)計數(shù)組arr。所述統(tǒng)計數(shù)組的長度為b-a,且統(tǒng)計數(shù)組中各元素按照由a到b的下標(biāo)順序排列,其中,每個元素的值為歷史評分序列中與所述元素的下標(biāo)相等的歷史用戶評分的個數(shù)。
步驟s710、讀取預(yù)置的計和數(shù)組;
具體地,所述計和數(shù)組sunarr的長度與所述子數(shù)組的個數(shù)相同,每個子數(shù)組在計和數(shù)組中存在一個對應(yīng)的元素,該元素的值與該元素對應(yīng)的子數(shù)組中各元素的值的和值相等。
步驟s720、將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素的值加1;
步驟s730、將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素所在的子數(shù)組,在計和數(shù)組中對應(yīng)的元素的值加1;
步驟s740、將所述統(tǒng)計數(shù)組中,下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素的值減1;
具體地,由于歷史評分序列中最早添加的一個歷史用戶評分需要從序列中刪除掉,因此需要將下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素的值減1。
步驟s750、將所述統(tǒng)計數(shù)組中,下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素所在的子數(shù)組,在計和數(shù)組中對應(yīng)的元素的值減1;
步驟s760、將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素所在子數(shù)組之前的所有子數(shù)組,在計和數(shù)組中所對應(yīng)的元素的值求和,得到第一元素和值;
步驟s770、將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素,以及該元素所在子數(shù)組中位于該元素前的所有元素的值求和,得到第二元素和值;
步驟s780、將所述第一元素和值和所述第二元素和值求和,得到所述元素和值;
步驟s790、計算所述元素和值與所述歷史評分序列中歷史用戶評分的總個數(shù)的比值。
可選的,上述讀取預(yù)置的計和數(shù)組和預(yù)置的統(tǒng)計數(shù)組的過程,可以同時執(zhí)行,也可以不分先后順序的執(zhí)行。
同理,上述步驟s720、步驟s730的執(zhí)行順序也可以顛倒或者同時執(zhí)行;步驟s740、步驟s750的執(zhí)行順序也可以顛倒或者同時執(zhí)行。
本申請進(jìn)一步引入計和數(shù)組的概念,每個子數(shù)組在計和數(shù)組中都存在唯一對應(yīng)的一個元素,該元素的值為對應(yīng)子數(shù)組內(nèi)各元素值的和值。簡單來說,計和數(shù)組中的元素用于對該元素對應(yīng)的子數(shù)組進(jìn)行計和。通過引入計和數(shù)組,在最終統(tǒng)計元素和值時,可以通過遍歷部分計和數(shù)組的元素和部分統(tǒng)計數(shù)組的元素來確定元素和值,相比于上一實施例的計算方式,其計算速度得到了大大提升。
為了便于理解本申請方案,再次通過一個具體實例進(jìn)行說明
參見圖8:
仍假設(shè)當(dāng)前用戶評分和歷史用戶評分均屬于閉區(qū)間[0,10000]。當(dāng)前用戶評分為5997。統(tǒng)計數(shù)組的長度為10000。歷史用戶評分序列的長度為50000。
在統(tǒng)計數(shù)組arr中查詢下標(biāo)為5997的元素,其位于圖8中[5000,6000)所指代行的倒數(shù)第三個元素,將該元素的值加1,即圖8所示的“0+1”;同時,將改行子數(shù)組在計和數(shù)組中對應(yīng)的元素的值加1,即圖8中所示的“235+1”;
進(jìn)一步,在統(tǒng)計數(shù)組arr中查詢下標(biāo)為1001的元素,其位于圖8中[1000,2000)所指代行的正數(shù)第二個元素,將該元素的值減1,即圖8所示的“1-1”;同時,將改行子數(shù)組在計和數(shù)組中對應(yīng)的元素的值減1,即圖8中所示的“235-1”;
計算元素和值時遍歷圖8中統(tǒng)計數(shù)組中帶灰度陰影的各元素的值,得到第一元素和值;遍歷計和數(shù)組中帶灰度陰影的各元素的值,得到第二元素和值,將第一元素和值加第二元素和值即可得到總的元素和值25000。進(jìn)一步確定比例為:25000/50000=0.5。
下面對本申請實施例提供的信息推送裝置進(jìn)行描述,下文描述的信息推送裝置與上文描述的信息推送方法可相互對應(yīng)參照。
參見圖9,圖9為本申請實施例公開的一種信息推送裝置結(jié)構(gòu)示意圖。
如圖9所示,信息推送裝置包括:
數(shù)據(jù)確定單元91,用于確定待推送信息及目標(biāo)用戶;
當(dāng)前喜好度確定單元92,用于確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度;
歷史喜好度集合讀取單元93,用于讀取待推送信息的歷史喜好度集合,所述歷史喜好度集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度;
喜好程度確定單元94,用于根據(jù)所述當(dāng)前喜好度及所述歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度;
信息推送單元95,用于當(dāng)所述程度符合設(shè)定程度條件時,向所述目標(biāo)用戶推送所述待推送信息。
應(yīng)用本申請實施例提供的信息推送裝置,首先確定待推送信息及目標(biāo)用戶,進(jìn)而確定待推送信息與目標(biāo)用戶的當(dāng)前喜好度,讀取待推送信息的歷史喜好度集合,該集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度,根據(jù)當(dāng)前喜好度和歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度,當(dāng)所述程度符合設(shè)定程度條件時,向目標(biāo)用戶推送所述待推送信息。本申請先確定目標(biāo)用戶對待推送信息的當(dāng)前喜好度,并根據(jù)待推送信息的歷史喜好度集合確定目標(biāo)用戶相對于歷史用戶喜好該待推送信息的程度,當(dāng)程度滿足設(shè)定程度條件時才向目標(biāo)用戶推送該待推送信息,從而實現(xiàn)了向目標(biāo)用戶推送的均為目標(biāo)用戶喜好的消息的目的。
可選的,所述當(dāng)前喜好度為所述待推送信息的當(dāng)前用戶評分,所述歷史喜好度集合為歷史評分序列,歷史評分序列中記錄有歷史確定的所述待推送信息的至少一個歷史用戶評分;
所述喜好程度確定單元可以包括:
比例確定單元,用于確定所述歷史評分序列中,小于所述當(dāng)前用戶評分的歷史用戶評分的個數(shù)與所述歷史評分序列中歷史用戶評分的總個數(shù)的比例;
所述信息推送單元可以包括:
比例判斷單元,用于在判斷所述比例大于預(yù)置的擇優(yōu)比例時,向所述目標(biāo)用戶推送所述待推送信息。
可選的,信息推送裝置還可以進(jìn)一步包括:
歷史評分序列調(diào)整單元,用于在執(zhí)行完所述比例確定單元之后,將所述當(dāng)前用戶評分添加到所述歷史評分序列中,并從中刪除最早添加的一個歷史用戶評分。
可選的,所述當(dāng)前用戶評分和所述歷史用戶評分均屬于閉區(qū)間[a,b]內(nèi)的整數(shù),其中a和b均為整數(shù);
所述比例確定單元可以包括:
統(tǒng)計數(shù)組讀取單元,用于讀取預(yù)置的統(tǒng)計數(shù)組,所述統(tǒng)計數(shù)組的長度為b-a,且統(tǒng)計數(shù)組中各元素按照由a到b的下標(biāo)順序排列,其中,每個元素的值為歷史評分序列中與所述元素的下標(biāo)相等的歷史用戶評分的個數(shù);
第一統(tǒng)計數(shù)組操作單元,用于將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素的值加1;
第二統(tǒng)計數(shù)組操作單元,用于將所述統(tǒng)計數(shù)組中,下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素的值減1;
元素和值計算單元,用于將所述統(tǒng)計數(shù)組中,首個元素、下標(biāo)與所述當(dāng)前用戶評分相等的元素以及二者間的各元素的值求和,得到元素和值;
比值計算單元,用于計算所述元素和值與所述歷史評分序列中歷史用戶評分的總個數(shù)的比值。
可選的,所述統(tǒng)計數(shù)組預(yù)先被拆分為若干個子數(shù)組,各子數(shù)組的長度相同,所述比例確定單元還可以包括:
計和數(shù)組讀取單元,用于在讀取預(yù)置的統(tǒng)計數(shù)組的同時,讀取預(yù)置的計和數(shù)組,所述計和數(shù)組的長度與所述子數(shù)組的個數(shù)相同,每個子數(shù)組在計和數(shù)組中存在一個對應(yīng)的元素,該元素的值與該元素對應(yīng)的子數(shù)組中各元素的值的和值相等。
在上述基礎(chǔ)上,所述比例確定單元還可以進(jìn)一步包括:
第一計和數(shù)組操作單元,用于在執(zhí)行所述第一統(tǒng)計數(shù)組操作單元的同時,將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素所在的子數(shù)組,在計和數(shù)組中對應(yīng)的元素的值加1;
第二計和數(shù)組操作單元,用于在執(zhí)行所述第二統(tǒng)計數(shù)組操作單元的同時,將所述統(tǒng)計數(shù)組中,下標(biāo)與歷史評分序列中最早添加的一個歷史用戶評分相等的元素所在的子數(shù)組,在計和數(shù)組中對應(yīng)的元素的值減1;
所述元素和值計算單元包括:
第一元素和值計算子單元,用于將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素所在子數(shù)組之前的所有子數(shù)組,在計和數(shù)組中所對應(yīng)的元素的值求和,得到第一元素和值;
第二元素和值計算子單元,用于將所述統(tǒng)計數(shù)組中,下標(biāo)與所述當(dāng)前用戶評分相等的元素,以及該元素所在子數(shù)組中位于該元素前的所有元素的值求和,得到第二元素和值;
第三元素和值計算子單元,用于將所述第一元素和值和所述第二元素和值求和,得到所述元素和值。
本申請通過引入統(tǒng)計數(shù)組和計和數(shù)組,并將統(tǒng)計數(shù)組劃分為多個相同長度的子數(shù)組,每個子數(shù)組在計和數(shù)組中都存在唯一對應(yīng)的一個元素,該元素的值為對應(yīng)子數(shù)組內(nèi)各元素值的和值。簡單來說,計和數(shù)組中的元素用于對該元素對應(yīng)的子數(shù)組進(jìn)行計和。通過引入計和數(shù)組,在最終統(tǒng)計元素和值時,可以通過遍歷部分計和數(shù)組的元素和部分統(tǒng)計數(shù)組的元素來確定元素和值,其計算速度得到了大大提升。
本申請還提供了一種服務(wù)器,該服務(wù)器包括上述所述的信息推送裝置。對于服務(wù)器的硬件結(jié)構(gòu),參見圖10,圖10為本申請實施例提供的服務(wù)器的硬件結(jié)構(gòu)示意圖。如圖10所示,該服務(wù)器可以包括:
處理器1,通信接口2,存儲器3,通信總線4,和顯示屏5;
其中處理器1、通信接口2、存儲器3和顯示屏5通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如gsm模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括處理器的操作指令。
處理器1可能是一個中央處理器cpu,或者是特定集成電路asic(applicationspecificintegratedcircuit),或者是被配置成實施本申請實施例的一個或多個集成電路。
存儲器3可能包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
確定待推送信息及目標(biāo)用戶;
確定所述待推送信息與目標(biāo)用戶的當(dāng)前喜好度;
讀取待推送信息的歷史喜好度集合,所述歷史喜好度集合中記錄有歷史確定的所述待推送信息與歷史用戶的至少一個歷史喜好度;
根據(jù)所述當(dāng)前喜好度及所述歷史喜好度集合,確定目標(biāo)用戶相對于歷史用戶喜好所述待推送信息的程度;
當(dāng)所述程度符合設(shè)定程度條件時,向所述目標(biāo)用戶推送所述待推送信息。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例, 而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。