• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當(dāng)前位置: 首頁 > 專利查詢>南京郵電大學(xué)專利>正文

    針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法技術(shù)方案

    技術(shù)編號:37578973 閱讀:28 留言:0更新日期:2023-05-15 07:54
    本發(fā)明專利技術(shù)涉及計(jì)算機(jī)領(lǐng)域,本發(fā)明專利技術(shù)公開一種針對代碼倉庫的基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法,commit查詢語言的語法指定相對應(yīng)的抽象語法描述語言ASDL,在ASDL的指導(dǎo)下構(gòu)建對應(yīng)的轉(zhuǎn)換系統(tǒng),一系列樹構(gòu)造操作完成對自然語言輸入到抽象語法樹AST的轉(zhuǎn)化,根據(jù)commit查詢語言的語法指定對應(yīng)的轉(zhuǎn)化函數(shù),另一部分完成對抽象語法樹AST到commit查詢語言的轉(zhuǎn)化,實(shí)現(xiàn)commit查詢語言自動(dòng)生成。以抽象語法樹AST為中間表示,完成自然語言到領(lǐng)域特定語言commit查詢語言的轉(zhuǎn)換生成,節(jié)省學(xué)習(xí)的時(shí)間和精力,有效地幫助編程人員完成搜索查詢操作,更好完成開發(fā)任務(wù)。更好完成開發(fā)任務(wù)。更好完成開發(fā)任務(wù)。

    【技術(shù)實(shí)現(xiàn)步驟摘要】
    針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法


    [0001]本專利技術(shù)涉及計(jì)算機(jī)
    ,具體是一種針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法。

    技術(shù)介紹

    [0002]隨著當(dāng)今社會(huì)互聯(lián)網(wǎng)的飛速發(fā)展和網(wǎng)絡(luò)技術(shù)水平的不斷提升,市場對編程的需求也在不斷增長,編程人員在開發(fā)一個(gè)軟件時(shí),通常會(huì)應(yīng)用到較多已有的代碼模塊,對其進(jìn)行一些更改和組合后完成符合要求的代碼項(xiàng)目。因此,代碼倉庫因勢而生,編程人員可以通過代碼倉庫更好地調(diào)用倉庫中已有的代碼段,極大地提高自身編程效率和代碼利用率。此外,代碼倉庫可以很好地管理編程人員提交的代碼,進(jìn)行有效的存儲(chǔ),對代碼編程和軟件工程的發(fā)展都有很大程度的進(jìn)步意義。
    [0003]在編程人員利用代碼倉庫進(jìn)行編程開發(fā)時(shí),存在的常見問題是:在搜索查詢所需的commit時(shí),輸入與自己期望獲取commit記錄相匹配的查詢,代碼倉庫返回給編程人員的結(jié)果可能與其所期望的目標(biāo)有所差距,很有可能存在一些不相關(guān)的無用信息,很難得到想要的commit記錄。想要獲取匹配程度較高的commit記錄,編程人員需要根據(jù)commit查詢語言的語法,輸入相匹配的commit查詢語言,然而commit查詢語言語法較為復(fù)雜,需要進(jìn)行對應(yīng)的學(xué)習(xí)才能較好地應(yīng)用這一專項(xiàng)領(lǐng)域的查詢語言,使得編程人員對代碼倉庫的應(yīng)用效率有很大影響,造成時(shí)間、精力等方面的不必要浪費(fèi)。因此,提出一種方法實(shí)現(xiàn)從自然語言到commit查詢語言的生成,對當(dāng)前的代碼倉庫發(fā)展是非常重要的。
    [0004]在文件CN 112988785 A中,公開了基于語言模型編碼和多任務(wù)解碼的SQL轉(zhuǎn)換方法及系統(tǒng),是基于transformer網(wǎng)絡(luò)、預(yù)訓(xùn)練語言模型和多任務(wù)解碼器實(shí)現(xiàn)的自然語言向SQL查詢語言的轉(zhuǎn)換,該轉(zhuǎn)換方法及系統(tǒng)在使用的時(shí)候,速度較慢,效率較低。

    技術(shù)實(shí)現(xiàn)思路

    [0005]為了解決上述問題,本專利技術(shù)公開了一種針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法。
    [0006]利用抽象語法樹AST作為自然語言和commit查詢語言的中間表示,以transition轉(zhuǎn)換系統(tǒng)為基礎(chǔ),在為commit查詢語言構(gòu)造的抽象語法描述語言ASDL的指導(dǎo)下,實(shí)現(xiàn)自然語言到抽象語法樹AST的轉(zhuǎn)換生成,在commit查詢語言語法的指導(dǎo)下,實(shí)現(xiàn)從抽象語法樹AST到commit查詢語言的轉(zhuǎn)換生成,從而完成commit查詢語言自動(dòng)生成,在編程人員進(jìn)行搜索查詢時(shí),可以輸入相對應(yīng)的自然語言,使其能夠直接獲得與預(yù)期目標(biāo)匹配度更高的commit結(jié)果,省去了學(xué)習(xí)commit查詢語言語法和詳細(xì)使用方法的時(shí)間和精力,提高代碼倉庫的搜索、管理和使用效率。
    [0007]本專利技術(shù)的技術(shù)方案為:針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法,包括下列步驟:
    步驟1:首先根據(jù)領(lǐng)域特定語言commit查詢語言的語法,為其構(gòu)建相對應(yīng)的抽象語法描述語言ASDL,用作后續(xù)轉(zhuǎn)換系統(tǒng)中自然語言轉(zhuǎn)化為抽象語法樹AST的語法指導(dǎo);步驟2:以JSON格式為數(shù)據(jù)存儲(chǔ)格式,自然語言為問題,commit查詢語言為答案,構(gòu)造訓(xùn)練所需的數(shù)據(jù)集,用于對后續(xù)模型的訓(xùn)練;步驟3:以commit查詢語言匹配的抽象語法描述語言ASDL為指導(dǎo),構(gòu)造適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),并利用轉(zhuǎn)換系統(tǒng)的第一部分將輸入的自然語言通過一系列樹構(gòu)造操作轉(zhuǎn)化為對應(yīng)的抽象語法樹AST并保存;步驟4:在轉(zhuǎn)換系統(tǒng)的基礎(chǔ)上,使用一個(gè)具有增強(qiáng)循環(huán)連接的神經(jīng)編碼器
    ?
    解碼器網(wǎng)絡(luò)來參數(shù)化解析器P,用于判斷計(jì)算AST抽象語法樹生成的系列操作的概率,其編碼器和解碼器都是一個(gè)標(biāo)準(zhǔn)的雙向長短期記憶網(wǎng)絡(luò),即LSTM網(wǎng)絡(luò);步驟5:獲取保存的抽象語法樹AST,應(yīng)用適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),根據(jù)適用于commit查詢語言語法的轉(zhuǎn)化函數(shù),將抽象語法樹AST轉(zhuǎn)化為commit查詢語言,完成commit查詢語言的自動(dòng)生成;步驟6:通過步驟2)中構(gòu)建的數(shù)據(jù)集對模型的訓(xùn)練,將模型輸出的答案與數(shù)據(jù)集中的commit查詢語言答案相比較,獲取對應(yīng)的commit查詢語言性能評估結(jié)果。
    [0008]其中,步驟1中根據(jù)代碼倉庫源代碼中的commit查詢語言語法定義文件CommitQuery.g4中對其語法的描述,為其構(gòu)建相匹配的抽象語法描述語言ASDL,ASDL中有類型types和構(gòu)造函數(shù)constructors兩個(gè)基本組成,一個(gè)復(fù)合類型由該類型下的構(gòu)造函數(shù)集定義,構(gòu)造函數(shù)使用其字段指定特定類型的語言構(gòu)造,復(fù)合類型cond_expr下的Conditions構(gòu)造函數(shù)表示查詢語句表達(dá)式,有兩個(gè)字段:op和value,一個(gè)AST由多個(gè)構(gòu)造函數(shù)組成,樹上的每個(gè)節(jié)點(diǎn)對應(yīng)于構(gòu)造函數(shù)constructors中的一個(gè)類型typed字段,根節(jié)點(diǎn)除外,根節(jié)點(diǎn)表示根構(gòu)造函數(shù),根據(jù)字段的基數(shù),節(jié)點(diǎn)可以保存一個(gè)或多個(gè)構(gòu)造函數(shù)作為其值。
    [0009]其中,步驟2中以JSON格式為數(shù)據(jù)存儲(chǔ)格式,以自然語言為問題,commit查詢語言為答案,構(gòu)造訓(xùn)練所需的數(shù)據(jù)集,例如:{ "question":"搜索從上個(gè)禮拜之后我的提交" "commit": "after(last week) committed
    ?
    by
    ?
    me" "id":1},每個(gè)JSON數(shù)據(jù)另外包含id序號,構(gòu)造完成后用于后續(xù)對模型的訓(xùn)練。
    [0010]其中,步驟3中以與commit查詢語言匹配的抽象語法描述語言ASDL為指導(dǎo),應(yīng)用適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),通過一系列樹構(gòu)造操作,從一個(gè)具有單個(gè)根節(jié)點(diǎn)的初始派生開始,自上而下,自左向右地遍歷構(gòu)建對應(yīng)的抽象語法樹AST,其中每個(gè)時(shí)間步都可能會(huì)觸發(fā)新的擴(kuò)展派生來不斷完善當(dāng)前的AST,派生動(dòng)作分為三個(gè):APPLYCONSTR[c],REDUCE和GENTOKEN[v],當(dāng)衍生上沒有擴(kuò)展派生出新的前沿域frontier field,即代表已將輸入的自然語言轉(zhuǎn)化為對應(yīng)的抽象語法樹AST并保存。
    [0011]其中,步驟4中在轉(zhuǎn)換系統(tǒng)的基礎(chǔ)上,使用一個(gè)具有增強(qiáng)循環(huán)連接的神經(jīng)編碼器
    ?
    解碼器網(wǎng)絡(luò)來參數(shù)化解析器P,用于判斷計(jì)算AST抽象語法樹生成的系列操作的概率,其編碼器和解碼器都是一個(gè)標(biāo)準(zhǔn)的雙向長短期記憶網(wǎng)絡(luò),即LSTM網(wǎng)絡(luò),編碼器將n個(gè)令token的輸入話語x, x[1..n]編碼為向量表示h[1..n]。
    [0012]其中,步驟5首先獲取保存的抽象語法樹AST,應(yīng)用適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),根據(jù)query.py中定義的適用于commit查詢語言語法的轉(zhuǎn)化函數(shù),其
    中commit查詢語言的基本語法為' '* criteria (' '+ criteria)* ' '* EOF,criteria為查詢條件,其內(nèi)容包含after、before、committer、author、path、message,將本文檔來自技高網(wǎng)
    ...

    【技術(shù)保護(hù)點(diǎn)】

    【技術(shù)特征摘要】
    1.針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法,其特征在于,包括下列步驟:步驟1:首先根據(jù)領(lǐng)域特定語言commit查詢語言的語法,為其構(gòu)建相對應(yīng)的抽象語法描述語言ASDL,用作后續(xù)轉(zhuǎn)換系統(tǒng)中自然語言轉(zhuǎn)化為抽象語法樹AST的語法指導(dǎo);步驟2:以JSON格式為數(shù)據(jù)存儲(chǔ)格式,自然語言為問題,commit查詢語言為答案,構(gòu)造訓(xùn)練所需的數(shù)據(jù)集,用于對后續(xù)模型的訓(xùn)練;步驟3:以commit查詢語言匹配的抽象語法描述語言ASDL為指導(dǎo),構(gòu)造適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),并利用轉(zhuǎn)換系統(tǒng)的第一部分將輸入的自然語言通過一系列樹構(gòu)造操作轉(zhuǎn)化為對應(yīng)的抽象語法樹AST并保存;步驟4:在轉(zhuǎn)換系統(tǒng)的基礎(chǔ)上,使用一個(gè)具有增強(qiáng)循環(huán)連接的神經(jīng)編碼器
    ?
    解碼器網(wǎng)絡(luò)來參數(shù)化解析器P,用于判斷計(jì)算AST抽象語法樹生成的系列操作的概率,其編碼器和解碼器都是一個(gè)標(biāo)準(zhǔn)的雙向長短期記憶網(wǎng)絡(luò),即LSTM網(wǎng)絡(luò);步驟5:獲取保存的抽象語法樹AST,應(yīng)用適用于commit查詢語言的transition轉(zhuǎn)換系統(tǒng),根據(jù)適用于commit查詢語言語法的轉(zhuǎn)化函數(shù),將抽象語法樹AST轉(zhuǎn)化為commit查詢語言,完成commit查詢語言的自動(dòng)生成;步驟6:通過步驟2中構(gòu)建的數(shù)據(jù)集對模型的訓(xùn)練,將輸出的答案與查詢語言答案相比較,獲取對應(yīng)的commit查詢語言性能評估結(jié)果。2.根據(jù)權(quán)利要求1所述的針對代碼倉庫基于transition轉(zhuǎn)換系統(tǒng)的commit查詢語言自動(dòng)生成方法,其特征在于:所述步驟1中根據(jù)代碼倉庫源代碼中的commit查詢語言語法定義文件CommitQuery.g4中對其語法的描述,為其構(gòu)建相匹配的抽象語法描述語言ASDL,ASDL中有類型types和構(gòu)造函數(shù)constructors兩個(gè)基本組成,一個(gè)復(fù)合類型由該類型下的構(gòu)造函數(shù)集定義,構(gòu)造函數(shù)使用其字段指定特定類型的語言構(gòu)造,復(fù)合類型cond_expr下的Conditions構(gòu)造函數(shù)表示查詢語句表達(dá)式,有兩個(gè)字段:op和value,一個(gè)AST由多個(gè)構(gòu)造函數(shù)組成,樹上的每個(gè)節(jié)點(diǎn)對應(yīng)于構(gòu)造函數(shù)constructors中的一個(gè)類型typed字段,根節(jié)點(diǎn)除外,根節(jié)點(diǎn)表示根構(gòu)造函數(shù),根據(jù)字段的基數(shù),節(jié)點(diǎn)可以...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:吳朝陽張喬喬劉志蘭胡天昊姜一鳴張衛(wèi)豐
    申請(專利權(quán))人:南京郵電大學(xué)
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 亚洲国产无套无码av电影| 精品无码国产一区二区三区AV| 亚洲av日韩av永久无码电影| 精品少妇人妻AV无码专区不卡| 无码日韩精品一区二区免费| 国产精品三级在线观看无码 | 少妇人妻无码专区视频| 亚洲Av永久无码精品一区二区| 国产成人无码精品久久久性色 | 亚洲av无码兔费综合| 亚洲AV无码精品色午夜果冻不卡 | 免费无码国产在线观国内自拍中文字幕| 国产网红主播无码精品| 久久天堂av综合色无码专区| 色综合久久无码五十路人妻| 成在人线av无码免费高潮喷水| 国产精品无码2021在线观看| 最新无码人妻在线不卡| 人妻丰满熟妇av无码区不卡| 亚洲国产AV无码专区亚洲AV| 亚洲无码黄色网址| 无码8090精品久久一区| 性色av无码不卡中文字幕| 亚洲最大无码中文字幕| 无码丰满熟妇juliaann与黑人| 无码乱人伦一区二区亚洲| 无码少妇一区二区| 无码人妻精品一区二区三区在线 | 亚洲av无码专区国产乱码在线观看| 成人免费无码精品国产电影| 国产AV无码专区亚洲AV蜜芽| 大胆日本无码裸体日本动漫 | 国内精品久久人妻无码不卡| 无码高潮少妇毛多水多水免费| 精品少妇人妻AV无码专区不卡| 成人免费一区二区无码视频 | 国内精品人妻无码久久久影院| AV无码小缝喷白浆在线观看 | 国产精品无码久久av| 成人毛片无码一区二区| 日韩精品无码久久一区二区三|