• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于內(nèi)容與協(xié)同過(guò)濾的GitHub學(xué)習(xí)資料庫(kù)推薦

      2021-07-03 05:56:06李曉嫻余嬌榕徐海平
      關(guān)鍵詞:資料庫(kù)分詞協(xié)同

      李曉嫻,游 佳,余嬌榕,林 倩,徐海平

      (閩江學(xué)院 數(shù)學(xué)與數(shù)據(jù)科學(xué)學(xué)院,福建 福州 350108)

      GitHub是全球最大的代碼托管服務(wù)平臺(tái),平臺(tái)上有不少優(yōu)質(zhì)有趣的開(kāi)源應(yīng)用及項(xiàng)目。在開(kāi)源環(huán)境下,用戶(hù)通過(guò)GitHub既可以參與別人的開(kāi)源項(xiàng)目,也可以讓別人參與自己的開(kāi)源項(xiàng)目,但在眾多項(xiàng)目中,想找到自己感興趣的是一件費(fèi)時(shí)費(fèi)力的事情。在大數(shù)據(jù)時(shí)代,信息技術(shù)的迅速發(fā)展提升了信息的豐富度,使用戶(hù)獲取信息越來(lái)越便捷,但數(shù)據(jù)增長(zhǎng)過(guò)快非常容易引發(fā)信息過(guò)載[1],嚴(yán)重降低了用戶(hù)和信息提供者之間的供需效率。用戶(hù)在海量的數(shù)據(jù)中很難找到真正需要的信息,而信息提供者則因不清楚用戶(hù)的需求和興趣而無(wú)法提供更優(yōu)質(zhì)的內(nèi)容。

      推薦系統(tǒng)作為一種有效代替主動(dòng)搜索技術(shù)的信息過(guò)濾系統(tǒng),可以與搜索引擎在應(yīng)對(duì)信息過(guò)載問(wèn)題上形成技術(shù)互補(bǔ)[2]。與搜索引擎相比,推薦系統(tǒng)不需要用戶(hù)描述自己所需要的信息,而是通過(guò)充分挖掘用戶(hù)潛在的興趣偏好,進(jìn)而主動(dòng)向用戶(hù)提供與其興趣相契合的個(gè)性化信息或服務(wù)。推薦系統(tǒng)還可以通過(guò)不斷積累的用戶(hù)行為信息捕捉到用戶(hù)的興趣變化,然后根據(jù)用戶(hù)的興趣變化相應(yīng)調(diào)整推薦結(jié)果,從而為用戶(hù)提供更精準(zhǔn)、更智能的個(gè)性化服務(wù)。

      本研究在GitHub平臺(tái)上設(shè)計(jì)出了基于協(xié)同過(guò)濾的學(xué)習(xí)推薦系統(tǒng)[3],可讓目標(biāo)用戶(hù)在GitHub平臺(tái)上多方位地找到實(shí)用的工具和資源。該推薦系統(tǒng)利用GitHub的API來(lái)獲取目標(biāo)用戶(hù)已經(jīng)標(biāo)星的學(xué)習(xí)資料庫(kù),然后得到這些資料庫(kù)的全部創(chuàng)始作者,再挖掘出這些創(chuàng)始作者加星的資料庫(kù),與用戶(hù)加星的資料庫(kù)形成相似度對(duì)比,來(lái)尋找有相似興趣的新用戶(hù),并把相似的資料庫(kù)推薦給尋找到的新用戶(hù),從而形成推薦用戶(hù)感興趣的學(xué)習(xí)資料庫(kù)。這樣,可方便用戶(hù)發(fā)現(xiàn)與自己興趣相似的學(xué)習(xí)資料庫(kù)?;趦?nèi)容的推薦算法是對(duì)目標(biāo)用戶(hù)加星學(xué)習(xí)資料庫(kù)的簡(jiǎn)介描述進(jìn)行分詞分析,創(chuàng)建一個(gè)特征集來(lái)實(shí)現(xiàn)基于內(nèi)容的推薦,但它只從目標(biāo)用戶(hù)的學(xué)習(xí)資料庫(kù)描述簡(jiǎn)介分詞中取關(guān)鍵詞進(jìn)行分析,只能推薦用戶(hù)看過(guò)的同類(lèi)內(nèi)容,不能對(duì)其他的相似內(nèi)容進(jìn)行推薦。本研究選擇在其他用戶(hù)的學(xué)習(xí)資料庫(kù)簡(jiǎn)介分詞中取關(guān)鍵詞來(lái)創(chuàng)建一個(gè)特征集,以實(shí)現(xiàn)學(xué)習(xí)資料庫(kù)的推薦?;谟脩?hù)的協(xié)同推薦和內(nèi)容推薦的混合推薦算法可輻射到全部用戶(hù)的學(xué)習(xí)資料庫(kù),讓目標(biāo)用戶(hù)有了更多的選擇。

      1 數(shù)據(jù)來(lái)源

      本研究數(shù)據(jù)是在目標(biāo)用戶(hù)的GitHub平臺(tái)上用Python軟件的requests庫(kù)獲取的。首先,把目標(biāo)用戶(hù)中加星用戶(hù)的學(xué)習(xí)資料庫(kù)網(wǎng)址爬下來(lái),可以觀察出這些網(wǎng)址里面包含用戶(hù)名,再把用戶(hù)名解析出來(lái),組成一個(gè)列表。然后,從這些用戶(hù)中找到相應(yīng)的加星學(xué)習(xí)資料庫(kù)網(wǎng)址和簡(jiǎn)介描述,形成DataFrame表。其中,自己加星的學(xué)習(xí)資料庫(kù)有62條,解析里面的用戶(hù)名并去重,發(fā)現(xiàn)沒(méi)有重復(fù)的用戶(hù)名,則目標(biāo)用戶(hù)加星的作者有62個(gè)。其他用戶(hù)的學(xué)習(xí)資料庫(kù)和學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述共8 597條,去重后還有7 009條。

      2 學(xué)習(xí)資料庫(kù)推薦方法

      現(xiàn)有推薦方法的推薦內(nèi)容質(zhì)量不高,準(zhǔn)確度也達(dá)不到用戶(hù)的要求。為了使推薦內(nèi)容和準(zhǔn)確度能夠滿(mǎn)足用戶(hù)的要求,本研究提出混合推薦系統(tǒng)。該推薦系統(tǒng)是將基于用戶(hù)的協(xié)同過(guò)濾算法和基于內(nèi)容的推薦算法進(jìn)行結(jié)合,目的是推薦最符合用戶(hù)要求的學(xué)習(xí)資料庫(kù)。

      學(xué)習(xí)資料庫(kù)的推薦流程是借助用戶(hù)登入GitHub,在目標(biāo)用戶(hù)里面對(duì)自己喜歡的學(xué)習(xí)資料標(biāo)星,通過(guò)這些標(biāo)星的學(xué)習(xí)資料找到對(duì)應(yīng)的作者,再獲取這些作者的標(biāo)星資料庫(kù)。對(duì)資料庫(kù)簡(jiǎn)介描述進(jìn)行jieba分詞分析,用Counter分析出全部資料庫(kù)的分詞數(shù)量,進(jìn)行降序排列,取前面8個(gè)最熱門(mén)的關(guān)鍵詞形成特征,然后形成混合推薦發(fā)給目標(biāo)用戶(hù)。

      推薦算法在機(jī)器學(xué)習(xí)還沒(méi)有興起時(shí)就已經(jīng)在應(yīng)用了。傳統(tǒng)的推薦算法一共有3種[4],本研究使用的是其中兩種,即基于用戶(hù)的協(xié)同過(guò)濾算法(user-based collaborative filtering)[5]和基于內(nèi)容的推薦算法(content-based recommendations)[6]。

      2.1 基于用戶(hù)的協(xié)同過(guò)濾算法

      基于用戶(hù)的協(xié)同過(guò)濾算法的原理是依據(jù)目標(biāo)用戶(hù)的興趣去尋找興趣相似的用戶(hù)群體,然后計(jì)算目標(biāo)用戶(hù)與其他用戶(hù)群體之間的相似度,選取與目標(biāo)用戶(hù)最相似的幾個(gè)用戶(hù)群體,最后將這些用戶(hù)群體喜歡的且與之不同的項(xiàng)目推薦給目標(biāo)用戶(hù)。這個(gè)算法基于如下假設(shè):兩個(gè)用戶(hù)共同偏好的項(xiàng)目越多,這兩個(gè)用戶(hù)的興趣偏好就越相似;一般用戶(hù)都會(huì)喜歡與其興趣相似的用戶(hù)喜歡的項(xiàng)目。

      本研究把目標(biāo)用戶(hù)加星的學(xué)習(xí)資料庫(kù)里的作者作為興趣相似的用戶(hù)群體,然后用Pearson相關(guān)系數(shù)法計(jì)算用戶(hù)與其他用戶(hù)的相似度,把相似度高的用戶(hù)群體的學(xué)習(xí)資料庫(kù)推薦給目標(biāo)用戶(hù)。

      (1)尋找相似用戶(hù)

      利用目標(biāo)用戶(hù)標(biāo)星的學(xué)習(xí)資料庫(kù)找到作者標(biāo)星的學(xué)習(xí)資料,形成學(xué)習(xí)資料庫(kù),這些作者從而成為興趣相似的其他用戶(hù)群體。首先從用戶(hù)群體中剔除同一作者,把目標(biāo)用戶(hù)所標(biāo)星的學(xué)習(xí)資料與其他用戶(hù)群體標(biāo)星的學(xué)習(xí)資料構(gòu)成矩陣;然后用Pearson相關(guān)系數(shù)來(lái)衡量這兩個(gè)數(shù)據(jù)集之間的相似性;最后把這些相似度以降序方式排序,選取前3個(gè)最相似的用戶(hù)群體進(jìn)行學(xué)習(xí)資料庫(kù)推薦。

      (2)Pearson相關(guān)系數(shù)法

      Pearson相關(guān)系數(shù)法[7]是余弦相似度在維度值缺失情況下的一種改進(jìn)。把缺失的維度都填上數(shù)字0,然后讓其他維度減去這個(gè)向量各維度的平均值,這樣的操作叫中心化。中心化之后所有維度的平均值是0,滿(mǎn)足進(jìn)行余弦計(jì)算的要求,再進(jìn)行余弦計(jì)算得到結(jié)果。這樣先中心化再進(jìn)行余弦計(jì)算得到的相關(guān)系數(shù)叫Pearson相關(guān)系數(shù)。

      Pearson相關(guān)系數(shù)公式[8]一般是由總體相關(guān)系數(shù)r定義兩個(gè)隨機(jī)變量X、Y之間的協(xié)方差和兩者標(biāo)準(zhǔn)差乘積的比值,即

      (1)

      表1給出了目標(biāo)用戶(hù)與排名前5位用戶(hù)之間的相似度。第一個(gè)完美相似的用戶(hù)是自己,往下排相似度逐漸降低。取相似度前3名的用戶(hù)ID為0、57和29,把這3個(gè)用戶(hù)中兩兩相同的學(xué)習(xí)資料庫(kù)形成推薦,推薦給目標(biāo)用戶(hù)。

      從表1中可發(fā)現(xiàn)相似度較低,對(duì)比目標(biāo)用戶(hù)與最后5位用戶(hù)之間的相似度(表2),目標(biāo)用戶(hù)與其他用戶(hù)之間相似度的正相關(guān)系數(shù)相對(duì)較大,說(shuō)明實(shí)驗(yàn)是有效的。

      表1 目標(biāo)用戶(hù)與前5位用戶(hù)之間的相似度Tab.1 The similarity between the target user and the top five users

      表2 目標(biāo)用戶(hù)與后5位用戶(hù)之間的相似度Tab.2 The similarity between the target user and the last five users

      2.2 基于內(nèi)容的推薦算法

      基于內(nèi)容的推薦算法,其主要思想是先給商品劃分一些屬性,然后在用戶(hù)看某個(gè)商品的時(shí)候,給他推薦一些同類(lèi)屬性的商品。

      首先利用GitHub爬取其他加星用戶(hù)的學(xué)習(xí)資料簡(jiǎn)介描述;然后使用jieba中文分詞工具對(duì)加星學(xué)習(xí)資料庫(kù)的簡(jiǎn)介描述進(jìn)行分詞分析[9],對(duì)分析出來(lái)的學(xué)習(xí)資料庫(kù)信息進(jìn)行過(guò)濾,創(chuàng)建一個(gè)特征集,實(shí)現(xiàn)基于內(nèi)容的推薦;最終為目標(biāo)用戶(hù)推送適合用戶(hù)閱讀的學(xué)習(xí)資料庫(kù)[10-11]。

      (1)jieba中文分詞工具

      目前使用較廣泛的分詞工具是jieba中文分詞工具。分詞的原理是基于前綴詞典高效的詞圖掃描,生成句子中漢字所可能構(gòu)成的有向無(wú)環(huán)圖(DAG),采用動(dòng)態(tài)規(guī)劃查找最大概率路徑,找出詞頻的最大切分組合,對(duì)于未登入詞采用基于漢字成詞能力的隱馬爾可夫模型(Hidden markov model,HMM),使用Viterbi算法[12]。

      本研究的資料庫(kù)內(nèi)容簡(jiǎn)介描述見(jiàn)圖1。在分詞的過(guò)程中,觀察圖1發(fā)現(xiàn),中文的文本信息中有標(biāo)點(diǎn)符號(hào)、停用詞、語(yǔ)氣詞和助動(dòng)詞等,英文文本中有介詞、人稱(chēng)代詞和提問(wèn)詞等,這些無(wú)意義的詞會(huì)妨礙關(guān)鍵字的提取,所以需要?jiǎng)h除。從網(wǎng)站上下載這些停用詞放在一個(gè)文本中,然后對(duì)全部?jī)?nèi)容進(jìn)行停用詞去除。圖2顯示的是去除停用詞后的簡(jiǎn)介描述。

      圖1 未去除停用詞的學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述Fig.1 A brief description of the learner database with prohibited words

      圖2 去除停用詞后的學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述Fig.2 A brief description of the learner database without prohibited words

      (2)Counter統(tǒng)計(jì)單詞數(shù)

      Counter是 colletions的一個(gè)類(lèi),Counter類(lèi)的目的是跟蹤值出現(xiàn)的次數(shù),可以理解為一個(gè)簡(jiǎn)單的計(jì)數(shù)器,用來(lái)統(tǒng)計(jì)字符出現(xiàn)的次數(shù)。它是一個(gè)無(wú)序的容器類(lèi)型,以字典的鍵值形式存儲(chǔ),其中元素作為key、計(jì)數(shù)作為value。計(jì)數(shù)值可以是任意的Interger(包括0和負(fù)數(shù))。

      圖3是目標(biāo)用戶(hù)學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述分詞的排序。由于目標(biāo)用戶(hù)加星的學(xué)習(xí)資料庫(kù)較少,才62個(gè),所以只能取前5個(gè)關(guān)鍵詞與全部學(xué)習(xí)資料庫(kù)進(jìn)行匹配推薦給目標(biāo)用戶(hù)。圖4是其他用戶(hù)學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述分詞的排序,取前8個(gè)關(guān)鍵詞與全部學(xué)習(xí)資料庫(kù)進(jìn)行匹配推薦給目標(biāo)用戶(hù)。從圖3和圖4中可以看出,排在第一的都是“python”,說(shuō)明目標(biāo)用戶(hù)與加星的其他用戶(hù)的興趣是相似的。

      圖3 目標(biāo)用戶(hù)學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述分詞排序Fig.3 Target users learning database profiles that describe word sorting

      圖4 其他用戶(hù)學(xué)習(xí)資料庫(kù)簡(jiǎn)介描述分詞排序Fig.4 Other users learning database profiles to describe participle sorting

      (3)正則表達(dá)式

      正則表達(dá)式是一個(gè)特殊的字符序列,它方便檢查一個(gè)字符是否與某種模式匹配,可以測(cè)試字符串內(nèi)的模式、替換文本和基于模式匹配從字符串中提取指定字符串。

      本研究用re模塊的re.match函數(shù)對(duì)簡(jiǎn)介描述進(jìn)行內(nèi)容匹配。re.match函數(shù)只匹配字符串的開(kāi)始,如果字符串的開(kāi)始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None。所以一開(kāi)始關(guān)鍵詞的標(biāo)簽都設(shè)置為數(shù)字0,如果匹配成功則返回?cái)?shù)字1。

      3 混合推薦

      從前面的介紹可知,如果單獨(dú)使用一種算法進(jìn)行推薦,那么推薦的學(xué)習(xí)資料庫(kù)不夠全面。本研究把基于用戶(hù)的協(xié)同過(guò)濾算法和基于內(nèi)容的推薦算法結(jié)合形成混合推薦,以解決學(xué)習(xí)資料庫(kù)推薦不夠全面的問(wèn)題[13]。

      混合推薦首先對(duì)全部用戶(hù)的學(xué)習(xí)資料庫(kù)描述簡(jiǎn)介分詞取關(guān)鍵詞,對(duì)關(guān)鍵詞進(jìn)行排序。本研究取排序前8位的關(guān)鍵詞進(jìn)行對(duì)應(yīng)的學(xué)習(xí)資料庫(kù)匹配,然后利用基于用戶(hù)的協(xié)同過(guò)濾算法進(jìn)行學(xué)習(xí)資料庫(kù)的推薦。這樣的混合推薦可輻射到全部用戶(hù)和學(xué)習(xí)資料庫(kù),讓目標(biāo)用戶(hù)有了更多選擇。

      4 實(shí)驗(yàn)結(jié)果

      本研究利用基于用戶(hù)的協(xié)同過(guò)濾算法和基于內(nèi)容的推薦算法進(jìn)行混合推薦,推薦出與目標(biāo)用戶(hù)興趣最相似的學(xué)習(xí)資料庫(kù),推薦出的最優(yōu)學(xué)習(xí)資料庫(kù)方便目標(biāo)用戶(hù)進(jìn)行查閱,不受其他學(xué)習(xí)資料的干擾,可直接在推薦列表中找到,節(jié)省了目標(biāo)用戶(hù)的時(shí)間,也讓目標(biāo)用戶(hù)得到了最具個(gè)性化的推薦。

      基于用戶(hù)的協(xié)同過(guò)濾推薦見(jiàn)表3。其中,第一列為學(xué)習(xí)資料庫(kù),數(shù)字“1.0”表示其他用戶(hù)加星的學(xué)習(xí)資料庫(kù),數(shù)字“0.0”表示沒(méi)有加星的學(xué)習(xí)資料庫(kù),每個(gè)學(xué)習(xí)資料庫(kù)至少有2個(gè)用戶(hù)加星。表3中只有2個(gè)推薦,所以?xún)H基于相似用戶(hù)的推薦會(huì)發(fā)現(xiàn)推薦的學(xué)習(xí)資料庫(kù)范圍不夠大,只能局限于相似用戶(hù)加星的資料庫(kù)。

      表3 基于用戶(hù)的協(xié)同過(guò)濾推薦Tab.3 User-based collaborative filtering recommendations

      基于內(nèi)容的推薦算法一共有24個(gè)推薦,這里選取前10個(gè)推薦,見(jiàn)表4。表4的第一列為學(xué)習(xí)資料庫(kù),數(shù)字“1.0”表示學(xué)習(xí)資料庫(kù)有相應(yīng)的關(guān)鍵詞,數(shù)字“0.0”表示學(xué)習(xí)資料庫(kù)沒(méi)有相應(yīng)的關(guān)鍵詞,每個(gè)學(xué)習(xí)資料庫(kù)至少有兩個(gè)關(guān)鍵詞。關(guān)鍵詞“機(jī)器學(xué)習(xí)”“python”和“算法”是相似的,一起推薦的學(xué)習(xí)資料庫(kù)內(nèi)容比較準(zhǔn)確。可以發(fā)現(xiàn),基于內(nèi)容的算法進(jìn)行推薦比基于用戶(hù)的協(xié)同推薦效果好,推薦的學(xué)習(xí)資料庫(kù)比較多。

      表4 基于內(nèi)容的推薦算法Tab.4 Content-based recommendations

      在前面的基礎(chǔ)上,可以從兩方面考慮目標(biāo)用戶(hù)需要的興趣相似的學(xué)習(xí)資料,而不是僅從一個(gè)方面推薦,從而實(shí)現(xiàn)個(gè)性化推薦,具體見(jiàn)表5?;旌贤扑]的結(jié)果一共有121個(gè),表5選取了前10個(gè)學(xué)習(xí)資料庫(kù)進(jìn)行推薦,第一列為學(xué)習(xí)資料庫(kù),數(shù)字“1.0”表示學(xué)習(xí)資料庫(kù)有相應(yīng)的關(guān)鍵詞,數(shù)字“0.0”表示學(xué)習(xí)資料庫(kù)沒(méi)有相應(yīng)的關(guān)鍵詞,每個(gè)學(xué)習(xí)資料庫(kù)至少有兩個(gè)關(guān)鍵詞。從關(guān)鍵詞“framework”“web”和“js”可以判斷出該內(nèi)容是與網(wǎng)頁(yè)制作有關(guān)的學(xué)習(xí)資料庫(kù),從而實(shí)現(xiàn)了高質(zhì)量的學(xué)習(xí)資料庫(kù)推薦。

      表5 基于內(nèi)容與協(xié)同過(guò)濾的混合推薦Tab.5 Content-based and collaborative filtering recommendations

      5 結(jié)語(yǔ)

      為了實(shí)現(xiàn)推薦的學(xué)習(xí)資料庫(kù)與目標(biāo)用戶(hù)興趣最相似這一目標(biāo),基于用戶(hù)協(xié)同過(guò)濾提出了基于內(nèi)容推薦與協(xié)同過(guò)濾算法的GitHub學(xué)習(xí)資料庫(kù)推薦,并對(duì)算法進(jìn)行了驗(yàn)證。結(jié)果表明,該推薦考慮到了目標(biāo)用戶(hù)的需求,節(jié)省了目標(biāo)用戶(hù)的時(shí)間,使目標(biāo)用戶(hù)得到了最具個(gè)性化的推薦。

      猜你喜歡
      資料庫(kù)分詞協(xié)同
      蜀道難:車(chē)與路的協(xié)同進(jìn)化
      國(guó)家社科基金重大項(xiàng)目“‘古今字’資料庫(kù)建設(shè)與相關(guān)專(zhuān)題研究”成果鑒定會(huì)順利召開(kāi)
      施工企業(yè)技術(shù)資料庫(kù)的建立與完善
      天津科技(2020年5期)2020-01-08 12:27:35
      結(jié)巴分詞在詞云中的應(yīng)用
      “四化”協(xié)同才有出路
      實(shí)現(xiàn)科學(xué)教材中資料庫(kù)的教育價(jià)值
      中文信息(2016年12期)2017-05-27 07:40:17
      值得重視的分詞的特殊用法
      三醫(yī)聯(lián)動(dòng) 協(xié)同創(chuàng)新
      協(xié)同進(jìn)化
      高考分詞作狀語(yǔ)考點(diǎn)歸納與疑難解析
      澄城县| 长葛市| 杂多县| 吉水县| 宝应县| 钟山县| 汽车| SHOW| 大埔区| 吉安县| 广安市| 顺平县| 稷山县| 凌源市| 东光县| 徐汇区| 应城市| 广德县| 洞口县| 舟山市| 古蔺县| 甘泉县| 巴里| 甘谷县| 巍山| 轮台县| 河津市| 施甸县| 定结县| 工布江达县| 望江县| 嵊泗县| 佛山市| 和龙市| 那坡县| 大邑县| 山东省| 广西| 宜都市| 海兴县| 馆陶县|