專利名稱:行為標簽取值的獲取方法及裝置的制作方法
行為標簽取值的獲取方法及裝置技術領域
本申請涉及計算機及互聯(lián)網(wǎng)技術領域,具體而言,涉及一種行為標簽取值的獲取方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)的用戶和內(nèi)容的不斷增加,用戶的行為也變得越來越復雜,分析考量一個用戶的維度也越來越多,從傳統(tǒng)的靜態(tài)維度(國家,省份及性別等)向時間等動態(tài)維度進行不斷擴展,從而形成各種用戶的行為標簽。在這些行為標簽中,常用的是行為和時間組合起來的行為標簽,比如,用戶的登錄行為,根據(jù)分析時間維度的不同,能夠產(chǎn)生多個用戶行為標簽,比如,當天是否有登錄、本周是否有登錄或本月是否有登錄等行為標簽。
目前,典型的是采用靜態(tài)行為標簽的處理方式,在靜態(tài)行為標簽中,分析人員將需要分析的行為標簽整理出來,同時給出各行為標簽的定義。開發(fā)人員根據(jù)這些需求,將相關的行為標簽轉換為表字段,然后根據(jù)標簽的定義實現(xiàn)各字段的刷新邏輯。目前,廣泛采用的靜態(tài)標簽方法是:一個時間維度對應一個行為標簽,對應一個字段,對應一套刷新邏輯。圖1為相關技術中靜態(tài)標簽方法的方案設計示意圖,如圖1所示,在相關技術中,任何一個維度的分析都需要經(jīng)過四個階段才能真正生效,即:維度的定義、行為標簽的定義、表字段的定義和字段的刷新邏輯的實現(xiàn)。
維度定義:分析人員將分析的需求進行固化,轉化為時間的集合和行為的集合,例如,(時間)={當天,一月,一周,一年……};(行為)={登錄,瀏覽,購買,搜索……}。
行為標簽定義:分析人員將時間段和行為進行兩兩組合,組成行為標簽定義集合。例如,(時間,行為)=K當天,登錄),(當天,瀏覽),(當天,購買),(一周,登錄),(一周,瀏覽)……} = {當天有登錄,當天有瀏覽,當天有購買,本周有登錄,本周有瀏覽……}。
表字段的定義:開發(fā)人員將所有的標簽定義轉化為相對應的表字段的集合,并這些集合轉換到相應的表上面。例如,{當天有登錄,當天有瀏覽,當天有購買,本周有登錄,本周有瀏覽......} = {is_login_day, is_visit_day, is_deal_day, is_login_week, is_visit_week......}。
字段刷新邏輯的定義:為所有的行為表字段提供配套的刷新邏輯。例如,可以通過結構化查詢(SQL)實現(xiàn),SQL實現(xiàn)邏輯如下=Select
Case when Max (yyyymmdd) = tmnc (sysdate) then I else Oend as is_login_day,
Case when max(yyyymmdd) > trunc (sysdate-7)and max(Yyyymmdd) < =trunc (sysdate)then lelse Oend as is_login_week,
Case when max(yyyymmdd) > trunc(sysdate-30)and max(yyyymmdd) < =tmnc(sysdate)then lelse 0 end as is_login_month
From用戶登錄表
Group by member_id ;
其中:
“select…from…”為基本的sql查詢結構;
“casewhen…then..else..end” 為“當…的時候,就..,否則…”;
max O為“取當前字段的最大值”;
sysdate 為“當前日期”;
trunc為“截斷到天”;
group by為“按照某列進行分組”。
采用上述的靜態(tài)標簽的方法,當需要增加一個新的分析維度,例如:半個月時,其實現(xiàn)方案如圖2所示。從圖2可以看出,如果增加一個新的分析維度,需要增加以下的工作量。
維度定義:增加了一個新的時間維度,比如,(時間)={當天,一月,一周,一年,半月……};(行為)={登錄,瀏覽,購買,搜索……}。
行為標簽定義:增加了幾種新的行為標簽組合。例如,(時間,行為)={(當天,登錄),(當天,瀏覽),(當天,購買),(一周,登錄),(一周,瀏覽),(半月,登錄),(半月,瀏覽)……} = {當天有登錄,當天有瀏覽,當天有購買,本周有登錄,本周有瀏覽,半月有登錄,半月有瀏覽……}。
表字段的定義:將所有的標簽定義轉化為相對應的表字段。例如,{當天有登錄,當天有瀏覽,當天有購買,本周有登錄,本周有瀏覽,半月有登錄,半月有瀏覽……} = {is_login_day, is_visit_day, is_deal_day, is_login—week, is_visit—week, is_login_15d,is—visit—15d......}。
字段刷新邏輯的定義:為所有的行為表字段提供配套的刷新邏輯。
以SQL實現(xiàn)為例,需要增加以下的刷新邏輯:
半月有登錄:Select
Case when Max(yyyymmdd) = trunc (sysdate)then I else Oend as is_login_day,
Case when max (yyyymmdd) > trunc (sysdate-7)and max(Yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_week,
Case when max(yyyymmdd) > trunc(sysdate-30)and max(yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_month,
Case when max(yyyymmdd) > trunc(sysdate-15)and max(yyyymmdd) < =trunc (sysdate)then lelse 0 end as is_login_15d
From用戶登錄表
Group by member_id。
通過上面對判斷用戶在半個月內(nèi)是否有登錄的標簽的實現(xiàn),可以清晰的看到:當增加一個新的時間維度的時候,必須得從維度定義開始,到行為標簽定義,再到字段定義,最后到刷新邏輯,靈活性差,必須開發(fā)完相應的字段之后,該行為標簽才能使用。而且每天刷新相關行為指標的時候,都需要全表掃描所有的數(shù)據(jù),效率較低。
針對現(xiàn)有技術中的靜態(tài)標簽的方法的靈活性較差以及系統(tǒng)效率較低的問題,目前尚未提出有效的解決方案。發(fā)明內(nèi)容
本申請?zhí)峁┝艘环N行為標簽取值的獲取方法及裝置,以解決現(xiàn)有技術中的行為標簽不夠靈活及系統(tǒng)效率較低的問題。
為了實現(xiàn)上述目的,根據(jù)本申請的一個方面,提供了一種行為標簽取值的獲取方法。
根據(jù)本申請的行為標簽取值的獲取方法,包括:在增加新的行為標簽時,確定所述行為標簽對應的用戶行為,其中,所述行為標簽用于記錄用戶在指定時間段內(nèi)是否有所述用戶行為;從存儲的行為字段中獲取各個用戶的最后一次所述用戶行為的發(fā)生時間,其中,所述行為字段中只包括記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的字段;根據(jù)獲取的最后一次所述用戶行為的發(fā)生時間是否在所述指定時間段內(nèi),獲取各個用戶的所述行為標簽的取值。
優(yōu)選地,所述方法還包括:周期性的更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
優(yōu)選地,周期性的更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段,包括:獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間;將當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間與上一周期更新后的各個用戶的最后一次所述用戶行為的發(fā)生時間進行比較,根據(jù)比較結果,更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
優(yōu)選地,根據(jù)比較結果,更新記錄的各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段,包括:對于上一周期更新后記錄中存在與獲取的所述當前周期的用戶的所述用戶行為對應的行為字段的所述用戶行為,則將該行為字段的值更新為當前周期內(nèi)該用戶的最后一次所述用戶行為的發(fā)生時間;對于上一周期更新后記錄中不存在與獲取的所述當前周期的用戶的所述用戶行為對應的行為字段的所述用戶行為,則增加與該用戶的所述用戶行為對應的行為字段,并將該行為字段的值設置為當前周期內(nèi)該用戶的最后一次所述用戶行為的發(fā)生時間。
優(yōu)選地,對于各種用戶行為,獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間,包括:獲取所述當前周期內(nèi)所有用戶的行為信息;從所述所有用戶的行為信息中獲取所述當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間。
優(yōu)選地,獲取所述當前周期內(nèi)所有用戶的行為信息,包括:從日志記錄服務器中獲取所述當前周期內(nèi)所有用戶的行為信息。
根據(jù)本申請的另一個方面,提供了一種行為標簽取值的獲取裝置。
根據(jù)本申請的行為標簽的生成裝置,包括:確定模塊,用于在增加新的行為標簽時,確定所述行為標簽對應的用戶行為,其中,所述行為標簽用于記錄用戶在指定時間段內(nèi)是否有所述用戶行為;存儲模塊,用于存儲記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的行為字段;第一獲取模塊,用于從所述存儲模塊存儲的行為字段中獲取各個用戶的最后一次所述用戶行為的發(fā)生時間;第二獲取模塊,用于根據(jù)獲取的所述最后一次發(fā)生時間是否在所述指定時間段內(nèi),獲取各個用戶的所述行為標簽的取值。
優(yōu)選地,所述裝置還包括:更新模塊,用于周期性的更新所述存儲模塊中存儲的記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
優(yōu)選地,所述更新模塊包括:獲取單元,用于獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間;比較單元,用于將當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間與上一周期更新后的各個用戶的最后一次所述用戶行為的發(fā)生時間進行比較;更新單元,用于根據(jù)所述比較單元的比較結果,更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
優(yōu)選地,所述獲取單元包括:第一獲取單元,用于獲取所述當前周期內(nèi)所有用戶的行為信息;第二獲取單元,用于從所述所有用戶的行為信息中獲取所述當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間。
通過本申請,存儲的行為字段只需記錄各個用戶的各種用戶行為最后一次的發(fā)生時間,當增加新的分析維度的時候,只需要根據(jù)相應用戶行為最后一次的發(fā)生時間,動態(tài)響應時間維度的行為標簽,而不需要增加相關的靜態(tài)行為標簽,增加了行為標簽的靈活性,提高了響應速度,并且,由于只需要存儲記錄各個用戶的各種用戶行為最后一次的發(fā)生時間,從而可以掃描的數(shù)據(jù),提高了系統(tǒng)的效率。
構成本申請的一部分的附圖用來提供對本申請的進一步理解,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1是相關技術中靜態(tài)標簽的方案設計示意圖2是相關技術中增加分析維度的靜態(tài)標簽的方案設計示意圖3是根據(jù)本申請實施例的行為標簽的生成方法的流程圖4是根據(jù)本申請優(yōu)選實施例的行為字段更新的流程圖5是根據(jù)本申請優(yōu)選實施例的行為標簽的方案設計示意圖6是根據(jù)本申請優(yōu)選實施例的邏輯刷新的流程圖7是根據(jù)本申請實施例的行為標簽的生成裝置的結構示意圖8是根據(jù)本申請優(yōu)選實施例的行為標簽的生成裝置的結構示意圖9是根據(jù)本申請另一優(yōu)選實施例的行為標簽的生成裝置的結構示意圖;以及
圖10是根據(jù)本申請又一優(yōu)選實施例的行為標簽的生成裝置的結構示意圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
相關技術中,采用靜態(tài)行為標簽的處理方式,在定義行為標簽時,將時間段和行為進行組合,所有的行為標簽都需要定義一個靜態(tài)的字段來展現(xiàn),新增行為標簽時,需要定義新字段,從而導致行為標簽不夠靈活。并且,在每個周期刷新相關行為標簽時,需要全表掃描,隨著用戶行為數(shù)據(jù)的累積,掃描的范圍會逐漸增大,從而導致刷新標簽的效率較低,進而增加了系統(tǒng)響應的時間。針對該問題,本申請實施例提供了一種改進的行為標簽的生成方案,在本申請中,行為標簽和字段并不需要一一對應,只需記錄用戶的最后一次的行為時間的行為字段,就能夠得到需要生成的多種時間維度的行為標簽。另外,在本申請中,由于只需要記錄用戶的最后一次的行為時間的行為字段,在刷新時,只需要掃描當前周期的數(shù)據(jù)便可以更新該行為字段,而不需要掃描所有的數(shù)據(jù),從而提高了刷新邏輯的效率,提高了系統(tǒng)的響應速度。
圖3是根據(jù)本申請實施例的行為標簽的生成方法的流程圖,如圖3所示,本申請實施例的行為標簽的生成方法主要包括以下步驟S302-步驟S306。
步驟S302,在增加新的行為標簽時,確定該行為標簽對應的用戶行為。
本申請中,行為標簽是指將用戶行為和時間維度組合起來,判斷用戶在某個時間維度是否有用戶行為的系列標簽,即行為標簽用于記錄用戶在某個時間段內(nèi)是否有用戶行為。例如,登錄行為與一個月的時間維度組合起來就是用戶一個月內(nèi)是否有登錄的行為標簽,登錄行為與一周的時間維度組合起來就是用戶一周內(nèi)是否有登錄的行為標簽。
因此,在本申請中,在需要新增某個行為標簽時,需要先確定該行為標簽對應的用戶行為,例如,登錄行為、點擊行為、瀏覽行為或訂購行為等。
步驟S304,從存儲的行為字段中獲取各個用戶的最后一次該用戶行為的發(fā)生時間,其中,該行為字段中只包括記錄各個用戶的最后一次該用戶行為的發(fā)生時間的字段。
在本申請中,最后一次用戶行為的發(fā)生時間是指用戶最后一次產(chǎn)生該用戶行為的時間,例如,用戶在7月30號和31號都登錄網(wǎng)站,則該用戶的最后一次登錄行為的發(fā)生時間為31號。
在實際應用中,可以針對多種用戶行為定義行為字段,例如,可以定義記錄各個用戶的最后一次登錄行為的發(fā)生時間的行為字段,還可以定義記錄各個用戶最后一次點擊行為的發(fā)生時間的行為字段,以及記錄各個用戶最后一次瀏覽行為的發(fā)生時間的行為字段等,服務器可以根據(jù)定義的各個行為字段,記錄用戶的行為,并進一步得到各個行為字段的取值。
在本申請中,在定義行為字段時,只需要定義用戶的最后一次用戶行為的發(fā)生時間,而不需要針對每個行為標簽定義一個行為字段,從而節(jié)省了工作量,并節(jié)省了字段的存儲空間。另外,由于只定義了一個行為字段,因此,也只需要定義一個刷新邏輯,進一步減少了工作量。并且,由于只需定義一個刷新邏輯,更新時只需要執(zhí)行一個刷新邏輯,從而也提高了系統(tǒng)效率。
為了保證數(shù)據(jù)的實時性,在本申請的一個優(yōu)選實施方式中,還可以周期性的更新記錄各個用戶的最后一次用戶行為的發(fā)生時間的行為字段。在本申請的一個優(yōu)選實施方式中,在更新記錄各個用戶的最后一次用戶行為的發(fā)生時間的行為字段時,可以先獲取當前周期內(nèi)各個用戶的最后一次用戶行為的發(fā)生時間,然后將當前周期內(nèi)各個用戶的最后一次用戶行為的發(fā)生時間與上一周期更新后的各個用戶的最后一次用戶行為的發(fā)生時間進行比較,根據(jù)比較結果,更新記錄各個用戶的最后一次用戶行為的發(fā)生時間的行為字段。
圖4是本申請優(yōu)選實施例中行為字段更新的流程圖,如圖4所示,在該優(yōu)選實施例中,行為字段的更新可以包括以下步驟:
步驟S401,當前周期到達;
步驟S402,獲取當前周期內(nèi)用戶的行為信息;
步驟S403,獲取上一周期更新后的記錄各個用戶的最后一次用戶行為的發(fā)生時間的行為字段;
步驟S404,將步驟S402和步驟S403獲取的信息進行比較,得到三個集合:
A: {當前周期發(fā)生該用戶行為但沒有存儲在上一周期更新后的記錄中的用戶};
B: {當前周期發(fā)生該用戶行為且存儲在上一周期更新后的記錄中的用戶};
C: {當前周期沒有發(fā)生該用戶行為但存儲在上一周期更新后的記錄中的用戶}。
例如,假設上一周期更新后行為字段記錄的內(nèi)容如表I所示,而當前周期的用戶行為信息如表2所示,則三個集合分別為:
A: {008,009};
B:{001,002,003,006};
C:{004,005,007}。
表1.
權利要求
1.一種行為標簽取值的獲取方法,其特征在于,包括: 在增加新的行為標簽時,確定所述行為標簽對應的用戶行為,其中,所述行為標簽用于記錄用戶在指定時間段內(nèi)是否有所述用戶行為; 從存儲的行為字段中獲取各個用戶的最后一次所述用戶行為的發(fā)生時間,其中,所述行為字段中只包括記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的字段; 根據(jù)獲取的最后一次所述用戶行為的發(fā)生時間是否在所述指定時間段內(nèi),獲取各個用戶的所述行為標簽的取值。
2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:周期性的更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
3.根據(jù)權利要求2所述的方法,其特征在于,周期性的更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段,包括: 獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間; 將當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間與上一周期更新后的各個用戶的最后一次所述用戶行為的發(fā)生時間進行比較,根據(jù)比較結果,更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
4.根據(jù)權利要求3所述的方法,其特征在于,根據(jù)比較結果,更新記錄的各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段,包括: 對于上一周期更新后記錄中存在與獲取的所述當前周期的用戶的所述用戶行為對應的行為字段的所述用戶行為,則將該行為字段的值更新為當前周期內(nèi)該用戶的最后一次所述用戶行為的發(fā)生時間; 對于上一周期更新后記錄中不存在與獲取的所述當前周期的用戶的所述用戶行為對應的行為字段的所述用戶行為,則增加與該用戶的所述用戶行為對應的行為字段,并將該行為字段的值設置為當前周期內(nèi)該用戶的最后一次所述用戶行為的發(fā)生時間。
5.根據(jù)權利要求3所述的方法,其特征在于,對于各種用戶行為,獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā) 生時間,包括: 獲取所述當前周期內(nèi)所有用戶的行為信息; 從所述所有用戶的行為信息中獲取所述當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間。
6.根據(jù)權利要求5所述的方法,其特征在于,獲取所述當前周期內(nèi)所有用戶的行為信息,包括:從日志記錄服務器中獲取所述當前周期內(nèi)所有用戶的行為信息。
7.一種行為標簽取值的獲取裝置,其特征在于,包括: 確定模塊,用于在增加新的行為標簽時,確定所述行為標簽對應的用戶行為,其中, 所述行為標簽用于記錄用戶在指定時間段內(nèi)是否有所述用戶行為; 存儲模塊,用于存儲記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的行為字段;第一獲取模塊,用于從所述存儲模塊存儲的行為字段中獲取各個用戶的最后一次所述用戶行為的發(fā)生時間; 第二獲取模塊,用于根據(jù)獲取的所述最后一次發(fā)生時間是否在所述指定時間段內(nèi),獲取各個用戶的所述行為標簽的取值。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述裝置還包括:更新模塊,用于周期性的更新所述存儲模塊中存儲的記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述更新模塊包括: 獲取單元,用于獲取當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間; 比較單元,用于將當前周期內(nèi)各個用戶的最后一次所述用戶行為的發(fā)生時間與上一周期更新后的各個用戶的最后一次所述用戶行為的發(fā)生時間進行比較; 更新單元,用于根據(jù)所述比較單元的比較結果,更新記錄各個用戶的最后一次所述用戶行為的發(fā)生時間的所述行為字段。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述獲取單元包括: 第一獲取單元,用于獲取所述當前周期內(nèi)所有用戶的行為信息; 第二獲取單元,用于從所述所有用戶的行為信息中獲取所述當前周期內(nèi)各個用戶的最后一次所述用戶行 為的發(fā)生時間。
全文摘要
本申請公開了一種行為標簽取值的獲取方法及裝置。其中,該方法包括在增加新的行為標簽時,確定該行為標簽對應的用戶行為,其中,行為標簽用于記錄用戶在指定時間段內(nèi)是否有用戶行為;從存儲的行為字段中獲取各個用戶的最后一次該用戶行為的發(fā)生時間,其中,行為字段中只包括記錄各個用戶的最后一次用戶行為的發(fā)生時間的字段;根據(jù)獲取的最后一次用戶行為的發(fā)生時間是否在上述指定時間段內(nèi),獲取各個用戶的該行為標簽的取值。通過本申請,增加了行為標簽的靈活性,提高了響應速度及系統(tǒng)的效率。
文檔編號G06F17/30GK103207880SQ20121001533
公開日2013年7月17日 申請日期2012年1月17日 優(yōu)先權日2012年1月17日
發(fā)明者賈亮 申請人:阿里巴巴集團控股有限公司