本發(fā)明涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,特別涉及一種基于內(nèi)容及用戶行為的文本類推薦方法和裝置。
背景技術(shù):
互聯(lián)網(wǎng)的出現(xiàn)和普及給用戶帶來了大量的信息,滿足了用戶在信息時代對信息的需求,但隨著網(wǎng)絡(luò)的迅速發(fā)展而帶來的網(wǎng)上信息量的大幅增長,使得用戶在面對大量信息時無法從中獲得對自己真正有用的那部分信息,對信息的使用效率反而降低了,這就是所謂的信息超載問題。
目前,針對信息超載問題的解決辦法之一是以搜索引擎為代表信息檢索系統(tǒng),它們在幫助用戶獲取網(wǎng)絡(luò)信息方面發(fā)揮著極其重要的作用。但目前的搜索引擎往往僅能根據(jù)用戶輸入的字符進(jìn)行匹配搜索,在使用同一個關(guān)鍵字搜索信息時,得到的結(jié)果是相同的,無法根據(jù)多樣化的搜索需求得到不同結(jié)果。另一方面來看,信息及其傳播是多樣化的,而用戶對信息的需求是多元化和個性化的,那么通過以搜索引擎為代表的信息檢索系統(tǒng)獲得的結(jié)果不能滿足用戶的個性化需求,仍然無法很好地解決信息超載問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種基于內(nèi)容及用戶行為的文本類推薦方法和裝置,以解決上述技術(shù)問題。
本發(fā)明提供的一種基于內(nèi)容及用戶行為的文本類推薦方法,包括步驟:
步驟A,獲取待分析的文檔集合,對所述文檔集合中的文檔進(jìn)行中文分 詞得到多個詞項;
步驟B,對所述文檔集合中的詞項進(jìn)行信息增益計算,按照信息增益量的大小排序篩選多個詞項作為基準(zhǔn)向量;
步驟C,根據(jù)所述基準(zhǔn)向量,將所述文檔集合中的文本轉(zhuǎn)換為多維的空間向量模型;
步驟D,對所述空間向量模型進(jìn)行TF-IDF計算,得到文本向量矩陣;
步驟E,計算不同的文本向量矩陣之間的相似度,形成文檔關(guān)系矩陣;
步驟F,分析用戶行為數(shù)據(jù),結(jié)合所述文檔關(guān)系矩陣,形成推薦列表推薦給用戶。
其中,步驟A之前還包括步驟:
生成詞典并將所述詞典持久化到詞典庫中。
其中,步驟生成詞典包括步驟:
獲取多種記載有詞匯信息的原始詞典,利用TreeSet對所述原始詞典所記載的詞匯進(jìn)行自動排序、加載、過濾及匯總,根據(jù)詞匯的屬性生成List,再通過雙數(shù)組索引樹生成詞典,持久化到詞典庫中。
其中,步驟A中對對所述文檔集合中的文檔進(jìn)行中文分詞包括步驟:
從所述詞典庫中采集加載好的詞典到內(nèi)存中,基于DATrie進(jìn)行多模式匹配,生成競選路徑,同時對文檔中的詞匯進(jìn)行分割處理,過濾掉特殊字符,計算得到最佳路徑進(jìn)行匹配,生成分詞結(jié)果。
其中,步驟A之后,步驟B之前還包括步驟:
提取名詞詞項,過濾掉停用詞。
其中,步驟B中對所述文檔集合中的詞項進(jìn)行信息增益計算包括步驟:
將每篇文本作為一個類別,將文本中的詞項作為特征,按照如下公式計算信息增益量:
其中,N表示所述文本集中的總文本數(shù);P(Ci),表示類別Ci出現(xiàn)的概率; P(t),表示特征(T)出現(xiàn)的概率;表示特征(T)不出現(xiàn)的概率;P(Ci|t)表示文本包含特征(T)且屬于類別Ci的概率;表示文本包含特征(T)且屬于類別Ci的概率。
其中,步驟D中對所述空間向量模型進(jìn)行TF-IDF計算包括步驟:
按照如下公式計算TF-IDF:
TF=log(1+ft,d);
TF-IDF=TF*IDF;
其中,TF為詞頻,IDF為文檔逆頻率。
其中,所述步驟計算不同的文本向量矩陣之間的相似度包括步驟:
通過計算兩個不同的文本向量矩陣的夾角余弦值來得到兩個不同的文本向量矩陣的相似度,余弦相似度計算公式如下:
其中,wi,k表示詞項的TF-IDF結(jié)果。
其中,步驟A之后所述步驟B之前還包括步驟:
將所述文檔集合中的文本向量化,采用Hash數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行存儲。
本發(fā)明還提供一種基于內(nèi)容及用戶行為的文本類推薦的裝置,包括:
分詞模塊,用于獲取待分析的文檔集合,對所述文檔集合中的文檔進(jìn)行中文分詞得到多個詞項;
IG計算模塊,用于對所述文檔集合中的詞項進(jìn)行信息增益計算,按照信息增益量的大小排序篩選多個詞項作為基準(zhǔn)向量;
降維模塊,用于根據(jù)所述基準(zhǔn)向量,將所述文檔集合中的文本轉(zhuǎn)換為多維的空間向量模型;
TF-IDF計算模塊,用于對所述空間向量模型進(jìn)行TF-IDF計算,得到文本向量矩陣;
相似度計算模塊,用于計算不同的文本向量矩陣之間的相似度,形成文檔關(guān)系矩陣;
推薦模塊,用于分析用戶行為數(shù)據(jù),結(jié)合所述文檔關(guān)系矩陣,形成推薦列表推薦給用戶。
本發(fā)明實(shí)施例提供了一種基于內(nèi)容及用戶行為的文本類推薦方法和裝置,通過詞典生成、文本分詞、特征選擇、TF-IDF計算、相似度計算、用戶行為分析等步驟,挖掘出文本與文本之間的相似度,并根據(jù)用戶歷史數(shù)據(jù)分析用戶的興趣,進(jìn)行建模,從而主動給用戶推薦可滿足他們興趣和需求的信息,實(shí)現(xiàn)基于用戶行為的個性化數(shù)據(jù)推薦,降低了推薦數(shù)據(jù)的盲目性和無效性,提高了數(shù)據(jù)推薦的準(zhǔn)確度和效率。
附圖說明
圖1為本發(fā)明基于內(nèi)容及用戶行為的文本類推薦方法一個實(shí)施例的流程示意圖;
圖2位本發(fā)明實(shí)施例二提供的方法的流程示意圖;
圖3本發(fā)明實(shí)施例二中詞典生成的流程示意圖;
圖4本發(fā)明實(shí)施例二中分詞的流程示意圖;
圖5本發(fā)明實(shí)施例二中相似度計算相關(guān)流程的示意圖;
圖6本發(fā)明實(shí)施例三提供的裝置的結(jié)構(gòu)框架示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種基于內(nèi)容及用戶行為的文本類推薦方法和裝置。
實(shí)施例一
參見圖1所示,本發(fā)明實(shí)施例一提供的方法包括步驟:
步驟S110,獲取待分析的文檔集合,對文檔集合中的文檔進(jìn)行中文分詞得到多個詞項。
步驟S111,對文檔集合中的詞項進(jìn)行信息增益計算,按照信息增益量的 大小排序篩選多個詞項作為基準(zhǔn)向量。
步驟S112,根據(jù)所述基準(zhǔn)向量,將所述文檔集合中的文本轉(zhuǎn)換為多維的空間向量模型。
步驟S113,對所述空間向量模型進(jìn)行TF-IDF計算,得到文本向量矩陣。
步驟S114,計算不同的文本向量矩陣之間的相似度,形成文檔關(guān)系矩陣。
步驟S115,分析用戶行為數(shù)據(jù),結(jié)合所述文檔關(guān)系矩陣,形成推薦列表推薦給用戶。
可選地,進(jìn)行中文分詞之前需要預(yù)先構(gòu)建生成詞典,并將所述詞典持久化到詞典庫中。
詞典生成主要通過各類詞典(中、外)及用戶詞典,利用TreeSet自動排序,進(jìn)行加載、過濾及匯總,持久化到詞典庫中,根據(jù)詞的屬性生成List,繼而通過Double-Array Trie(雙數(shù)組索引樹,簡稱DAT)生成最終的詞典Dict DATrie。Double-Array Trie是TRIE樹的一種變形,它是在保證TRIE樹檢索速度的前提下,提高空間利用率而提出的一種數(shù)據(jù)結(jié)構(gòu)。它本質(zhì)是一個確定的有限狀態(tài)自動機(jī)(DFA),每個節(jié)點(diǎn)代表自動機(jī)的一個狀態(tài),根據(jù)變量的不同,進(jìn)行狀態(tài)轉(zhuǎn)移,當(dāng)?shù)竭_(dá)結(jié)束狀態(tài)或者無法轉(zhuǎn)移的時候,完成查詢。
生成詞典的目的在于收集大量的詞匯組成詞庫,詞庫越豐富代表著分詞的結(jié)果會越準(zhǔn)確。
文本分詞,是通過一定的算法將文本進(jìn)行分詞轉(zhuǎn)化,并統(tǒng)計文本相關(guān)信息,如:文檔頻率、詞頻、詞總數(shù)等。將文本向量化,存儲到內(nèi)存數(shù)據(jù)庫,已備后續(xù)步驟使用。
文本分詞需從詞庫中采集加載好的詞典到內(nèi)存中,基于之前預(yù)先生成的詞典DATrie進(jìn)行多模式匹配,生成競選路徑,同時對詞進(jìn)行分割處理,過濾掉特殊字符,加上詞頻權(quán)重等,計算路徑代價,從而得到最佳路徑進(jìn)行匹配,生成分詞結(jié)果。其中特殊字符為本領(lǐng)域公知技術(shù)用語,包括標(biāo)點(diǎn)符號、空格等非文字的符號。
分詞之后,需要進(jìn)行名詞提取及停用詞過濾對分詞結(jié)果進(jìn)一步過濾,匹 配名詞及停用詞詞庫,過濾掉與文本特征不相關(guān)的詞匯??蛇x地,預(yù)先收集停用詞庫及詞性,通常認(rèn)為名詞詞性對于區(qū)分文本的異同有著最大程度的重要性。因此,需要通過名詞詞性及停用詞(“的”、“得”、“地”等)過濾對其進(jìn)行篩選,以保證文本相似度計算的差異性和準(zhǔn)確性。
準(zhǔn)備文檔集,記載詞典庫,并進(jìn)行中文分詞,過濾停用詞,篩選出名詞詞性的特征,生成名詞集合之后,就需要統(tǒng)計每個詞項(Term)的出現(xiàn)頻率和詞項文檔頻率以及文檔詞數(shù)等,并將文本向量化,采用Hash Key數(shù)據(jù)結(jié)構(gòu),存入內(nèi)存數(shù)據(jù)庫。
信息增益表示特征在文本中出現(xiàn)或不出現(xiàn)為判定文本所屬類別所提供的信息量的大小。通過信息增益計算(IG計算),往往能夠?qū)⒏呔S度的空間轉(zhuǎn)換成低維的空間,它根據(jù)訓(xùn)練數(shù)據(jù),計算出各個特征項的信息增益,刪除信息增益很小的項,其余的按照信息增益從大到小排序,從而達(dá)到降維的目的。具體地,對整個文本系統(tǒng)的所有詞匯通過IG計算,按照對整個系統(tǒng)貢獻(xiàn)信息量的大小進(jìn)行排序,篩選出前N個詞匯作為基準(zhǔn)向量,采用LIST數(shù)據(jù)結(jié)構(gòu),持久化到內(nèi)存數(shù)據(jù)庫中。
通過計算信息增益可以得到那些在正例樣本中出現(xiàn)頻率高而在正例樣本中出現(xiàn)頻率低的特征。信息增益涉及較多的數(shù)學(xué)理論和復(fù)雜的熵理論公式,本發(fā)明實(shí)施例將其定義為某特征項為整個分類所能提供的信息量,不考慮任何特征的熵于考慮該特征后的熵的差值。它根據(jù)訓(xùn)練數(shù)據(jù),計算出各個特征項的信息增益,刪除信息增益很小的項,其余的按照信息增益從大到小排序。本發(fā)明實(shí)施例提供的信息增益計算公式如下:
符號說明:
N,表示總文本數(shù),即總類別數(shù);P(Ci),表示類別Ci出現(xiàn)的概率,即文 本Di出現(xiàn)的概率,等于P(t),表示特征(T)出現(xiàn)的概率,采用包含特征(T)的文本數(shù)量除以總文本數(shù)量N,即:其中DFT表示特征(T)的文檔頻率;表示特征(T)不出現(xiàn)的概率,等于1-P(t);P(Ci|t),表示文本包含特征(T)且屬于類別Ci的概率;表示文本包含特征(T)且屬于類別Ci的概率。
信息增益計算之后,對文本的分詞結(jié)果進(jìn)行向量空間模型轉(zhuǎn)換,根據(jù)IG的計算結(jié)果,對文本進(jìn)行詞過濾,將所有文本都表示成n維的特征向量。即文本d可以表示為n維的空間向量W1,W2,…,Wn,其中Wi是第i個特征項在文本d中的權(quán)重值,如下:
d1→W11,W12,…,W1n
d2→W21,W22,…,W2n
…
dn→Wn1,Wn2,…,Wnn
接下來,需要對文本向量進(jìn)行TF-IDF計算,得到詞項對該文本的重要程度,形成新的文本矩陣,存儲到內(nèi)存數(shù)據(jù)庫中。TF-IDF計算,實(shí)際上是TF*IDF,TF詞頻(Term Frequency),IDF(Inverse Document Frequency)。TF表示詞項在文檔d中出現(xiàn)的頻率,IDF是文檔逆頻率,即在詞頻的基礎(chǔ)上,要對每個詞分配一個"重要性"權(quán)重。例如最常見的詞(“在”等)給予最小的權(quán)重,較常見的詞(“中國”等)給予較小的權(quán)重,較少見的詞(“貝葉斯”、等)給予較大的權(quán)重。它的大小與一個詞的常見程度成反比。TF-IDF計算公式如下:
TF計算公式:log(1+ft,d)
IDF計算公式:
N表示總文本數(shù),ft,d表示特征t在文本d中出現(xiàn)的頻率,nt表示特征T在文本d中的個數(shù)。
之后,針對TF-IDF結(jié)果,通過余弦相似度公式計算文本之間的相似度,形成文檔關(guān)系矩陣,越趨近1表明兩個向量越相似,相反,則兩個向量越不 相似。
余弦相似度計算,通過計算兩個向量的夾角余弦值來評估他們的相似度。通過上述的空間向量,將目標(biāo)向量與候選向量進(jìn)行相似度計算,結(jié)果范圍在[0,1]之間,越趨近1表明兩個向量越相似,相反,則兩個向量越不相似。余弦相似度計算公式如下:
其中:wi,k表示詞的TF-IDF結(jié)果。
其中,本領(lǐng)域技術(shù)人員可根據(jù)本發(fā)明技術(shù)方案確定其余參數(shù)定義,本發(fā)明實(shí)施例不一一列舉。
根據(jù)文本與文本之間余弦相似度計算的結(jié)果,得到文檔關(guān)系矩陣,通過分析用戶行為數(shù)據(jù),挖掘出用戶感興趣的標(biāo)簽,結(jié)合文檔關(guān)系矩陣,采用一定的權(quán)重比例對推薦列表進(jìn)行評分、過濾及排序,形成最終的推薦列表,推薦給用戶。
本發(fā)明實(shí)施例一,基于用戶行為分析,圍繞用戶歷史數(shù)據(jù)建立分析模型,通過有效算法對其進(jìn)行深入挖掘,挖掘出用戶需求及喜好,提供個性化的推薦,提升了數(shù)據(jù)推薦的有效性和針對性,改善了用戶體驗。
實(shí)施例二
本發(fā)明實(shí)施例二提供的基于內(nèi)容及用戶行為的文本類推薦方法的流程參見圖2所示,具體包括:
步驟S210,獲取初始文檔集,為RDBMS或者文本。
步驟S211,采用分詞器對初始文檔集進(jìn)行中文分詞。
步驟S212,采用名詞過濾器進(jìn)行名詞篩選得到名詞集合。
步驟S213,進(jìn)行文檔頻率統(tǒng)計并存入redis,進(jìn)入步驟S214和步驟S217。
步驟S214,進(jìn)行倒排索引并將索引結(jié)果存入redis,并進(jìn)入步驟S221。
步驟S215,進(jìn)行詞頻統(tǒng)計并存入redis,之后進(jìn)入步驟S216和步驟S217。
步驟S216,進(jìn)行文檔正向索引,之后進(jìn)入步驟S219。
步驟S217,進(jìn)行IG計算。
步驟S218,將IG計算得到的特征詞持久化到redis,之后進(jìn)入步驟S219。
步驟S219,進(jìn)行TF-IDF計算。
步驟S220,生成文檔向量,轉(zhuǎn)換成文檔向量空間并存入redis。
步驟S221,進(jìn)行余弦相似度計算。
步驟S222,根據(jù)余弦相似度計算結(jié)果建立文檔關(guān)系矩陣并存入redis。
步驟S223,獲取用戶近期閱讀記錄。
步驟S224,結(jié)合文檔關(guān)系矩陣和用戶近期閱讀記錄,進(jìn)行推薦評分。
步驟S225,根據(jù)評分結(jié)果和用戶近期閱讀記錄進(jìn)行過濾和排序。
步驟S226,得到推薦文檔列表推薦給用戶。
在本發(fā)明實(shí)施例二中,詞典生成流程參見圖3所示,分詞器進(jìn)行分詞流程參見圖4所示,文本相似度計算相關(guān)流程參見圖5所示。
實(shí)施例三
本發(fā)明實(shí)施例還提供一種基于內(nèi)容及用戶行為的文本類推薦的裝置,參見圖6所示,包括:
分詞模塊,用于獲取待分析的文檔集合,對所述文檔集合中的文檔進(jìn)行中文分詞得到多個詞項;
IG計算模塊,用于對所述文檔集合中的詞項進(jìn)行信息增益計算,按照信息增益量的大小排序篩選多個詞項作為基準(zhǔn)向量;
降維模塊,用于根據(jù)所述基準(zhǔn)向量,將所述文檔集合中的文本轉(zhuǎn)換為多維的空間向量模型;
TF-IDF計算模塊,用于對所述空間向量模型進(jìn)行TF-IDF計算,得到文本向量矩陣;
相似度計算模塊,用于計算不同的文本向量矩陣之間的相似度,形成文檔關(guān)系矩陣;
推薦模塊,用于分析用戶行為數(shù)據(jù),結(jié)合所述文檔關(guān)系矩陣,形成推薦列表推薦給用戶。
本發(fā)明實(shí)施例提供了一個可以個性化推薦的方法和裝置,實(shí)現(xiàn)了根據(jù)用戶的信息需求、興趣等,將用戶感興趣的信息、產(chǎn)品等推薦給用戶的針對性信息推薦。和傳統(tǒng)的搜索引擎相比,該推薦系統(tǒng)通過研究用戶的興趣偏好,進(jìn)行個性化計算,由系統(tǒng)發(fā)現(xiàn)用戶的興趣點(diǎn)及文本與文本之間的相似度,從而引導(dǎo)用戶發(fā)現(xiàn)自己的信息需求,為用戶提供更為有效的數(shù)據(jù)推薦服務(wù)。
需要說明的是,本發(fā)明實(shí)施例中的裝置或者系統(tǒng)實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖6所示,為本發(fā)明實(shí)施例的一種硬件結(jié)構(gòu)框架示意圖,除了CPU、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲器中對應(yīng)的計算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。