[發明專利]一種基于兩階段框架的Java方法名推薦方法在審
| 申請號: | 202110646079.5 | 申請日: | 2021-06-10 |
| 公開(公告)號: | CN113408597A | 公開(公告)日: | 2021-09-17 |
| 發明(設計)人: | 康玉健;王偉東 | 申請(專利權)人: | 北京工業大學 |
| 主分類號: | G06K9/62 | 分類號: | G06K9/62;G06F8/30;G06F9/448;G06F16/951;G06F40/211;G06N3/04;G06N3/08 |
| 代理公司: | 北京思海天達知識產權代理有限公司 11203 | 代理人: | 劉萍 |
| 地址: | 100124 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 階段 框架 java 法名 推薦 方法 | ||
1.一種基于兩階段框架的Java方法名推薦方法,其特征在于包括:
1)預處理階段,對于輸入的Java方法的特征,采用啟發式規則過濾掉getter/setter方法以及delegations方法,其中getter是專門用來獲取Java類中非靜態私有屬性的方法,而setter方法是專門用來給Java類中非靜態私有屬性賦值的方法;
2)方法分類階段,采用前饋神經網絡FastText對Java方法分類,其中分類輸入的數據采用的是Java方法體的標記流,其中標記流是采用詞法分析得到的鍵值對,鍵值對是包含了類型和標記;分類采用方法對應方法名的前綴作為分類依據,通過分類的方法來預測方法名的前綴;
3)方法名生成階段,該階段針對不同方法名前綴采用不同方式生成方法名;其中對于分類器預測方法名以get、set、is、test開頭的Java方法,采用基于頻率的啟發式規則生成相應的方法名,對于分類器預測出以其他前綴開頭的Java方法采用基于神經網絡的方式生成相應的方法名。
2.如權利要求1所述的方法,其特征在于,步驟1)中,讀取Java程序源代碼并解析得到方法列表,其中判斷方法是否為getter方法的規則為如果一個方法中只有一行代碼語句且該方法返回了類中的私有非靜態屬性的值,那么該方法就為getter方法,該方法體格式描述為return this.${方法所在類中非靜態私有屬性};或者是return${方法所在類中非靜態私有屬性};其中判斷方法為setter方法的規則為如果一個方法中僅僅只有一行代碼語句且該語句的功能是給方法所在類中的非靜態屬性賦值,體格式描述為this.${方法所在類中非靜態私有屬性}=賦值;或者為${方法所在類中非靜態私有屬性}=賦值;。
3.如權利要求1所述的方法,其特征在于:delegations方法為僅僅只有一行代碼語句且該語句調用了該方法所在類中的其他方法,該方法方法體格式描述為return${方法所在類中的其他方法的方法名}(參數列表);或者為${方法所在類中的其他方法的方法名}(參數列表);。
4.如權利要求1所述的方法,其特征在于為getter/setter方法命名,其中對于getter方法的生成的方法名格式為get${方法所在類中非靜態私有屬性,其中首字母大寫},其中對于setter方法的生成方法名格式為set${方法所在類中非靜態私有屬性,其中首字母大寫};其中對于delegations方法生成的方法名格式為${方法所在類中的其他方法的方法名}。
5.如權利要求1所述的方法,其特征在于,步驟2)中,其特征在于輸入FastText標記流格式由鍵值對組成,鍵值對由詞法分析得到,FastText根據方法名的前綴將Java方法分為5個類別,分別是方法名以特殊前綴test、is、get、set開頭的方法,以及以其他前綴others開頭的Java方法,在訓練的過程中,采用bigram詞級訓練模型。
6.如權利要求1所述的方法,其特征在于,步驟3)中,其特征在于針對方法名前綴開頭的方法采用不同的方法名推薦方法;其中針對方法名以test、is、get、set前綴開頭的方法,采用啟發式規則來為Java方法命名;啟發式命名規則為:對于已知方法分類器分類得到的前綴,從方法體中的標識符流中提取出現頻率最高的標識符作為后綴,前綴和后綴通過駝峰命名法則拼接得到Java方法名。
7.如權利要求1所述的方法,其特征在于提取方法所處的上下文,采用駝峰法則切分代碼片段包括方法所在的類、方法體中的標識符、方法的參數列表以及返回值拼接得到方法的上下文,并將方法上下文特征輸入到Recursive RNN模型中,進而預測得到Java方法名。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京工業大學,未經北京工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110646079.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:特胺酸衍生物及其制備方法與應用
- 下一篇:一種用于高溫試驗的陶瓷纖維制備方法





