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

    基于向量表示的代碼搜索方法

    2019-09-17 05:13:50慕江林劉克劍
    關(guān)鍵詞:代碼語義準(zhǔn)確率

    慕江林,劉克劍*,林 晗

    (1.西華大學(xué)計算機(jī)與軟件工程學(xué)院, 四川 成都 610039;2.成都理工大學(xué)管理科學(xué)學(xué)院, 四川 成都 610059)

    軟件開發(fā)者基于Github、SourceForge等開源代碼倉庫上的可復(fù)用的基礎(chǔ)軟件包再次開發(fā),可降低開發(fā)的時間和成本。開發(fā)者如果使用某些未在接口的使用方法中聲明的方法,需要在代碼搜索引擎搜索相關(guān)代碼片段。如何有效地幫助開發(fā)者從代碼庫中搜索與任務(wù)相關(guān)的代碼,成為代碼搜索[1-3]的研究方向之一。

    用戶將少量關(guān)鍵詞輸入到代碼搜索引擎中,搜索引擎搜索相關(guān)代碼片段按照與關(guān)鍵詞的匹配度返回給用戶?;陂_發(fā)者的開發(fā)經(jīng)驗,搜索的關(guān)鍵詞為 “iterate a java hashmap”,搜索引擎應(yīng)該返回java有關(guān)于hashmap迭代的示例,如圖1所示。

    已有的代碼搜索引擎,如Ohlh Code[4]、 Krugle[5]等,將用戶輸入關(guān)鍵詞當(dāng)作純文本,通過關(guān)鍵詞檢索類似的代碼片段。使用該方法搜索到的結(jié)果中只包含單一的關(guān)鍵詞,搜索結(jié)果與用戶期望相差較大。

    近期的一些代碼搜索方法開始對代碼結(jié)構(gòu)和代碼語義分析。PARSEWeb將代碼抽象為方法調(diào)用序列,對方法調(diào)用序列聚類排序,查找相似使用模式的代碼片段[6],是一種基于結(jié)構(gòu)的代碼搜索,準(zhǔn)確率不高。PRIME將代碼片段作為輸入,從結(jié)構(gòu)上對代碼片段進(jìn)行分析,尋找代碼片段的相似之處[7],它忽略了代碼語義,在搜索結(jié)果上表現(xiàn)不佳。SWIM算法通過詞袋模型將自然語言查詢語句翻譯成API,再通過API生成代碼片段[8]。雖然該方法有效地利用了查詢的語義,但是基于詞袋模型的語義匹配結(jié)果不太理想,基于API生成的代碼片段,考慮了代碼結(jié)構(gòu)特性,忽略了代碼之間的語言特性。QECK 算法是一種利用群體知識來擴(kuò)充查詢的方法,其中群體知識是指Stack Overflow的問答信息[9],該方法雖然擴(kuò)展了查詢文本,豐富了查詢的語義,但是忽略了代碼之間的語義,在代碼相似度比較上不足。本文提出了一種基于向量表示的代碼搜索方法——VRCS算法 (vector representation based code search),它充分利用了代碼搜索關(guān)鍵詞—代碼之間語義和代碼—代碼之間的語義,在一定程度上提升了搜索的準(zhǔn)確率。

    1 基于向量表示的代碼搜索方法

    基于向量表示的代碼搜索方法能夠有效地利用搜索關(guān)鍵詞的語義實現(xiàn)相關(guān)代碼搜索。具體流程是:1)抽取代碼片段庫的代碼,形成以單個方法為單位的代碼片段,分割代碼片段為單個代碼詞和代碼符號,使用one-hot編碼分解得到的代碼詞和代碼符號,將編碼后的向量輸入到skip-gram模型中,得到向量組表示的代碼庫和一個訓(xùn)練好的skip-gram模型,其中,代碼庫的每段代碼片段都是由代碼詞向量組成的向量組;2)對搜索文本進(jìn)行預(yù)處理,去掉搜索文本中的修飾詞匯,如介詞、冠詞等,將預(yù)處理后的搜索文本關(guān)鍵詞作為代碼關(guān)鍵詞,利用第1步訓(xùn)練完成的skip-gram模型生成搜索關(guān)鍵詞上下文代碼片段向量組,其中向量組的每一個向量是搜索關(guān)鍵詞上下文代碼片段中的代碼詞的向量表示;3)將搜索關(guān)鍵詞上下文代碼片段向量組和待匹配代碼片段向量組分別輸入到編碼器中編碼,生成搜索關(guān)鍵詞上下文代碼片段隱向量和待匹配代碼片段的隱向量;4)利用余弦相似度計算搜索關(guān)鍵詞上下文代碼片段隱向量和待匹配代碼片段的隱向量的相似度,排序生成搜索結(jié)果,如圖2所示。

    2 代碼詞嵌入表示

    2.1 代碼片段詞嵌入表示

    自然語言的詞嵌入表示有2大優(yōu)勢:能夠獲取單詞的上下文語境;有助于句子的編碼表示。由于程序語言具有與自然語言相似的語義特性[10],以詞嵌入方式表示程序代碼,以便代碼關(guān)鍵詞的語義擴(kuò)充和從語義上對代碼相似程度的計算。

    圖2 基于向量表示的代碼搜索方法概述

    自然語言中符號常常被視為無用信息,代碼數(shù)據(jù)集中的代碼片段包含很多有助于代碼理解的符號信息,如圖1代碼片段,其中“+”表示拼接字符串,“?”表示方法調(diào)用,“:”表示對集合的遍歷等。為保存代碼中的符號對代碼片段語義的影響,將代碼中的符號按照詞進(jìn)行編碼。

    為獲取skip-gram模型的輸入向量,抽取代碼片段庫的代碼,形成以單個方法為單位的代碼片段,分割代碼片段為單個代碼詞和代碼符號,使用one-hot編碼分解得到的代碼詞和代碼符號,將編碼后的向量輸入到skip-gram模型中。

    通過訓(xùn)練skip-gram模型[11],可以得到代碼詞的唯一編碼,skip-gram模型的結(jié)構(gòu)如圖3所示。

    圖3 skip-gram模型

    w(t)是一個向量,表示代碼詞或代碼符號的one-hot編碼,w(t-1)和w(t+1)分別表示代碼詞或代碼符號w(t)的上一個代碼詞或代碼符號的one-hot編碼和w(t)的下一個代碼詞或代碼符號的one-hot編碼。 采用無監(jiān)督學(xué)習(xí)訓(xùn)練skip-gram模型,目標(biāo)函數(shù)是最大化式(1)之和。

    (1)

    式中:c是滑動窗口的大?。籘是單詞序列的長度;p(wt+j|wt)用softmax函數(shù)定義條件概率,為

    (2)

    Vc={v1,v2,…,vkc}=

    2.2 關(guān)鍵詞語義擴(kuò)展

    用戶輸入的搜索文本中包含部分介詞等修飾詞匯,對代碼的匹配不具有重要意義,將此類詞匯去掉,得到純凈的語義相關(guān)的搜索關(guān)鍵詞。為了對關(guān)鍵詞的語義更好地補(bǔ)充,將上述清理后的關(guān)鍵詞視為代碼關(guān)鍵詞,使用上述訓(xùn)練的skip-gram模型生成搜索關(guān)鍵詞上下文代碼片段向量組,其中每一個向量是代碼關(guān)鍵詞的向量表示。例如,搜索的關(guān)鍵詞為 “iterate a java hashmap”,將其中的“a”去掉,留下“iterate java hashmap”,通過skip-gram模型擴(kuò)充得到的代碼片段,如圖4所示。

    搜索關(guān)鍵詞上下文代碼片段向量組為Vs,ks為代碼詞的個數(shù),Vs表示為

    3 基于代碼片段的隱向量相似度計算

    深度語義結(jié)構(gòu)模型[12](deep sematic structured model, DSSM)是文檔匹配[13]中的常用模型。深度語義模型將單詞向量映射為句子隱表示,以便計算句子之間的相似度。為了計算搜索關(guān)鍵詞上下文代碼片段向量組和待匹配代碼片段向量組的語義相似度,使用改進(jìn)的DSSM模型進(jìn)行相似度計算,如圖5所示。

    在圖5中,Q對應(yīng)搜索關(guān)鍵詞上下文代碼片段向量組,Ci對應(yīng)代碼片段詞向量組。

    圖5 代碼片段的編碼和相似度計算

    i∈{Q,C1,C2,…,Cn}

    (3)

    (4)

    (5)

    hi(3)為第3層第i個節(jié)點的隱向量表示,當(dāng)i=Q時,是代碼片段Q經(jīng)過網(wǎng)絡(luò)的編碼計算得到代碼的隱向量表示,當(dāng)i=Ci時,是代碼片段Ci經(jīng)過網(wǎng)絡(luò)的編碼計算得到代碼的隱向量表示。Wj為神經(jīng)網(wǎng)絡(luò)的權(quán)重參數(shù);bj為偏置向量;式(4)中的激活函數(shù)f(·)表示為

    (6)

    R(Q,Ci)表示搜索關(guān)鍵詞上下文代碼片段隱向量hQ和待匹配代碼片段的隱向量hCi的余弦相似度,計算式為

    (7)

    通過計算hQ和hCi的相似度,可得出搜索文本和待匹配代碼片段的相似度,將相似度排序,得出的搜索列表作為最終的搜索列表。例如,與搜索的關(guān)鍵詞 “iterate a java hashmap”匹配的代碼片段,如圖6所示。

    代碼片段匹配度Map map=new HashMap();Iterator it=mp.entrySet().iterator();while (it.hasNext()) { Map.Entry pair=(Map.Entry)it.next(); System.out.println(pair.getKey()+"="+pair.getValue());}0.7230for (Map.Entry e: map.entrySet()){ T key=e.getKey(); U value=e.getValue();}0.3580map.replaceAll((k, v)-> { int newValue=v+1; System.out.println("key="+k+" value="+v+" new value="+newValue); return newValue;});0.1242Map testMap=new HashMap();testMap.put(10, "a");testMap.put(20, "b");for (Entry entry: testMap.entry-Set()) { Integer key=entry.getKey(); String value=entry.getValue();}0.6501

    圖6 關(guān)鍵詞為“iterate a java hashmap”的相關(guān)代碼匹配度

    4 代碼相似度計算模型訓(xùn)練

    代碼相似度計算模型訓(xùn)練的目標(biāo)是使搜索文本與目標(biāo)代碼片段在語義上盡可能的相似,等價于搜索關(guān)鍵詞上下文代碼片段隱向量和待匹配代碼片段的隱向量相似。為訓(xùn)練本模型,采用類似于深度語義模型DSSM的訓(xùn)練方式訓(xùn)練[12],對于實踐中很難收集到的用戶搜索文本和期望代碼對,使用Stack Overflow開發(fā)者問答數(shù)據(jù)集和收集的Github數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),從中抽取搜索文本和匹配代碼片段作為正例,選擇其他代碼片段作為負(fù)例。其目標(biāo)函數(shù)為

    (8)

    其中

    (9)

    Map map=new HashMap();Iterator it=mp.entrySet().iterator();while (it.hasNext()) { Map.Entry pair=(Map.Entry)it.next(); System.out.println(pair.getKey()+"="+pair.getValue());}

    圖7 回答被贊同數(shù)最多的答案(正例)

    圖8 無關(guān)回答(負(fù)例)

    5 實驗分析

    5.1 數(shù)據(jù)收集

    為了緩解小量數(shù)據(jù)導(dǎo)致的實驗結(jié)果偏差,收集Github[14]上stars最高的500個項目中的代碼和Stack Overflow開源數(shù)據(jù)[15]的Posts表作為訓(xùn)練數(shù)據(jù)集,這2份數(shù)據(jù)集的代碼行數(shù)規(guī)模都超過了數(shù)10億。Stack Overflow數(shù)據(jù)集中Posts表中的問題貼和回答貼總數(shù)量超過4 300萬條。問題貼中包含用戶提出問題。與問題貼對應(yīng)的回答貼中包含其他用戶對該問題的回答代碼和提問者的滿意回答貼。Github上收集項目包含大量類和類方法代碼片段。

    5.2 代碼庫的獲取

    為訓(xùn)練代碼片段的隱向量相似度計算模型,將從Github數(shù)據(jù)集[14]和Stack Overflow數(shù)據(jù)集[15]中構(gòu)建2個向量表示的代碼庫,Github代碼庫和Stack Overflow代碼庫,作為訓(xùn)練的訓(xùn)練集和測試集。

    構(gòu)建方式:第1步,分別抽取數(shù)據(jù)集中的代碼片段和代碼片段文本描述,將代碼片段切割成以方法為基礎(chǔ)的代碼片段,并分割基礎(chǔ)代碼片段為代碼詞輸入到skip-gram模型中,并采用負(fù)采樣[12]優(yōu)化概率值,獲得skip-gram模型中的參數(shù),同時,將代碼片段中的基礎(chǔ)代碼片段表示成向量組的形式,將得到的代碼文本描述和對應(yīng)的代碼片段向量表示放入數(shù)據(jù)庫中;第2步,將第1步抽取的代碼片段文本描述預(yù)處理,即當(dāng)從Stack Overflow數(shù)據(jù)集中抽取代碼片段文本描述時,抽取提問貼中的語義關(guān)鍵詞,如 “iterate a java hashmap”,抽取的語義關(guān)鍵代碼詞為 “iterate java hashmap”作為代碼片段文本描述關(guān)鍵詞,當(dāng)從Github數(shù)據(jù)集中抽取代碼片段文本描述時,按照駝峰、下劃線或其他類名命名方式分割類名和方法名,如,ThreadDumpEndpoint AutoConfiguration類中的方法dumpEndpoint,抽取成語義關(guān)鍵詞“Thread Dump Endpoint Auto Configuration dump Endpoint” 作為代碼片段文本描述關(guān)鍵詞,利用第1步訓(xùn)練的skip-gram模型進(jìn)行擴(kuò)充,形成代碼描述關(guān)鍵詞上下文的向量表示;第3步,將第2步得到的代碼描述關(guān)鍵詞上下文向量表示,替換第1步代碼文本描述——代碼片段向量表示庫中的代碼文本描述,即可得到代碼描述關(guān)鍵詞上下文—代碼片段庫,如圖9所示。

    圖9 代碼庫的獲取

    5.3 代碼相似度計算實驗流程

    對于代碼相似度匹配模型的訓(xùn)練,選取5.2節(jié)構(gòu)建的代碼庫中一份數(shù)據(jù)作為訓(xùn)練集,另一份數(shù)據(jù)作為測試集。隨機(jī)選取代碼描述關(guān)鍵詞上下文—代碼片段庫中的1組數(shù)據(jù),將其中的代碼描述關(guān)鍵詞上下文向量組作為搜索輸入,將其中的代碼片段作為訓(xùn)練的正例,隨機(jī)選擇其他的代碼片段作為訓(xùn)練的負(fù)例。

    采用mini-batch SGD算法訓(xùn)練模型,首先將模型中的l1,l2層元素取為300,參數(shù)隨機(jī)初始化,每一次mini-batch取1 024個訓(xùn)練數(shù)據(jù),在整個數(shù)據(jù)集上迭代20次后,神經(jīng)網(wǎng)絡(luò)收斂。

    5.4 評估方法

    為了評估代碼搜索方法的有效性,將從準(zhǔn)確率、召回率、F值3方面對搜索結(jié)果進(jìn)行評價。在Q個搜索中,使用符號NQK表示搜索結(jié)果為正確結(jié)果的數(shù)量,NQS表示搜索結(jié)果中總搜索次數(shù),NQW表示搜索結(jié)果中的非最佳匹配結(jié)果被視為最佳匹配結(jié)果的數(shù)量。搜索結(jié)果準(zhǔn)確率Pk是滿意搜索結(jié)果所占總的搜索結(jié)果的比例,定義為

    (10)

    搜索結(jié)果的召回率Precall是所有搜索結(jié)果中的正確結(jié)果數(shù)占正確搜索結(jié)果數(shù)和被錯誤識別的正確結(jié)果數(shù)的比例,定義為

    (11)

    搜索結(jié)果的F值 (F-Measure) 表示準(zhǔn)確率Pk和召回率Precall的加權(quán)調(diào)和平均, 用于評價模型的好壞,定義為

    (12)

    5.5 對比分析

    為了評價本文所提出的算法的有效性,將VRCS方法與QECK和SWIM方法對比,并使用5.2節(jié)所構(gòu)建的Github代碼庫和Stack Overflow代碼庫作為訓(xùn)練集和測試集。當(dāng)Github代碼庫作為訓(xùn)練集,在Stack Overflow代碼庫做測試時,其準(zhǔn)確率、召回率和F值如表1—3所示。

    表1 Stack Overflow數(shù)據(jù)集下的準(zhǔn)確率

    表2 Stack Overflow數(shù)據(jù)集下的召回率

    表3 Stack Overflow數(shù)據(jù)集下的F值

    可以看出:VRCS 算法中58%的搜索能在第1個搜索結(jié)果找到正確答案,相對于QECK算法和SWIM算法,其準(zhǔn)確率、召回率和F值有1%~3%的提升;65%的搜索能在前5個答案中找到正確答案,相對于QECK算法和SWIM算法,其準(zhǔn)確率、召回率和F值有1%~7%的提升;72%的搜索能在前10個答案中找到正確答案,相對于QECK算法和SWIM算法,其準(zhǔn)確率、召回率和F值有1%~5%的提升。

    當(dāng)Stack Overflow代碼庫作為訓(xùn)練集, Github代碼庫做測試時,其準(zhǔn)確率、召回率和F值如表4—6所示。

    表4 Github數(shù)據(jù)集下的準(zhǔn)確率

    表5 Github數(shù)據(jù)集下的召回率

    表6 Github數(shù)據(jù)集下的F值

    可以看出:VRCS算法中59%的搜索能在第1個搜索結(jié)果找到正確答案,相對于QECK算法和SWIM算法,準(zhǔn)確率、召回率和F值有2%~4%的提升;67%的搜索能在前5個答案中找到正確答案,相對于QECK算法和SWIM算法,準(zhǔn)確率、召回率和F值有3%~7%的提升;74%的搜索能在前10個答案中找到正確答案,相對于QECK算法和SWIM算法,準(zhǔn)確率、召回率和F值有2%~8%的提升。

    通過將VRCS應(yīng)用于上述2份數(shù)據(jù)集的測試對比發(fā)現(xiàn),VRCS方法在準(zhǔn)確率、召回率以及F值上有所提高。同時,VRCS算法在搜索結(jié)果的準(zhǔn)確率平均高于召回率的3%,這是因為在大量數(shù)據(jù)的測試下,搜索準(zhǔn)確率得到提高,導(dǎo)致了召回率變低。從數(shù)據(jù)集上看,使用Github數(shù)據(jù)集作為測試的搜索結(jié)果優(yōu)于Stack Overflow數(shù)據(jù)集的搜索結(jié)果,因為從Github數(shù)據(jù)集上抽取的關(guān)鍵詞更加具體,也更加能夠表示代碼片段。綜上所述,對于基于大量數(shù)據(jù)的代碼搜索,本文提出的VRCS算法充分利用了代碼搜索關(guān)鍵詞—代碼之間語義和代碼—代碼之間的語義,在一定程度上提升了搜索的準(zhǔn)確率。

    6 總結(jié)

    本文提出一種基于向量的代碼搜索方法,該方法通過Github和Stack Overflow數(shù)據(jù)集中的代碼片段訓(xùn)練一個skip-gram模型,并利用這個模型擴(kuò)充從搜索文本提取的關(guān)鍵詞,得到搜索關(guān)鍵詞上下文代碼片段向量組,最后計算搜索關(guān)鍵詞上下文向量組和待匹配向量組的語義相似度,排序完成搜索。該方法有效地降低了因關(guān)鍵詞語義模糊導(dǎo)致的搜索結(jié)果偏差。同時,應(yīng)用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)代碼片段的隱表示,從語義上匹配有更高的精確度。實驗表明,本文提出的方法優(yōu)于已有的代碼搜索方法。在未來的研究中,可結(jié)合語義和代碼結(jié)構(gòu),提高代碼搜索結(jié)果的精確度。

    猜你喜歡
    代碼語義準(zhǔn)確率
    乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
    健康之家(2021年19期)2021-05-23 11:17:39
    不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
    2015—2017 年寧夏各天氣預(yù)報參考產(chǎn)品質(zhì)量檢驗分析
    語言與語義
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    高速公路車牌識別標(biāo)識站準(zhǔn)確率驗證法
    “上”與“下”語義的不對稱性及其認(rèn)知闡釋
    下体分泌物呈黄色| 在线天堂中文资源库| 精品免费久久久久久久清纯 | 国产精品麻豆人妻色哟哟久久| 国产一卡二卡三卡精品| 国产有黄有色有爽视频| 欧美黄色淫秽网站| 欧美 亚洲 国产 日韩一| 亚洲成人免费电影在线观看| 蜜桃国产av成人99| 欧美一级毛片孕妇| 欧美黑人欧美精品刺激| 欧美 日韩 精品 国产| 精品福利观看| 日日夜夜操网爽| 精品一区二区三区av网在线观看 | 午夜福利免费观看在线| 人妻一区二区av| 亚洲精品美女久久久久99蜜臀| 欧美变态另类bdsm刘玥| 久久久精品区二区三区| 建设人人有责人人尽责人人享有的| 欧美精品亚洲一区二区| 欧美日韩av久久| 12—13女人毛片做爰片一| 久久国产精品男人的天堂亚洲| 美女中出高潮动态图| 欧美日韩亚洲综合一区二区三区_| 亚洲人成电影免费在线| 国产成人精品久久二区二区免费| 亚洲少妇的诱惑av| 精品久久久久久久毛片微露脸 | 欧美日韩av久久| 国产又爽黄色视频| a级毛片在线看网站| 婷婷丁香在线五月| 手机成人av网站| 国产又爽黄色视频| 亚洲欧美精品自产自拍| 久久久久视频综合| 老司机影院成人| 国产精品麻豆人妻色哟哟久久| 国产精品av久久久久免费| 热99re8久久精品国产| 一区二区三区四区激情视频| 好男人电影高清在线观看| 国产欧美亚洲国产| 国产一区二区在线观看av| 国产av国产精品国产| 国产无遮挡羞羞视频在线观看| 宅男免费午夜| 青草久久国产| 亚洲五月色婷婷综合| 免费黄频网站在线观看国产| 久久精品国产亚洲av高清一级| 首页视频小说图片口味搜索| 欧美精品啪啪一区二区三区 | 久久精品久久久久久噜噜老黄| 窝窝影院91人妻| 久久久久久人人人人人| 捣出白浆h1v1| 国产一区二区三区av在线| 国产日韩一区二区三区精品不卡| 亚洲精品国产区一区二| 在线精品无人区一区二区三| 亚洲九九香蕉| 免费观看av网站的网址| 最近最新中文字幕大全免费视频| 美女脱内裤让男人舔精品视频| 黄频高清免费视频| 天堂中文最新版在线下载| 欧美激情高清一区二区三区| 精品久久久久久久毛片微露脸 | 午夜精品久久久久久毛片777| 黄片大片在线免费观看| 91国产中文字幕| 欧美人与性动交α欧美精品济南到| 国产极品粉嫩免费观看在线| 麻豆国产av国片精品| 菩萨蛮人人尽说江南好唐韦庄| 各种免费的搞黄视频| 国产精品欧美亚洲77777| 久久国产精品人妻蜜桃| 欧美国产精品va在线观看不卡| 国产成人系列免费观看| 国产成人精品无人区| 老司机福利观看| 色老头精品视频在线观看| 精品视频人人做人人爽| 如日韩欧美国产精品一区二区三区| 久久综合国产亚洲精品| 欧美+亚洲+日韩+国产| 视频区欧美日本亚洲| 亚洲伊人久久精品综合| 热re99久久国产66热| 嫩草影视91久久| 一个人免费在线观看的高清视频 | 美女国产高潮福利片在线看| 欧美日韩av久久| 国产视频一区二区在线看| 另类精品久久| 国产精品一二三区在线看| 国产一级毛片在线| 国产亚洲精品第一综合不卡| 午夜福利视频在线观看免费| 啦啦啦免费观看视频1| 亚洲成人国产一区在线观看| 国产精品自产拍在线观看55亚洲 | 啦啦啦啦在线视频资源| 久久亚洲精品不卡| 亚洲av国产av综合av卡| 美女福利国产在线| 国产在线一区二区三区精| 欧美日韩亚洲综合一区二区三区_| 精品久久蜜臀av无| 亚洲中文字幕日韩| 老汉色av国产亚洲站长工具| 久久久久久亚洲精品国产蜜桃av| 亚洲熟女毛片儿| 精品少妇黑人巨大在线播放| 国产成人免费观看mmmm| 97精品久久久久久久久久精品| 午夜福利,免费看| 男人操女人黄网站| 国产成+人综合+亚洲专区| 搡老岳熟女国产| 人成视频在线观看免费观看| 午夜免费鲁丝| 亚洲欧美色中文字幕在线| 伊人亚洲综合成人网| 亚洲欧洲精品一区二区精品久久久| 日韩中文字幕欧美一区二区| 高清视频免费观看一区二区| 99热网站在线观看| 岛国在线观看网站| 99re6热这里在线精品视频| 国产极品粉嫩免费观看在线| 下体分泌物呈黄色| www.av在线官网国产| 极品人妻少妇av视频| 免费在线观看视频国产中文字幕亚洲 | 亚洲国产精品999| 成年美女黄网站色视频大全免费| 国内毛片毛片毛片毛片毛片| 美女脱内裤让男人舔精品视频| 狠狠婷婷综合久久久久久88av| 狠狠婷婷综合久久久久久88av| 亚洲人成电影观看| 久久这里只有精品19| 人人妻人人添人人爽欧美一区卜| av电影中文网址| 妹子高潮喷水视频| 亚洲欧美色中文字幕在线| 国产欧美日韩精品亚洲av| 丝袜美腿诱惑在线| 大香蕉久久成人网| 各种免费的搞黄视频| 看免费av毛片| 老司机靠b影院| 午夜福利在线免费观看网站| 国产精品 欧美亚洲| 亚洲精品在线美女| 丝袜美腿诱惑在线| 国产成人av激情在线播放| 久久久久久久国产电影| 精品福利永久在线观看| 日日爽夜夜爽网站| av视频免费观看在线观看| 午夜精品久久久久久毛片777| 一区二区三区乱码不卡18| av欧美777| 免费观看a级毛片全部| 亚洲av成人一区二区三| 国产又色又爽无遮挡免| 欧美精品一区二区免费开放| 国产成人精品久久二区二区免费| kizo精华| 日韩中文字幕视频在线看片| 三上悠亚av全集在线观看| 久久中文字幕一级| 欧美少妇被猛烈插入视频| 老司机靠b影院| 国产伦人伦偷精品视频| 久久影院123| 成年av动漫网址| 满18在线观看网站| 国产成人精品久久二区二区免费| 日韩精品免费视频一区二区三区| 日韩有码中文字幕| 欧美日韩国产mv在线观看视频| 久久精品aⅴ一区二区三区四区| 久久性视频一级片| 精品久久久精品久久久| 久久久久精品人妻al黑| 免费久久久久久久精品成人欧美视频| 久久精品国产a三级三级三级| 人成视频在线观看免费观看| 精品卡一卡二卡四卡免费| 精品人妻在线不人妻| 99热国产这里只有精品6| 不卡av一区二区三区| 人人妻人人爽人人添夜夜欢视频| av又黄又爽大尺度在线免费看| 精品国产超薄肉色丝袜足j| 女性生殖器流出的白浆| 欧美大码av| videos熟女内射| 汤姆久久久久久久影院中文字幕| 亚洲自偷自拍图片 自拍| 欧美黄色片欧美黄色片| 欧美另类亚洲清纯唯美| 99久久人妻综合| 1024视频免费在线观看| 我要看黄色一级片免费的| 人人妻人人爽人人添夜夜欢视频| 各种免费的搞黄视频| 亚洲精品在线美女| 久久免费观看电影| 久久精品亚洲熟妇少妇任你| 国产三级黄色录像| 免费av中文字幕在线| 亚洲 国产 在线| 久久久久久久久久久久大奶| 中文字幕精品免费在线观看视频| 女性生殖器流出的白浆| 精品一区二区三区av网在线观看 | 少妇被粗大的猛进出69影院| 精品欧美一区二区三区在线| 成人国产一区最新在线观看| 黄片大片在线免费观看| 精品福利观看| 欧美xxⅹ黑人| 久久久久久久精品精品| 亚洲视频免费观看视频| 欧美日韩亚洲国产一区二区在线观看 | 热99re8久久精品国产| 亚洲精品一卡2卡三卡4卡5卡 | 黑人欧美特级aaaaaa片| 国产成人系列免费观看| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲精品成人av观看孕妇| 午夜福利在线免费观看网站| 亚洲 欧美一区二区三区| 在线观看免费视频网站a站| 在线观看免费午夜福利视频| 超碰97精品在线观看| 精品免费久久久久久久清纯 | 国产男女内射视频| 久久久国产欧美日韩av| 国产极品粉嫩免费观看在线| 一级黄色大片毛片| 久久精品国产亚洲av高清一级| 国精品久久久久久国模美| 日韩电影二区| 18禁裸乳无遮挡动漫免费视频| 老司机靠b影院| 亚洲国产欧美一区二区综合| 超碰成人久久| 精品久久久久久久毛片微露脸 | 久久亚洲精品不卡| 亚洲第一欧美日韩一区二区三区 | 国产野战对白在线观看| 国产成人一区二区三区免费视频网站| 老汉色∧v一级毛片| 满18在线观看网站| 国产精品久久久久成人av| 一二三四社区在线视频社区8| 国产男人的电影天堂91| 极品少妇高潮喷水抽搐| 久久这里只有精品19| 热re99久久精品国产66热6| 亚洲国产精品一区二区三区在线| 男男h啪啪无遮挡| 欧美黄色片欧美黄色片| 搡老乐熟女国产| 十八禁高潮呻吟视频| 两性夫妻黄色片| 黄色视频在线播放观看不卡| 久久99一区二区三区| 国产成人精品久久二区二区免费| 岛国毛片在线播放| 正在播放国产对白刺激| 成年动漫av网址| 女人精品久久久久毛片| 男人舔女人的私密视频| 亚洲人成电影免费在线| 国产日韩欧美视频二区| 人成视频在线观看免费观看| 国产精品久久久久成人av| 啦啦啦 在线观看视频| 国产精品 欧美亚洲| 波多野结衣av一区二区av| 香蕉国产在线看| 欧美日韩精品网址| 99国产精品一区二区蜜桃av | 淫妇啪啪啪对白视频 | 菩萨蛮人人尽说江南好唐韦庄| 国产精品一二三区在线看| 最近最新中文字幕大全免费视频| 窝窝影院91人妻| 另类亚洲欧美激情| 欧美中文综合在线视频| 男女午夜视频在线观看| 两人在一起打扑克的视频| 欧美 日韩 精品 国产| 亚洲精品自拍成人| 一二三四在线观看免费中文在| 成年美女黄网站色视频大全免费| 国产精品久久久久成人av| 国产在线免费精品| 久久影院123| 日韩欧美一区视频在线观看| 成人三级做爰电影| 搡老岳熟女国产| 国产一区二区在线观看av| 不卡一级毛片| 一级,二级,三级黄色视频| 女性被躁到高潮视频| 美女脱内裤让男人舔精品视频| 久久国产亚洲av麻豆专区| 国产伦理片在线播放av一区| 亚洲国产精品一区三区| 亚洲视频免费观看视频| 国产男女内射视频| 两个人免费观看高清视频| 精品久久蜜臀av无| 精品国产一区二区三区四区第35| 一级片'在线观看视频| 十八禁高潮呻吟视频| 99精品久久久久人妻精品| 999久久久精品免费观看国产| 亚洲精品自拍成人| 国产视频一区二区在线看| 电影成人av| 男人爽女人下面视频在线观看| 亚洲天堂av无毛| 天天躁日日躁夜夜躁夜夜| 日韩视频在线欧美| 自拍欧美九色日韩亚洲蝌蚪91| 国产精品影院久久| 日本vs欧美在线观看视频| 91字幕亚洲| 99国产精品一区二区蜜桃av | 国产一区二区在线观看av| a级毛片黄视频| 亚洲成av片中文字幕在线观看| 日本vs欧美在线观看视频| 纯流量卡能插随身wifi吗| 久久九九热精品免费| 久久国产精品影院| 亚洲精品久久久久久婷婷小说| 狂野欧美激情性bbbbbb| 亚洲九九香蕉| 超碰成人久久| 男女下面插进去视频免费观看| 我要看黄色一级片免费的| 最近中文字幕2019免费版| 99久久99久久久精品蜜桃| 欧美激情极品国产一区二区三区| 美女福利国产在线| 黑丝袜美女国产一区| 亚洲av成人一区二区三| 叶爱在线成人免费视频播放| 一区二区三区乱码不卡18| 天天添夜夜摸| 精品久久久精品久久久| 欧美xxⅹ黑人| 丝袜脚勾引网站| av网站免费在线观看视频| 欧美精品啪啪一区二区三区 | 午夜日韩欧美国产| 国产av精品麻豆| 亚洲av片天天在线观看| 亚洲性夜色夜夜综合| 50天的宝宝边吃奶边哭怎么回事| www.999成人在线观看| 久久国产精品人妻蜜桃| 人人妻人人爽人人添夜夜欢视频| 黄片播放在线免费| 十八禁网站免费在线| 天堂8中文在线网| 人人妻人人爽人人添夜夜欢视频| 啦啦啦中文免费视频观看日本| 在线精品无人区一区二区三| 人人澡人人妻人| 99精品欧美一区二区三区四区| 国产片内射在线| 巨乳人妻的诱惑在线观看| 在线av久久热| 精品视频人人做人人爽| 正在播放国产对白刺激| 亚洲久久久国产精品| 看免费av毛片| 久久精品人人爽人人爽视色| 人妻人人澡人人爽人人| 国产成人精品久久二区二区91| 无限看片的www在线观看| 国产一区二区三区在线臀色熟女 | 午夜福利在线免费观看网站| 欧美日韩国产mv在线观看视频| 99国产综合亚洲精品| 大片免费播放器 马上看| 美女高潮喷水抽搐中文字幕| 久久人人爽av亚洲精品天堂| 久久久水蜜桃国产精品网| 日日夜夜操网爽| 视频区欧美日本亚洲| 9191精品国产免费久久| 男女免费视频国产| 侵犯人妻中文字幕一二三四区| 中国美女看黄片| 亚洲专区国产一区二区| 如日韩欧美国产精品一区二区三区| 狂野欧美激情性bbbbbb| 亚洲五月婷婷丁香| 欧美 日韩 精品 国产| 国产国语露脸激情在线看| 天天躁夜夜躁狠狠躁躁| 亚洲免费av在线视频| 97在线人人人人妻| 中文精品一卡2卡3卡4更新| 国产精品麻豆人妻色哟哟久久| 少妇人妻久久综合中文| 丁香六月天网| 亚洲欧洲日产国产| 亚洲成av片中文字幕在线观看| 日日夜夜操网爽| 一个人免费在线观看的高清视频 | 国产一区二区三区综合在线观看| 人妻一区二区av| 亚洲av电影在线观看一区二区三区| 久久中文看片网| 一级毛片女人18水好多| 亚洲av电影在线进入| 黑人操中国人逼视频| 肉色欧美久久久久久久蜜桃| 男人爽女人下面视频在线观看| 精品福利永久在线观看| 国产亚洲一区二区精品| 99久久国产精品久久久| 久久久国产欧美日韩av| 一级毛片电影观看| 国产欧美日韩精品亚洲av| 亚洲成人手机| 99国产精品一区二区蜜桃av | 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲精品av麻豆狂野| 亚洲av日韩精品久久久久久密| 午夜91福利影院| 亚洲精品中文字幕一二三四区 | 另类亚洲欧美激情| av在线播放精品| 90打野战视频偷拍视频| 亚洲自偷自拍图片 自拍| 母亲3免费完整高清在线观看| 亚洲欧美日韩另类电影网站| 在线观看免费午夜福利视频| 一个人免费看片子| 成人影院久久| 国产欧美亚洲国产| 免费在线观看视频国产中文字幕亚洲 | 99久久综合免费| 中文字幕人妻丝袜制服| a 毛片基地| 国产黄频视频在线观看| 久久精品国产a三级三级三级| av又黄又爽大尺度在线免费看| 另类亚洲欧美激情| 黄色毛片三级朝国网站| 久久精品国产亚洲av高清一级| 国产精品免费视频内射| 精品熟女少妇八av免费久了| 国产成人系列免费观看| 91大片在线观看| 五月开心婷婷网| 高清欧美精品videossex| 男女边摸边吃奶| 欧美日韩黄片免| 亚洲国产av影院在线观看| 少妇精品久久久久久久| 亚洲精品国产色婷婷电影| 成年人免费黄色播放视频| 人妻人人澡人人爽人人| 久久精品成人免费网站| 天天躁夜夜躁狠狠躁躁| 老司机福利观看| 欧美黄色片欧美黄色片| 咕卡用的链子| 亚洲av欧美aⅴ国产| 丰满饥渴人妻一区二区三| 亚洲国产av影院在线观看| 日韩电影二区| 免费在线观看日本一区| 成年美女黄网站色视频大全免费| 韩国高清视频一区二区三区| av片东京热男人的天堂| 热99久久久久精品小说推荐| 国产99久久九九免费精品| 中文字幕另类日韩欧美亚洲嫩草| 麻豆乱淫一区二区| 日韩制服骚丝袜av| 精品国产一区二区三区四区第35| 高潮久久久久久久久久久不卡| 亚洲性夜色夜夜综合| av免费在线观看网站| 亚洲色图 男人天堂 中文字幕| 建设人人有责人人尽责人人享有的| 18禁黄网站禁片午夜丰满| 丝袜喷水一区| 久久ye,这里只有精品| 欧美激情极品国产一区二区三区| 欧美精品啪啪一区二区三区 | 午夜激情av网站| 99香蕉大伊视频| 欧美精品高潮呻吟av久久| 久久国产精品人妻蜜桃| 最近中文字幕2019免费版| 久久国产精品影院| 亚洲国产av新网站| 一区二区日韩欧美中文字幕| 久久国产亚洲av麻豆专区| 欧美在线一区亚洲| 在线亚洲精品国产二区图片欧美| 久久久国产一区二区| 欧美黄色片欧美黄色片| 国产成+人综合+亚洲专区| 嫁个100分男人电影在线观看| 精品亚洲乱码少妇综合久久| 大片电影免费在线观看免费| 80岁老熟妇乱子伦牲交| 国产精品一区二区在线不卡| 亚洲男人天堂网一区| 性色av乱码一区二区三区2| 国产一区二区在线观看av| 18禁观看日本| 热99re8久久精品国产| videos熟女内射| 婷婷丁香在线五月| 国产精品麻豆人妻色哟哟久久| 国产精品免费大片| 免费在线观看完整版高清| 黑人欧美特级aaaaaa片| 亚洲男人天堂网一区| 亚洲综合色网址| tube8黄色片| 国产区一区二久久| 波多野结衣av一区二区av| 国产成人免费观看mmmm| 日韩制服丝袜自拍偷拍| 极品人妻少妇av视频| 欧美精品高潮呻吟av久久| 婷婷丁香在线五月| 两个人免费观看高清视频| 国产日韩一区二区三区精品不卡| 精品少妇黑人巨大在线播放| 国产免费视频播放在线视频| 久久精品人人爽人人爽视色| 一本综合久久免费| 日本a在线网址| 国产精品1区2区在线观看. | 久久ye,这里只有精品| 在线观看免费视频网站a站| 午夜久久久在线观看| 日韩欧美一区视频在线观看| 国产日韩一区二区三区精品不卡| 亚洲国产中文字幕在线视频| 在线观看舔阴道视频| 99re6热这里在线精品视频| 中国国产av一级| 一本一本久久a久久精品综合妖精| 两个人看的免费小视频| 久久久久精品人妻al黑| 女人爽到高潮嗷嗷叫在线视频| 国产精品久久久久久人妻精品电影 | 国产有黄有色有爽视频| 黄色视频在线播放观看不卡| 一区在线观看完整版| 久久人人97超碰香蕉20202| 国产区一区二久久| 久久久精品免费免费高清| av天堂久久9| 亚洲中文av在线| 女人爽到高潮嗷嗷叫在线视频| 满18在线观看网站| 动漫黄色视频在线观看| 日本wwww免费看| 国产精品久久久av美女十八| 久久ye,这里只有精品| 欧美黑人欧美精品刺激| 精品久久久精品久久久| 亚洲一区二区三区欧美精品| 妹子高潮喷水视频| 日本撒尿小便嘘嘘汇集6| 久久精品熟女亚洲av麻豆精品| 久久人人爽av亚洲精品天堂| 99re6热这里在线精品视频| 一本综合久久免费| 又大又爽又粗| 午夜精品国产一区二区电影| 成年女人毛片免费观看观看9 | 搡老乐熟女国产| 国产成人精品在线电影| 国产老妇伦熟女老妇高清| 电影成人av| 每晚都被弄得嗷嗷叫到高潮| 最新在线观看一区二区三区| 久久毛片免费看一区二区三区| 人人妻人人添人人爽欧美一区卜| 国产精品自产拍在线观看55亚洲 | 女警被强在线播放| 欧美在线黄色| 午夜免费鲁丝| 久久人妻熟女aⅴ| 日韩中文字幕欧美一区二区| 亚洲少妇的诱惑av|