亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx

        含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型

        2019-01-24 09:30:04許能闖高喜龍
        關(guān)鍵詞:語義文本評(píng)價(jià)

        許能闖,袁 健,高喜龍

        (上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)

        1 引 言

        近年來,技術(shù)問答社區(qū)給廣大開發(fā)者獲取信息提供了新的平臺(tái),促進(jìn)了技術(shù)交流、分享和積累.如今,技術(shù)問答社區(qū)中的信息已經(jīng)成為開發(fā)者學(xué)習(xí)和工作中的重要參考點(diǎn),因此從社區(qū)大量問答中快速尋找符合用戶要求的高質(zhì)量信息十分重要.比如Stack Overflow作為一個(gè)著名的編程技術(shù)問答社區(qū)網(wǎng)站,集中了許多的問答數(shù)據(jù)集.但是,豐富的答案集中答案質(zhì)量良莠不齊,如何快速識(shí)別出對(duì)提問用戶有用的最佳答案[1],如何讓開發(fā)者能迅速?gòu)谋姸啻鸢钢刑暨x出參考價(jià)值較高的答案內(nèi)容,是問答社區(qū)發(fā)展急需解決的問題.若能定量地對(duì)各種答案進(jìn)行質(zhì)量評(píng)價(jià)并按質(zhì)量從高到低對(duì)答案進(jìn)行排序,將大大節(jié)省用戶尋找高準(zhǔn)確率答案的時(shí)間.

        Stack Overflow這類編程技術(shù)問答社區(qū),其問題較專業(yè)化,問題和答案有別于一般的問答社區(qū).問題和答案除了文本外,還有大量的編程代碼,對(duì)IT技術(shù)網(wǎng)站來說,代碼語義描述的信息更加詳細(xì),更符合用戶所需答案的配對(duì).以往的研究通常是致力于文本語義的理解,有對(duì)普通社區(qū)問答的質(zhì)量評(píng)價(jià)研究[2],但沒有針對(duì)Stack Overflow這類含代碼的IT社區(qū)問答的質(zhì)量評(píng)價(jià)研究.文本語義和代碼語義是完全不同的,故對(duì)其的理解也不同.因此,IT技術(shù)問答社區(qū)中的問題答案既需要對(duì)文本語義的理解,也需要對(duì)編程代碼進(jìn)行語義的理解.以往的答案質(zhì)量評(píng)價(jià)都沒引入代碼特征,若能找到一種含代碼特征的質(zhì)量評(píng)價(jià)模型,將能提高IT技術(shù)網(wǎng)站的答案質(zhì)量評(píng)價(jià)水平,提升辨析答案的準(zhǔn)確率.通過分析IT技術(shù)問答的特點(diǎn)以及對(duì)文本和代碼的語義相似度的研究,本文提出了一種含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型(Code-based IT Community Answer Quality Evaluation Model,簡(jiǎn)稱CICAQEM),該模型收集社區(qū)中帶有源碼問題答案對(duì),分析問題中文本、代碼和答案中文本、代碼的語義相似程度,同時(shí)引入對(duì)作者的答案代碼質(zhì)量評(píng)價(jià),再用最大熵模型進(jìn)行量化計(jì)算得分,通過評(píng)分實(shí)現(xiàn)對(duì)答案的量化質(zhì)量評(píng)價(jià).

        2 相關(guān)工作

        對(duì)IT技術(shù)問答社區(qū)的問題答案對(duì)進(jìn)行分析,發(fā)現(xiàn)其問答內(nèi)容由文本和代碼兩類組成,對(duì)它們應(yīng)分別用不同的方法進(jìn)行質(zhì)量評(píng)價(jià).

        文本內(nèi)容的質(zhì)量評(píng)價(jià)的核心是文本語義的相似度分析.通常采用主題模型定量分析[3].張成[4]等人提出了一種基于概率潛在語義分析(PLSA)模型的自動(dòng)答案選擇方法.在主題建模思想的基礎(chǔ)上,利用社區(qū)問答系統(tǒng)中的用戶資料,以PLSA模型表達(dá)社區(qū)問答系統(tǒng)中的用戶興趣分布,依據(jù)答案和問題之間的主題匹配度對(duì)候選答案進(jìn)行排序.Ma[5]等人利用PLSA模型對(duì)社區(qū)問答系統(tǒng)的提問者、回答者和投票者的三種角色進(jìn)行建模,通過問題和答案的主題相似度,依據(jù)降序?qū)Υ鸢高M(jìn)行排序.上述的方法均使用了LDA主題模型來挖掘語義,很好地解決了多義詞的問題,降低了選擇無關(guān)答案的概率[2].LDA主題模型是目前公認(rèn)的較成熟的文本語義相似度分析方法.

        代碼內(nèi)容的質(zhì)量評(píng)價(jià)的核心是代碼語義相似度分析和回答者的答案代碼質(zhì)量評(píng)價(jià).

        代碼語義的理解與文本語義不同,與文本語義相似度分析方法也完全不同.代碼語義分兩種:代碼文本語義和代碼結(jié)構(gòu)語義.代碼的文本語義與普通文本語義類似,而代碼結(jié)構(gòu)語義則完全不同,代碼結(jié)構(gòu)語義的分析需要將代碼轉(zhuǎn)成中間代碼,既要保證最終的目標(biāo)代碼不變,又要方便計(jì)算不同代碼之間的相似度.通常采用代碼相似性檢測(cè)技術(shù)[6]檢查代碼相似度.代碼相似性檢測(cè)技術(shù)的發(fā)展主要經(jīng)過了兩個(gè)階段.早期的研究主要基于屬性計(jì)數(shù)的方法,其基本原理是從源代碼中抽取各種屬性度量元作為相似性評(píng)判的依據(jù)[7].屬性計(jì)數(shù)方法的優(yōu)點(diǎn)是與所用的程序設(shè)計(jì)語言無關(guān),無需分析代碼的語法結(jié)構(gòu),實(shí)現(xiàn)較為簡(jiǎn)單,但是缺點(diǎn)也非常明顯,屬性計(jì)數(shù)是一種全局代碼度量的模式,不能分析部分程序段相似性檢測(cè)[6].基于結(jié)構(gòu)度量的方法主要是分析程序的結(jié)構(gòu)信息以及執(zhí)行流程[8].它是根據(jù)程序的內(nèi)部結(jié)構(gòu)信息來判斷兩個(gè)程序之間是否相似.結(jié)構(gòu)度量技術(shù)是代碼克隆檢測(cè)方法的一個(gè)子集,包括基于Token的方法、基于抽象語法樹(AST)的方法和基于程序依賴圖(PDG)的方法等,基于Token的方法[9-12]優(yōu)點(diǎn)是無需語法分析工具,容易多語言擴(kuò)展,時(shí)空效率好,但是其忽略了程序語法和語義信息,只在詞法級(jí)別做相似性檢測(cè),相似值的參考價(jià)值低,在結(jié)構(gòu)度量上已經(jīng)很少使用;基于抽象語法樹的方法[13]優(yōu)點(diǎn)是考慮了程序語法結(jié)構(gòu)信息,抽象語法樹采用的是上下文無關(guān)文法,同時(shí)抽象語法樹作為代碼編譯期的中間代碼,保證了和源代碼具有相同的目標(biāo)代碼,與源代碼有相同的結(jié)構(gòu)信息,在代碼相似性檢測(cè)上具有良好的檢測(cè)能力[14],缺點(diǎn)是尋找樹相似的匹配算法復(fù)雜度高,時(shí)空效率低;基于程序依賴圖的方法[15-17]綜合考慮了程序的語法和語義特征,對(duì)相似性檢測(cè)有很好的檢測(cè)能力,但是建立程序的依賴關(guān)系圖代價(jià)非常高,對(duì)圖結(jié)構(gòu)的操作時(shí)空效率極低,在相似度計(jì)算上子圖同構(gòu)查詢屬于NP-hard問題,目前該方法較少使用.綜合以上分析,本文提出了基于SimHash的代碼相似度模型(Code Similarity Model Based on SimHash,簡(jiǎn)稱CSMBSH),既具有抽象語法樹方法的優(yōu)點(diǎn),又提升了算法效率.

        在回答者的答案代碼質(zhì)量評(píng)價(jià)上,由于不同開發(fā)者的喜好不同,編碼水平的不同,書寫的代碼質(zhì)量參差不齊,因此從開發(fā)者書寫代碼的角度對(duì)代碼質(zhì)量進(jìn)行評(píng)估,考慮人為因素對(duì)書寫代碼優(yōu)異程度的影響,此類方法可以很好地衡量代碼的優(yōu)劣程度.Boehm[18]等人于1976年提出了定量的評(píng)價(jià)軟件質(zhì)量的概念,孫夢(mèng)粼等[19,20]通過研究分析和大量實(shí)驗(yàn)驗(yàn)證,選取了函數(shù)參數(shù)、路徑數(shù)、層次數(shù)等16個(gè)度量元作為評(píng)價(jià)軟件質(zhì)量的度量指標(biāo).IT技術(shù)問答中每個(gè)答案集的代碼片段跟一個(gè)軟件相比,規(guī)模比較小并且其答案還有廣大用戶的跟帖評(píng)論,因此本文提出了基于度量元的代碼質(zhì)量評(píng)價(jià)模型(Code Quality Evaluation Model Based on Measurement Element,簡(jiǎn)稱ACQEMBME),該模型引入度量元作為評(píng)價(jià)指標(biāo),并增加用戶評(píng)論評(píng)估來彌補(bǔ)單從回答者方面上考慮的不足,實(shí)現(xiàn)了答案代碼質(zhì)量評(píng)價(jià).

        綜上所述,本文提出一種新的答案質(zhì)量評(píng)價(jià)模型——含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型,該模型先從主題的角度篩選出與問題文本相似度較高的答案集,在該答案集下,抽取關(guān)鍵代碼特征片段,計(jì)算問題中代碼和答案中代碼的結(jié)構(gòu)相似度,引入基于度量元的代碼質(zhì)量評(píng)價(jià),用最大熵模型(Maximum Entropy Model,簡(jiǎn)稱MEM)融合不同類型質(zhì)量評(píng)價(jià)模型的結(jié)果來進(jìn)行量化計(jì)算,通過評(píng)分實(shí)現(xiàn)對(duì)答案質(zhì)量的評(píng)價(jià).該模型把代碼結(jié)構(gòu)作為答案評(píng)分的參考點(diǎn),對(duì)軟件開發(fā)社區(qū)問答答案評(píng)估和篩選具有重要意義.經(jīng)實(shí)驗(yàn)證明,含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型更符合IT社區(qū)問答的特點(diǎn),能有效地提高答案質(zhì)量評(píng)估效果.

        3 算法模型

        3.1 含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型CICAQEM

        含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型的基本思想是:先選用LDA主題模型篩選與輸入問題相似的問題集,再次篩選相似問題集的答案集,形成問題答案集,一個(gè)問題對(duì)應(yīng)多個(gè)答案,計(jì)算答案與問題的文本相似度.在代碼方面,對(duì)代碼進(jìn)行預(yù)處理,使用JDT(Java Development Tools)構(gòu)建代碼的抽象語法樹,采用SimHash算法計(jì)算樹結(jié)點(diǎn)的簽名,對(duì)樹結(jié)點(diǎn)的簽名進(jìn)行加權(quán)、合并、降維生成樹的簽名,通過海明距離計(jì)算簽名相似度達(dá)到計(jì)算代碼的結(jié)構(gòu)相似度的目的.同時(shí)引入評(píng)價(jià)代碼質(zhì)量的度量元,對(duì)基于度量元計(jì)算出來的得分通過權(quán)值進(jìn)行加權(quán)合并生成預(yù)估評(píng)分,根據(jù)用戶評(píng)論的命中數(shù)對(duì)預(yù)估評(píng)分進(jìn)行處理,得到回答者答案代碼質(zhì)量的評(píng)價(jià)得分.最后使用最大熵模型對(duì)答案文本相似度、代碼結(jié)構(gòu)相似度、回答者答案代碼質(zhì)量評(píng)估值進(jìn)行融合計(jì)算,通過評(píng)分實(shí)現(xiàn)對(duì)答案質(zhì)量評(píng)價(jià)的量化.

        模型描述如圖1所示,共包括三個(gè)子模型:1)基于SimHash的代碼相似度模型;2)基于度量元的代碼質(zhì)量評(píng)價(jià)模型;3)最大熵模型.

        含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型描述如下:

        Step1.通過用戶的提問,使用LDA主題模型過濾掉無關(guān)問題,收集對(duì)應(yīng)的問題集、答案集、評(píng)論集;

        Step2.通過LDA主題模型過濾掉不相關(guān)的答案,收集相似度大于閾值的答案集,提取問題集和答案集的代碼進(jìn)入Step 3,選中答案集對(duì)應(yīng)的評(píng)論集進(jìn)入Step 4,統(tǒng)計(jì)記錄答案文本相似度;

        Step3.對(duì)代碼進(jìn)行預(yù)處理,如后3.2.2中所述方法,構(gòu)造代碼的抽象語法樹,計(jì)算AST的相似度;

        Step4.如后3.3中所述方法提取代碼中的度量元,初步計(jì)算回答者的代碼質(zhì)量,通過評(píng)論集對(duì)代碼的評(píng)價(jià),反饋調(diào)整代碼質(zhì)量得分;

        Step5.根據(jù)Step 2,Step 3,Step 4對(duì)應(yīng)得出的答案文本相似度、AST相似度、代碼質(zhì)量評(píng)分,通過如后3.4中所述的最大熵模型來確定每項(xiàng)評(píng)價(jià)指標(biāo)所占的權(quán)重,給出答案最終評(píng)分.

        圖1 含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型系統(tǒng)流程圖Fig.1 CICAQEM system flow chart

        3.2 基于SimHash的代碼相似度模型CSMBSH

        3.2.1 SimHash算法

        在SimHash算法[21]中,產(chǎn)生用于分割空間的隨機(jī)向量:取第k個(gè)特征的hash簽名的第i位,若為0,則改為-1,若為1則不變,作為第i個(gè)隨機(jī)向量的第k維值.由于hash簽名是f位的,因此產(chǎn)生f個(gè)隨機(jī)向量,對(duì)應(yīng)f個(gè)隨機(jī)超平面.

        隨機(jī)超平面局部敏感哈希算法,算法的主要思想是在高維空間中通過生成隨機(jī)超平面將此空間分割成兩部分[23].給定兩個(gè)向量,若它們之間的夾角較小則它們會(huì)以一個(gè)很大的概率落在超平面的同一側(cè).反之,則它們落在同一側(cè)的概率將會(huì)很小.通過降維技術(shù),可將高維的向量用較低維度的簽名來表示.所以,用兩個(gè)向量的簽名的不同二進(jìn)制位的數(shù)量,即海明距離,來衡量這兩個(gè)向量的差異程度.

        SimHash基于隨機(jī)超平面局部敏感哈希算法,該算法將每個(gè)結(jié)點(diǎn)特征映射成n維向量空間,對(duì)于很多的特征來說,它們對(duì)應(yīng)的向量是均勻隨機(jī)分布的,并且對(duì)同一特征來說對(duì)應(yīng)的向量是唯一的[23].將SimHash引入抽象語法樹,通過對(duì)得到的樹結(jié)點(diǎn)的向量求和,來表示整棵樹,以及計(jì)算向量的夾角來表示樹的相似度.使用降維,保留向量和的象限信息,由于64位樹的簽名可以表示264個(gè)象限,足夠表征一棵樹的唯一性,所以海明距離就是兩棵樹的相似度.

        3.2.2 基于SimHash的代碼相似度模型CSMBSH

        CSMBSH模型描述如圖2所示,總共包括三個(gè)部分:1)構(gòu)建抽象語法樹(AST);2)計(jì)算樹的簽名;3)計(jì)算相似度.

        圖2 代碼相似度模型流程圖Fig.2 Code similarity model flow chart

        Step1.提取代碼.提取問題集和答案集中代碼部分,代碼部分包含類、方法和代碼片段;/*構(gòu)建AST,以Java為例*/

        Step2.生成Main類.創(chuàng)建一個(gè)命名為Main的類,將代碼中的片段放入main方法中,而代碼中的方法作為類文件中的方法排列到Main類文件中,生成如圖3所示Main類.

        如果代碼區(qū)域包含類,則該類的屬性部分插入到Main類的屬性中,命名為:類名_屬性名(例如類A中的name屬性,則命名為a_name)為一個(gè)整體構(gòu)成一個(gè)類文件,該類的方法加入到Main的后續(xù)函數(shù)中,方法命名為:類名_方法名,最終形成這個(gè)Main的類文件;

        Step4.結(jié)點(diǎn)賦予權(quán)值.對(duì)每個(gè)結(jié)點(diǎn)的特征值賦予權(quán)重,語句(如IfStatement、WhileStatement等)結(jié)點(diǎn)賦予權(quán)值w為1;表達(dá)式(如Assignment、MethodInvocation)等結(jié)點(diǎn)賦予權(quán)值為2;TypeDeclaration類(類型聲明)、MethodDeclaration類(方法聲明)的權(quán)值為3;/*計(jì)算樹的簽名*/

        Step5.特征值Hash.計(jì)算特征值的hash值(生成64位hash值);

        Step6.加權(quán)合并.

        ①樹單個(gè)結(jié)點(diǎn)加權(quán)過程:計(jì)算第i個(gè)結(jié)點(diǎn)的hash值,每位如果為1,則n維向量hi 的第i位的數(shù)值為權(quán)值w,如果為0,則這一位數(shù)值為-w,形成n維向量hi,hi形如(w1,-w2,w3,…,w63,-w64),結(jié)點(diǎn)計(jì)算加權(quán)的過程稱作簽名,第i個(gè)結(jié)點(diǎn)的簽名記做hi,hi =(w1,-w2,w3,…,w63,-w64);

        ②樹結(jié)點(diǎn)合并過程:樹結(jié)點(diǎn)的簽名等于子結(jié)點(diǎn)簽名的和加上根結(jié)點(diǎn)的簽名,即求樹的向量和(樹的向量和用treeH表示,treeH = 左子樹簽名 + 右子樹簽名 + 根結(jié)點(diǎn)簽名);

        Step7.降維.降維過程為將向量和treeH中每位大于0則為1,小于0則為0,降維后的向量用reduTreeHi表示第i個(gè)結(jié)點(diǎn)為根的子樹的簽名(H的下標(biāo)i).我們以根結(jié)點(diǎn)的reduTreeH1(H的下標(biāo)為1)作為整顆樹的簽名,這樣我們就得到了AST的簽名(64位hash值);

        Step8.海明距離計(jì)算.通過海明碼計(jì)算簽名的相似性,海明距離(Hd)計(jì)算公式見公式(1),求a按位異或b(記作a XOR b)運(yùn)算結(jié)果中1的個(gè)數(shù),q表示問題中的抽象語法樹的簽名,a表示其中一個(gè)答案的抽象語法樹的簽名,其中sum1(x)是求出x化為64位二進(jìn)制數(shù)1的個(gè)數(shù),x為一個(gè)整型數(shù);

        Hd=sum1(qXORa)

        (1)

        Step9.計(jì)算相似度.把海明距離代入公式(2)計(jì)算相似度(Sim).

        (2)

        3.3 基于度量元的代碼質(zhì)量評(píng)價(jià)模型ACQEMBME

        ACQEMBME模型描述如圖4所示,總共包括兩個(gè)部分:1)計(jì)算代碼質(zhì)量預(yù)評(píng)估值;2)基于用戶評(píng)價(jià)的代碼質(zhì)量評(píng)價(jià)值.

        Step1.選取度量元指標(biāo).通過分析Stack Overflow的代碼結(jié)合孫夢(mèng)粼等[19]研究選取代碼度量指標(biāo)分別是:函數(shù)參數(shù)個(gè)數(shù)、路徑數(shù)、注釋率、語句的平均長(zhǎng)度、函數(shù)中可執(zhí)行語句數(shù)、圈復(fù)雜度;

        Step2.收集度量元的值.統(tǒng)計(jì)每份代碼中的每個(gè)度量元的值;

        Step3.計(jì)算單個(gè)度量元下代碼的評(píng)分.由量化標(biāo)準(zhǔn)的模型[19]選用公式(3)計(jì)算g(x),其中x表示函數(shù)模塊中某個(gè)度量元的值,g(x)表示根據(jù)度量元的值所計(jì)算出來的評(píng)分值0≤g(x)≤1,a、b、c、d都是待定參數(shù),具體取值參考文獻(xiàn)[19];

        g(x)=c(x+d)b-1e-a(x+d)

        (3)

        (4)

        Step5.計(jì)算用戶評(píng)價(jià)的評(píng)分.制作優(yōu)秀的代碼評(píng)論集的詞條,把好評(píng)的詞條加入到字典詞庫中,對(duì)每條評(píng)論集做對(duì)詞級(jí)的切分,每個(gè)詞的命中則match++,通過公式(5)計(jì)算用戶評(píng)價(jià)的評(píng)分,matchi為第i個(gè)評(píng)論詞條的命中數(shù),lengthi為第i個(gè)評(píng)論詞條總長(zhǎng)度,n為答案對(duì)應(yīng)的評(píng)論集大小;

        (5)

        圖4 基于度量元的代碼質(zhì) 量評(píng)價(jià)模型流程圖Fig.4 ACQEMBME flow chart

        Step6.計(jì)算代碼質(zhì)量的評(píng)分.通過用戶評(píng)價(jià)代碼作為參考點(diǎn),修正公式(4)的代碼質(zhì)量預(yù)估值Qpre,得到最終的代碼質(zhì)量評(píng)價(jià)值Q,0≤Q≤1,見公式(6),其中φ是常量,0≤φ≤1,通過實(shí)驗(yàn)確定系數(shù)φ.

        Q=(1-φ)*Qpre+φ*As

        (6)

        3.4 最大熵模型MEM

        最大熵模型如圖1中MEM子模型圖所示,MEM將CICAQEM中的三個(gè)評(píng)價(jià)指標(biāo)值進(jìn)行融合.指標(biāo)一為答案文本相似度s:問題與答案的主題相似度越高,則該答案越有可能是高質(zhì)量答案;指標(biāo)二為代碼相似度Sim:在文本相似度過濾掉無關(guān)答案的前提下,代碼的結(jié)構(gòu)越相似,說明描述同一個(gè)問題的概率越高;指標(biāo)三為回答者的代碼質(zhì)量Q:回答者的代碼質(zhì)量越高,說明回答者的工程能力越強(qiáng),則該答案是最佳答案的概率越大.

        MEM的流程描述如下:

        Step1.依據(jù)文獻(xiàn)[3]計(jì)算答案文本相似度s;

        Step2.根據(jù)公式(1)和公式(2)計(jì)算代碼相似度Sim;

        Step3.根據(jù)公式(6)計(jì)算回答者的代碼質(zhì)量Q.

        Step4.計(jì)算答案的質(zhì)量評(píng)分.為了確定上述指標(biāo)的權(quán)重,采用最大熵模型[24]確定權(quán)重,計(jì)算評(píng)分,從而得到答案的質(zhì)量評(píng)分.如公式(7)所示:

        (7)

        R(s,Q,Sim)為歸一化因子,計(jì)算如公式(8)所示:

        (8)

        其中s、Q、Sim是3個(gè)評(píng)價(jià)指標(biāo).A為文本相似度過濾后的答案集.

        4 實(shí)驗(yàn)分析

        實(shí)驗(yàn)選取Stack Overflow中的問答數(shù)據(jù),Stack Overflow是IT技術(shù)性問答網(wǎng)站,從StackExchange上下載Stack Overflow的數(shù)據(jù),問題集和答案集在Posts.xml中,評(píng)論集在Comments.xml文件中.抽取2016年10月到2017年9月的數(shù)據(jù),提取Tag為Java的記錄.篩選出有標(biāo)簽的Post信息,由此得到了實(shí)驗(yàn)數(shù)據(jù)集,包括51782個(gè)問題、267630個(gè)答案、1037923個(gè)評(píng)論.實(shí)驗(yàn)在Windows7平臺(tái)(CPU 2.60GHz,內(nèi)存8G)下的eclipse中運(yùn)行.

        4.1 評(píng)價(jià)指標(biāo)

        1)NDCG:

        采用衡量排序質(zhì)量的評(píng)價(jià)指標(biāo)——NDCG[25](Normalized discounted cumulative gain)來衡量上述模型對(duì)答案排序質(zhì)量.

        (9)

        其中,DCG(n)為排序結(jié)果最好的狀態(tài)下的DCG(Discounted Cumulative Gain)值的歸一化因子,r(i)為排在第i位的答案的得票數(shù).NDCG@n表示測(cè)試數(shù)據(jù)中排在前n位的答案的NDCG(n)的均值,取NDCG@1,NDCG@5,NDCG@10作實(shí)驗(yàn)對(duì)比.

        2)平均最佳答案相似度(Similiarity):

        平均最佳答案相似度是先求出每個(gè)問題對(duì)應(yīng)答案集中評(píng)分最高的答案作為最佳答案,然后根據(jù)各自的算法計(jì)算問題與最佳答案的相似度值作為最佳答案的相似度.相似度計(jì)算見公式(1)和公式(2).最后計(jì)算所有問題算出來的最佳答案相似度的平均值就是平均最佳答案相似度.

        3)平均算法運(yùn)行時(shí)間(Runtime):

        實(shí)驗(yàn)中的平均算法運(yùn)行時(shí)間是指在每組數(shù)據(jù)集(包含多個(gè)問題)在當(dāng)前實(shí)驗(yàn)平臺(tái)下每個(gè)問題算出NDCG@1的平均時(shí)間.

        4.2 實(shí)驗(yàn)結(jié)果

        4.2.1 代碼相似度計(jì)算實(shí)驗(yàn)對(duì)比

        實(shí)驗(yàn)選取基于SimHash的代碼相似度模型(CSMBSH)相似度計(jì)算和子樹的匹配算法[22](Sub Trees Matching,簡(jiǎn)稱STM)相似度計(jì)算以及貪婪字符串匹配算法[13](GST:Greedy String Tiling,JPlag系統(tǒng)采用的相似度計(jì)算算法)相似度計(jì)算進(jìn)行對(duì)比.

        實(shí)驗(yàn)收集5組問題答案對(duì)的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),每組數(shù)據(jù)的問題集(Question Set)不一樣,編號(hào)為1,2,3,4,5.問題集中問題個(gè)數(shù)分別為50,100,150,200,250.實(shí)驗(yàn)結(jié)果如下:平均最佳答案相似度值的對(duì)比數(shù)據(jù)如表1,對(duì)比圖如圖5,平均算法的運(yùn)行時(shí)間對(duì)比數(shù)據(jù)如表2,對(duì)比圖如圖6所示.

        表1 平均最佳答案相似度數(shù)據(jù)對(duì)比表
        Table 1 Average best answer similarity data comparison

        問題集編號(hào)12345CSMBSH0.79190.80120.83140.84260.8612STM0.81270.82930.85550.85760.8654GST0.80030.81270.84120.85510.8623

        表2 相似度計(jì)算算法的平均運(yùn)行時(shí)間對(duì)比表
        Table 2 Average running time of similarity computing algorithm comparison
        Table

        問題集編號(hào)12345CSMBSH0.520.721.312.092.31STM1.212.933.625.758.36GST1.373.033.675.978.56

        由圖5和圖6可知子樹的匹配算法平均最佳答案相似度、平均算法運(yùn)行時(shí)間指標(biāo)上優(yōu)于GST.由圖5可知,在不同數(shù)據(jù)集下,CSMBSH和子樹的匹配算法的最佳答案相似度的值誤差很小,數(shù)值基本相同,表明CSMBSH模型中樹的簽名可以很好地表現(xiàn)AST的結(jié)構(gòu)特征,并且由圖6可知在算法性能上CSMBSH模型計(jì)算相似度算法的運(yùn)行時(shí)間遠(yuǎn)小于子樹的匹配算法,說明CSMBSH模型相似度算法很好地解決了子樹匹配算法復(fù)雜度高,時(shí)空效率低的問題.

        圖5 平均最佳答案相似度值的對(duì)比圖Fig.5 Comparison diagram of the average best answer similarity value

        圖6 相似度計(jì)算算法的平均運(yùn)行時(shí)間對(duì)比圖Fig.6 Comparison diagram of the average running time of similarity computing algorithm

        4.2.2 NDCG的對(duì)比實(shí)驗(yàn)

        以往沒有含代碼的答案質(zhì)量評(píng)價(jià)模型,選取基于LDA的主體模型和基于混合式的社區(qū)問答答案質(zhì)量評(píng)價(jià)模型[2](Answer Quality Evaluation Model based on Hybrid Method,AQEMHM)作對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果數(shù)據(jù)見表3,對(duì)比圖如圖7所示.

        表3 三種方法的NDCG值比較
        Table 3 Comparison of NDCG values of the three methods

        方法NDCG@1NDCG@5NDCG@10LDA0.2910.6150.614AQEMHM0.3150.6320.659CICAQEM0.5140.7390.812

        圖7 NDCG對(duì)比圖Fig.7 NDCG comparison diagram

        由圖7可以看出,含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型(CICAQEM)比LDA和AQEMHM模型在NDCG指標(biāo)上表現(xiàn)都好,充分證明引入代碼質(zhì)量評(píng)價(jià)提高了答案評(píng)價(jià)的有效性,含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型更符合IT社區(qū)問答的特點(diǎn),更能有效地提高答案質(zhì)量評(píng)估效果.

        5 結(jié)束語

        文中提出了一個(gè)含代碼的IT社區(qū)答案質(zhì)量評(píng)價(jià)模型,從問題答案文本和代碼的角度對(duì)社區(qū)問答系統(tǒng)的答案質(zhì)量進(jìn)行評(píng)分.實(shí)驗(yàn)結(jié)果表明,文中的方法可以有效地對(duì)混合了文本和代碼的答案進(jìn)行評(píng)分,符合人類對(duì)參考答案準(zhǔn)確度的認(rèn)知.由于以往沒有含代碼的答案質(zhì)量評(píng)價(jià),文中的模型結(jié)合了文本和代碼的分析,使問答社區(qū)的答案篩選更精確,并且在計(jì)算相似度的運(yùn)行效率上高于以往的子樹匹配算法.未來的工作主要是研究抽象語法樹的樹形結(jié)構(gòu),挖掘更多的結(jié)構(gòu)信息、語義信息,改進(jìn)SimHash的提取過程,從而可以更好地從語義方面對(duì)答案質(zhì)量進(jìn)行評(píng)價(jià).

        猜你喜歡
        語義文本評(píng)價(jià)
        SBR改性瀝青的穩(wěn)定性評(píng)價(jià)
        石油瀝青(2021年4期)2021-10-14 08:50:44
        語言與語義
        在808DA上文本顯示的改善
        基于doc2vec和TF-IDF的相似文本識(shí)別
        電子制作(2018年18期)2018-11-14 01:48:06
        “上”與“下”語義的不對(duì)稱性及其認(rèn)知闡釋
        文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
        基于Moodle的學(xué)習(xí)評(píng)價(jià)
        認(rèn)知范疇模糊與語義模糊
        如何快速走進(jìn)文本
        保加利亞轉(zhuǎn)軌20年評(píng)價(jià)
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        404 Not Found

        404 Not Found


        nginx
        国内视频偷拍一区,二区,三区| 亚洲加勒比久久88色综合| 99re热视频这里只精品| 成人午夜免费无码视频在线观看| 毛片av中文字幕一区二区| 日韩人妻系列在线观看| 亚洲成a∨人片在线观看不卡| 精品熟女少妇av免费观看| 日韩Va亚洲va欧美Ⅴa久久| 国产一区二区三区十八区| 黑人巨茎大战俄罗斯美女| 无码专区久久综合久中文字幕| 国产亚洲女人久久久久久| 国产麻豆剧传媒精品国产av| 欧美亚洲日本国产综合在线美利坚| 国农村精品国产自线拍| 97久久成人国产精品免费| 青青青免费在线视频亚洲视频 | 天堂а在线中文在线新版| 久久亚洲av成人无码国产| 免费人人av看| 色久悠悠婷婷综合在线| 国产精品自在拍在线拍| 免费视频一区二区| 亚洲国产一区二区精品| 2021亚洲国产精品无码| 亚洲乱亚洲乱少妇无码99p| 狠狠做深爱婷婷久久综合一区| 精品视频入口| 国内偷拍第一视频第一视频区| 亚洲av福利天堂一区二区三| 亚洲欧美一区二区三区| 国产精品久久这里只有精品| 亚洲一区二区三区在线看| 色婷婷五月综合久久| 日日人人爽人人爽人人片av| 亚洲精品99久91在线| 亚洲 欧美 综合 在线 精品| 人妻少妇av无码一区二区| 中文字幕亚洲区第一页| 国产一区二区三区在线蜜桃|