隋在娟
(三星電子(中國(guó))研發(fā)中心,江蘇 南京 210012)
近年來(lái),隨著電子商務(wù)與互聯(lián)網(wǎng)的發(fā)展以及人工智能的發(fā)展,用戶個(gè)性化推薦成為學(xué)術(shù)研究的熱點(diǎn),它建立在大量的數(shù)據(jù)挖掘基礎(chǔ)之上,會(huì)通過(guò)用戶的個(gè)性化需求給他推薦符合其需求和感興趣的內(nèi)容。很多產(chǎn)品如:購(gòu)物網(wǎng)站,音樂(lè)網(wǎng)站,讀書(shū)網(wǎng)站已經(jīng)實(shí)現(xiàn)根據(jù)用戶每日瀏覽的內(nèi)容推送相關(guān)的內(nèi)容供用戶瀏覽,實(shí)現(xiàn)千人千面。本文是在分詞算法的基礎(chǔ)上實(shí)現(xiàn)的用戶個(gè)性化推薦系統(tǒng),該系統(tǒng)合理穩(wěn)定,適用于用戶瀏覽文章時(shí)的個(gè)性化推薦。
中文文本之間沒(méi)有界限,所以中文的語(yǔ)義理解的第一步是進(jìn)行專門的分詞處理。由于基于字符串的分詞法簡(jiǎn)單高效,應(yīng)用較廣,所以我們本文使用字符串匹配分詞法。該種方法是機(jī)械地將文本與一個(gè)初始的足夠大的字典進(jìn)行匹配,因此叫機(jī)械分詞法,它也被稱為字典分詞法。
MMSeg分詞法是一種常用的、效率較高同時(shí)錯(cuò)誤率較低的中文分詞算法,它在傳統(tǒng)算法之上加入詞長(zhǎng)等考慮以解決某些分詞歧義問(wèn)題,算法從句子最開(kāi)始位置,每次匹配出三個(gè)詞為一個(gè)小組,并且設(shè)計(jì)了四個(gè)新的去歧義的篩選規(guī)則:
(1)詞塊長(zhǎng)度最大,即三個(gè)詞的詞長(zhǎng)之和最大。
(2)詞塊平均詞長(zhǎng)最大,即詞長(zhǎng)分布盡可能均勻。
(3)詞塊的詞長(zhǎng)變化率要最小。
(4)單字的出現(xiàn)詞自由度最高。
以上規(guī)則符合人們說(shuō)話的基本習(xí)慣,所以四項(xiàng)規(guī)則是合理的。下面就“研究生命特征”這個(gè)短語(yǔ)展示使用MMSeg進(jìn)行分詞的過(guò)程。
首先使用字典匹配會(huì)得到7個(gè)詞塊:研_究_生,研_究_生命,研究_生_命,研究_生命_特,研究_生命_特征,研究生_命_特,研究生_命_特征。使用第一個(gè)準(zhǔn)則,詞塊長(zhǎng)度最大,可以得到最長(zhǎng)的兩個(gè)詞塊:(a)研究_生命_特征和(b)研究生_命_特征,兩者的詞塊長(zhǎng)度都是6,再使用第二個(gè)準(zhǔn)則:平均詞長(zhǎng)最大,可以得到經(jīng)過(guò)第一個(gè)準(zhǔn)則之后的兩個(gè)候選詞塊(a)和(b)平均詞長(zhǎng)都是2(長(zhǎng)度6/詞塊數(shù)3),再經(jīng)過(guò)第三個(gè)準(zhǔn)則:詞長(zhǎng)變化率最小可以得到(a)詞塊研究_生命_特征的變化率為(b)詞塊研究生_命_特征的變化率為詞塊變化率小于(b)詞塊,在第三個(gè)準(zhǔn)則結(jié)束,(a)詞塊勝出,所以第一輪匹配結(jié)束,(a)的第一個(gè)詞“研究”最終成詞完成,以相同的方法繼續(xù)處理“生命特征”。這里每一輪結(jié)束只有勝出詞塊的第一個(gè)詞完成分詞,剩下的詞加入句子中后續(xù)詞語(yǔ),重復(fù)篩選規(guī)則,直至最終全部詞語(yǔ)分詞結(jié)束。
當(dāng)我們利用MMSeg中文分詞時(shí),句子中出現(xiàn)的所有詞語(yǔ)都會(huì)被劃分,事實(shí)上有些詞語(yǔ)是沒(méi)有實(shí)際意思的,比如“的”“了”這種詞,對(duì)于后續(xù)任務(wù)會(huì)加大工作量。所以在分詞處理以后,我們便會(huì)清洗數(shù)據(jù),引入一個(gè)這樣的無(wú)意義的詞表去優(yōu)化分詞的結(jié)果。
該詞表叫作停用詞表,里面放置所有分詞中希望過(guò)濾掉的停用詞,所謂停用詞,就是在文本處理中遇到,就將其扔掉,停止處理他們,這樣可以提高分詞的效率,且減少后續(xù)特征提取的工作量。對(duì)于停用詞表,我們需要手動(dòng)創(chuàng)建一個(gè)文本文件,內(nèi)容可以直接導(dǎo)入已有的別人整理好的文本內(nèi)容,也可以自己手動(dòng)添加一些我們不需要的詞語(yǔ),以對(duì)停用詞表進(jìn)行不斷完善,制作出符合自己需求的停用詞表。
如果想針對(duì)用戶瀏覽內(nèi)容做推薦,需要知道用戶瀏覽的文本的主要特征是什么,然后推薦相似特征的文本內(nèi)容。推薦的關(guān)鍵點(diǎn)就是相似性的度量,并且這個(gè)度量是文本表示的一個(gè)基本問(wèn)題,就是文本特征的提取。即將無(wú)任何結(jié)構(gòu)的原始的文本,轉(zhuǎn)化為規(guī)律的、計(jì)算機(jī)能夠識(shí)別的結(jié)構(gòu)化信息,在此基礎(chǔ)上,計(jì)算機(jī)才能進(jìn)行文本挖掘等處理。
TF-IDF是一種通過(guò)單詞權(quán)重方法實(shí)現(xiàn)的文本特征提取方法,算法公式為其中TF和IDF表示為:
TFIDF算法簡(jiǎn)單快速,其結(jié)果也符合實(shí)際情況,是文本挖掘,關(guān)鍵詞提取,主題分布等領(lǐng)域的重要方法和手段。
本系統(tǒng)設(shè)計(jì)首先需要構(gòu)建龐大的訓(xùn)練樣本,即需要搜集有大量的文本進(jìn)行學(xué)習(xí),該訓(xùn)練集需要足夠大,能夠包含要聞,娛樂(lè),音樂(lè),軍事,體育,財(cái)經(jīng),歷史,健康等內(nèi)容。假設(shè)我們獲得的訓(xùn)練樣本數(shù)是500,即搜集到不同類型500篇文章。
首先,將所有的訓(xùn)練樣本去停用詞,再對(duì)所有500個(gè)訓(xùn)練樣本使用MMSeg分詞算法得到所有樣本的分詞結(jié)果。然后,使用TF-IDF算法計(jì)算出每個(gè)文本的關(guān)鍵詞,比如每篇文章按照TF-IDF值從高到低各抽取20個(gè),合并成一個(gè)關(guān)鍵詞集合A(集合內(nèi)關(guān)鍵詞因?yàn)橛兄貜?fù),所以數(shù)量小于500*20個(gè),比如為3000),然后計(jì)算出每個(gè)樣本內(nèi)容對(duì)于這個(gè)集合A中詞的詞頻,若文章長(zhǎng)度相差較大,則使用相對(duì)詞頻。如文本1為:我喜歡看電影,文本2為:我喜歡看體育。經(jīng)過(guò)合并之后的詞語(yǔ)合集A為:我,喜歡,看,電影,體育。因此計(jì)算出文本1的詞頻向量為[1,1,1,1,0],文本2的詞頻向量為[1,1,1,0,1],此詞頻向量可以對(duì)用戶興趣可以很好地建模,以數(shù)字形式展示文本的不同特征。
樣本集訓(xùn)練完之后,每個(gè)樣本文章都獲得一個(gè)大小為3000維的詞頻向量,代表著每個(gè)樣本可以被量化為該向量,這是該樣本的重要特征和表示,500篇不同內(nèi)容的訓(xùn)練樣本一共得到500個(gè)3000維的向量。這時(shí),當(dāng)用戶瀏覽一篇文章時(shí),同樣對(duì)這篇文章數(shù)據(jù)清洗去停用詞,MMSeg分詞,之后該篇文章對(duì)訓(xùn)練出來(lái)的關(guān)鍵詞合集A進(jìn)行詞頻計(jì)算,同樣得到一個(gè)3000維的向量,之后利用下式計(jì)算該向量與樣本集中每一個(gè)向量的余弦相似度。
該式表示兩個(gè)向量的相似程度,余弦相似度越大,表示文章越相似,最后取500個(gè)訓(xùn)練樣本中余弦相似度最大的一個(gè)或幾個(gè)樣本作為最相似的內(nèi)容向用戶進(jìn)行推薦。
當(dāng)個(gè)性化推薦完成后,可以將用戶瀏覽的本文章加入訓(xùn)練樣本,這樣可以豐富訓(xùn)練樣本與關(guān)鍵詞集合,優(yōu)化和更新推薦系統(tǒng),使之越來(lái)越豐富與完善。
本文是基于MMSeg文本分詞算法設(shè)計(jì)的一套個(gè)性化推薦系統(tǒng)。本系統(tǒng)關(guān)鍵特征提取算法使用的是較為流行的TF-IDF算法,該算法能夠?qū)ξ谋具M(jìn)行數(shù)據(jù)挖掘,提取出最能代表出本文內(nèi)容的關(guān)鍵權(quán)重矩陣,系統(tǒng)能夠考察用戶待預(yù)測(cè)項(xiàng)目與樣本庫(kù)的匹配程度,并在該系統(tǒng)的文本數(shù)據(jù)庫(kù)中搜索出和瀏覽文本類似的、用戶感興趣的相關(guān)內(nèi)容進(jìn)行推薦。該系統(tǒng)合理且高效,也可適用于用戶類別的分析判定。