[發明專利]一種從自然語言自動生成Python代碼的方法有效
| 申請號: | 201910689490.3 | 申請日: | 2019-07-29 |
| 公開(公告)號: | CN110489102B | 公開(公告)日: | 2021-06-18 |
| 發明(設計)人: | 祝亞兵;張巖峰 | 申請(專利權)人: | 東北大學 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41 |
| 代理公司: | 大連理工大學專利中心 21200 | 代理人: | 戴風友;梅洪玉 |
| 地址: | 110819 遼寧*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 自然語言 自動 生成 python 代碼 方法 | ||
本發明屬于自然語言處理技術領域,具體涉及一種從自然語言自動生成Python代碼的方法。所述的方法步驟如下:步驟1:采用GAN網絡的生成器根據自然語言描述生成程序片段的抽象語法樹。步驟2:采用GAN的判別器判斷生成器生成的抽象語法樹的語義是否與給定的自然語言描述的語義是否一致。步驟3:將GAN網絡的生成器和判別器一起訓練。本發明通過生成對抗網絡優化訓練,生成一個代碼生成系統,該系統可以根據用戶給定的對于一個功能的自然語言描述,然后生成一段具有相同功能的程序代碼。相較于傳統的優化方法,使用生成對抗網絡進行對抗博弈訓練,生成器能夠更有效地學習到自然語言和編程語言的語言模型。
技術領域
本發明屬于自然語言處理技術領域,具體涉及一種從自然語言自動生成Python代碼的方法。
背景技術
語義分析任務是自然語言處理領域中的一類任務,主要研究的是如何將給定的自然語言描述文本轉換成一種計算機能夠理解并且可以執行的一種邏輯表示,比如SQL,Python,Java等形式。傳統的方法是根據程序設計語言的特點設計出固定的模板,然后使用模式匹配的方式將自然語言描述解析成模板中的一個個實例。隨著深度學習技術的發展,Encoder-Decoder等深度學習框架也被引入到語義分析分析任務中,比如采用機器翻譯的方法將自然描述語言序列直接翻譯成編程語言序列,又或者是在生成代碼的時候,引入編程語言的語法,先生成程序的抽象語法樹,然后再將抽象語法樹轉換成程序代碼。但是上述Encoder-Decoder模型在處理從自然語言到編程語言之間的轉換的時候,Encoder和Decoder分別處理兩種不同語言,由于Encoder和Decoder使用的神經網絡的不同,以及網絡的深度,自然語言描述的語義在程序代碼生成的過程中會逐步丟失,因此缺少一個強的語義約束的訓練模型。
發明內容
針對于上述問題,本發明提出來一種從自然語言自動生成Python代碼的方法。本發明旨在通過判別器提高生成器根據自然語言描述生成程序片段的效果,學習到自然語言和編程語言的分布之間的聯系。
本發明的技術方案是:
一種從自然語言自動生成Python代碼的方法,步驟如下:
步驟1:采用GAN網絡的生成器根據自然語言描述生成程序片段的抽象語法樹。
生成器是一個Encoder-Decoder深度學習框架,Encoder負責對自然語言描述序列進行編碼,Decoder則根據Encoder的編碼結果,將自然語言描述的語義解碼成程序片段的抽象語法樹。
步驟1.1:采用雙向LSTM網絡作為Encoder,對自然語言描述序列進行編碼;
步驟1.1.1:從左到右以及從右到左兩個方向對自然語言描述序列進行編碼,得到每個字符的中間隱藏向量
步驟1.1.2:將中間隱藏向量進行concat操作即為自然語言描述字符的編碼向量,并把每個字符的編碼向量保存下來,以待后面Decoder使用。
步驟1.1.3:將最后一個字符的中間隱藏向量作為Decoder的初始狀態hend。
步驟1.2:采用單向LSTM網絡作為Decoder,將Encoder編碼的自然語言語義解碼構建為程序的抽象語法樹。
這一步驟將編程語言的語法規則引入到生成過程中。以深度優先遍歷的方式生成抽象語法樹,每一個生成步驟,是對上下文無關文法產生式的應用。語法規則為抽象語法樹的生成提供先驗知識,縮小搜索空間。
步驟1.2.1:將1.1.3中的hend作為Decoder的初始狀態,并使用注意力機制計算hend的內容向量,然后將該內容向量作為LSTM的輸入。
步驟1.2.2:采用Softmax對1.2.1的LSTM輸出結果進行多分類,這些類別分別對應生成抽象語法樹的動作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東北大學,未經東北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910689490.3/2.html,轉載請聲明來源鉆瓜專利網。





