一種基于代碼描述語(yǔ)義向量的Java代碼搜索方法研究
發(fā)布時(shí)間:2021-10-13 02:40
代碼搜索的目標(biāo)是輔助開(kāi)發(fā)者搜索符合開(kāi)發(fā)需求的代碼,是軟件工程的重要研究領(lǐng)域之一。傳統(tǒng)的代碼搜索采用字符串匹配技術(shù)將搜索文本中的詞和代碼中的詞直接匹配,或?qū)⑺阉魑谋竞痛a轉(zhuǎn)換成中間表示進(jìn)行匹配,忽略搜索文本上下文語(yǔ)義和代碼之間的關(guān)系等信息,導(dǎo)致了代碼搜索的準(zhǔn)確率較低。針對(duì)上述不足,本文提出一種基于代碼描述語(yǔ)義向量的Java代碼搜索方法(簡(jiǎn)稱(chēng)CDSVJCS,Code Description Semantics Vector based Java Code Search)。該方法以開(kāi)發(fā)者活躍的Github項(xiàng)目托管平臺(tái)的開(kāi)源項(xiàng)目源代碼和Stack Overflow開(kāi)源社區(qū)問(wèn)答系統(tǒng)的問(wèn)答數(shù)據(jù)為依托,利用代碼文本描述和代碼塊的映射關(guān)系,提取并構(gòu)建“代碼描述-代碼塊庫(kù)”,提供了代碼搜索的基礎(chǔ)數(shù)據(jù);其次,CDSVJCS利用句法分析和fastText詞向量,將搜索文本和代碼描述經(jīng)過(guò)句法分析后轉(zhuǎn)換到向量空間,從上下文的角度計(jì)算搜索文本和代碼描述的相似度,結(jié)合代碼描述和代碼塊之間的映射關(guān)系,生成初始搜索結(jié)果;最后,基于初始搜索結(jié)果,利用基于LSTM-RNN的相似代碼檢測(cè)的分類(lèi)算法,將搜索結(jié)果劃分為符合搜索需...
【文章來(lái)源】:西華大學(xué)四川省
【文章頁(yè)數(shù)】:62 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
GithubSpring相關(guān)項(xiàng)目Fig.1.1SpringrelatedprojectsonGithub
圖 1.1 Stack Overflow java 相關(guān)問(wèn)答Fig.1.1 Java related items on Stack OverflowGithub 是一個(gè)開(kāi)源項(xiàng)目的托管平臺(tái),很多優(yōu)質(zhì)的開(kāi)源項(xiàng)目由開(kāi)發(fā)者提交到 Github,提供給開(kāi)發(fā)者一種協(xié)作軟件開(kāi)發(fā)的新形式。開(kāi)源項(xiàng)目由多個(gè)文件組成,其中包括數(shù)萬(wàn)行
圖 2.1 常用代碼搜索框架Fig.2.1 commonly used code search framework面將對(duì)圖 2.1 的幾個(gè)部分進(jìn)行簡(jiǎn)要的闡述。代碼資源庫(kù)
本文編號(hào):3433797
【文章來(lái)源】:西華大學(xué)四川省
【文章頁(yè)數(shù)】:62 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
GithubSpring相關(guān)項(xiàng)目Fig.1.1SpringrelatedprojectsonGithub
圖 1.1 Stack Overflow java 相關(guān)問(wèn)答Fig.1.1 Java related items on Stack OverflowGithub 是一個(gè)開(kāi)源項(xiàng)目的托管平臺(tái),很多優(yōu)質(zhì)的開(kāi)源項(xiàng)目由開(kāi)發(fā)者提交到 Github,提供給開(kāi)發(fā)者一種協(xié)作軟件開(kāi)發(fā)的新形式。開(kāi)源項(xiàng)目由多個(gè)文件組成,其中包括數(shù)萬(wàn)行
圖 2.1 常用代碼搜索框架Fig.2.1 commonly used code search framework面將對(duì)圖 2.1 的幾個(gè)部分進(jìn)行簡(jiǎn)要的闡述。代碼資源庫(kù)
本文編號(hào):3433797
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3433797.html
最近更新
教材專(zhuān)著