System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及大語言模型,具體涉及一種基于代碼命名規范與字節對編碼結合的詞表生成方法。
技術介紹
1、隨著深度學習和大模型技術的發展,越來越多的人開始用深度學習或大模型技術解決軟件開發場景下的代碼補全任務。
2、現有的代碼補全模型在分詞過程中,一般采用空格或者符號間隔符進行分詞得到詞表,但這種分詞方式容易出現以下問題:每個單詞占用詞表的一個位置,致使詞表的量級過于龐大,會導致模型的計算復雜度提高。
3、因此,亟需一種基于代碼命名規范與字節對編碼結合的詞表生成方法,以解決上述技術問題。
技術實現思路
1、有鑒于此,本公開提出了一種基于代碼命名規范與字節對編碼結合的詞表生成方法,以解決相關技術中存在的由于詞表的量級過于龐大,導致模型的計算復雜度提高的問題。
2、本公開第一方面實施例提出了一種基于代碼命名規范與字節對編碼結合的詞表生成方法,所述方法包括:
3、通過預設代碼命名規范對獲取的樣本代碼進行分詞,得到第一序列;所述第一序列包括多個單詞;
4、確定所述第一序列的多個單詞對;每個單詞對由所述第一序列中任意兩個相鄰的單詞組合得到的;
5、判斷所述多個單詞對是否滿足預設條件;所述預設條件是指所述多個單詞對中的每個單詞對在所述多個單詞對中的出現頻率均為預設頻率;
6、如果所述多個單詞對滿足所述預設條件,則將所述第一序列確定為目標詞表;所述目標詞表用于代碼補全模型的訓練;
7、如果所述多個單詞對不滿足
8、基于所述目標單詞對,對所述第一序列中的多個單詞進行合并,得到第二序列;所述第二序列的單詞數量小于所述第一序列的單詞數量;
9、將所述第二序列作為新的第一序列,對所述新的第一序列重復執行確定所述第一序列的多個單詞對的步驟,直至所述多個單詞對滿足所述預設條件為止。
10、在本公開實施例中,所述方法還包括:
11、通過所述目標詞表對初始模型進行訓練,得到代碼補全模型;所述代碼補全模型用于對待補全的源代碼進行代碼補全。
12、在本公開實施例中,通過預設代碼命名規范對獲取的樣本代碼進行分詞,得到第一序列,包括:
13、根據詞根,對所述樣本代碼中的每個標識符進行分詞得到至少兩個單詞;以及將所述樣本代碼中的每個非標識符作為一個單詞;其中,所述至少兩個單詞中的首個單詞的首字母小寫,以及將后續單詞的首字母大寫。
14、在本公開實施例中,確定所述第一序列的多個單詞對,包括:
15、針對所述樣本代碼中包含的多個標識符中的任意一個標識符,將所述標識符包含的至少兩個單詞中的每兩個相鄰的單詞進行組合,得到一個單詞對;
16、基于樣本代碼中每個標識符對應的至少一個單詞對,得到與所述樣本代碼對應的第一序列的多個單詞對。
17、在本公開實施例中,在判斷所述多個單詞對是否滿足預設條件之前,所述方法還包括:
18、確定所述多個單詞對中的每個單詞對在所述多個單詞對中的出現頻率。
19、在本公開實施例中,基于所述目標單詞對,對所述第一序列中的多個單詞進行合并,得到第二序列,包括:
20、從所述第一序列中的多個單詞中,確定出與所述目標單詞對對應的兩個單詞;
21、將所述第一序列中的所述兩個單詞進行合并,得到所述第二序列。
22、在本公開實施例中,將所述第一序列中的所述兩個單詞進行合并,得到所述第二序列,包括:
23、設定替換字符;所述替換字符與所述兩個單詞具有對應關系,所述第一序列中不包含所述替換字符;
24、通過所述替換字符,對所述第一序列中的合并單詞進行替換,得到所述第二序列;所述第二序列包括替換單詞以及單詞。
25、在本公開實施例中,所述預設頻率為1。
26、本公開第二方面的實施例提供了一種基于代碼命名規范與字節對編碼結合的詞表生成裝置,包括:
27、代碼分詞模塊,用于通過預設代碼命名規范對獲取的樣本代碼進行分詞,得到第一序列;所述第一序列包括多個單詞;
28、單詞對確定模塊,用于確定所述第一序列的多個單詞對;每個單詞對由所述第一序列中任意兩個相鄰的單詞組合得到的;
29、條件判斷模塊,用于判斷所述多個單詞對是否滿足預設條件;所述預設條件是指所述多個單詞對中的每個單詞對在所述多個單詞對中的出現頻率均為預設頻率;
30、目標詞表確定模塊,用于如果所述多個單詞對滿足所述預設條件,則將所述第一序列確定為目標詞表;所述目標詞表用于代碼補全模型的訓練;
31、目標單詞對篩選模塊,用于如果所述多個單詞對不滿足所述預設條件,則從所述多個單詞對中篩選出出現頻率最高的目標單詞對;
32、單詞合并模塊,用于基于所述目標單詞對,對所述第一序列中的多個單詞進行合并,得到第二序列;所述第二序列的單詞數量小于所述第一序列的單詞數量;
33、將所述第二序列作為新的第一序列,對所述新的第一序列重復執行確定所述第一序列的多個單詞對的步驟,直至所述多個單詞對滿足所述預設條件為止。
34、本公開第三方面的實施例提供了一種電子設備,該電子設備包括存儲器和處理器,所述存儲器和所述處理器之間互相通信連接,所述存儲器中存儲有計算機指令,所述處理器通過執行所述計算機指令,從而執行上述第一方面所述的基于代碼命名規范與字節對編碼結合的詞表生成方法。
35、本公開第四方面的實施例提供了一種計算機可讀存儲介質,計算機可讀存儲介質上存儲有計算機指令,所述計算機指令用于使計算機執行上述第一方面所述的基于代碼命名規范與字節對編碼結合的詞表生成方法。
36、本公開附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變的明顯,或通過本公開的實踐了解到。
本文檔來自技高網...【技術保護點】
1.一種基于代碼命名規范與字節對編碼結合的詞表生成方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求1或2所述的方法,其特征在于,通過預設代碼命名規范對獲取的樣本代碼進行分詞,得到第一序列,包括:
4.根據權利要求1或2所述的方法,其特征在于,確定所述第一序列的多個單詞對,包括:
5.根據權利要求1或2所述的方法,其特征在于,在判斷所述多個單詞對是否滿足預設條件之前,所述方法還包括:
6.根據權利要求1或2所述的方法,其特征在于,基于所述目標單詞對,對所述第一序列中的多個單詞進行合并,得到第二序列,包括:
7.根據權利要求6所述的方法,其特征在于,將所述第一序列中的所述兩個單詞進行合并,得到所述第二序列,包括:
8.根據權利要求1或2所述的方法,其特征在于,所述預設頻率為1。
9.一種基于代碼命名規范與字節對編碼結合的詞表生成裝置,其特征在于,所述裝置包括:
【技術特征摘要】
1.一種基于代碼命名規范與字節對編碼結合的詞表生成方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求1或2所述的方法,其特征在于,通過預設代碼命名規范對獲取的樣本代碼進行分詞,得到第一序列,包括:
4.根據權利要求1或2所述的方法,其特征在于,確定所述第一序列的多個單詞對,包括:
5.根據權利要求1或2所述的方法,其特征在于,在判斷所述多個單詞對是否滿...
【專利技術屬性】
技術研發人員:李戈,蔣思源,劉洋,
申請(專利權)人:北京硅心科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。