發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據(jù)權利要求書實現(xiàn)本發(fā)明。
[0037]本發(fā)明的一方面提供了一種社交網(wǎng)站交互行為收集檢測方法。圖1是根據(jù)本發(fā)明實施例的社交網(wǎng)站交互行為收集檢測方法流程圖。
[0038]本發(fā)明選擇在云計算平臺上實現(xiàn)。云平臺整體架構由用戶識別模塊和興趣分析模塊兩部分組成。用戶識別模塊從日志數(shù)據(jù)中識別出獨立會話,并且將這些數(shù)據(jù)按照用戶聚類,從而識別出用戶,為下一步的用戶興趣特征模塊提供數(shù)據(jù)。興趣分析模塊在用戶識別的基礎上,對數(shù)據(jù)進行提取、分析,進一步找出用戶興趣特征,構建特征分類庫,并最終找出屬于每一個分類的用戶,即相似特征用戶,為將來的推薦提供有用信息。
[0039]用戶識別模塊由數(shù)據(jù)清理、會話識別、客戶端緩存數(shù)據(jù)提取和用戶識別四個子模塊組成。數(shù)據(jù)清理子模塊是對日志數(shù)據(jù)中一些冗余和無效等影響存儲效率和分析效率的數(shù)據(jù)進行刪除,得到無冗余的日志。會話識別子模塊是根據(jù)日志記錄中的時刻和URL等字段,對日志進行分析,找到屬于同一個會話的日志,并對其進行聚類和標識??蛻舳司彺鏀?shù)據(jù)提取子模塊對每個會話中客戶端緩存數(shù)據(jù)非空的日志進行Name字段的提取,該字段是用戶登錄的一些網(wǎng)站的用戶名。用戶識別子模塊是在上述數(shù)據(jù)清理、會話識別和客戶端緩存數(shù)據(jù)提取的基礎上,根據(jù)形成的日志格式和內(nèi)容進行用戶識別分析,將屬于同一用戶的會話聚類,識別出每一個上網(wǎng)的用戶,方便后續(xù)的興趣分析模塊使用。
[0040]興趣分析模塊包括關鍵詞提取、興趣特征提取和相似特征用戶挖掘三個子模塊。關鍵詞提取子模塊是對日志的URL進行搜索關鍵詞提取,并對提取的關鍵詞分詞。興趣特征提取子模塊是對關鍵詞提取子模塊獲取的分詞進行語義確定,獲取每個詞語的詞義和分類,并對用戶的相同語義和分類下的詞語進行詞頻統(tǒng)計,從而得到用戶興趣特征。相似特征用戶挖掘子模塊是通過構建特征分類庫,從而找出屬于分類庫中每一個分類的用戶,實現(xiàn)對用戶的聚類,實現(xiàn)特定興趣特征用戶的針對性推薦。
[0041]本發(fā)明采用了聚類進行用戶識別,將所有對于識別出有用的字段都納入了判斷用戶的比較范圍,識別出了用戶,并對日志進行了標記,而且將日志按用戶進行了分類;采用基于分類詞庫的語義確定方法,判斷其在不同上下文的環(huán)境中的不同的語義;在挖掘相似用戶時,通過構建一個分類庫,提取表示用戶興趣特征詞語的分類;對上述過程在云計算平臺上進行了實現(xiàn),將海量的互聯(lián)網(wǎng)日志數(shù)據(jù)存儲在分布式文件系統(tǒng)中,然后對研究內(nèi)容在Map Reduce框架上進行實現(xiàn)。
[0042]在用戶識別前,首先進行數(shù)據(jù)清理,刪除Web日志中無關的數(shù)據(jù),包括:1)訪問的文件是圖片、框架等文件;2)用戶請求訪問失敗的記錄。這些數(shù)據(jù)對于分析和識別真實用戶在網(wǎng)站的訪問情況并無關系,屬于干擾信息,因此進行刪除。經(jīng)過數(shù)據(jù)清理后的日志有八個字段,可以表示為:
[0043]Record =〈Source,ACC, Time, URL, Reference, Des,Agent, cke>
[0044]其中,Source為用戶登錄時主機的IP地址;ACC為用戶的賬戶;Time是用戶訪問這一 URL的時刻,即生成這一條日志的時刻;URL則是用戶訪問的頁面Reference表示用戶是從哪一個頁面鏈接到當前頁面的;Des是用戶要訪問的頁面所在的網(wǎng)站的主機IP,即服務器IP地址;Agent則是用戶當前使用的機器的配置和使用的瀏覽器的配置的信息;cke是用戶在網(wǎng)站上的私人信息,如在網(wǎng)站上所打的文字以及用戶在服務器上的登錄信息。從該條記錄可以看出,經(jīng)過數(shù)據(jù)清理過程的日志包含8個字段,其中Agent和eke是經(jīng)過編碼的,使用Java庫中的相應解碼函數(shù)對其進行解碼。
[0045]在數(shù)據(jù)清理之后,對得到的日志進行會話識別分析,將同屬于同一個會話的日志記錄進行識別。本發(fā)明結合了基于參引頁的方法和基于時間閾值的方法,其算法思想如下:
[0046]判定識別會話的日志都是在同一 ACC賬戶和同一 Agent下。用一個表root來存儲已經(jīng)處理過的記錄的URL及其訪問時間。滿足下面兩個條件的記錄即屬于同一個會話:
[0047]該條記錄的Reference在root表中出現(xiàn)過;并且
[0048]該條記錄的訪問時間和r001表中同樣URL記錄的訪問時間差不超過預定時間。如果root集合中有多條記錄的URL和己經(jīng)處理的記錄的Reference相匹配,則取與該條記錄時間差最小的記錄。
[0049]本發(fā)明的會話識別算法的步驟如下:
[0050]1)在日志中添加一個會話標識字段SID,同時創(chuàng)建一個root表,表的記錄格式為<己訪問記錄URL,時刻Time,會話標識SID> ;
[0051]2)讀入一行新記錄R,判斷其是否為第一條記錄,如果是第一條記錄,轉(zhuǎn)3);如果不是第一條記錄轉(zhuǎn)4);
[0052]3)將記錄R的URL和Time插入root表,新建SID,即root新增一條記錄,并將該SID的值賦給記錄R,返回步驟2);
[0053]4)判斷記錄R的Reference字段是否為空,若為空值,則轉(zhuǎn)3);若非空,轉(zhuǎn)5);
[0054]5)提取記錄R的Reference字段的值,并遍歷root表,檢查R的Reference值是否在root的URL字段中存在,若不存在,則轉(zhuǎn)3),否則,轉(zhuǎn)6);
[0055]6)遍歷root表時,檢查R的Reference值與root表URL字段是否有多條記錄相同,如果只有一條記錄,記作S,則轉(zhuǎn)7);否則轉(zhuǎn)8);
[0056]7)將記錄R的Time值與root表中記錄S的Time值進行比較,如果時間差的值大于預設時間,則轉(zhuǎn)3);否則,將記錄R的URL和Time字段插入root表,并將記錄S的SID賦給此記錄R ;
[0057]8)將6)中得到的多條記錄的Time字段與記錄R的Time字段進行比較,取與記錄R的Time字段值最近的記錄,記作S,轉(zhuǎn)7)。
[0058]為了后續(xù)的會話合并,進一步將會話識別中識別出的會話與用戶私人信息相關的客戶端緩存數(shù)據(jù)字段進行提取。將每個網(wǎng)站域名下的客戶端緩存數(shù)據(jù)中保存的與用戶名相關的字段設置成一個規(guī)則表。在日志中增加了一個Name字段作為客戶端緩存數(shù)據(jù)提取的內(nèi)容。
[0059]互聯(lián)網(wǎng)日志在進行會話識別后,每一個會話的字段不全都相同,這需要對各個字段進行分析,從而判斷會話屬于哪一個用戶。使用以下方法對用戶進行識別。
[0060]在客戶端緩存數(shù)據(jù)提取步驟中,對客戶端緩存數(shù)據(jù)字段非空的每一個會話都添加了一個Name字段,將該字段非空的日志中每一個不同的Name的第一個會話作為每一個用戶的初始聚類中心。
[0061]將R = {γ1? r2,..., rj表示η條會話記錄組成的日志集合;r = [SID, IP,ACC,Agent,Name]表示一條會話記錄。
[0062]DOM (IP) = {IP:,IP2,..., IPj是字段IP的值域,其中n是屬性IP所包含的不同IP值的個數(shù)。其他字段的值域也以此表示為DOM (ACC)、DOM (Agent),DOM (Name)。
[0063]任意一條會話記錄(l〈i〈n)可以被 r 描述為 rf [SID IP;, ACC;, Agent;,Namej,其中 IP.e DO