[發(fā)明專利]一種基于seq2seq模型的Java方法名推薦方法在審
| 申請(qǐng)?zhí)枺?/td> | 202110727637.0 | 申請(qǐng)日: | 2021-06-29 |
| 公開(公告)號(hào): | CN113360766A | 公開(公告)日: | 2021-09-07 |
| 發(fā)明(設(shè)計(jì))人: | 康玉健;王偉東;董京偉;杜欣鈺;李點(diǎn) | 申請(qǐng)(專利權(quán))人: | 北京工業(yè)大學(xué) |
| 主分類號(hào): | G06F16/9535 | 分類號(hào): | G06F16/9535;G06F9/448;G06F8/30 |
| 代理公司: | 北京思海天達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 11203 | 代理人: | 劉萍 |
| 地址: | 100124 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 seq2seq 模型 java 法名 推薦 方法 | ||
本發(fā)明公開了一種基于seq2seq模型的Java方法名推薦方法。該方法包括:Java方法名采集階段,從知名開源組織下采集基于Java語(yǔ)言的項(xiàng)目Git倉(cāng)庫(kù),并提取Git倉(cāng)庫(kù)中的Java方法名。建立Java方法名詞庫(kù)階段:提取Java方法名中的高頻率標(biāo)記,并采用人工標(biāo)注的方式來(lái)為標(biāo)注中文語(yǔ)義。建立中文同義詞庫(kù)階段:通過人工標(biāo)注的方式來(lái)為Java方法名詞庫(kù)中已經(jīng)標(biāo)記好中文的中文標(biāo)記標(biāo)注其同義詞。創(chuàng)建數(shù)據(jù)樣本階段:采用人工標(biāo)注的方式來(lái)為Java方法名標(biāo)注中文語(yǔ)義。當(dāng)開發(fā)者輸入中文方法名,模型seq2seq會(huì)輸出英文的方法名。方法名推薦階段幫助中文開發(fā)者將中文方法名輸入到seq2seq模型中,模型輸出相應(yīng)的Java方法名。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件工程領(lǐng)域。更具體地,涉及一種基于seq2seq模型的Java方法名推薦方法。
背景技術(shù)
隨著信息化浪潮的來(lái)臨,軟件已經(jīng)生成人們生活中不可或缺的一部分。然而隨著軟件功能的日益復(fù)雜,軟件維護(hù)難、成本高成為了目前的一大難題。其中導(dǎo)致維護(hù)成本高的重要原因是軟件的可理解性低,開發(fā)人員往往要花費(fèi)超過大量的精力在軟件的代碼的理解上。其中程序中命名不恰當(dāng)?shù)淖兞棵⒎椒?shù)名等,往往是導(dǎo)致程序可理解性低的重要原因。其中方法名常常被看做是方法體功能的簡(jiǎn)要描述。在實(shí)際開發(fā)中,方法名是開發(fā)人員理解程序或API行為的直觀而重要的信息。因此,不一致的方法名會(huì)使程序更難理解和維護(hù),甚至可能導(dǎo)致軟件缺陷。開發(fā)者往往靠方法名來(lái)猜測(cè)方法的功能并調(diào)用對(duì)應(yīng)的方法,如果方法名起的不好,容易導(dǎo)致開發(fā)者對(duì)于API的誤用,進(jìn)而導(dǎo)致軟件缺陷的發(fā)生。
對(duì)于開發(fā)者來(lái)說(shuō),在真實(shí)的項(xiàng)目中,導(dǎo)致該問題的原因往往與開發(fā)者本身分不開的。首先,開發(fā)者往往囿于項(xiàng)目的進(jìn)度壓力,將主要精力放在了程序功能的實(shí)現(xiàn)上,卻忽略了程序的命名的重要性,導(dǎo)致在維護(hù)階段要花大量的精力來(lái)理解程序的功能。其二,由于程序的開發(fā)者的母語(yǔ)并非英語(yǔ),所以由于詞匯量的匱乏,往往在對(duì)程序命名的時(shí)候,并不能很好的描述程序的功能。
綜上所述,為了在實(shí)際開發(fā)中幫助中文開發(fā)者更好地為Java方法命名,軟件工程領(lǐng)域急需一種方法來(lái)高效地為中文開發(fā)者高效地推薦Java方法名,進(jìn)而提高程序的可讀性,降低開發(fā)人員在理解代碼時(shí)所花費(fèi)的時(shí)間和精力,最終提高軟件的可維護(hù)性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于seq2seq模型的Java方法名推薦方法,幫助中文開發(fā)者高質(zhì)量地命名Java方法的同時(shí),幫助開發(fā)者通過方法名快速了解方法所實(shí)現(xiàn)的功能,進(jìn)而降低軟件維護(hù)的成本,提高軟件開發(fā)的效率。
為達(dá)到上述目的,本發(fā)明采用下述方法:基于seq2seq模型的Java方法名推薦方法,包括:
第一階段:建立Java方法名詞庫(kù)階段。
第二階段:建立中文同義詞庫(kù)階段。
第三階段:創(chuàng)建數(shù)據(jù)樣本階段。
第四階段:模型訓(xùn)練階段。
第五階段:方法名推薦階段。
具體的,在建立Java方法名詞庫(kù)階段中,將采集的Java方法名切分為標(biāo)記流,并通過有經(jīng)驗(yàn)開發(fā)者人工標(biāo)注的方式,為出現(xiàn)高頻率標(biāo)記進(jìn)行標(biāo)注中文語(yǔ)義,進(jìn)而建立Java方法名詞庫(kù)。其中采用駝峰命名法將采集的Java方法名切分為標(biāo)記序列,采用經(jīng)驗(yàn)豐富開發(fā)者人工標(biāo)注的方式來(lái)為標(biāo)記序列中的標(biāo)記標(biāo)注中文語(yǔ)義。
具體的,在建立中文同義詞庫(kù)階段中,對(duì)于已經(jīng)標(biāo)注中文的方法名標(biāo)記序列,再通過人工標(biāo)注的方式來(lái)為已經(jīng)標(biāo)注好的中文標(biāo)記標(biāo)注同義詞。
具體的,在創(chuàng)建數(shù)據(jù)樣本階段中,對(duì)于已經(jīng)采集好的方法名,采用人工標(biāo)注的方式為方法名標(biāo)注對(duì)應(yīng)的中文語(yǔ)義。
具體的,在模型訓(xùn)練階段中,將人工標(biāo)注好的Java方法名的中文序列以及Java方法名輸入到seq2seq模型中,其中seq2seq模型中采用了attention機(jī)制。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京工業(yè)大學(xué),未經(jīng)北京工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110727637.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種歐洲鰻白子飼料的制作方法
- 下一篇:一種高活性納米氧化鋅的制備方法
- 一種基于seq2seq模型的實(shí)現(xiàn)問答機(jī)器人的方法
- 一種基于主題聚類的自適應(yīng)對(duì)話生成系統(tǒng)
- 文本風(fēng)格轉(zhuǎn)換方法、裝置及存儲(chǔ)介質(zhì)、計(jì)算機(jī)設(shè)備
- 描述文本生成模型的訓(xùn)練方法和裝置
- 描述文本生成模型的訓(xùn)練方法和裝置
- 新型多任務(wù)聯(lián)合的語(yǔ)音識(shí)別訓(xùn)練架構(gòu)和方法
- 基于TPA-Seq2Seq的電力負(fù)荷預(yù)測(cè)方法及相關(guān)組件
- 基于神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)流量預(yù)測(cè)方法、裝置及設(shè)備
- 基于深度學(xué)習(xí)模型構(gòu)建智能聊天平臺(tái)的方法及系統(tǒng)
- 基于Seq2seq模型的摘要生成方法
- 基于支持類的標(biāo)識(shí)來(lái)下載Java應(yīng)用的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品
- 啟動(dòng)JAVA應(yīng)用的方法及裝置
- Java虛擬機(jī)的管理方法、監(jiān)控系統(tǒng)和監(jiān)控代理模塊
- 一種運(yùn)行Java程序的方法和裝置
- 一種保護(hù)java程序的方法
- Java卡的Java代碼補(bǔ)丁方法
- 一種基于中間件架構(gòu)下java棧的多線程實(shí)現(xiàn)方法
- 一種支持JAVA卡補(bǔ)丁函數(shù)的智能卡
- 一種改進(jìn)的Java卡初始化方法和Java卡
- JavaEE平臺(tái)構(gòu)建方法、JavaEE平臺(tái)及云端系統(tǒng)





