• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    融合多種語義特征的代碼摘要生成方法

    2023-02-04 05:46:20趙文玉曹步清
    中文信息學(xué)報(bào) 2023年11期
    關(guān)鍵詞:語義特征文本

    屈 薇,周 棟,趙文玉,曹步清

    (湖南科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,湖南 湘潭 411201)

    0 引言

    代碼摘要生成任務(wù)旨在實(shí)現(xiàn)全自動(dòng)化地產(chǎn)生自然語言描述源代碼的功能,有利于軟件維護(hù)和程序理解[1]。隨著軟件更新速度不斷加快,再加上開發(fā)人員重視程度不夠等原因,導(dǎo)致現(xiàn)有的代碼摘要常常存在重復(fù)或者與代碼實(shí)際內(nèi)容不匹配等問題。因此,代碼摘要成為當(dāng)前軟件工程領(lǐng)域的一個(gè)研究熱點(diǎn)[2]。

    早期的代碼摘要生成研究大多采用信息檢索的方法[3-4],通過檢索相似代碼片段生成摘要,但該類方法缺乏通用性,效果并不理想。近年來,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,大多數(shù)研究者將該任務(wù)視為序列生成任務(wù)[5-11],通常依賴于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)結(jié)構(gòu)。

    眾所周知,普通的源代碼片段通常包含數(shù)百個(gè)標(biāo)記,而基于RNN結(jié)構(gòu)的方法無法很好地建模序列的長距離依賴關(guān)系,成為限制該類模型性能的瓶頸。最近,Ahamd等人[12]嘗試采用增強(qiáng)的Transformer結(jié)構(gòu)捕獲源代碼標(biāo)記的長距離依賴關(guān)系和語義特征,在很大程度上超過了之前的基于RNN的方法。與RNN結(jié)構(gòu)相比,Transformer具有與全連接層相同的最大路徑長度,更適合建模長距離依賴關(guān)系。

    然而,現(xiàn)有的基于Transformer的方法[12-14]大多都只考慮源代碼的文本和結(jié)構(gòu)化語義特征,忽略了其他與源代碼密切相關(guān)的外部知識(shí)語義特征。例如在軟件開發(fā)過程中,外部應(yīng)用程序編程接口(Application Programming Interface,API)文檔是一種非常重要的資源,包含豐富的方法和接口的功能描述,可能有利于代碼摘要生成。如參考在線API文檔(1)https://docs.oracle.com/javase/7/docs/api/java/io/OutputStreamWriter.html中實(shí)現(xiàn)字符串小寫轉(zhuǎn)換接口的描述“converts all of the characters in this String to lower case”有利于生成可讀性更高的摘要。大量的研究[11,15-18]也表明,學(xué)習(xí)源代碼的外部知識(shí)的語義信息,可以使模型更好地理解代碼片段,生成可讀性更好的摘要。例如,有研究[11]提出捕獲 API名稱與摘要之間的關(guān)聯(lián)關(guān)系,能夠有效提升生成摘要的質(zhì)量。相比之下,API文檔基于自然語言,且包含了源代碼更多的功能細(xì)節(jié)描述,應(yīng)該能夠?yàn)榇a摘要生成任務(wù)提供更有效的信息。

    另一方面,代碼摘要任務(wù)的輸入序列可能很長, Transformer結(jié)構(gòu)的自注意力模塊需要計(jì)算所有相似度分?jǐn)?shù),存在計(jì)算成本和內(nèi)存占用量大的問題,亟待改進(jìn)。

    基于以上原因,本文提出一種改進(jìn)的Transformer多編碼器代碼摘要生成方法(如圖1所示)。通過構(gòu)建三個(gè)獨(dú)立的編碼器充分學(xué)習(xí)源代碼的多種語義特征(文本、結(jié)構(gòu)和外部API文檔),解決該類方法中忽略源代碼外部信息的問題。同時(shí),針對Transformer結(jié)構(gòu)的性能問題,受到谷歌研究人員的啟發(fā)[19],使用非參數(shù)化傅里葉變換代替復(fù)雜的自注意力層,通過線性變換降低編碼器的計(jì)算時(shí)間和內(nèi)存占用量。最后,將三個(gè)編碼器輸出的初始語義特征通過交叉注意力塊[20]融合到一個(gè)特征空間中,作為解碼器的輸入,生成對應(yīng)的摘要。

    本文的貢獻(xiàn)總結(jié)如下:

    (1) 基于Transformer結(jié)構(gòu),引入外部API文檔語義特征,構(gòu)建三個(gè)獨(dú)立編碼器[即文本、抽象語法樹(Abstract Syntax Tree,AST)結(jié)構(gòu)和外部API文檔],給代碼摘要任務(wù)提供足夠的語義信息,提高生成摘要的準(zhǔn)確性和可讀性。

    (2) 為了緩解Transformer的效率問題,采用非參數(shù)化的傅里葉變換代替編碼器中核心的自注意力層,通過線性變換降低編碼器的計(jì)算時(shí)間和內(nèi)存占用量。

    (3) 將以上兩點(diǎn)結(jié)合并提出融合多種語義特征的代碼摘要生成方法,在公開可用的數(shù)據(jù)集上進(jìn)行相關(guān)對比實(shí)驗(yàn),證明了本文提出方法的有效性。

    1 相關(guān)工作

    早期的代碼摘要方法[3-4]主要基于信息檢索技術(shù),隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,最近的研究工作將其建模成序列生成任務(wù)[5-11]。同時(shí),為了更好地捕獲遠(yuǎn)距離特征,注意力機(jī)制得到廣泛的應(yīng)用。Iyer等人[5]首次提出聯(lián)合注意力機(jī)制的RNN網(wǎng)絡(luò),為C#代碼片段和SQL查詢語句生成摘要描述。此類方法的主要區(qū)別是模型的輸入。例如,Loyola等人[21]將源代碼的文本序列輸入到RNN模型生成摘要。2018年Hu等人[11]分別將源代碼的文本和API名稱序列作為輸入,對應(yīng)兩個(gè)摘要任務(wù),利用捕獲的API名稱和摘要的映射關(guān)系增強(qiáng)代碼摘要任務(wù)。對于結(jié)構(gòu)性強(qiáng)的編程語言而言,結(jié)構(gòu)化信息顯得尤為重要。因此LeClair等人[8]和Wan等人[9]都相繼提出使用雙編碼器分別對源代碼的文本和AST結(jié)構(gòu)序列進(jìn)行編碼,然后使用混合注意力層將兩個(gè)編碼器的輸出結(jié)合并輸入到解碼器。

    眾所周知,基于RNN結(jié)構(gòu)的方法在編碼長代碼序列時(shí)可能會(huì)遇到瓶頸,影響方法性能。而Transformer在許多人工智能領(lǐng)域取得了巨大的成功,自然而言也吸引了軟件領(lǐng)域研究人員的興趣。2020年,Ahmad等人[12]探索了基于Transformer結(jié)構(gòu)的代碼摘要生成方法,提出具有復(fù)制注意力和相對位置編碼的增強(qiáng)版Transformer方法。之后,多項(xiàng)研究[13-14]都利用Transformer結(jié)構(gòu)建模代碼摘要任務(wù),其性能在很大程度上超過了先前基于RNN的方法。

    2 方法實(shí)現(xiàn)

    本文首先針對現(xiàn)有的基于Transformer結(jié)構(gòu)的代碼摘要生成方法只考慮源代碼的文本和結(jié)構(gòu)化語義特征,而忽略了與之密切相關(guān)的API文檔等外部語義特征的這一問題,通過在Transformer中使用三個(gè)編碼器,充分學(xué)習(xí)源代碼的多種語義特征(即文本、AST結(jié)構(gòu)和外部API文檔)。同時(shí)為了緩解Transformer編碼器的效率問題,我們采用傅里葉變換替代編碼器中核心的自注意力層,降低編碼器的計(jì)算復(fù)雜度和內(nèi)存占用量,并聯(lián)合交叉注意力網(wǎng)絡(luò)[20]將編碼器初步提取的三種語義特征融合并輸出到解碼器。

    如圖1所示,本文模型主要由解析器(Parser)、編碼器、融合組件和解碼器組成。

    2.1 問題定義

    假設(shè)X={x1,…,x|X|}和Y={y1,…,y|Y|}分別表示處理后的源代碼片段和自然語言組成的摘要序列,xi和yi分別表示X和Y序列中的單詞,|·|表示序列的長度。那么代碼摘要任務(wù)可以形式化為: 給定源語言X生成自然語言表示的摘要句子Y。實(shí)際上,代碼摘要的任務(wù)是學(xué)習(xí)一個(gè)摘要生成器f,給定源代碼片段X,生成其對應(yīng)的摘要序列Y,如式(1)所示。

    f:X→Y

    (1)

    2.2 解析器

    本節(jié)主要描述源代碼片段的處理過程,分別得到AST 編碼器、文本編碼器和API 文檔編碼器的輸入序列。

    首先使用Eclipse的JDT工具生成源代碼片段的AST,先序遍歷后采用文獻(xiàn)[14]提出的層次分割方式,得到一組包含全局和局部結(jié)構(gòu)的AST子樹集,將其作為AST 編碼器的輸入序列。

    由于源代碼中大量的標(biāo)識(shí)符均為稀有字符, 且大部分標(biāo)識(shí)符都是根據(jù)駝峰命名法進(jìn)行命名的,名字通常由多個(gè)單詞拼接而成,包含源代碼功能的關(guān)鍵信息。因此,基于駝峰命名法對其進(jìn)行分割,將全部轉(zhuǎn)換成小寫(如“toLowerCase”分割成“to”“l(fā)ower”“case”)得到文本編碼器的輸入序列。

    最后,為了提取源代碼片段對應(yīng)的API文檔信息,受Hu 等人[6,11]啟發(fā),利用從AST序列中提取的API名稱從在線參考文檔中檢索出對應(yīng)的功能描述信息。對于重載的方法根據(jù)方法中參數(shù)的個(gè)數(shù),確定最合適的API文檔描述。其次,對于參考文檔中出現(xiàn)的多個(gè)相同的API名稱,且描述內(nèi)容不同的情況下,本文選取頻率使用最高的API名稱對應(yīng)的描述。實(shí)驗(yàn)中發(fā)現(xiàn),隨著源代碼中使用的API數(shù)量增加,API文檔的貢獻(xiàn)會(huì)相應(yīng)減少。我們分析主要原因可能是: 輸入較多的API文檔時(shí),會(huì)向模型提供一個(gè)長文本。然而,摘要和API文檔間通用詞的數(shù)量非常少,導(dǎo)致引入大量的噪聲。因此,為了在利用API文檔信息的同時(shí)減少其引入的噪聲,我們設(shè)計(jì)了一個(gè)基于BM25算法的腳本,檢索出與源代碼片段(當(dāng)API名稱超過3個(gè))最相關(guān)的3個(gè)API組成API 文檔編碼器的輸入序列。

    2.3 編碼器

    本節(jié)將詳細(xì)介紹我們構(gòu)建的文本編碼器、AST Encoder和API Encoder三個(gè)獨(dú)立編碼器。

    2.3.1 文本編碼器和API 文檔編碼器

    源代碼片段的文本信息是給代碼摘要任務(wù)提供詞法語義特征的原始數(shù)據(jù)源,包含大量描述代碼功能的關(guān)鍵信息,得到眾多研究人員的關(guān)注。與文獻(xiàn)[12]中基于Transformer結(jié)構(gòu)的源代碼文本編碼器不同的是,如圖2所示,與標(biāo)準(zhǔn)的Transformer編碼器相比,我們使用傅里葉變換替代了自注意力層,通過簡單的線性變換降低編碼器的計(jì)算成本和內(nèi)存占用量。那么,輸入序列x的傅里葉變換可以用式(2)計(jì)算:

    圖2 文本編碼器和API 文檔編碼器結(jié)構(gòu)

    (2)

    由于傅里葉變換具有卷積特性(即頻域上的乘法相當(dāng)于時(shí)域上的卷積),首先把輸入的特征向量變換到頻域,再輸入到前饋層進(jìn)行乘法計(jì)算,實(shí)質(zhì)上是對輸入進(jìn)行了一個(gè)大卷積核的卷積。考慮到傅里葉變換的對偶性(建立了時(shí)域序列與頻域序列之間完美的映射關(guān)系),所以多個(gè)編碼器疊加之后,使輸入序列在頻域與時(shí)域間來回變換,反復(fù)進(jìn)行卷積與乘法操作,因此能夠充分融合序列中每個(gè)標(biāo)記的信息。同時(shí),傅里葉變換沒有學(xué)習(xí)參數(shù),所以能夠降低編碼器的計(jì)算成本和內(nèi)存占用量。

    實(shí)驗(yàn)中我們發(fā)現(xiàn),如果將編碼器中的自注意力層全部替換成傅里葉變換層,雖然編碼器的參數(shù)減少到原來的2/5,但是精度會(huì)有損失。因此,我們保留了編碼器的最后兩個(gè)自注意力層。如圖2所示,將通過堆疊的傅里葉變換層得到的特征向量輸入到兩個(gè)自注意力層中,得到最終的源代碼的文本語義特征hCode。

    由于API文檔由自然語言組成,因此也采用和文本編碼器結(jié)構(gòu)相同的編碼器進(jìn)行編碼,得到初步提取的API文檔語義特征hAPI。

    2.3.2 AST 編碼器

    對于結(jié)構(gòu)性強(qiáng)的源代碼來說,其AST包含的語法和結(jié)構(gòu)信息,與文本語義信息同樣重要,這在多個(gè)研究[8-11,14]中得到廣泛應(yīng)用,均取得了不錯(cuò)的效果。然而, Transformer對于由結(jié)構(gòu)展開的非線性關(guān)系(即AST)表示能力差,編碼AST并不能得到期望結(jié)果。因此,本文依照源代碼結(jié)構(gòu)分層和嵌套的特點(diǎn),采用遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RvNN)[14]自底向上遞歸訪問AST,提取源代碼的全局和局部結(jié)構(gòu)語義特征,如圖3所示。

    圖3 RvNN網(wǎng)絡(luò)聚合過程

    具體來說,第一階段采用RvNN和最大池化層對分割后的每個(gè)子樹進(jìn)行編碼。假設(shè)一個(gè)AST子樹Tt被定義為(Nt,Et),其中Nt是節(jié)點(diǎn)集,Et是節(jié)點(diǎn)之間的邊集。如圖3所示,利用RvNN對Tt進(jìn)行正向傳播如式(3)所示。

    (3)

    最后,通過最大池化操作將所有節(jié)點(diǎn)聚合,作為子樹Tt最終的特征向量st如式(4)所示。

    (4)

    第一階段得到AST所有子樹的聚合向量后,采用另一組不同參數(shù)的RvNN進(jìn)行第二階段學(xué)習(xí),提取所有子樹之間的層次依賴關(guān)系,學(xué)習(xí)過程與第一階段類似。最終,得到基于源代碼片段X的AST的向量表示hAST。

    在實(shí)驗(yàn)初期,我們嘗試將三部分信息拼接后輸入到同一個(gè)Transformer編碼器中,但模型的預(yù)測性能并沒有得到改善。我們分析這一結(jié)果可能是由以下兩點(diǎn)原因?qū)е碌? ①拼接后的輸入序列長度遠(yuǎn)超于摘要序列的長度,更長的輸入序列相應(yīng)的也引入更多的噪聲,影響模型的預(yù)測性能。②標(biāo)準(zhǔn)的Transformer結(jié)構(gòu)對于AST序列并不友好,可能是因?yàn)轫樞蛱卣鰽ST不適合用非順序結(jié)構(gòu)的Transformer編碼器提取隱式結(jié)構(gòu)信息,這一猜想也得到了部分研究人員[12,14]的證實(shí)。因此,在本文中我們采用三個(gè)獨(dú)立的編碼器分別提取不同的語義特征,再使用交叉注意力層[20]三個(gè)語義特征進(jìn)行融合。未來的工作中,我們將探索使用其他類型的編碼器進(jìn)行類似研究。

    2.4 融合組件

    為了進(jìn)一步學(xué)習(xí)源代碼片段的多種語義特征,本文采用交叉注意力塊(Cross attention blocks)[20]融合編碼器初步提取的三種語義特征。交叉注意力允許一種語義特征接收與另一種語義特征之間關(guān)聯(lián)的細(xì)粒度關(guān)系。參照細(xì)粒度關(guān)系,兩種不同語義特征應(yīng)該關(guān)注其互相對應(yīng)的部分(例如,實(shí)現(xiàn)大寫轉(zhuǎn)換的源代碼片段關(guān)注的應(yīng)該是API 文檔中“toUpperCase”的描述信息),這意味著在交叉注意力模塊中,兩種不同的語義特征相互補(bǔ)充和增強(qiáng),反之亦然。融合組件如圖4所示。

    圖4 融合組件

    定義Querys為Qe=hCodeWQe,Keys為Ka=hAPIWKa和Values為Va=hAPIWVa,同時(shí)WQc∈m×dmodel,WKa∈n×dmodel,WVa∈n×dmodel表示權(quán)重,m、n和dmodel分別表示輸入序列的長度和維度。那么,利用編碼器初步提取API文檔語義特征增強(qiáng)文本語義特征用式(5)表示(為了方便表示,用e、p和a分別表示文本、AST結(jié)構(gòu)和API文檔)。

    (5)

    其中,CAa→e表示利用特征a增強(qiáng)特征e的單頭交叉注意力計(jì)算。同樣的,我們也能夠得到利用特征p增強(qiáng)特征e的單頭交叉注意力,只需要把Values和Keys的來源替換成特征p。

    如式(5)所示,Querys來源于目標(biāo)語義特征e,而Keys和Values來自其他語義特征(a或p)。當(dāng)Cross attention堆疊為D層時(shí),第1層到第D層的前饋計(jì)算如式(6)(利用a增強(qiáng)e)所示。

    (6)

    為了捕獲更深層次的三種語義聚合后的內(nèi)部特征,利用線性層將交叉注意力聚合得到的兩個(gè)特征向量拼接后進(jìn)行降維,得到最終包含豐富代碼語義的特征向量。

    2.5 解碼器

    (7)

    (8)

    3 實(shí)驗(yàn)

    本文提出的方法在公開可用的數(shù)據(jù)集上進(jìn)行了充分實(shí)驗(yàn),在第3.1節(jié)介紹實(shí)驗(yàn)需要的數(shù)據(jù)集,在第3.2節(jié)介紹實(shí)驗(yàn)中參數(shù)設(shè)置,在第3.3節(jié)中介紹基線和評價(jià)指標(biāo),在第3.4節(jié)進(jìn)行實(shí)驗(yàn),并對結(jié)果進(jìn)行分析。

    3.1 數(shù)據(jù)集

    本文使用Github上共享的真實(shí)數(shù)據(jù)集(2)https://github.com/wasiahmad/NeuralCodeSum/tree/ma-ster/data/java進(jìn)行驗(yàn)證,該數(shù)據(jù)集從2015年至2016年期間Github平臺(tái)上評分較高的項(xiàng)目中提取。每個(gè)數(shù)據(jù)樣本組成〈源代碼片段,摘要〉數(shù)據(jù)對。該數(shù)據(jù)集的詳細(xì)統(tǒng)計(jì)數(shù)據(jù)如表1所示。

    表1 實(shí)驗(yàn)數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)

    3.2 實(shí)驗(yàn)設(shè)置

    本文提出方法中超參數(shù)的設(shè)置如下,基于源代碼的三種語義表征的初始維度都設(shè)置為512,訓(xùn)練和測試的批大小分別設(shè)置為32和64。我們訓(xùn)練的最高次數(shù)設(shè)置為150次,如果連續(xù)20次迭代的驗(yàn)證性能沒有得到改善,則提前結(jié)束訓(xùn)練。優(yōu)化器使用Adam優(yōu)化器[22]訓(xùn)練模型,丟失率和初始學(xué)習(xí)率分別設(shè)置為0.2和10-4。

    3.3 評價(jià)指標(biāo)和基線方法

    本文使用代碼摘要任務(wù)中常用的BLEU[23]、METEOR[24]和ROUGE-L[25]評價(jià)指標(biāo)作為本次實(shí)驗(yàn)的評估方法,并使用五種基線方法驗(yàn)證本文提出方法的有效性。各基線方法詳細(xì)信息如下:

    CODE-NNIyer等人[5]首次提出聯(lián)合注意力機(jī)制的長短時(shí)記憶網(wǎng)絡(luò)(Long Short Term Memory,LSTM)網(wǎng)絡(luò)為C#代碼片段和SQL查詢語句生成摘要描述。

    Dual modelWei等人[7]將代碼生成和摘要生成視為對偶任務(wù),構(gòu)建兩個(gè)獨(dú)立的聯(lián)合注意力機(jī)制的Seq2Seq網(wǎng)絡(luò),利用對偶約束在損失函數(shù)中加入正則化項(xiàng)進(jìn)行聯(lián)合訓(xùn)練,同時(shí)提高兩個(gè)任務(wù)的性能。

    Co-ConvGNNs該方法[8]在學(xué)習(xí)源代碼文本信息的同時(shí)引入額外的兩層卷積圖神經(jīng)網(wǎng)絡(luò) (Convolutional Graph Neural Networks ,ConvGNNs)對源代碼片段的AST結(jié)構(gòu)進(jìn)行編碼,并使用密集層生成摘要序列。

    TransAhmad等人[12]基于Transformer模型實(shí)現(xiàn)對源代碼輸入序列標(biāo)記的并行編碼,并通過引入復(fù)制機(jī)制和相對位置優(yōu)化模型,與之前基于RNN方法相比,性能得到較大提升。

    Code-Trans該方法[13]提出一種基于Transformer結(jié)構(gòu)的多語言(Java、Python等)模型,通過將源代碼標(biāo)記鏈接到 AST 節(jié)點(diǎn)并使用節(jié)點(diǎn)之間的成對距離(例如,最短路徑,PPR)表示AST。

    3.4 實(shí)驗(yàn)結(jié)果和分析

    我們將本文提出方法的性能與五種基線方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表2所示(部分基線方法的結(jié)果報(bào)告來自文獻(xiàn)[8])。我們可以觀察到,本文所提方法在數(shù)據(jù)集上優(yōu)于所有基線方法?;€中,CODE-NN性能最低,與之相比本文方法的BLEU等三個(gè)評價(jià)指標(biāo)得分分別高17.99%、15.01%和14.61%。基線方法中,Trans在數(shù)據(jù)集上表現(xiàn)最佳,然而本文所提方法的BLEU評價(jià)指標(biāo)得分從Trans的44.34%、25.95%和54.25%提升到45.59%、27.62%和55.71%,表明在Trans中引入AST和API語義特征是有效的。而Dual model和Co-ConvGNN基線方法的結(jié)果表明,ConvGNNs層可能在建模源代碼結(jié)構(gòu)信息方面并沒有明顯的優(yōu)勢。

    表2 與基線方法進(jìn)行比較 (單位:%)

    其次,為了分析摘要任務(wù)中Transformer結(jié)構(gòu)的優(yōu)勢,我們將基線方法分為兩類(參照模型結(jié)構(gòu)劃分為基于RNN和基于Transformer),并分別選擇兩類中最好的且僅利用源代碼文本信息的基線Dual model和Trans。結(jié)果表明,與基于RNN的Dual model相比,Trans表現(xiàn)更好。這表明Transformer結(jié)構(gòu)能夠更好地建模代碼片段標(biāo)記的長距離依賴關(guān)系。但同樣基于Transformer結(jié)構(gòu)的Code-Trans表現(xiàn)較差,原因可能是該方法的設(shè)計(jì)目的是基于函數(shù)體預(yù)測方法名稱任務(wù),作用于摘要生成任務(wù)存在限制。

    綜上所述,本文提出的基于Transformer結(jié)構(gòu)的多編碼器(文本、AST和外部API)方法,能夠更全面地學(xué)習(xí)代碼的語義特征,提高生成摘要的可讀性和準(zhǔn)確性。

    3.5 消融實(shí)驗(yàn)

    3.5.1 AST對性能的影響

    為了研究AST結(jié)構(gòu)特征對方法性能的影響,本文設(shè)計(jì)了一組消融實(shí)驗(yàn)。結(jié)果如表3所示。其中,.*表示采用基線方法[12]進(jìn)行實(shí)驗(yàn),.&.連接方法輸入序列(排在首位的為融合的目標(biāo)序列),在基線方法[12]中引入 AST,BLEU指標(biāo)得分反而下降0.77。分析產(chǎn)生這個(gè)結(jié)果的原因可能是 Transformer結(jié)構(gòu)并不適合捕獲非順序結(jié)構(gòu)的AST。而本文使用RvNN建模AST,與基線相比,BLEU指標(biāo)得分提升了1.95。為了進(jìn)一步研究學(xué)習(xí)全局結(jié)構(gòu)對方法性能的影響,設(shè)計(jì)了Code&AST-&API方法,利用拼接替換第二階段聚合所有子樹向量的遞歸過程。結(jié)果表明,與Code&AST&API相比,性能有所下降,表明學(xué)習(xí)AST的全局結(jié)構(gòu)信息是有效的。另外,表3中還發(fā)現(xiàn)三種語義特征融合過程中,將源代碼的文本序列作為目標(biāo)序列,使用 AST 和 API文檔增強(qiáng)文本序列,比選擇其他兩種序列作為目標(biāo)序列在實(shí)驗(yàn)中性能更好。

    表3 不同編碼器的消融實(shí)驗(yàn)結(jié)果 (單位:%)

    3.5.2 API文檔對性能的影響

    為了驗(yàn)證外部資源API文檔語義特征對摘要任務(wù)性能的影響,在設(shè)計(jì)的消融實(shí)驗(yàn)中,首先將提取的所有API文檔輸入到基線方法[12]中,表3和表4結(jié)果顯示,性能并沒有提升,與預(yù)期結(jié)果明顯不符。如表4所示,我們通過改變API文檔數(shù)量對性能的影響來分析原因,可以發(fā)現(xiàn)隨著數(shù)量增加,性能得到提升。當(dāng)API 文檔數(shù)量為3時(shí),利用BM25算法(處理后的方法名作為查詢詞)對提取的API文檔進(jìn)行相關(guān)性排序,截取出最相關(guān)的文檔描述信息增強(qiáng)摘要任務(wù),得到最優(yōu)的性能,而未排序的方法unsorted-3僅僅只是優(yōu)于基線,分析原因可能是因?yàn)殡S著輸入的API文檔數(shù)量增加,API文檔序列的長度遠(yuǎn)超過摘要的長度,引入的噪聲也就越大。因此,引入外部知識(shí)API文檔是否有效的關(guān)鍵是檢索出合適的與源代碼片段相關(guān)的有限個(gè)API文檔。

    表4 API文檔數(shù)量的消融實(shí)驗(yàn)結(jié)果 (單位:%)

    3.5.3 傅里葉變換層(Fourier)對性能的影響

    我們通過改變編碼器中傅里葉變換層的數(shù)量來驗(yàn)證傅里葉變換對方法性能以及參數(shù)的影響。為了使結(jié)果更明顯,該組實(shí)驗(yàn)方法采用基線模型Trans[12](僅包含文本編碼器,自注意力層設(shè)置為6層)。為了驗(yàn)證傅里葉變換的有效性,我們通過實(shí)驗(yàn)獲得了表5中方法的訓(xùn)練時(shí)間,可以觀察到,由于傅里葉變換層不包含可學(xué)習(xí)參數(shù),在部分精度損失的基礎(chǔ)上,與基線方法Trans相比,Fourier方法中編碼器的參數(shù)數(shù)量減少了25.2兆,每個(gè)epoch的平均訓(xùn)練時(shí)間(所有的訓(xùn)練數(shù)據(jù)樣本送入模型中,完成了一次前向計(jì)算+反向傳播的過程所需的平均時(shí)間)減少了115.53s,由此可見,編碼器中利用傅里葉變換層替換自注意力層,能夠降低模型的計(jì)算成本和內(nèi)存占用量。為了找到性能和訓(xùn)練效率之間的平衡點(diǎn),實(shí)驗(yàn)中通過改變編碼器中傅里葉變換層的數(shù)量發(fā)現(xiàn),保留最后兩個(gè)自注意力層(表5中方法Attn+Fourier4),模型在計(jì)算時(shí)間、內(nèi)存占用和準(zhǔn)確性之間提供了良好的折衷。理論上而言,自注意力是一種自相關(guān)操作,計(jì)算序列標(biāo)記的自相關(guān)性,傅里葉變換通過計(jì)算卷積后再做乘積,也能進(jìn)行自相關(guān)操作,充分融合輸入序列中各個(gè)標(biāo)記的信息。

    表5 傅里葉變換層數(shù)量的消融實(shí)驗(yàn)結(jié)果

    注: Trans方法表示編碼器核心組件為自注意力層的基線方法,編碼器中自注意力層設(shè)置為6層。Fourier方法表示將Trans中的自注意力層全部替換為傅里葉變換Attn+Fourier5和Attn+Fourier4方法分別表示將Trans中的前5和前4個(gè)自注意力層替換成傅里葉變換層我們首次使用傅里葉變換替換自注意力層,并應(yīng)用在代碼摘要生成任務(wù)中,取得了較好的效果。同時(shí)我們也注意到,還有一些工作使用改進(jìn)自注意力機(jī)制來提升效率,解決長文本依賴問題[27-28]。因?yàn)檫@些方法并未特別應(yīng)用于代碼摘要中,因此本文并未對其進(jìn)行比較。在未來工作中,我們將進(jìn)一步探索其他有效的自注意力機(jī)制改進(jìn)方法在代碼摘要中的應(yīng)用,希望能夠進(jìn)一步提升摘要任務(wù)的性能和降低模型訓(xùn)練的成本。

    除此之外,我們還進(jìn)行了一項(xiàng)消融研究,評估模型大小和和層數(shù)對性能的影響。從實(shí)驗(yàn)中發(fā)現(xiàn),隨著輸入序列的維數(shù)和模型層數(shù)的增加,各項(xiàng)指標(biāo)得到了不同程度的提高。例如,本文中三種輸入的維度從初始的512增加到 768,BLEU、METEOR 和 ROUGE-L 指標(biāo)分別增加了 1.2、1.3和 0.8。

    3.6 生成摘要質(zhì)量分析

    源代碼和使用自然語言描述的摘要序列之間的語義差距是生成代碼摘要的一個(gè)主要挑戰(zhàn),捕獲代碼中豐富的語義信息成為該任務(wù)的關(guān)鍵步驟。本文提出的基于Transformer的方法,將該任務(wù)建模為生成任務(wù),搭建源代碼和摘要之間的橋梁,使模型的魯棒性更強(qiáng)。在表6中,本文與基線方法分別生成不同長度的摘要序列進(jìn)行對比, 以此驗(yàn)證本文提出方法的有效性。此外,我們觀察到,當(dāng)使用 API 文檔語義特征時(shí),在API文檔中出現(xiàn)的單詞能夠提升生成摘要的可讀性。

    表6 本文提出的方法與部分基線對比生成代碼摘要示例

    4 總結(jié)

    現(xiàn)有的基于Transformer結(jié)構(gòu)的代碼摘要自動(dòng)生成方法,大都只編碼源代碼的文本和結(jié)構(gòu)化語義特征,忽略了與其緊密相關(guān)的外部API文檔語義特征。針對這一問題,本文基于Transformer結(jié)構(gòu),構(gòu)建多個(gè)編碼器,分別學(xué)習(xí)源代碼的文本和結(jié)構(gòu)化語義特征,同時(shí)融入外部API文檔語義特征,給代碼摘要任務(wù)提供足夠的語義信息,并采用傅里葉變換代替編碼器中核心的自注意力層,通過線性變換降低編碼器中計(jì)算的成本和內(nèi)存占用量。實(shí)驗(yàn)結(jié)果表明,本文提出方法的性能優(yōu)于基線。在未來的工作中,我們擬開展以下三方面的研究: ①進(jìn)一步處理Python數(shù)據(jù)集中對應(yīng)API文檔信息以及引入源代碼其他語義特征,驗(yàn)證本文提出方法的有效性;②探索其他語義特征提取和交互的方法,充分學(xué)習(xí)源代碼中豐富的語義特征;③嘗試其他有效的自注意力機(jī)制改進(jìn)方法在代碼摘要任務(wù)中的應(yīng)用,希望能夠在進(jìn)一步提升該任務(wù)的性能的同時(shí)降低模型訓(xùn)練成本。

    猜你喜歡
    語義特征文本
    語言與語義
    如何表達(dá)“特征”
    在808DA上文本顯示的改善
    不忠誠的四個(gè)特征
    基于doc2vec和TF-IDF的相似文本識(shí)別
    電子制作(2018年18期)2018-11-14 01:48:06
    抓住特征巧觀察
    “上”與“下”語義的不對稱性及其認(rèn)知闡釋
    文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
    認(rèn)知范疇模糊與語義模糊
    如何快速走進(jìn)文本
    男女下面进入的视频免费午夜| 亚洲av熟女| 神马国产精品三级电影在线观看| 午夜视频国产福利| 中文字幕精品亚洲无线码一区| 日韩欧美免费精品| 久久久成人免费电影| 日本黄大片高清| 中文资源天堂在线| 久久国产精品人妻蜜桃| 老司机午夜福利在线观看视频| 夜夜爽天天搞| 国产成人福利小说| 午夜a级毛片| 熟妇人妻久久中文字幕3abv| 人妻久久中文字幕网| 可以在线观看的亚洲视频| 久久久久久久精品吃奶| 床上黄色一级片| 色在线成人网| 免费无遮挡裸体视频| 99热这里只有是精品50| 老司机福利观看| 久久天躁狠狠躁夜夜2o2o| 久久精品国产亚洲av香蕉五月| 国产一区二区三区视频了| 无限看片的www在线观看| 国产综合懂色| 亚洲精品久久国产高清桃花| 国产一区二区激情短视频| 亚洲欧美日韩无卡精品| 日本成人三级电影网站| 天堂av国产一区二区熟女人妻| 国产精品久久久久久久久免 | 午夜精品一区二区三区免费看| 无人区码免费观看不卡| 欧美午夜高清在线| 一区二区三区高清视频在线| 亚洲avbb在线观看| 亚洲成a人片在线一区二区| 国产亚洲精品久久久com| 偷拍熟女少妇极品色| 中国美女看黄片| 老汉色∧v一级毛片| 91麻豆av在线| 国产91精品成人一区二区三区| 一区二区三区国产精品乱码| 亚洲精品影视一区二区三区av| av在线蜜桃| 欧美黄色淫秽网站| 久久中文看片网| 人人妻人人澡欧美一区二区| 少妇的丰满在线观看| 亚洲精品久久国产高清桃花| 岛国在线免费视频观看| 俄罗斯特黄特色一大片| 岛国在线免费视频观看| 乱人视频在线观看| 久久精品国产亚洲av香蕉五月| 色哟哟哟哟哟哟| 免费看光身美女| 国产在线精品亚洲第一网站| 亚洲成人久久爱视频| 91久久精品国产一区二区成人 | 国产野战对白在线观看| 精品福利观看| 久久人妻av系列| 欧美色欧美亚洲另类二区| 亚洲精华国产精华精| a级毛片a级免费在线| 国产私拍福利视频在线观看| 国产一区二区三区视频了| 国产伦一二天堂av在线观看| 久久伊人香网站| 熟女人妻精品中文字幕| 亚洲五月天丁香| 成人特级av手机在线观看| 国产一区二区在线观看日韩 | 午夜福利在线在线| av福利片在线观看| 脱女人内裤的视频| 中出人妻视频一区二区| 成年人黄色毛片网站| 天美传媒精品一区二区| 久久中文看片网| 欧美日本亚洲视频在线播放| 在线观看免费视频日本深夜| 麻豆一二三区av精品| 亚洲男人的天堂狠狠| 熟女人妻精品中文字幕| 女人十人毛片免费观看3o分钟| 综合色av麻豆| 久久精品影院6| 久久婷婷人人爽人人干人人爱| 亚洲美女黄片视频| 最好的美女福利视频网| 又粗又爽又猛毛片免费看| 精品国产亚洲在线| av天堂中文字幕网| 内射极品少妇av片p| 一级毛片高清免费大全| 怎么达到女性高潮| 国产高清videossex| 成年免费大片在线观看| 午夜福利视频1000在线观看| 欧美zozozo另类| 在线观看美女被高潮喷水网站 | 国产伦在线观看视频一区| 亚洲av中文字字幕乱码综合| 国产高清三级在线| 久久人妻av系列| 亚洲精品乱码久久久v下载方式 | 欧美最新免费一区二区三区 | 麻豆成人午夜福利视频| 亚洲精华国产精华精| 一区二区三区免费毛片| 女人高潮潮喷娇喘18禁视频| 一区福利在线观看| 亚洲精品色激情综合| 久久久久久久午夜电影| 制服丝袜大香蕉在线| 亚洲精品久久国产高清桃花| 亚洲精品影视一区二区三区av| 午夜福利免费观看在线| 亚洲内射少妇av| 久久精品国产清高在天天线| 3wmmmm亚洲av在线观看| 99国产极品粉嫩在线观看| 国产精品综合久久久久久久免费| 在线观看免费视频日本深夜| 精品不卡国产一区二区三区| 欧美激情久久久久久爽电影| 欧美日韩瑟瑟在线播放| 无限看片的www在线观看| 亚洲av中文字字幕乱码综合| 亚洲在线自拍视频| 国产成人a区在线观看| 亚洲av中文字字幕乱码综合| 成人高潮视频无遮挡免费网站| 999久久久精品免费观看国产| 亚洲精品在线美女| 欧美乱色亚洲激情| 久久久久久久久中文| 欧美日本视频| 免费观看精品视频网站| 亚洲av成人精品一区久久| 精品久久久久久久久久久久久| 亚洲av电影不卡..在线观看| 在线看三级毛片| 亚洲人与动物交配视频| 青草久久国产| 中亚洲国语对白在线视频| 18禁美女被吸乳视频| 极品教师在线免费播放| 亚洲国产欧美人成| 丰满人妻一区二区三区视频av | 国产高清激情床上av| 婷婷精品国产亚洲av在线| ponron亚洲| 国产一区二区三区视频了| 老汉色∧v一级毛片| 熟女电影av网| 成年女人看的毛片在线观看| 又紧又爽又黄一区二区| 国产精品国产高清国产av| 又黄又粗又硬又大视频| 91在线观看av| 看黄色毛片网站| 看免费av毛片| 国产成人a区在线观看| 男女那种视频在线观看| av黄色大香蕉| 黄色丝袜av网址大全| 欧美极品一区二区三区四区| 91麻豆av在线| 欧美成人免费av一区二区三区| 国产精品亚洲av一区麻豆| 夜夜夜夜夜久久久久| 中文字幕精品亚洲无线码一区| 国产真实乱freesex| 午夜精品久久久久久毛片777| 久9热在线精品视频| 国产亚洲精品久久久com| 亚洲精品久久国产高清桃花| 母亲3免费完整高清在线观看| 免费搜索国产男女视频| 久久6这里有精品| 女人十人毛片免费观看3o分钟| а√天堂www在线а√下载| 制服丝袜大香蕉在线| 国产伦人伦偷精品视频| 日本a在线网址| 女人十人毛片免费观看3o分钟| 51午夜福利影视在线观看| 国内毛片毛片毛片毛片毛片| 午夜免费激情av| 在线观看免费午夜福利视频| 亚洲成av人片免费观看| 一级作爱视频免费观看| 国产欧美日韩一区二区精品| 麻豆成人午夜福利视频| 国产成人aa在线观看| 欧美3d第一页| 亚洲精品乱码久久久v下载方式 | 国产乱人视频| 免费看a级黄色片| 在线观看一区二区三区| 久久精品国产清高在天天线| 久久香蕉国产精品| 日本免费a在线| 在线观看午夜福利视频| 成年人黄色毛片网站| xxxwww97欧美| 99热精品在线国产| 欧美大码av| av专区在线播放| 老熟妇乱子伦视频在线观看| 国产亚洲精品久久久久久毛片| 国产乱人视频| 婷婷六月久久综合丁香| 欧美性猛交黑人性爽| 欧美成人a在线观看| 亚洲精品456在线播放app | 狂野欧美白嫩少妇大欣赏| 一进一出抽搐动态| 蜜桃久久精品国产亚洲av| 欧美大码av| 小蜜桃在线观看免费完整版高清| 老司机深夜福利视频在线观看| av福利片在线观看| 亚洲自拍偷在线| 男人舔女人下体高潮全视频| 亚洲av美国av| 亚洲欧美一区二区三区黑人| 1024手机看黄色片| 久久精品国产99精品国产亚洲性色| 最近最新中文字幕大全电影3| 高潮久久久久久久久久久不卡| 中文字幕av在线有码专区| 久久久久国产精品人妻aⅴ院| 1000部很黄的大片| 久久国产乱子伦精品免费另类| 亚洲美女视频黄频| 国产国拍精品亚洲av在线观看 | 久久久久国内视频| 美女 人体艺术 gogo| 成人亚洲精品av一区二区| 国产探花在线观看一区二区| 日本熟妇午夜| 欧美乱妇无乱码| 51午夜福利影视在线观看| 日日干狠狠操夜夜爽| 18美女黄网站色大片免费观看| 欧美成狂野欧美在线观看| 一卡2卡三卡四卡精品乱码亚洲| 中文字幕久久专区| 成年版毛片免费区| 神马国产精品三级电影在线观看| 日韩欧美一区二区三区在线观看| 亚洲熟妇熟女久久| 听说在线观看完整版免费高清| 久久久久久久精品吃奶| 国产美女午夜福利| 亚洲国产精品久久男人天堂| 色综合婷婷激情| 欧美三级亚洲精品| 久久99热这里只有精品18| 国产黄色小视频在线观看| 给我免费播放毛片高清在线观看| 又爽又黄无遮挡网站| 少妇熟女aⅴ在线视频| 久久久久久九九精品二区国产| 少妇高潮的动态图| 国产午夜福利久久久久久| 一级a爱片免费观看的视频| 亚洲18禁久久av| 我要搜黄色片| 一进一出抽搐动态| 99热这里只有是精品50| 老熟妇乱子伦视频在线观看| 97碰自拍视频| 亚洲av成人av| 午夜老司机福利剧场| 桃色一区二区三区在线观看| 国产综合懂色| av福利片在线观看| 3wmmmm亚洲av在线观看| 色吧在线观看| 噜噜噜噜噜久久久久久91| 久久精品91无色码中文字幕| 中出人妻视频一区二区| 国产av麻豆久久久久久久| 亚洲国产高清在线一区二区三| 热99在线观看视频| 亚洲欧美日韩卡通动漫| 一级黄片播放器| 国产成人a区在线观看| 免费无遮挡裸体视频| 亚洲美女黄片视频| 有码 亚洲区| 中国美女看黄片| 成人鲁丝片一二三区免费| 日韩大尺度精品在线看网址| 少妇高潮的动态图| 亚洲精品亚洲一区二区| 天堂动漫精品| 欧美激情在线99| 一级黄片播放器| 欧美一级a爱片免费观看看| 免费看光身美女| 欧美又色又爽又黄视频| 88av欧美| 久久精品91无色码中文字幕| 首页视频小说图片口味搜索| 免费人成在线观看视频色| 白带黄色成豆腐渣| 亚洲精品亚洲一区二区| 亚洲18禁久久av| 嫩草影院入口| 成人鲁丝片一二三区免费| xxx96com| 网址你懂的国产日韩在线| 最好的美女福利视频网| 亚洲熟妇熟女久久| 国产精华一区二区三区| 成人亚洲精品av一区二区| 国产亚洲精品av在线| 久久久久久人人人人人| www.999成人在线观看| 高清毛片免费观看视频网站| 天堂网av新在线| 午夜福利高清视频| 久久精品综合一区二区三区| 欧美黄色淫秽网站| 一个人看视频在线观看www免费 | 欧美日韩中文字幕国产精品一区二区三区| 久久天躁狠狠躁夜夜2o2o| 内地一区二区视频在线| 757午夜福利合集在线观看| 美女大奶头视频| 免费大片18禁| 亚洲成人久久爱视频| 免费人成在线观看视频色| 1000部很黄的大片| 少妇的逼好多水| 最近在线观看免费完整版| 高潮久久久久久久久久久不卡| 精品国产超薄肉色丝袜足j| 欧美午夜高清在线| 1024手机看黄色片| 看片在线看免费视频| 国产午夜福利久久久久久| 亚洲国产欧洲综合997久久,| 欧美色视频一区免费| 夜夜躁狠狠躁天天躁| 国内少妇人妻偷人精品xxx网站| 久久精品影院6| 麻豆成人午夜福利视频| 中文字幕久久专区| 91久久精品电影网| 九色成人免费人妻av| 欧美在线一区亚洲| 亚洲一区高清亚洲精品| 亚洲五月婷婷丁香| 欧美在线一区亚洲| 欧美成人一区二区免费高清观看| xxx96com| 国产精品99久久久久久久久| 国产成人av激情在线播放| 看免费av毛片| 麻豆成人午夜福利视频| 男女午夜视频在线观看| 黄色女人牲交| 舔av片在线| 性色avwww在线观看| 欧美日韩一级在线毛片| 1024手机看黄色片| 成年免费大片在线观看| 99热这里只有是精品50| 日韩国内少妇激情av| 国产高潮美女av| 久久久成人免费电影| 搡老妇女老女人老熟妇| 亚洲国产精品sss在线观看| 国产亚洲欧美在线一区二区| 嫩草影院入口| 精品久久久久久成人av| 亚洲国产精品合色在线| 亚洲国产精品sss在线观看| 色播亚洲综合网| bbb黄色大片| 波多野结衣巨乳人妻| 国产午夜福利久久久久久| 一区二区三区激情视频| АⅤ资源中文在线天堂| 在线观看午夜福利视频| 亚洲精华国产精华精| 最近最新中文字幕大全电影3| 1000部很黄的大片| 免费在线观看影片大全网站| 淫秽高清视频在线观看| 亚洲五月婷婷丁香| 真人一进一出gif抽搐免费| 日日摸夜夜添夜夜添小说| 又黄又爽又免费观看的视频| 午夜福利欧美成人| 母亲3免费完整高清在线观看| 在线播放国产精品三级| 色哟哟哟哟哟哟| 动漫黄色视频在线观看| 国产一区二区在线av高清观看| 一边摸一边抽搐一进一小说| 毛片女人毛片| 亚洲中文日韩欧美视频| 看黄色毛片网站| 亚洲成人中文字幕在线播放| 男女下面进入的视频免费午夜| 一区二区三区免费毛片| 午夜精品久久久久久毛片777| 国产视频一区二区在线看| 首页视频小说图片口味搜索| 伊人久久精品亚洲午夜| 国产蜜桃级精品一区二区三区| 中国美女看黄片| 国产精品野战在线观看| 久久久久亚洲av毛片大全| 69人妻影院| 制服人妻中文乱码| 神马国产精品三级电影在线观看| 69人妻影院| 国产高清videossex| 不卡一级毛片| 性色av乱码一区二区三区2| 国产又黄又爽又无遮挡在线| 午夜福利在线在线| 51午夜福利影视在线观看| 亚洲第一电影网av| 日本免费一区二区三区高清不卡| 欧美性猛交╳xxx乱大交人| 欧美黄色淫秽网站| h日本视频在线播放| 99热只有精品国产| 成年免费大片在线观看| 99视频精品全部免费 在线| 成人特级av手机在线观看| 无人区码免费观看不卡| 在线国产一区二区在线| 日韩 欧美 亚洲 中文字幕| 日韩高清综合在线| 天堂av国产一区二区熟女人妻| 美女大奶头视频| 在线观看日韩欧美| 亚洲中文日韩欧美视频| 亚洲中文日韩欧美视频| 男女做爰动态图高潮gif福利片| 操出白浆在线播放| 午夜视频国产福利| 国产激情偷乱视频一区二区| 久久国产乱子伦精品免费另类| 国产高清有码在线观看视频| 真实男女啪啪啪动态图| 村上凉子中文字幕在线| 国产精品嫩草影院av在线观看 | 色综合亚洲欧美另类图片| 脱女人内裤的视频| 五月玫瑰六月丁香| 午夜久久久久精精品| 午夜福利欧美成人| 午夜福利成人在线免费观看| 美女大奶头视频| 免费看日本二区| 亚洲成人精品中文字幕电影| h日本视频在线播放| 3wmmmm亚洲av在线观看| 听说在线观看完整版免费高清| 91麻豆精品激情在线观看国产| 岛国视频午夜一区免费看| 亚洲五月天丁香| 国产成人aa在线观看| 亚洲精品一卡2卡三卡4卡5卡| 一个人免费在线观看的高清视频| 欧美乱妇无乱码| aaaaa片日本免费| 久久香蕉精品热| 一区二区三区高清视频在线| 久久香蕉国产精品| 国产精品久久电影中文字幕| 欧美+亚洲+日韩+国产| 亚洲国产精品成人综合色| 午夜日韩欧美国产| 国产精品免费一区二区三区在线| e午夜精品久久久久久久| 不卡一级毛片| 日本 欧美在线| 韩国av一区二区三区四区| 岛国视频午夜一区免费看| 99热这里只有精品一区| 伊人久久大香线蕉亚洲五| 中亚洲国语对白在线视频| 国产免费男女视频| 99热只有精品国产| 亚洲av电影不卡..在线观看| 国产乱人视频| 国产亚洲精品久久久com| 国产精品一区二区三区四区免费观看 | 每晚都被弄得嗷嗷叫到高潮| 九色成人免费人妻av| 国产精品爽爽va在线观看网站| 成人18禁在线播放| 日韩成人在线观看一区二区三区| 黄色片一级片一级黄色片| 久久久国产成人精品二区| 国产精品98久久久久久宅男小说| 国产精品精品国产色婷婷| 精品久久久久久久久久免费视频| 久久精品夜夜夜夜夜久久蜜豆| 国产中年淑女户外野战色| 国内精品美女久久久久久| 超碰av人人做人人爽久久 | 99热精品在线国产| 深夜精品福利| 中文字幕精品亚洲无线码一区| 日本成人三级电影网站| 日韩欧美免费精品| 可以在线观看毛片的网站| 国产一区在线观看成人免费| 麻豆国产av国片精品| 又紧又爽又黄一区二区| 免费大片18禁| 看黄色毛片网站| 一二三四社区在线视频社区8| 国产成人啪精品午夜网站| av天堂在线播放| 国产美女午夜福利| 婷婷精品国产亚洲av| 偷拍熟女少妇极品色| 国产精品一区二区免费欧美| 美女大奶头视频| 很黄的视频免费| 一区二区三区激情视频| 亚洲国产精品成人综合色| 中文资源天堂在线| 欧美性猛交黑人性爽| 国产色婷婷99| 国产精品一及| 特大巨黑吊av在线直播| 国产三级中文精品| 国产精品久久久久久人妻精品电影| 最新美女视频免费是黄的| 最好的美女福利视频网| 在线观看免费午夜福利视频| 搞女人的毛片| 亚洲,欧美精品.| av片东京热男人的天堂| 国产亚洲精品久久久久久毛片| 国产精品爽爽va在线观看网站| 亚洲欧美精品综合久久99| 国产一区二区三区视频了| 欧美性感艳星| 国产熟女xx| 九色成人免费人妻av| 午夜精品一区二区三区免费看| 国产伦精品一区二区三区视频9 | 成人18禁在线播放| 亚洲自拍偷在线| 国产成人aa在线观看| 成人特级黄色片久久久久久久| 99国产精品一区二区蜜桃av| 成人欧美大片| 国产91精品成人一区二区三区| 桃色一区二区三区在线观看| 亚洲国产高清在线一区二区三| 欧美xxxx黑人xx丫x性爽| 免费无遮挡裸体视频| 国产黄色小视频在线观看| 伊人久久精品亚洲午夜| 俄罗斯特黄特色一大片| 内射极品少妇av片p| 最近最新中文字幕大全免费视频| 9191精品国产免费久久| 欧美不卡视频在线免费观看| 观看美女的网站| 国产免费男女视频| 色播亚洲综合网| 亚洲精品在线美女| 国产淫片久久久久久久久 | 日日摸夜夜添夜夜添小说| 色视频www国产| 午夜免费成人在线视频| 免费看日本二区| 午夜日韩欧美国产| 51午夜福利影视在线观看| 少妇高潮的动态图| 久久性视频一级片| 91字幕亚洲| 日本一二三区视频观看| 久99久视频精品免费| 97碰自拍视频| 久久久国产成人精品二区| 色噜噜av男人的天堂激情| 中文在线观看免费www的网站| 国产精品一区二区三区四区久久| 99久久精品一区二区三区| 99国产综合亚洲精品| 亚洲欧美日韩东京热| 一边摸一边抽搐一进一小说| 亚洲 欧美 日韩 在线 免费| 熟女人妻精品中文字幕| 午夜福利18| 熟女少妇亚洲综合色aaa.| 久久久久久久久久黄片| 国产激情欧美一区二区| 极品教师在线免费播放| 网址你懂的国产日韩在线| 欧美成人一区二区免费高清观看|