999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于代碼倉庫分析的代碼推薦研究

2021-12-23 23:18:37李囈瑾寧浩宇劉秀
科學與信息化 2021年2期
關鍵詞:數據挖掘方法模型

李囈瑾 寧浩宇 劉秀

云南電網有限責任公司信息中心 云南 昆明 650217

代碼倉庫分析下的代碼推進方法與機器學習和數據挖掘有密切的聯系。我們可以將機器學習和數據挖掘作為代碼倉庫分析下代碼推薦方法的基礎。以下是本文對基于代碼倉庫分析的代碼推薦方法相關研究。

1 機器學習與數據挖掘

1.1 機器學習與數據挖掘工具分析

weka是機器學習與數據挖掘常見工具,weka的特點就是非商業化,是一種免費的開源機器學習與數據挖掘軟件,weak是建立在Java編程語言基礎之上的,對于多數的操作系統均有較好的兼容性,可為用戶提供數據分類、預處理、關聯分析等功能。weak中數據輸入格式為二維矩陣,文件格式后有ARFF的后綴名稱,所輸入的數據一般為一個或者多個實例,并由一組屬性對實例進行補充說明。

1.2 機器學習與數據挖掘技術分析

機器學習領域經過多年發展已經形成了基于不同思想下的機器學習算法。不同機器學習算法之間存在一定的聯系性。舉例來說,數值預測機器學習算法可以在輸出數值對應區間設定好后,在分類算法中應用,這樣就將分類算法與數值預算算法聯系在一起。由此可見不同的機器學習算法是相互關聯的。假設學習概念模型是機器學習算法運行的前提,所謂假設學習概念模型就是預先確定概念模型。通常情況下,規則模型、聚類模型、線性模型、表模型以及樹模型是常使用的概念模型。以上模型帶有較強的抽象性,機器學習算法需要在具體學習場景中對模型結構進行適當調整[1]。舉例來說,機器學習算法模型如果使用的是決策樹模型,則需要在已知數據基礎下對每個葉子中間節點和節點進行確定,由此構建出與實際學習場景相適應的決策樹模型。

2 編程語言及其相關工具分析

2.1 Java語言

Java編程語言具有跨平臺性的特點,是一種可以面向對象的編程語言。Java編程語言的前身是Oak語言,該語言產生于1990年。目前全球互聯網在不斷發展的背景下,Java語言已經在各個手機應用開發領域和web開發領域所應用,在目前的編程語言中享有重要地位。解釋型、簡單性、健壯性、網絡技能性、可移植性、安全性以及高性能等是Java語言的特點。Java作為一種編程語言與C++編程語言在語法規則上有著較大的相似性,我們可以將Java編程語言看成是C++編程語言的進一步發展,但是Java編程語言摒棄了C++編程語言的不足,Java編程語言可以在發布的JDK包中對常用函數預先定義,明確字符串、數組等的操作。Java編程語言可面向對象,全部操作均可以以單位執行。將Java文件編譯為Class文件是Java程序編譯的特點,這些文件均由字節碼構成,在所有平臺上的Java虛擬機均可以運行。早期的Java程序存在運行慢的問題,但是伴隨編譯器的不斷發展,進一步優化了字節碼編譯,將其轉化為機器碼,字節碼和機器碼在轉化的過程中明顯提高了Java程序運行速度。Java程序中還具備自動回收管理內存的功能,該項功能可為開發者專注邏輯功能創造良好的條件,能有效解決C++程序運行中泄露內存的問題。

2.2 Eclipse JDT

Eclipse作為一款集成開發環境,Eclipse與Java有高度的相似性,開發者可以在網絡上自由瀏覽發布的源代碼,也可以經Eclipse發布接口開發插件,進一步拓展Eclipse功能。JDT作為一種開發工具,主要是針對Java編程語言而產生的,是Eclipse自帶的一款編程語言開發工具。開發者在JDT發布的API下可以自主編程,改變以往手動操作Java工程項目和資源的方式。比如開發者可以創建新的項目、語法分析Java程序、對已有項目生成源代碼、對編程語言中的錯誤進行檢查并重構源代碼等。Eclipse JDT中重要部分之一就是Java模型,Java模型可以對Java工程資源進一步分解,將其分解成相應的元素模型,構建起元素模型與Java工程資源相對應的關系。舉例來說,IJavaModel該元素主要是代表工作區的根Java元素,它的后代是IJavaProjects;IField該元素代表在類型中的字段聲明;IMethod該元素代表在類型中方法聲明或者構造函數聲明[2]。

2.3 Jsoup

Jsoup作為一種html文件解析器,主要是針對Java產生的。該解析器可以對網絡上的網址所對應的本地html文件或者html文件進行解析。Jsoup的API操作方式與JQuery下提供的API操作方式有較大的相似性,可以按照DOM形式提高數據讀取速度和操作速度。字符串、文件、URL等的傳入,對html內容進行分析;采用DOM形式和CSS選擇器搜索、讀取數據;借助API操作html文件元素、屬性以及文本內容等是Jsoup的基本功能。

3 基于人氣指標的推薦方法

軟件開發過程中,多數的開發人員會選擇使用API,所謂API就是應用編程接口。但是API的使用需要開發者對API扎實記憶。API記憶對開發者來說不免是一項挑戰,尤其是在遇到開發問題時,開發人員需要將所要解決的問題輸入到搜索引擎中,之后瀏覽搜索引擎中篩選出來的博客或者論壇,對其中含有代碼的示例頁面進行查看。隨后參考示例中的方法,將其直接復制到網頁上或者進行相應的修改。Stack OverFlow作為IT專業問答網站,全球使用者居高不下,該網站主要側重于TI領域上的知識分享和問題解決方法。企業級應用開發和移動應用開發中Java在Stack OverFlow上享有非常重要的地位,據資料顯示Java問題數量在Stack OverFlow網站上一直處于前三位。以上足以說明Stack OverFlow網站上有許多值得開發人員借鑒的和效仿的內容。但是分析之前API方法推薦研究相關資料,多數研究學者的代碼倉庫為開源工程代碼,這樣側重于開源代碼上的研究是為了解決某一領域問題為研究目標,而不能將API涉及多個方面,將其局限在了特定的方向。基于此就需要開發者將代碼倉庫作為Stack OverFlow數據轉儲post中的示例代碼,基于人氣指標的推薦方法不僅可以有效控制代碼倉庫體量,將體量控制在較小的程度,而且也可以繼續擴大API應用范圍,使其涉及更多的方面。Favorite Count Answer Count等是居高不下的人氣指標,這些指標也常作為API方法的參考權重值[3-4]。

Stack Overflow數據分析和處理主要包括五部分內容,一是提取Java有關的Post Type,將Post Type作為Question的post;二是過濾posts表里Post Type是Answer的post;三是用Jsoup分析post,將Java代碼片段分離出來,Post表中需要以html的格式存儲body字段,將其作為網頁上的主要內容。全球人氣居高不下的Stack OverFlow網站使用的是自定義標簽,自定義標簽可以格式化文本插入的實例代碼;四是對分離出來的Java代碼片段進行語法分析,判斷是否是Java代碼;五是提取post中的人氣指標,按照API方法對人氣權重進行計算[5-6]。

CSCC、BCC、BMN是目前與Java相關的API方法推薦主要工具。其中CSCC有較高的文本相似度,可實現對推薦API方法的排序;BCC是建立在出現頻率基礎之前的,可滿足推薦API方法的排序要求;BMN則是先進行K-NN分類,之后在頻率基礎上對推薦API方法排序。

4 基于優化Apriori算法的代碼推薦方法

Apriori算法可以有效節約頻繁項集的生成時間,能將一些完全不可能是頻繁項集的集合在最早的時間內消除。舉例來說,定律1中支持度大于min-support是這個集合的特點,則被列為頻繁項集,該集合的子集也理所應當是頻繁項集。定律2中支持度小于min-support是這個集合的特點,則被列為非頻繁項集,該集合中的子集也理所應當是非頻繁項集。結合定律1和定律2在Apriori算法下具體步驟所示如下,步驟一:設定最小置信度和最小支持度;步驟二:對數據庫中的全部事務進行讀取,一維候選集為任何一項,對每個候選一維選集置信度進行計算,所選擇的一維頻繁集則為大于最小置信度的項;步驟三:對全部的一維頻繁集進行掃描,一維頻繁集生成二維候選集,并對全部的二維候選集置信度進行計算,所選擇的二維候選集則為大于最小置信度的項;步驟四:對上述步驟二和步驟三進行重復,由此生成高一級的候選集,并對候選集置信度進行計算,這級的頻繁項也為大于最小置信的項。一直到新的頻繁集不能產生為止;步驟五:求出全部頻繁集S所有的非空子集A,并求出A的補集B。如果非空子集A的置信度和補集B的置信度大于最小置信度,則A→B的規則是存在的。連續做連接和減枝操作是Apriori算法的特點[7-8]。

Apriori算法的優化可以從以下幾方面分析,一是優化生成頻繁集。Apriori計算復雜度對條數和項數有較高的敏感性。想要進一步優化Apriori算法就需要從生成頻繁集階段入手,在Apriori算法運行前,就需要借助Java編程語言進行裁剪輸入;二是優化生成規則。生成規則的優化需要秉持以下選取原則,原則一如果當前對象能調用的API方法不在頻繁集中,可排除;原則二選出當前頻繁項中可以調用出來的API方法,將其定義為Y,隨后將Y的補集求出來。如果Y的補集不是API方法下的非空子集,可排除。基于優化Apriori算法的代碼推進方法與人氣指標的推薦方法是相互關聯的,兩者結合可進一步創新代碼倉庫分析下的代碼推進方法[9-10]。

5 結束語

綜上所述,基于代碼倉庫分析的代碼推薦方法是軟件開發領域研究的熱門話題。以上就是本文對基于代碼倉庫分析的代碼推薦方法相關介紹,希望可進一步豐富該領域研究內容。

猜你喜歡
數據挖掘方法模型
一半模型
探討人工智能與數據挖掘發展趨勢
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
基于并行計算的大數據挖掘在電網中的應用
電力與能源(2017年6期)2017-05-14 06:19:37
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
一種基于Hadoop的大數據挖掘云服務及應用
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 免费a在线观看播放| a国产精品| 欧美日韩在线观看一区二区三区| 亚洲男人的天堂久久香蕉网| AV在线麻免费观看网站| 欧美一级高清片欧美国产欧美| 亚洲区第一页| 亚洲天堂网2014| 国产日韩久久久久无码精品 | 18禁高潮出水呻吟娇喘蜜芽| 欧美五月婷婷| 欧洲熟妇精品视频| 日韩黄色在线| 凹凸国产分类在线观看| 中文字幕精品一区二区三区视频 | 2018日日摸夜夜添狠狠躁| 亚洲国产精品无码AV| 国产高潮流白浆视频| 亚洲精品无码人妻无码| 老司机精品久久| 国外欧美一区另类中文字幕| 日韩一级二级三级| 秋霞国产在线| 久久女人网| 中文字幕欧美日韩| 国产成人综合网在线观看| 四虎影视库国产精品一区| 国产免费羞羞视频| 91精品免费高清在线| 四虎影视无码永久免费观看| 三上悠亚在线精品二区| 极品国产一区二区三区| 久久免费看片| 欧洲熟妇精品视频| 91啦中文字幕| 日本在线国产| 国产亚洲精久久久久久久91| 成年人免费国产视频| 成人无码区免费视频网站蜜臀| 一级毛片免费播放视频| 欧美亚洲日韩中文| 成人免费视频一区| 亚洲第一成网站| 国产亚洲高清视频| 国产国产人成免费视频77777| 免费亚洲成人| 久久久久国产精品免费免费不卡| 原味小视频在线www国产| 国产亚洲精品va在线| 国产91高跟丝袜| 日本黄色a视频| 国产精品人莉莉成在线播放| 超薄丝袜足j国产在线视频| 成人午夜网址| 在线欧美一区| 一区二区三区精品视频在线观看| 久久久久九九精品影院| 青青青伊人色综合久久| 久热中文字幕在线| 98超碰在线观看| 亚洲无码视频喷水| 久久中文字幕av不卡一区二区| 国产成人无码AV在线播放动漫 | 99re视频在线| 精品国产免费人成在线观看| 凹凸国产熟女精品视频| 日韩无码真实干出血视频| 成人午夜久久| 免费在线a视频| 99久久免费精品特色大片| 欧美色视频日本| 2021国产在线视频| 青草娱乐极品免费视频| 国产高清精品在线91| 91精品伊人久久大香线蕉| 91成人在线免费视频| 真人免费一级毛片一区二区| 亚洲无码A视频在线| 婷婷色中文网| a色毛片免费视频| 久久一色本道亚洲| 在线无码av一区二区三区|