[發明專利]一種協同過濾并權衡數據信息的API推薦方法與裝置在審
| 申請號: | 202011228952.0 | 申請日: | 2020-11-06 |
| 公開(公告)號: | CN112269946A | 公開(公告)日: | 2021-01-26 |
| 發明(設計)人: | 李偉湋;鄭黃河;黃志球;邵宜超 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | G06F16/9536 | 分類號: | G06F16/9536;G06F16/9535 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 孟紅梅 |
| 地址: | 210016 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 協同 過濾 權衡 數據 信息 api 推薦 方法 裝置 | ||
本發明公開了一種協同過濾并權衡數據信息的API推薦方法與裝置,方法包括:獲取當前開發項目的所有調用關系信息,包括項目中已開發部分的聲明和聲明中調用的API接口;根據處理過后的調用關系,從代碼數據庫中先推薦出與當前開發項目相似的三個項目,再從三個相似項目中的所有聲明中獲取與當前在開發聲明相似度超過閾值的聲明,再由相似聲明集合中的所有API接口作為候選列表;最后由這些聲明中所含有的調用進行協同過濾評分,為用戶推薦所需接口。本發明在進行代碼推薦時考慮使用了代碼之間的調用關系信息,引入的近鄰因子根據相似聲明與調用數量上的關系,協調了協調過濾推薦時聲明與調用對最后評分結果的影響,能夠獲得更好的推薦效果。
技術領域
本發明涉及代碼推薦領域,具體涉及一種考慮代碼調用關系的協同過濾并權衡數據信息的API推薦方法與裝置。
背景技術
API是指應用程序編程接口,能夠為程序員快速復用已有的庫中的函數功能,簡化代碼的開發過程。而在使用API的過程中,龐大的API數目往往令程序員手足無措,就算在庫中已有程序員所需實現功能的接口,程序員往往不知道這個接口的名稱而不得不從新自己寫一遍實現。而基于調用關系的API推薦技術能夠根據已經開發代碼的上下文信息進行判斷,為用戶推薦合適的API。
代碼間的調用關系指的是指的是整個項目中對各個聲明的調用以及聲明下隊各個接口的調用。如下面的代碼所示:
其中這一整個findByIdentifier函數就可以看做為一個聲明,而許多個這樣聲明則組成了我們的整個開發項目,而在這聲明中使用了許多個API接口,例如log.severe、entityManager.getCriteriaBuilder、log.find等等。我們的目的就是要根據已經開發的一部分代碼,根據上下文間調用的關系來推薦接下來開發者可能需要用到的API。
由粗粒度到細粒度API推薦包括以下幾個步驟:
(1)對項目間的相似度計算
(2)對聲明間的相似度計算
(3)對候選列表API的協同過濾評分
在對項目間的相似計算中往往會因為部分調用的影響權值過大而對整體的相似性進行了誤判造成推薦的不準確,而聲明間的相似度計算往往采取推薦固定k個相似聲明,而往往實際情況中與各個聲明較為相似的聲明數量不是固定的,固定選取k個會造成對相似度較高的聲明的遺漏或將相似度極地的聲明也選作為相似聲明。而在最后對API的推薦評分中,權重的固定沒有考慮到相似聲明與推薦API具體數量的關系,這往往會造成低效的推薦。
發明內容
發明目的:針對現有技術的不足,本發明的目的在于提供一種協同過濾并權衡數據信息的API推薦方法與裝置,提高推薦的準確性,使用戶能夠更好的使用推薦的API。
技術方案:為實現上述發明目的,本發明采用如下技術方案:
一種協同過濾并權衡數據信息的API推薦方法,包括如下步驟:
(1)獲取當前開發項目的所有調用關系信息,包括項目中已開發部分的聲明和聲明中調用的API接口;
(2)將代碼數據庫中已有的項目的所有API接口編號,計算代碼數據庫中已有的項目與當前開發項目的相似度,數據庫中相似度前三的項目作為候選集,再獲取相似項目中的所有聲明,計算這些聲明與當前開發的聲明的相似度,進行重排序,最后獲取相似度超過閾值μ的聲明,再由相似聲明集合中的所有API接口作為候選列表;
(3)根據候選列表中的所有API接口,計算近鄰因子權重和API推薦評分并進行排序,為用戶推薦所需接口。
作為優先,所述方法根據如下數據處理步驟生成代碼數據庫:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011228952.0/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





