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

    基于構(gòu)建軟件功能描述的可復(fù)用軟件檢索方法

    2020-10-21 03:14:36伏廣宇李傳藝葛季棟
    關(guān)鍵詞:動(dòng)賓詞組開(kāi)源

    伏廣宇,李傳藝,葛季棟,駱 斌

    1.南京大學(xué)計(jì)算機(jī)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,南京210046

    2.南京大學(xué)軟件學(xué)院,南京210093

    隨著互聯(lián)網(wǎng)的飛速發(fā)展和軟件規(guī)模的不斷擴(kuò)大,軟件復(fù)用已成為降低開(kāi)發(fā)成本、節(jié)約開(kāi)發(fā)時(shí)間的有效途徑.越來(lái)越多的開(kāi)發(fā)者參與到開(kāi)源軟件的開(kāi)發(fā)中來(lái),積累了大量可復(fù)用的代碼、組件、服務(wù),為開(kāi)發(fā)者能夠快速構(gòu)建新軟件提供了有利條件.大量開(kāi)源軟件社區(qū)也隨之興起(如Github、SourceForge、OSCHINA、OpenHub 等).這些開(kāi)源軟件社區(qū)為開(kāi)發(fā)者提供了開(kāi)源軟件托管的平臺(tái),同時(shí)支持開(kāi)源軟件檢索,使用戶能夠找到相關(guān)的開(kāi)源軟件進(jìn)行復(fù)用.

    在現(xiàn)有的開(kāi)源軟件社區(qū)中,大部分只提供了根據(jù)軟件倉(cāng)庫(kù)名稱(chēng)、標(biāo)簽、分類(lèi)、軟件描述等信息進(jìn)行檢索的方法.開(kāi)源軟件社區(qū)中存在著大量?jī)?yōu)秀的開(kāi)源軟件但缺少詳細(xì)的描述,不能將軟件的所有功能體現(xiàn)出來(lái),導(dǎo)致用戶檢索困難.然而,技術(shù)問(wèn)答社區(qū)(如Stack Overflow)中存在關(guān)于開(kāi)源軟件的問(wèn)答描述,為軟件提供了更加詳細(xì)的信息,可以成為可復(fù)用軟件檢索的輔助信息來(lái)源.

    已經(jīng)有很多關(guān)于可復(fù)用軟件檢索的研究,如Bajracharya 等[1]實(shí)現(xiàn)了Sourcerer 系統(tǒng),從代碼角度進(jìn)行分析,提取出細(xì)粒度信息存儲(chǔ)在關(guān)系模型中用于進(jìn)行搜索,效果遠(yuǎn)優(yōu)于基于關(guān)鍵詞的搜索.Gu 等在文獻(xiàn)[2]中提出了一種新的帶有層次結(jié)構(gòu)的軟件標(biāo)簽結(jié)構(gòu),優(yōu)化了基于標(biāo)簽的軟件搜索方式.Girardi 等[3]構(gòu)建了一個(gè)名為ROSE 的方法,通過(guò)對(duì)軟件描述文本中的動(dòng)詞與名詞進(jìn)行抽取,建立索引為用戶提供軟件檢索.

    然而,這些研究都沒(méi)有解決用戶輸入與開(kāi)源軟件倉(cāng)庫(kù)索引方式之間的不對(duì)等問(wèn)題.現(xiàn)有研究中要么使用軟件代碼(如SCRUPLE 工具[4]),要么使用軟件簡(jiǎn)介(如RepoPal 系統(tǒng)[5])對(duì)軟件進(jìn)行索引,而輸入則為用戶表達(dá)的非正式的軟件需求描述.同時(shí),開(kāi)源軟件社區(qū)中存在著大量?jī)?yōu)秀開(kāi)源軟件的標(biāo)簽、描述不全的問(wèn)題,用戶不能針對(duì)軟件的功能特征進(jìn)行檢索.因此,本文提出了一種通過(guò)開(kāi)源軟件論壇或問(wèn)答網(wǎng)站構(gòu)建軟件功能描述,以匹配用戶輸入的方法,用于滿足用戶針對(duì)軟件功能進(jìn)行檢索的需求,具體包括:

    1)通過(guò)將開(kāi)源軟件與相關(guān)論壇結(jié)合,從論壇上提取出軟件所具有的功能特征;

    2)通過(guò)對(duì)用戶描述的軟件需求文本處理,快速提取出用戶所需的軟件功能;

    3)用BERT(bidirectional encoder representation from transformers)[6]預(yù)訓(xùn)練模型將軟件功能特征與用戶所需軟件功能轉(zhuǎn)換為句向量進(jìn)行相似度計(jì)算并推薦.

    1 開(kāi)源軟件項(xiàng)目的復(fù)用

    1.1 開(kāi)源軟件項(xiàng)目可復(fù)用性定義

    軟件復(fù)用是用現(xiàn)有的軟件或者軟件知識(shí)來(lái)構(gòu)建新的軟件[7].在軟件開(kāi)發(fā)過(guò)程中,軟件復(fù)用有幾個(gè)不同的層次,如代碼復(fù)用、設(shè)計(jì)復(fù)用、需求復(fù)用等.代碼級(jí)復(fù)用[8]包括函數(shù)復(fù)用、模塊復(fù)用、庫(kù)復(fù)用、完整的軟件產(chǎn)品復(fù)用等;設(shè)計(jì)級(jí)復(fù)用[9]包括模式復(fù)用、設(shè)計(jì)圖表復(fù)用、架構(gòu)復(fù)用、框架復(fù)用等;需求復(fù)用[10]則包括非正式需求描述復(fù)用與需求規(guī)格說(shuō)明復(fù)用等.無(wú)論何種軟件復(fù)用形式,其目的都是提高軟件質(zhì)量和生產(chǎn)率,這也成為許多科學(xué)家與管理學(xué)家關(guān)注的焦點(diǎn).軟件的可復(fù)用性是衡量軟件是否能被復(fù)用的重要指標(biāo),可以通過(guò)以下幾個(gè)方面進(jìn)行衡量:

    1)軟件功能的復(fù)用

    在設(shè)計(jì)初期,許多軟件的存在形式具有高度的可復(fù)用性.開(kāi)發(fā)者可以將現(xiàn)有項(xiàng)目中的源代碼或組件直接或簡(jiǎn)單修改后應(yīng)用到新的軟件中.例如在Java 開(kāi)發(fā)中,開(kāi)發(fā)者通過(guò)引入Java Archive(Jar)文件,能夠快速、高效地使用拓展功能.面向?qū)ο蟪绦蛟O(shè)計(jì)的出現(xiàn)進(jìn)一步推動(dòng)了軟件復(fù)用的發(fā)展.通過(guò)對(duì)軟件中功能與實(shí)體的抽象,通過(guò)類(lèi)、方法、對(duì)象將軟件的功能與角色進(jìn)行封裝,一次編寫(xiě)即可隨時(shí)被調(diào)用,大大降低了開(kāi)發(fā)成本.

    2)軟件體系結(jié)構(gòu)的復(fù)用

    隨著領(lǐng)域工程、領(lǐng)域分析的出現(xiàn),軟件的體系結(jié)構(gòu)成為了復(fù)用軟件的重要考慮因素.Arango 等[11]提出了一種在受限領(lǐng)域中構(gòu)建重用軟件的理論.在特定領(lǐng)域中,通過(guò)對(duì)用戶反饋與成功因素等積累,能夠大幅度提高軟件開(kāi)發(fā)的能力與效率.因此,通用模版也成為了軟件復(fù)用重要資源.

    3)開(kāi)發(fā)過(guò)程重用

    過(guò)程重用是最抽象、最高級(jí)的重用方法,與對(duì)特定代碼片段甚至是軟件體系結(jié)構(gòu)的重用無(wú)關(guān).這其中包括項(xiàng)目團(tuán)隊(duì)的開(kāi)發(fā)工具、開(kāi)發(fā)周期、協(xié)作模式、開(kāi)發(fā)中所產(chǎn)生的經(jīng)驗(yàn)等.Barreto等[12]提出了一種軟件流程的定義方法來(lái)獲取軟件開(kāi)發(fā)過(guò)程中可復(fù)用的元素,如團(tuán)隊(duì)組織、進(jìn)度安排等.

    本文主要研究檢索滿足功能可復(fù)用的開(kāi)源軟件項(xiàng)目,而如何對(duì)檢索到的可復(fù)用軟件項(xiàng)目進(jìn)行復(fù)用不是本文研究?jī)?nèi)容.本文使用自然語(yǔ)言表達(dá)軟件的功能特征.

    在軟件復(fù)用時(shí),通常會(huì)面臨道德與法律問(wèn)題.開(kāi)源軟件快速增長(zhǎng)的同時(shí)也帶動(dòng)了開(kāi)源社區(qū)與開(kāi)源協(xié)議的進(jìn)步與發(fā)展.為了避免道德問(wèn)題與法律糾紛并保護(hù)開(kāi)源軟件作者的權(quán)益,開(kāi)源軟件協(xié)議也是評(píng)估開(kāi)源軟件復(fù)用性的重要因素之一[13].常見(jiàn)的開(kāi)源協(xié)議有MIT License(MIT)、GNU General Public License v3.0(GLP)、Apache Licence 2.0(Apache-2.0)、Berkeley Software Distribution(BSD)等.Lerner 在文獻(xiàn)[14]指出,不同的開(kāi)源協(xié)議對(duì)開(kāi)源軟件的用途、規(guī)范的限制不同,所以在選擇開(kāi)源軟件進(jìn)行復(fù)用時(shí),需要考慮開(kāi)源軟件所遵守的協(xié)議.本文描述的方法只限定使用于符合開(kāi)源軟件復(fù)用協(xié)議的相關(guān)軟件.

    1.2 本文可復(fù)用軟件檢索目標(biāo)

    本文設(shè)定的可復(fù)用軟件檢索目標(biāo)為:檢索基于軟件功能可復(fù)用的相似開(kāi)源軟件.通過(guò)對(duì)開(kāi)源軟件的功能特征與需求文檔中的功能特征進(jìn)行匹配,為用戶推薦具有可被直接復(fù)用功能的開(kāi)源軟件,或具有相似功能經(jīng)過(guò)修改可被復(fù)用的開(kāi)源軟件.

    現(xiàn)有開(kāi)源軟件倉(cāng)庫(kù)對(duì)軟件本身功能性描述并不全面,主要是對(duì)軟件代碼的管理和軟件迭代更新過(guò)程的管理.為了實(shí)現(xiàn)基于可復(fù)用功能的開(kāi)源軟件檢索,首先需要明確每一個(gè)開(kāi)源軟件的功能性需求,作為判斷是否符合檢索要求的基礎(chǔ).雖然軟件倉(cāng)庫(kù)沒(méi)有詳細(xì)描述軟件的功能性需求,在一些用戶論壇和問(wèn)答系統(tǒng)中,軟件用戶會(huì)對(duì)相關(guān)軟件的功能開(kāi)展討論,從用戶發(fā)言中可以抽取出軟件的功能性描述.因此,本文提出一種從用戶論壇或問(wèn)答系統(tǒng)中抽取軟件功能描述的方法,用于構(gòu)建軟件功能索引.

    從用戶描述語(yǔ)言中提取軟件功能描述的另一個(gè)優(yōu)點(diǎn)是,其描述語(yǔ)言與用戶輸入的檢索條件保持一致.一般而言,普通用戶在描述軟件功能時(shí)不會(huì)使用專(zhuān)業(yè)術(shù)語(yǔ),更加偏向日常使用的自然語(yǔ)言描述,如果將這種檢索輸入與正式的軟件需求規(guī)格說(shuō)明中的功能描述進(jìn)行匹配,即使描述的為相同的功能,其文本相似程度也非常低.雖然可以通過(guò)語(yǔ)義編碼將規(guī)格說(shuō)明與用戶描述映射到同一個(gè)語(yǔ)義空間,其效果不如在輸入和索引中均使用用戶描述語(yǔ)言,這樣通過(guò)語(yǔ)義編碼后,語(yǔ)義相近的更可能匹配成功.

    本文描述的檢索系統(tǒng)的輸入為自然語(yǔ)言描述的軟件功能性需求,其特點(diǎn)是非正式的軟件功能性描述,與寫(xiě)入軟件需求規(guī)格說(shuō)明的敘述存在一定差別.為根據(jù)輸入的功能描述檢索功能相似的軟件項(xiàng)目,將其與從相關(guān)論壇或問(wèn)答社區(qū)中提取出的開(kāi)源軟件功能特征映射到同一個(gè)語(yǔ)義空間中,使用數(shù)值向量表示文本內(nèi)容,例如通過(guò)現(xiàn)階段流行的BERT 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型將兩種文本轉(zhuǎn)換為向量表示.假設(shè),vi表示用戶輸入的功能描述的文本向量,vj表示開(kāi)源軟件功能特征的文本向量,m為向量的維度,用余弦相似度公式計(jì)算兩者相似性如下:

    同時(shí),納入本文描述系統(tǒng)檢索范圍的開(kāi)源軟件需遵守相關(guān)的開(kāi)源許可,確保用戶對(duì)開(kāi)源軟件的合法復(fù)用.

    2 檢索系統(tǒng)的詳細(xì)敘述

    本文提出了一種基于軟件需求的開(kāi)源軟件檢索方法.圖1展示了該方法的整體框架.

    圖1 本文提出的方法整體框架圖Figure 1 Overall framework in our proposed approach

    該方法的核心工作是為每一個(gè)開(kāi)源軟件構(gòu)建功能特征描述,處理用戶上傳的功能需求描述,并計(jì)算開(kāi)源軟件功能特征與用戶描述中所需功能的相似度.開(kāi)源軟件是系統(tǒng)返回的結(jié)果單元.該方法主要分為4 個(gè)步驟:

    步驟1對(duì)開(kāi)源軟件在論壇或問(wèn)答社區(qū)中的文本討論數(shù)據(jù)進(jìn)行預(yù)處理(本文以開(kāi)發(fā)者技術(shù)論壇Stack Overflow 作為數(shù)據(jù)來(lái)源,基于該數(shù)據(jù)描述本文方法的具體流程并驗(yàn)證該方法的有效性),減少文本中代碼、網(wǎng)頁(yè)標(biāo)簽帶來(lái)的負(fù)面影響;

    步驟2通過(guò)句法分析與動(dòng)賓短語(yǔ)提取從問(wèn)答語(yǔ)句中篩選出動(dòng)賓短語(yǔ),作為開(kāi)源軟件功能特征的候選詞,再通過(guò)啟發(fā)式過(guò)濾規(guī)則和信息詞出現(xiàn)的頻率進(jìn)行過(guò)濾,篩選出開(kāi)源軟件的功能特征短語(yǔ);

    步驟3對(duì)用戶上傳軟件需求描述進(jìn)行動(dòng)賓短語(yǔ)提取與過(guò)濾,同時(shí)為用戶提供自行篩選與修改動(dòng)賓短語(yǔ)的接口,輔助用戶提取出軟件需求中所需的軟件功能;

    步驟4通過(guò)對(duì)提取出的開(kāi)源軟件功能與用戶所需的軟件功能進(jìn)行文本向量轉(zhuǎn)換,并計(jì)算相似度,最終根據(jù)相似度篩選出前K個(gè)結(jié)果推送給用戶.

    2.1 問(wèn)答數(shù)據(jù)預(yù)處理

    本文從Stack Exchange Data Explorer 上獲取數(shù)據(jù)源,根據(jù)開(kāi)源軟件的名稱(chēng)在Stack Overflow 上對(duì)應(yīng)的標(biāo)簽獲取相關(guān)的問(wèn)答信息.如圖2所示,Stack Overflow 中的問(wèn)答記錄以網(wǎng)頁(yè)的形式進(jìn)行展示,所以在獲取到的原始問(wèn)答數(shù)據(jù)中,包含著大量HTML 標(biāo)簽和代碼.這些都會(huì)對(duì)語(yǔ)義分析產(chǎn)生影響.同時(shí),這些開(kāi)源軟件需遵守相關(guān)的開(kāi)源協(xié)議.

    對(duì)語(yǔ)句中出現(xiàn)的代碼進(jìn)行替換.在圖2所展示的問(wèn)答記錄中,存在灰色背景的命令行代碼.從網(wǎng)頁(yè)獲取的這段文本中,代碼被包含在標(biāo)簽,通過(guò)正則表達(dá)式.*將代碼替換為#CODE 標(biāo)記.

    對(duì)語(yǔ)句中出現(xiàn)的HTML 標(biāo)簽進(jìn)行替換,獲取到的問(wèn)答記錄被包含在HTML 標(biāo)簽之間.用Beautiful Soup 工具對(duì)出現(xiàn)的HTML 標(biāo)簽進(jìn)行替換.

    圖2 Youtube-dl 項(xiàng)目在Stack Overflow 中的問(wèn)答記錄Figure 2 Q&A record of youtube-dl in Stack Overflow

    2.2 開(kāi)源軟件功能特征的篩選

    根據(jù)文獻(xiàn)[15]中提出的基于Stack Overflow 數(shù)據(jù)的軟件功能特征挖掘組織方法進(jìn)行開(kāi)源軟件功能特征提取.

    2.2.1 句法分析與動(dòng)賓短語(yǔ)提取

    在問(wèn)答社區(qū)中,功能特征通常作為動(dòng)賓短語(yǔ)出現(xiàn).因此用Stanford CoreNLP[16]工具對(duì)語(yǔ)句構(gòu)造句法分析樹(shù),并用Penn Treebank[17]的約定進(jìn)行語(yǔ)法與詞性標(biāo)記.如語(yǔ)句“I’m trying to download all the videos from the playlist.”(來(lái)自開(kāi)源項(xiàng)目youtube-dl 在Stack Overflow 中的討論)的句法解析書(shū)構(gòu)造如圖3所示.

    圖3 “I’m trying to download all the videos from the playlist.”的句法解析樹(shù)Figure 3 Parse tree of the sentence of “I’m trying to download all the videos from the playlist.”

    在句法解析樹(shù)中,VP 所對(duì)應(yīng)的句子為動(dòng)賓短語(yǔ).而文檔中存在多個(gè)VP 標(biāo)記,只有“download all the videos from the playlist.”為合法的功能特征.因此設(shè)計(jì)了基于句法結(jié)構(gòu)特征的過(guò)濾方式:如果動(dòng)賓短語(yǔ)的第一層子節(jié)點(diǎn)不包含動(dòng)詞(標(biāo)簽VB.*)和名詞成分(標(biāo)簽.*NP.*)則直接過(guò)濾.根據(jù)此過(guò)濾方法可以得到該句中合法的動(dòng)賓短語(yǔ)作為候選功能特征.

    2.2.2 基于啟發(fā)式的動(dòng)賓短語(yǔ)過(guò)濾

    初步篩選出的動(dòng)賓短語(yǔ)很多不能直接作為功能特征,需要通過(guò)啟發(fā)式規(guī)則進(jìn)行篩選.本文在動(dòng)賓短語(yǔ)篩選的過(guò)程中提出了核心詞概念.根據(jù)文獻(xiàn)[15]所提出的功能特征的統(tǒng)一文法,如表1所示.

    Function、Action、Object、Condition 分別表示功能特征、功能特征中的操作、功能特征中的對(duì)象、功能特征中的約束條件.操作中的動(dòng)詞與對(duì)象最后一個(gè)名詞分別對(duì)應(yīng)著功能特征中的核心動(dòng)詞與核心名詞.如“download all the videos from the playlist”中,核心動(dòng)詞為download,核心名詞為video,兩者組合的核心詞組為“download video”.

    表1 功能特征的統(tǒng)一文法Table 1 Normalized grammar of functional features

    當(dāng)核心動(dòng)詞出現(xiàn)助動(dòng)詞、情態(tài)動(dòng)詞,或軟件開(kāi)發(fā)常用術(shù)語(yǔ)(如include 等)、問(wèn)答常用術(shù)語(yǔ)(如ask,help 等)時(shí),將短語(yǔ)過(guò)濾.

    當(dāng)核心名詞出現(xiàn)代詞或軟件開(kāi)發(fā)常用術(shù)語(yǔ)(如method、object 等)、問(wèn)答常用術(shù)語(yǔ)(如solution、advice 等)時(shí),將短語(yǔ)過(guò)濾.

    2.2.3 基于核心詞組出現(xiàn)頻度的過(guò)濾

    在問(wèn)答討論中會(huì)反復(fù)提及功能特征,因此通過(guò)過(guò)濾基于核心詞組出現(xiàn)詞頻,能夠有效篩選出合法的功能特征.與文獻(xiàn)[15]不同的是,本文方法統(tǒng)計(jì)動(dòng)賓短語(yǔ)的核心詞組在一個(gè)項(xiàng)目中出現(xiàn)的頻度,當(dāng)核心詞組出現(xiàn)頻度大于0.01%,可被視為合法的功能特征.由于本文方法無(wú)需獲取開(kāi)源軟件功能的層次化組織結(jié)構(gòu),相較于文獻(xiàn)[15]中使用的頻繁子圖挖掘算法,基于核心詞組出現(xiàn)頻度的過(guò)濾方式不僅能反映功能特征出現(xiàn)的頻率,在處理大量數(shù)據(jù)時(shí)還能提高運(yùn)行效率.

    2.3 用戶描述中功能特征的提取

    針對(duì)用戶上傳的軟件需求,通過(guò)2.2 節(jié)中1)、2)方法進(jìn)行功能特征的提取.比如,需求語(yǔ)句“I want to make a webpage,users can download youtube videos from the webpage.” 通過(guò)2.2 節(jié)中1)、2)方法,篩選出候選功能特征“make a webpage” “download youtube videos using the webpage”.

    由于用戶需求描述文本中功能特征出現(xiàn)的頻度較小,無(wú)法采用基于核心詞出現(xiàn)頻度的過(guò)濾.因此為用戶提供了一個(gè)允許其對(duì)提取、篩選后的候選功能特征進(jìn)行刪除、修改的接口,保證了軟件需求中提取的功能特征的準(zhǔn)確度,也避免了用戶逐一查找的繁瑣.

    上文的候選功能特征“download youtube videos using the webpage”中,“from the webpage”對(duì)檢索沒(méi)有意義,通過(guò)修改接口修改為“download youtube videos”.

    2.4 具有相似功能開(kāi)源軟件的檢索與推薦

    本文基于軟件需求中的功能特征與開(kāi)源軟件中的功能特征,設(shè)計(jì)了如圖4的檢索與推薦流程.

    圖4 開(kāi)源軟件檢索與推薦流程Figure 4 Process of retrieval and recommendation

    1)功能特征和核心詞短語(yǔ)的文本向量轉(zhuǎn)換

    由于開(kāi)源軟件存在大量的功能特征且涉及領(lǐng)域不確定,無(wú)法提前獲得數(shù)據(jù)集進(jìn)行訓(xùn)練.因此使用Google 提供的BERT-Large、Uncased (Whole Word Masking)預(yù)訓(xùn)練模型進(jìn)行無(wú)監(jiān)督的文本向量轉(zhuǎn)換.

    例如開(kāi)源軟件youtube-dl 中具有的功能特征“download youtube videos”,其核心詞組為“download video”,使用BERT將功能特征與核心詞組分別轉(zhuǎn)換為1?1 024 的文本向量.

    2)使用核心詞組進(jìn)行初次匹配

    由于開(kāi)源軟件中存在大量的功能特征,且不同的功能特征有可能存在相同的核心詞.因此先采用核心詞組進(jìn)行相似度匹配,能夠有效減少檢索的次數(shù).使用用戶需求中提取出的核心詞組,對(duì)數(shù)據(jù)庫(kù)中開(kāi)源軟件功能特征的核心詞組進(jìn)行相似度匹配,文本向量相似度檢測(cè)如式(1)所示.根據(jù)相似度進(jìn)行排序篩選出前J個(gè)核心詞組.

    如用戶所需功能為“download videos from youtube”,系統(tǒng)將先使用核心詞組“download video”與數(shù)據(jù)庫(kù)中的開(kāi)源軟件功能特征的核心詞組進(jìn)行相似度匹配,當(dāng)匹配到y(tǒng)outube-dl 項(xiàng)目中的核心詞組“download video”,再與其對(duì)應(yīng)的“download youtube videos”進(jìn)行相似度計(jì)算.

    3)使用功能特征進(jìn)行再次匹配.

    根據(jù)2)中篩選出的核心詞組所對(duì)應(yīng)的功能特征,用式(1)檢測(cè)短文本向量相似度.根據(jù)相似度篩選出前K個(gè)開(kāi)源軟件的功能特征.此處分為兩個(gè)階段檢索是出于檢索效率的考慮,通過(guò)核心詞能夠檢索出具有較高推薦排名候選項(xiàng)目,即縮小二次檢索范圍,提高檢索效率.效率對(duì)比將在實(shí)驗(yàn)部分給出.

    4)按照功能特征相似度進(jìn)行排序,將排名前K個(gè)的軟件項(xiàng)目推薦給用戶.

    3 實(shí)驗(yàn)評(píng)估

    實(shí)驗(yàn)平臺(tái)為Intel i9 9880H 處理器,macOS 10.15.5 操作系統(tǒng),運(yùn)行內(nèi)存16 GB.

    3.1 數(shù)據(jù)準(zhǔn)備

    我們篩選了Github上Stars 數(shù)排名前100 的Python 開(kāi)源軟件.從Stack Overflow 上獲取到相關(guān)的問(wèn)答記錄數(shù)據(jù)如表2所示.有些開(kāi)源軟件在Stack Overflow 社區(qū)中問(wèn)答數(shù)目較多,例如Flask 擁有81 972 條問(wèn)答記錄.由于實(shí)驗(yàn)設(shè)備性能限制,對(duì)于大于10 000 條評(píng)論的開(kāi)源項(xiàng)目,只截取其中瀏覽量最高的5 000 條問(wèn)題及其答案.

    表2 實(shí)驗(yàn)數(shù)據(jù)信息Table 2 Information about experimental data

    3.2 評(píng)價(jià)指標(biāo)與實(shí)驗(yàn)設(shè)計(jì)

    首先,采用MRR(mean reciprocal rank)[18]對(duì)項(xiàng)目推薦性能進(jìn)行評(píng)估.MRR是檢索系統(tǒng)中常用的評(píng)估指標(biāo).檢索系統(tǒng)根據(jù)條件生成一個(gè)項(xiàng)目排名列表,MRR 是第一個(gè)符合條件的項(xiàng)目在列表中排名的倒數(shù)乘積.MRR 的值越大,說(shuō)明該系統(tǒng)的性能越好.

    由于開(kāi)源軟件庫(kù)中軟件數(shù)目多,軟件所具有的功能特征也較多,采用人工方法對(duì)所有軟件的功能特征進(jìn)行標(biāo)定工程量較大,無(wú)法使用Recall 等指標(biāo)進(jìn)行衡量,因此采用MRR 來(lái)衡量系統(tǒng)的檢索性能.根據(jù)用于測(cè)試的軟件項(xiàng)目編寫(xiě)用戶需求描述,假設(shè)測(cè)試項(xiàng)目為開(kāi)源軟件F,其用戶需求描述為Q.然后,用Q作為檢索條件獲得一個(gè)推薦項(xiàng)目列表.由于Q可能不只是項(xiàng)目F 獨(dú)有的功能,檢索結(jié)果中會(huì)有同樣滿足Q要求的非F項(xiàng)目.為了消除該類(lèi)項(xiàng)目對(duì)評(píng)價(jià)檢索方案的影響,我們將其從列表中刪除,僅保留并不滿足Q要求的開(kāi)源項(xiàng)目.最后,根據(jù)F在處理后的推薦列表中的排名計(jì)算MRR 值.假設(shè)對(duì)于給定的查詢Q,其檢索結(jié)果列表為其MRR 的計(jì)算為

    式中,Ranki表示對(duì)于查詢Qi,開(kāi)源軟件Fi的排序結(jié)果.MRR 的值越高,則項(xiàng)目推薦性能越好.

    為了體現(xiàn)先用核心詞組進(jìn)行檢索的效率優(yōu)勢(shì).在實(shí)驗(yàn)中,設(shè)置了分段檢索與一次檢索的平均檢索耗時(shí)(單位:ms)的對(duì)比.分段檢索為先用核心詞進(jìn)行初次檢索,再用核心詞組所對(duì)應(yīng)的完整的功能特征進(jìn)行檢索.一次檢索為直接使用需求中所需的功能特征與提取出的開(kāi)源軟件的功能特征進(jìn)行文本向量相似度匹配.

    為了評(píng)估本文提出的方案的有效性,設(shè)計(jì)了兩個(gè)對(duì)比實(shí)驗(yàn).第一個(gè)實(shí)驗(yàn)是與基本檢索方案對(duì)比檢索性能(Baseline).基本方案為使用不包括本文構(gòu)造的功能描述作為項(xiàng)目索引的檢索方案,如基于項(xiàng)目簡(jiǎn)介、標(biāo)簽等信息進(jìn)行檢索.最后用同樣的方式計(jì)算測(cè)試項(xiàng)目的MRR 值進(jìn)行對(duì)比.第二個(gè)對(duì)比實(shí)驗(yàn)是對(duì)比本文分階段檢索(Split)與一次檢索(Single)的差異,包括推薦效果差異和效率差異.

    表3 用于測(cè)試的開(kāi)源軟件的用戶需求樣例Table 3 Examples of user requirements of open source software for testing

    3.3 實(shí)驗(yàn)結(jié)果與分析

    由于數(shù)據(jù)集中的開(kāi)源項(xiàng)目均為面向開(kāi)發(fā)者用戶的Python 平臺(tái)項(xiàng)目,我們邀請(qǐng)了5 位熟練的Python 開(kāi)發(fā)工程師并隨機(jī)選取了10 個(gè)開(kāi)源項(xiàng)目.每個(gè)選取的開(kāi)源軟件由3 位工程師獨(dú)立編寫(xiě)人工描述的需求,并對(duì)3 份不同的描述分別進(jìn)行實(shí)驗(yàn)取平均值.表3給出了每個(gè)項(xiàng)目的用戶需求示例.

    將MRR 中的K設(shè)置為20,針對(duì)每條需求中所描述的功能,每次從檢索結(jié)果中抽取出20個(gè)不符合功能描述要求的開(kāi)源軟件,并統(tǒng)計(jì)該開(kāi)源軟件在這K+1 個(gè)軟件中的排名.針對(duì)每個(gè)用于測(cè)試的開(kāi)源軟件,共進(jìn)行3 次實(shí)驗(yàn)取平均值.圖5描述了不同開(kāi)源軟件在不同檢索方案下對(duì)應(yīng)的MRR 評(píng)分.

    圖5 不同開(kāi)源軟件的不同檢索方案對(duì)應(yīng)的MRR 評(píng)分Figure 5 MRR of different open source software using different searching strategies

    根據(jù)圖5可以得出,Split 比Baseline 的實(shí)驗(yàn)效果更好,但與Single 沒(méi)有明顯差別.在Split 與Baseline 的對(duì)比中,由于大部分開(kāi)源軟件(如scrapy、spaCy)的描述、簡(jiǎn)介中沒(méi)有提及軟件功能,所以Split 實(shí)驗(yàn)效果遠(yuǎn)優(yōu)于Baseline.少部分開(kāi)源軟件(如youtube-dl)的描述中涉及了大部分軟件功能,所以其Baseline 實(shí)驗(yàn)效果要遠(yuǎn)優(yōu)于在其他開(kāi)源軟件上Baseline 的實(shí)驗(yàn)效果.在Split 與Single 對(duì)比中,由于兩種方法最終都要進(jìn)行功能特征的匹配,所以實(shí)驗(yàn)效果沒(méi)有明顯差別.

    第二個(gè)實(shí)驗(yàn)中我們同樣用上述10 個(gè)測(cè)試軟件項(xiàng)目,使用多個(gè)功能描述進(jìn)行多次檢索,統(tǒng)計(jì)平均檢索效率,對(duì)比結(jié)果見(jiàn)表4.

    如表4所示,分階段檢索的平均檢索耗時(shí)明顯少于一次檢索的平均檢索耗時(shí).因?yàn)橐粋€(gè)核心詞組(如download video),往往對(duì)應(yīng)著多個(gè)功能特征(如download videos from youtube、download videos from playlist、download playlist videos等),通過(guò)核心詞組可以快速定位到對(duì)應(yīng)的功能特征,再進(jìn)行第二階段的檢索.因此在軟件檢索過(guò)程中,采用分階段檢索的方法所需的計(jì)算更少,所需時(shí)間更少.

    表4 分階段檢索和一次檢索的效率對(duì)比Table 4 Comparison of searching efficiency between splite and single strategy ms

    3.4 系統(tǒng)實(shí)現(xiàn)

    基于本文提出的方法,我們實(shí)現(xiàn)了一個(gè)供用戶基于軟件功能需求描述的相似軟件檢索系統(tǒng).通過(guò)使用Flask 框架與Vue.js 框架進(jìn)行前后端的搭建.如圖6所示,該系統(tǒng)為用戶提供了一個(gè)用戶需求文檔上傳的界面.用戶可以將需求分析以txt 文檔格式上傳.系統(tǒng)將自動(dòng)抽取出用戶所需的候選功能并支持用戶進(jìn)行修改、刪除.

    圖6 軟件需求上傳編輯界面Figure 6 Interface of uploading software requirements and editing functions

    如圖7所示,搜索結(jié)果將以列表的形式呈現(xiàn)給用戶.根據(jù)軟件需求中提取、篩選出的功能為用戶推薦具有相似功能的開(kāi)源軟件,并給出相應(yīng)的鏈接與開(kāi)源證書(shū).

    4 結(jié) 語(yǔ)

    本文提出了基于軟件需求的開(kāi)源軟件檢索方法,從開(kāi)源軟件在問(wèn)答社區(qū)的問(wèn)答記錄中提取開(kāi)源軟件的功能特征,能夠有效解決開(kāi)源軟件社區(qū)中軟件標(biāo)簽較少、軟件描述不全對(duì)開(kāi)源軟件檢索造成的負(fù)面影響.通過(guò)文本向量對(duì)功能進(jìn)行檢索,在一定程度上解決了功能描述上的差異問(wèn)題.同時(shí),系統(tǒng)對(duì)軟件需求中的功能需求進(jìn)行批量抽取與檢索,避免了開(kāi)發(fā)者在開(kāi)發(fā)過(guò)程中逐個(gè)檢索的繁瑣.因此,本方法在開(kāi)源軟件檢索上有一定的價(jià)值.

    圖7 系統(tǒng)查詢結(jié)果界面Figure 7 Query result interface of the system

    由于很多開(kāi)源軟件在問(wèn)答社區(qū)中問(wèn)答數(shù)目較少,會(huì)出現(xiàn)部分功能不能被體現(xiàn)的情況,很大程度上影響了檢索的效果.后續(xù)實(shí)驗(yàn)中將會(huì)從代碼信息,注釋信息等更多地方獲取開(kāi)源軟件信息,作為檢索的條件.

    猜你喜歡
    動(dòng)賓詞組開(kāi)源
    五毛錢(qián)能買(mǎi)多少頭牛
    試論對(duì)外漢語(yǔ)教學(xué)中動(dòng)賓式離合詞的教學(xué)
    新一代(2018年20期)2018-03-13 12:24:20
    大家說(shuō):開(kāi)源、人工智能及創(chuàng)新
    開(kāi)源中國(guó)開(kāi)源世界高峰論壇圓桌會(huì)議縱論開(kāi)源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    開(kāi)源計(jì)算機(jī)輔助翻譯工具研究
    “救火”帶標(biāo)記動(dòng)賓對(duì)象式結(jié)構(gòu)語(yǔ)用認(rèn)知分析
    副詞和副詞詞組
    動(dòng)賓離合詞及其構(gòu)成的語(yǔ)式
    動(dòng)賓結(jié)構(gòu)中動(dòng)詞虛化的認(rèn)知闡釋
    欧美日韩成人在线一区二区| 色哟哟·www| av福利片在线| 久久影院123| 91精品国产国语对白视频| 丰满饥渴人妻一区二区三| 日韩精品免费视频一区二区三区 | 26uuu在线亚洲综合色| 成人影院久久| 最近的中文字幕免费完整| 久久精品国产鲁丝片午夜精品| 国产探花极品一区二区| 五月伊人婷婷丁香| 校园人妻丝袜中文字幕| 蜜桃国产av成人99| 日韩,欧美,国产一区二区三区| 中文天堂在线官网| 国产亚洲欧美精品永久| 国语对白做爰xxxⅹ性视频网站| 狠狠精品人妻久久久久久综合| 人妻一区二区av| 91午夜精品亚洲一区二区三区| 国产精品人妻久久久影院| 成人无遮挡网站| 九九爱精品视频在线观看| 欧美日本中文国产一区发布| 国产极品粉嫩免费观看在线| 91精品伊人久久大香线蕉| 欧美亚洲日本最大视频资源| 亚洲精品美女久久av网站| 久久99蜜桃精品久久| 一级毛片电影观看| 国产精品国产三级国产专区5o| 欧美97在线视频| 一级毛片黄色毛片免费观看视频| av又黄又爽大尺度在线免费看| videossex国产| 九九爱精品视频在线观看| 女人久久www免费人成看片| 欧美精品一区二区免费开放| 国产日韩一区二区三区精品不卡| 蜜桃国产av成人99| 久久精品人人爽人人爽视色| 日日撸夜夜添| 亚洲国产精品成人久久小说| 国产不卡av网站在线观看| 亚洲激情五月婷婷啪啪| 国产精品女同一区二区软件| 18禁动态无遮挡网站| 亚洲成av片中文字幕在线观看 | 免费在线观看黄色视频的| 亚洲情色 制服丝袜| 麻豆精品久久久久久蜜桃| 国产午夜精品一二区理论片| 91午夜精品亚洲一区二区三区| 夫妻午夜视频| 最近的中文字幕免费完整| 另类亚洲欧美激情| 午夜av观看不卡| 人人澡人人妻人| 天堂俺去俺来也www色官网| 97超碰精品成人国产| 国产黄色免费在线视频| 视频中文字幕在线观看| 国产欧美日韩一区二区三区在线| 亚洲成人av在线免费| 国产精品秋霞免费鲁丝片| 91精品国产国语对白视频| 自线自在国产av| 波野结衣二区三区在线| 亚洲av男天堂| 97人妻天天添夜夜摸| 人妻 亚洲 视频| 亚洲激情五月婷婷啪啪| 天堂8中文在线网| 免费看av在线观看网站| 黑丝袜美女国产一区| av免费观看日本| 亚洲国产av影院在线观看| 黑人巨大精品欧美一区二区蜜桃 | 黑人欧美特级aaaaaa片| 欧美丝袜亚洲另类| 亚洲av中文av极速乱| 各种免费的搞黄视频| 看免费av毛片| 国产精品久久久久久精品古装| 国产精品国产av在线观看| 国产福利在线免费观看视频| 午夜久久久在线观看| 国产精品熟女久久久久浪| 亚洲精品一区蜜桃| 国产高清不卡午夜福利| 精品久久久久久电影网| 精品国产国语对白av| 狠狠精品人妻久久久久久综合| 国产一区二区三区综合在线观看 | 久久久精品区二区三区| 久久久久久久久久成人| 69精品国产乱码久久久| 久久精品国产综合久久久 | 久久久久精品久久久久真实原创| 中文字幕av电影在线播放| 在线观看www视频免费| 熟女av电影| freevideosex欧美| 制服人妻中文乱码| 亚洲欧美日韩另类电影网站| 亚洲,欧美,日韩| 91国产中文字幕| 多毛熟女@视频| 18禁在线无遮挡免费观看视频| 午夜91福利影院| av有码第一页| 亚洲欧美成人精品一区二区| 欧美最新免费一区二区三区| 亚洲成av片中文字幕在线观看 | 精品一区在线观看国产| 国产亚洲最大av| 免费日韩欧美在线观看| 久久精品国产鲁丝片午夜精品| 18禁国产床啪视频网站| 天堂中文最新版在线下载| 五月伊人婷婷丁香| 亚洲精品乱久久久久久| 嫩草影院入口| 亚洲综合精品二区| 欧美xxxx性猛交bbbb| 亚洲欧美色中文字幕在线| 久久久久久久久久久免费av| 国产精品国产三级专区第一集| 日韩制服骚丝袜av| 七月丁香在线播放| 爱豆传媒免费全集在线观看| 免费观看性生交大片5| 另类精品久久| 全区人妻精品视频| 免费av中文字幕在线| 国产乱来视频区| 免费看光身美女| 日韩中字成人| 亚洲国产色片| 女性生殖器流出的白浆| 大码成人一级视频| 妹子高潮喷水视频| 日本-黄色视频高清免费观看| 黑人猛操日本美女一级片| 韩国高清视频一区二区三区| videosex国产| 精品一区在线观看国产| 亚洲av在线观看美女高潮| 欧美xxⅹ黑人| 美女xxoo啪啪120秒动态图| 内地一区二区视频在线| 美女大奶头黄色视频| 青春草亚洲视频在线观看| 如何舔出高潮| 人成视频在线观看免费观看| 精品少妇久久久久久888优播| 精品人妻一区二区三区麻豆| 天天操日日干夜夜撸| 亚洲国产精品一区三区| 黑人巨大精品欧美一区二区蜜桃 | 欧美成人午夜精品| 美女脱内裤让男人舔精品视频| 啦啦啦在线观看免费高清www| 亚洲欧美日韩另类电影网站| 色94色欧美一区二区| 一级片'在线观看视频| 秋霞在线观看毛片| 你懂的网址亚洲精品在线观看| 精品一区在线观看国产| 天天躁夜夜躁狠狠躁躁| 男的添女的下面高潮视频| 9色porny在线观看| 免费黄频网站在线观看国产| 香蕉国产在线看| 18禁在线无遮挡免费观看视频| 国产色婷婷99| 久久99精品国语久久久| 最近手机中文字幕大全| 国产片特级美女逼逼视频| 欧美 日韩 精品 国产| 精品少妇黑人巨大在线播放| 久久久久久久久久久免费av| 一级,二级,三级黄色视频| 亚洲国产精品一区二区三区在线| 日韩精品有码人妻一区| 亚洲 欧美一区二区三区| 黄色 视频免费看| 色网站视频免费| 国产精品三级大全| 97人妻天天添夜夜摸| 国产色爽女视频免费观看| 中文字幕免费在线视频6| 午夜福利视频在线观看免费| 亚洲人成77777在线视频| 久久久久视频综合| 自线自在国产av| 满18在线观看网站| 精品人妻偷拍中文字幕| 日韩不卡一区二区三区视频在线| 日本av免费视频播放| 一区二区三区四区激情视频| 18禁观看日本| 久久精品人人爽人人爽视色| 国产成人91sexporn| 色视频在线一区二区三区| 亚洲国产精品国产精品| 欧美亚洲 丝袜 人妻 在线| 日韩电影二区| 久久久久网色| 五月天丁香电影| 国产深夜福利视频在线观看| 人体艺术视频欧美日本| 一区二区三区四区激情视频| 日韩在线高清观看一区二区三区| 黑人高潮一二区| 亚洲av综合色区一区| 亚洲欧美精品自产自拍| 美女福利国产在线| 中国美白少妇内射xxxbb| 我的女老师完整版在线观看| 精品99又大又爽又粗少妇毛片| 在线看a的网站| 午夜免费鲁丝| 国产精品人妻久久久久久| 女人精品久久久久毛片| 在线观看www视频免费| 日本-黄色视频高清免费观看| 黄色怎么调成土黄色| 精品视频人人做人人爽| 美女国产视频在线观看| 丝袜在线中文字幕| 国产免费一级a男人的天堂| 亚洲,一卡二卡三卡| 日韩电影二区| 日本wwww免费看| 欧美xxxx性猛交bbbb| 成人亚洲欧美一区二区av| 久久ye,这里只有精品| 十八禁高潮呻吟视频| 91国产中文字幕| 在现免费观看毛片| 人体艺术视频欧美日本| 91精品伊人久久大香线蕉| 亚洲精华国产精华液的使用体验| 国产精品免费大片| 在线观看人妻少妇| 日韩制服骚丝袜av| 纯流量卡能插随身wifi吗| 男女啪啪激烈高潮av片| 精品一区二区三区视频在线| 免费观看av网站的网址| 丝袜美足系列| 成年av动漫网址| 久久精品人人爽人人爽视色| 亚洲天堂av无毛| 久久久久久久精品精品| 亚洲国产欧美日韩在线播放| 久久女婷五月综合色啪小说| 亚洲国产av新网站| 国产精品熟女久久久久浪| 国产亚洲av片在线观看秒播厂| 国产成人精品在线电影| 少妇被粗大猛烈的视频| 国产精品一国产av| 亚洲av电影在线观看一区二区三区| 热re99久久国产66热| 天天躁夜夜躁狠狠躁躁| 国产精品国产三级专区第一集| 国产精品熟女久久久久浪| 久久久国产精品麻豆| 久久午夜综合久久蜜桃| 少妇的逼水好多| 亚洲一级一片aⅴ在线观看| 久久人人爽人人片av| 欧美成人精品欧美一级黄| 免费在线观看完整版高清| 中文精品一卡2卡3卡4更新| 女的被弄到高潮叫床怎么办| 亚洲精品,欧美精品| 男人爽女人下面视频在线观看| 少妇被粗大的猛进出69影院 | 丝袜人妻中文字幕| 久久这里只有精品19| 高清av免费在线| 精品一区二区三区视频在线| 免费看不卡的av| 男人操女人黄网站| 国产免费一区二区三区四区乱码| 国产乱人偷精品视频| 国产免费福利视频在线观看| 午夜久久久在线观看| 如何舔出高潮| 大香蕉久久网| 亚洲成国产人片在线观看| 亚洲人与动物交配视频| 99国产综合亚洲精品| 国产综合精华液| 久久国内精品自在自线图片| 亚洲欧美日韩卡通动漫| 欧美 亚洲 国产 日韩一| av国产久精品久网站免费入址| 乱人伦中国视频| 丝袜人妻中文字幕| 老司机亚洲免费影院| 欧美日本中文国产一区发布| 亚洲精品乱久久久久久| 久久精品夜色国产| 精品酒店卫生间| 五月玫瑰六月丁香| 欧美xxxx性猛交bbbb| 日韩,欧美,国产一区二区三区| 美女国产视频在线观看| 欧美人与性动交α欧美软件 | 中国三级夫妇交换| 热re99久久国产66热| 天天影视国产精品| 亚洲av国产av综合av卡| 欧美少妇被猛烈插入视频| 啦啦啦啦在线视频资源| 人体艺术视频欧美日本| 国产视频首页在线观看| 黑人巨大精品欧美一区二区蜜桃 | 韩国av在线不卡| 不卡视频在线观看欧美| 亚洲精品色激情综合| 少妇人妻精品综合一区二区| 亚洲精品美女久久av网站| 2018国产大陆天天弄谢| 三级国产精品片| 成年人免费黄色播放视频| 精品国产一区二区久久| 精品人妻偷拍中文字幕| 免费观看无遮挡的男女| 成年动漫av网址| 精品国产一区二区久久| 999精品在线视频| 波野结衣二区三区在线| 国产欧美另类精品又又久久亚洲欧美| 久久精品久久久久久久性| 天堂中文最新版在线下载| 综合色丁香网| 欧美成人午夜免费资源| 狠狠婷婷综合久久久久久88av| 高清av免费在线| 一二三四在线观看免费中文在 | 精品一区二区免费观看| 免费黄色在线免费观看| 在线天堂中文资源库| 少妇人妻 视频| 在线免费观看不下载黄p国产| 国产成人精品在线电影| 国产精品欧美亚洲77777| 中文字幕免费在线视频6| 精品人妻偷拍中文字幕| 国产免费视频播放在线视频| 午夜视频国产福利| 久久精品久久久久久噜噜老黄| 51国产日韩欧美| 国产男女超爽视频在线观看| 国产精品三级大全| 久久精品国产a三级三级三级| 精品人妻偷拍中文字幕| 精品国产国语对白av| 色5月婷婷丁香| 精品久久久久久电影网| 一二三四在线观看免费中文在 | 欧美bdsm另类| 我要看黄色一级片免费的| 免费在线观看完整版高清| 少妇人妻久久综合中文| www日本在线高清视频| 欧美老熟妇乱子伦牲交| 在线观看免费日韩欧美大片| 大片免费播放器 马上看| 久热这里只有精品99| av免费观看日本| 国产亚洲精品久久久com| 亚洲成av片中文字幕在线观看 | 日韩一本色道免费dvd| 国产1区2区3区精品| 国产日韩欧美在线精品| 大香蕉久久成人网| 日韩欧美精品免费久久| 免费看不卡的av| 成人国产av品久久久| 久久久久久久国产电影| 99视频精品全部免费 在线| 成人影院久久| 啦啦啦啦在线视频资源| av国产久精品久网站免费入址| 高清毛片免费看| 22中文网久久字幕| 日韩成人av中文字幕在线观看| 丝袜在线中文字幕| 亚洲成av片中文字幕在线观看 | 大香蕉97超碰在线| 18禁观看日本| 九九在线视频观看精品| 国产精品人妻久久久影院| 中文乱码字字幕精品一区二区三区| 老女人水多毛片| 在线观看免费日韩欧美大片| 一二三四中文在线观看免费高清| 日韩成人伦理影院| 大片电影免费在线观看免费| 欧美亚洲日本最大视频资源| 国产熟女欧美一区二区| 精品久久国产蜜桃| 久久人人97超碰香蕉20202| 2022亚洲国产成人精品| 亚洲精品国产av成人精品| 亚洲精品美女久久av网站| 国产亚洲午夜精品一区二区久久| 男女午夜视频在线观看 | 高清在线视频一区二区三区| av网站免费在线观看视频| 美女内射精品一级片tv| 亚洲国产精品999| 亚洲精品乱久久久久久| 女人被躁到高潮嗷嗷叫费观| 22中文网久久字幕| 欧美 亚洲 国产 日韩一| 最近中文字幕2019免费版| 欧美性感艳星| 久久久精品免费免费高清| 国产欧美另类精品又又久久亚洲欧美| 老熟女久久久| 久久精品国产自在天天线| 秋霞在线观看毛片| 满18在线观看网站| 国产精品久久久久久av不卡| 免费看不卡的av| 国产男人的电影天堂91| 内地一区二区视频在线| 国产精品国产三级专区第一集| 夜夜骑夜夜射夜夜干| 欧美激情极品国产一区二区三区 | 免费黄频网站在线观看国产| 街头女战士在线观看网站| 久久精品夜色国产| 色网站视频免费| 最近中文字幕高清免费大全6| 少妇的逼水好多| 国产成人精品婷婷| 18禁观看日本| 蜜臀久久99精品久久宅男| 久久午夜福利片| 在线精品无人区一区二区三| 精品午夜福利在线看| 韩国高清视频一区二区三区| 中文字幕人妻丝袜制服| 国产成人av激情在线播放| 免费看不卡的av| 2018国产大陆天天弄谢| 涩涩av久久男人的天堂| 国产精品偷伦视频观看了| 亚洲精品国产av蜜桃| 日韩视频在线欧美| 一区二区av电影网| 97人妻天天添夜夜摸| 边亲边吃奶的免费视频| 女性被躁到高潮视频| 亚洲成人av在线免费| 天美传媒精品一区二区| 少妇精品久久久久久久| 久久99蜜桃精品久久| 王馨瑶露胸无遮挡在线观看| 国产不卡av网站在线观看| 色婷婷av一区二区三区视频| 侵犯人妻中文字幕一二三四区| 国产一区二区激情短视频 | 日韩欧美一区视频在线观看| 欧美人与性动交α欧美精品济南到 | 久久久精品区二区三区| 精品福利永久在线观看| 亚洲综合精品二区| 色94色欧美一区二区| 黄色怎么调成土黄色| 亚洲人成网站在线观看播放| 各种免费的搞黄视频| 天天躁夜夜躁狠狠躁躁| 观看av在线不卡| 久久久精品区二区三区| 最新的欧美精品一区二区| 精品一区二区三区视频在线| 香蕉丝袜av| 亚洲,一卡二卡三卡| 亚洲成av片中文字幕在线观看 | 菩萨蛮人人尽说江南好唐韦庄| av线在线观看网站| 日韩大片免费观看网站| 韩国精品一区二区三区 | 天堂俺去俺来也www色官网| 国产女主播在线喷水免费视频网站| 美国免费a级毛片| 99国产精品免费福利视频| 久久ye,这里只有精品| 成年女人在线观看亚洲视频| 桃花免费在线播放| 国产欧美日韩一区二区三区在线| av播播在线观看一区| 日韩一区二区三区影片| 91午夜精品亚洲一区二区三区| 欧美精品亚洲一区二区| 国产熟女欧美一区二区| 毛片一级片免费看久久久久| 免费在线观看完整版高清| 夫妻午夜视频| 久久久精品免费免费高清| 九色成人免费人妻av| 精品国产一区二区三区四区第35| 99热网站在线观看| 999精品在线视频| 男女免费视频国产| 日本爱情动作片www.在线观看| 国产色婷婷99| 极品人妻少妇av视频| 免费黄网站久久成人精品| 日本色播在线视频| 日韩 亚洲 欧美在线| 中文天堂在线官网| 老司机亚洲免费影院| av.在线天堂| 免费日韩欧美在线观看| 老司机影院毛片| 青青草视频在线视频观看| 成年女人在线观看亚洲视频| 免费不卡的大黄色大毛片视频在线观看| 国产欧美日韩一区二区三区在线| 如日韩欧美国产精品一区二区三区| av女优亚洲男人天堂| 插逼视频在线观看| 亚洲婷婷狠狠爱综合网| 国产一区二区三区综合在线观看 | 国产日韩欧美亚洲二区| 视频区图区小说| 国产精品蜜桃在线观看| 亚洲欧美成人综合另类久久久| 欧美日韩亚洲高清精品| 欧美日韩视频精品一区| 免费黄色在线免费观看| 国产极品天堂在线| 麻豆乱淫一区二区| 一区二区三区精品91| 国产精品蜜桃在线观看| 国产精品秋霞免费鲁丝片| 伊人久久国产一区二区| 一本色道久久久久久精品综合| 精品亚洲成a人片在线观看| 国产成人91sexporn| 国产亚洲av片在线观看秒播厂| 亚洲精品色激情综合| 亚洲第一av免费看| 国产国拍精品亚洲av在线观看| 免费少妇av软件| 一本色道久久久久久精品综合| 久久精品国产亚洲av天美| 观看av在线不卡| 成人二区视频| 街头女战士在线观看网站| 国产69精品久久久久777片| 91aial.com中文字幕在线观看| 国产精品一二三区在线看| 国产黄频视频在线观看| 欧美成人午夜精品| 亚洲精品日韩在线中文字幕| 9热在线视频观看99| 国产成人精品久久久久久| 我要看黄色一级片免费的| 国产熟女欧美一区二区| 一本大道久久a久久精品| 国产男女超爽视频在线观看| 精品国产国语对白av| 人人妻人人澡人人爽人人夜夜| 美女内射精品一级片tv| 成人亚洲欧美一区二区av| 人妻人人澡人人爽人人| 国产av码专区亚洲av| 一区二区三区乱码不卡18| 亚洲经典国产精华液单| 美女福利国产在线| 黄色配什么色好看| 国产成人免费无遮挡视频| 欧美最新免费一区二区三区| 最近手机中文字幕大全| 亚洲一码二码三码区别大吗| 一二三四在线观看免费中文在 | 91久久精品国产一区二区三区| 尾随美女入室| 亚洲色图综合在线观看| 90打野战视频偷拍视频| 久久国内精品自在自线图片| 亚洲av欧美aⅴ国产| 亚洲人与动物交配视频| 中文欧美无线码| 国产深夜福利视频在线观看| 各种免费的搞黄视频| 天天影视国产精品| 国产男人的电影天堂91| 精品一品国产午夜福利视频| 黑人猛操日本美女一级片| 97超碰精品成人国产| 日韩成人av中文字幕在线观看| 欧美激情极品国产一区二区三区 | 久久久久精品人妻al黑| 日日爽夜夜爽网站| 欧美日韩综合久久久久久| 一本久久精品| 永久免费av网站大全| 熟女人妻精品中文字幕| freevideosex欧美| 国产精品久久久久久久久免| 26uuu在线亚洲综合色|