一種基于雙AST序列的代碼補(bǔ)全方法及系統(tǒng)

基本信息

申請(qǐng)?zhí)?/td> CN201811224521.X 申請(qǐng)日 -
公開(kāi)(公告)號(hào) CN109582352A 公開(kāi)(公告)日 2019-04-05
申請(qǐng)公布號(hào) CN109582352A 申請(qǐng)公布日 2019-04-05
分類(lèi)號(hào) G06F8/72(2018.01)I; G06N3/04(2006.01)I; G06N3/08(2006.01)I 分類(lèi) 計(jì)算;推算;計(jì)數(shù);
發(fā)明人 李戈; 郝逸洋; 劉洋 申請(qǐng)(專(zhuān)利權(quán))人 北京硅心科技有限公司
代理機(jī)構(gòu) 北京辰權(quán)知識(shí)產(chǎn)權(quán)代理有限公司 代理人 劉廣達(dá)
地址 100190 北京市海淀區(qū)中關(guān)村東路66號(hào)世紀(jì)科貿(mào)大廈B1109
法律狀態(tài) -

摘要

摘要 本發(fā)明提供了一種基于雙AST序列的代碼補(bǔ)全方法及系統(tǒng),包括:源代碼處理步驟,使用抽象語(yǔ)法樹(shù)解析源代碼;AST轉(zhuǎn)二叉樹(shù)步驟,將上述抽象語(yǔ)法樹(shù)同時(shí)轉(zhuǎn)換為兩個(gè)不同序列;模型訓(xùn)練步驟,將所述兩個(gè)不同序列輸入LSTM模型,訓(xùn)練語(yǔ)言模型;預(yù)測(cè)補(bǔ)全步驟,根據(jù)訓(xùn)練過(guò)的語(yǔ)言模型補(bǔ)全代碼。本發(fā)明將待學(xué)習(xí)的程序代碼的抽象語(yǔ)法樹(shù)(AST)同時(shí)轉(zhuǎn)換為兩個(gè)序列(如“前序序列”和“中序序列”),并同時(shí)利用這兩個(gè)序列的信息訓(xùn)練一個(gè)LSTM模型。本發(fā)明的方法訓(xùn)練出的LSTM具有更高的準(zhǔn)確率。本發(fā)明的技術(shù)方案具有簡(jiǎn)單、快速的特點(diǎn),能夠較好地提高代碼推薦的準(zhǔn)確率和推薦效率。