[發明專利]基于動態網絡圖挖掘的Github開源代碼庫推薦系統有效
| 申請號: | 201711392111.1 | 申請日: | 2017-12-21 |
| 公開(公告)號: | CN108073710B | 公開(公告)日: | 2022-04-01 |
| 發明(設計)人: | 劉瀚誠;朱彤 | 申請(專利權)人: | 儒安物聯科技集團有限公司 |
| 主分類號: | G06F16/9535 | 分類號: | G06F16/9535;G06Q50/00 |
| 代理公司: | 無錫市大為專利商標事務所(普通合伙) 32104 | 代理人: | 曹祖良;屠志力 |
| 地址: | 201800 上海市嘉*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 動態 網絡圖 挖掘 github 源代碼 推薦 系統 | ||
1.一種基于動態網絡圖挖掘的Github開源代碼庫推薦系統,其特征在于,包括:
任務調度模塊、演示網站中的用戶交互頁面、推薦算法模塊、日志管理模塊、以及數據庫;
任務調度模塊負責控制推薦算法模塊的推薦結果更新和至少部分數據爬蟲的運行;
日志管理模塊從多方獲取數據信息,并向其他模塊開放查詢接口;
推薦算法模塊則根據相關數據計算推薦列表;相關數據將根據不同需要存儲在不同類型的數據庫,包括文檔式數據庫、圖數據庫和內存數據庫三種數據庫;
圖數據庫中主要實體包括用戶、代碼庫、編程語言、排名四項,用戶的行為包括:創建代碼庫、成為代碼庫的成員,貢獻代碼、提問、收藏、復制、關注其他用戶;
以不同時間粒度為基準,代碼庫擁有多種形式的排名,以創建于屬性標注排名產生時間;此外,開發者使用一種或多種編程語言編寫代碼庫,語言名稱以語言名稱屬性描述;對于用戶,圖數據庫存儲其編號、頭像地址、郵箱、用戶名與登錄用戶名;對于代碼庫,存儲其編號、代碼庫名稱、收藏人數、關注人數與復制代碼庫數量;
在文檔式數據庫和內存數據庫中緩存推薦列表;
日志管理模塊的主要目的是存儲用戶的行為日志以供推薦算法進行挖掘;這一目的是通過自動化的數據爬取和記錄網站與用戶的交互行為兩種方式實現的;日志管理模塊中實現了以下數據爬蟲:
第一數據爬蟲:基于wget遠程數據請求指令與py2neo的Github Archive平臺數據爬蟲;該爬蟲定時從Github Archive數據平臺抓取存儲的用戶行為日志,將其轉換為圖數據庫格式的數據條目,存儲至圖數據庫中;
第二數據爬蟲:基于scrapy的熱門代碼庫定時信息更新程序;該程序使用Github數據接口爬取數據,按照收藏人數排名對收藏人數高于設定值的代碼庫的信息在圖數據庫中進行更新,對不存在的代碼庫在圖數據庫中予以創建;
第三數據爬蟲:基于scrapy的用戶信息爬取程序;該程序在用戶許可的權限內,抓取用戶的基本信息以及用戶所收藏的代碼庫和所關注的其他用戶,以此建立用戶的個人喜好檔案,為推薦算法提供便利;
第四數據爬蟲:基于scrapy的代碼庫信息爬取程序,該程序抓取所有收藏了指定代碼庫的用戶列表并保存至圖數據庫中;
第五數據爬蟲:基于scrapy的代碼庫信息爬取程序,程序抓取指定代碼庫的詳細信息并據此更新圖數據庫;
第一數據爬蟲和第二數據爬蟲根據任務調度模塊所設計的規則執行,而第三、四、五數據爬蟲則是通過用戶的交互式行為觸發的;
觸發第三、四、五數據爬蟲的規則如下:
1)當用戶使用Github賬戶登錄時,系統將在獲得用戶授權后,調用第三數據爬蟲獲取來自Github的用戶的個人喜好檔案;
2)當用戶訪問代碼庫詳情時,系統將調用第四數據爬蟲和第五數據爬蟲更新代碼庫信息;
推薦算法模塊中,
包括離線設置的PersonalRank算法:
對Github用戶針對代碼庫所執行的各項行為記錄進行量化;將收藏、提問、復制、貢獻代碼與合作這些行為定義成五個不同級別,分別賦予相應的分數;然后建立行為與事件之間的對應關系;
利用上述分數計算PersonalRank算法中的跳轉概率矩陣,最終計算得出的代碼庫對于每個用戶的評分結果緩存在文檔式數據庫中;對評分結果進行排序,選取評分最高的一個或一組形成推薦列表,作為最終的推薦結果向用戶進行推薦;
包括基于社交網絡的關聯推薦算法:將開發者對代碼庫產生興趣的兩種行為模式轉換為推薦算法,轉換為以下兩種模式:
1)收藏了當前代碼庫的用戶也關注了其他哪些關聯的代碼庫;
2)所關心的用戶關注了哪些代碼庫;
即以這兩種模式構造了語義等價的兩個推薦算法;在算法的實現上倚仗圖數據庫所提供的子圖匹配查詢,以圖模式進行查詢并進行相關聚集、評分與排序;評分為所有與關聯代碼庫有關的關注行為的評分總和;對評分結果進行排序,選取評分最高的一個或一組形成推薦列表,作為最終的推薦結果向用戶進行推薦;
包括基于排名的推薦算法;基于排名的推薦算法分為兩部分,
第一部分是時段排名,在行為評分基礎上,對代碼庫在一定時段內的所有行為進行加和并按從大到小順序排序;此部分的排名是離線的;
第二部分是綜合排名,使用了代碼庫收藏數目作為排序基準,此部分的排名是在線的;
在排序基礎上形成推薦列表;
最后進行組合算法:對推薦算法進行組合,用高覆蓋率的推薦算法接續低覆蓋率的推薦算法,確保推薦列表不會發生中斷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于儒安物聯科技集團有限公司,未經儒安物聯科技集團有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711392111.1/1.html,轉載請聲明來源鉆瓜專利網。





