999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于版本控制的中文文檔到源代碼的自動跟蹤方法

2018-11-22 09:37:54劉洪星李勇華
計算機應用 2018年10期
關(guān)鍵詞:規(guī)則信息方法

沈 力,劉洪星,2,李勇華,2

(1.武漢理工大學 計算機科學與技術(shù)學院,武漢 430063; 2.武漢理工大學 交通物聯(lián)網(wǎng)技術(shù)湖北省重點實驗室,武漢 430070)(*通信作者電子郵箱liyonghua@whut.edu.cn)

0 引言

軟件通常被定義為文檔和程序的集合,在軟件的開發(fā)、使用以及維護階段都會產(chǎn)生大量的文檔,而這些文檔含有豐富的信息,并且和源代碼之間存在緊密的聯(lián)系。需求跟蹤(Requirement Traceability)是指在軟件開發(fā)周期中向前或向后的描述和跟蹤軟件開發(fā)元素的能力[1]。其中,文檔與源代碼之間的跟蹤關(guān)系顯得尤為重要,它在程序理解、軟件開發(fā)、軟件維護、變更分析和軟件復用等方面有重要的作用,所以建立文檔和源代碼之間的跟蹤鏈成為軟件工程中的重要內(nèi)容。

文獻[2]將信息檢索 (Information Retrieval, IR)技術(shù)與代碼的調(diào)用關(guān)系及數(shù)據(jù)依賴關(guān)系相結(jié)合,提高了基于信息檢索的自動跟蹤能力;但代碼依賴關(guān)系獲取過程比較耗時,并針對了特定的程序語言。文獻[3]研究了利用自然語言語義在獲取自動化跟蹤鏈時的潛在好處,比較了向量空間模型等幾種信息檢索及其改進方法,論證了明確的語義方法要好于潛在的語義方法;該方法的使用過程中需要大量語義分析,特殊領域需要特殊領域詞典等工具支撐。文獻[4]提出了一種基于IR和非文本技術(shù)自動結(jié)合的需求跟蹤方法,首先確定直接的跟蹤鏈,即通過IR方法計算文檔與代碼之間的跟蹤鏈,通過改進的IR方法計算文檔語句之間的跟蹤鏈,通過加權(quán)的非文本方法計算代碼類之間的跟蹤鏈;然后確定非直接的跟蹤鏈,即根據(jù)上一步跟蹤鏈關(guān)系建立一個權(quán)重矩陣,通過矩陣乘法找出非直接的跟蹤鏈;最后通過設定閾值獲取文檔與源代碼之間的跟蹤鏈。該方法相對于直接耦合的方法提升了精確度。文獻[5]在標準用戶反饋的方法上提出了一種自適應的反饋方法,該方法利用軟件結(jié)構(gòu)以及先前劃分的正確鏈和錯誤鏈來決定是否以及如何使用反饋,相對標準的反饋方法表現(xiàn)更好;但目前僅測試于規(guī)模較小的項目,還需進一步驗證。文獻[6]分析了在利用文本和代碼結(jié)構(gòu)相結(jié)合的方法來提取跟蹤鏈過程中的優(yōu)缺點,提出利用軟件工程師在對候選鏈進行分類時提供的反饋來規(guī)范使用結(jié)構(gòu)化信息的方法,結(jié)果表明該方法優(yōu)于純粹的基于IR的方法和結(jié)合文本與結(jié)構(gòu)信息的方法,但過程中需要大量的人工干預。文獻[7]通過定義24個特定的變化場景,通過上一個版本的需求文檔、代碼和跟蹤鏈與當前版本的需求文檔、代碼進行比較,得出當前版本的跟蹤鏈;但是該方法局限性比較強,需要上一版本的跟蹤鏈,可操作性比較低。

上述研究大多數(shù)是利用基于文本詞匯信息的信息檢索模型來建立源文件和目標文件之間的跟蹤鏈,而軟件文檔通常由自然語言書寫,源代碼由代碼語言書寫,因此使用傳統(tǒng)的信息檢索模型建立軟件文檔和源代碼間的跟蹤鏈時,存在精度過低的問題。雖然有的研究注意到代碼的結(jié)構(gòu)信息,但忽略了中文文檔語義和代碼版本更新記錄等有效信息,并且當前關(guān)于中文文檔與源代碼間可追蹤關(guān)系的研究較少。

針對以上問題,本文提出一種基于版本控制的中文文檔到源代碼的自動跟蹤方法。該方法在利用傳統(tǒng)的信息檢索技術(shù)建立中文文檔與源代碼跟蹤鏈的基礎上,加入對源代碼版本信息和中文軟件文檔語義信息的分析,以便提高可追蹤性跟蹤鏈的精度。

1 本文方法

基于版本控制的中文文檔到源代碼的自動跟蹤方法結(jié)構(gòu)如圖1所示。其中包含4個主要的處理階段:數(shù)據(jù)獲取與處理、文本信息檢索、版本控制信息處理及跟蹤關(guān)系推薦,而啟發(fā)式規(guī)則用來輔助進行文本信息檢索。該方法在進行文檔到代碼跟蹤關(guān)系推薦時,首先需要獲取數(shù)據(jù)并進行預處理,然后結(jié)合文檔到代碼的啟發(fā)式規(guī)則,使用信息檢索模型計算文檔和源代碼間的相似度,同時從版本更新信息中獲取描述語句與源代碼映射關(guān)系文檔,計算軟件文檔與映射關(guān)系文檔間的相似度,最后結(jié)合這兩者的相似度得分得出文檔到代碼的跟蹤鏈列表。

圖1 基于版本控制的中文文檔到源代碼的自動跟蹤方法結(jié)構(gòu)Fig. 1 Architecture of automatic tracking method from Chinese document to source code based on version control

1.1 相關(guān)定義及啟發(fā)式規(guī)則

1.1.1 句法分析與語義分析

中文文檔、版本控制信息中的描述語句以及源代碼中的注釋信息通常是一些簡單句句型,而簡單句的基本句型由命令式的祈使句和表示條件、位置和修飾動詞的狀語構(gòu)成,因此提出如下定義。

定義1 句法分析。軟件工程文檔中的簡單句Sip由0~N個介詞短語Spp、0~N個名詞短語Snp和1個動詞短語Svp構(gòu)成。句法結(jié)構(gòu)分析規(guī)則如下:

Sip=Svp|S1+Svp|S2+Snp

S1=Spp|S1+Spp

S2=Snp|S2+Snp

定義2 語義分析。簡單句Sip可由四種短語結(jié)構(gòu)成分組成,可以表示成一個多元式的語義結(jié)構(gòu)形式,即Sv=(Act,Pla,Dep,Con),其中:

Act為“動作”,由中心謂語動詞和中心賓語(即不包含修飾詞的部分)組成。

Pla為“位置”,是指Act執(zhí)行的位置,通常是單個名詞短語或介詞“在”的中心賓語。

Dep為“憑借”,是指Act執(zhí)行的憑借,用來修飾動詞,通常是介詞“根據(jù)”“用”的中心賓語。

Con為“條件”,是指Act執(zhí)行的條件,通常是介詞“當”“只有”之后的條件子句。

根據(jù)定義1、定義2,推導出下列語義分析規(guī)則:

規(guī)則1Act推導規(guī)則。

當簡單句Sip中直接存在動詞短語Svp,且Svp直接由動詞短語Svp1或者由其他成分So和動詞短語Svp1構(gòu)成,Svp1可以是動詞Wv或動詞及名詞短語Snp的形式,那么該動詞短語Svp1即為Act:

?Svp∈Sip∧(Svp=Svp1∨Svp=So+Svp1)∧

(Svp1=Wv∨Svp1=Wv+Snp) ?Svp1∈Act

規(guī)則2Pla推導規(guī)則。

A)當簡單句Sip中直接存在名詞短語Snp時,認為Snp為Pla:

?Snp∈Sip?Snp∈Pla

B)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Pla的介詞集合Cpp,Spp由Wp和名詞短語Snp構(gòu)成,有些Spp中還存在表示Pla的名詞Wn,Wn屬于表示Pla的名詞集合,則認為名詞短語Snp屬于Pla:

?Spp∈Sip∧(Spp={Wp+Snp|Wp∈Cpp}∨Spp=

{Wp+Snp+Wn|Wp∈Cpp∧Wn∈Cnp}) ?Snp∈Pla

規(guī)則3Dep推導規(guī)則。

當簡單句Sip中存在動詞短語Svp,Svp由介詞短語Spp和動詞短語Svp1構(gòu)成,Spp由介詞Wp和名詞短語Snp構(gòu)成,其中Wp處于表示Dep的介詞集合中,則名詞短語Snp屬于Dep:

?Svp∈Sip∧Svp=Spp+Svp1∧

Spp={Wp+Snp|Wp∈Cpd} ?Snp∈Dep

規(guī)則4Con推導規(guī)則。

A)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Con的介詞集合Cpc,Spp由Wp和名詞短語Snp構(gòu)成,而Snp由簡單句Sip2、標記詞Wdec和名詞Wn構(gòu)成,其中Wdec屬于標引詞集合Cdec,Wn屬于表示Con的名詞集合中,則簡單句Sip2屬于Con:

?Spp∈Sip∧Spp={Wp+Snp,Snp=Sip2+Wdec+

Wn|Wp∈Cpc∧Wn∈Cnc∧Wdec∈Cdec} ?

Sip2∈Con

B)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Con的介詞集合Cpc,Spp由介詞Wp和方位詞短語Slcp構(gòu)成,Slcp由簡單句Sip2和方位詞構(gòu)成,其中Wlc屬于方位詞集合,則簡單句Sip2屬于Con:

?Spp∈Sip∧Spp={Wp+Slcp,Slcp=Sip2+

Wlc|Wp∈Cpc∧Wlc∈Clc} ?Sip2∈Con

例句1“在裝卸作業(yè)預確報界面,當選中船舶單選框時,根據(jù)船舶名稱和航次查詢船舶預確報”。

對例句1使用Stanford-parser工具[8]進行句法分析,結(jié)果呈樹形結(jié)構(gòu),如圖2所示。其中根節(jié)點IP表示整個句子;孩子節(jié)點表示句子的成分,如PP為介詞短語,PU為符號,VP為動詞短語等;葉子節(jié)點呈現(xiàn)句子中每個詞的詞性,如P為介詞,NN為名詞,VV為動詞等。

圖2 例句1句法結(jié)構(gòu)分析圖Fig. 2 Syntactic analysis of sentence 1

根據(jù)語義分析規(guī)則,例句1轉(zhuǎn)換成對應的短語結(jié)構(gòu)如表1所示。

表1 例句1語義結(jié)構(gòu)Tab. 1 Semantic structure of sentence 1

1.1.2 文檔到代碼啟發(fā)式規(guī)則

當文檔或描述語句中存在表“憑借”的介詞短語時,該介詞短語中名詞個數(shù)與方法中參數(shù)個數(shù)相等;當文檔或描述語句中存在表“條件”的介詞短語時,源代碼方法中存在分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu)。規(guī)則如下:

規(guī)則5 介詞短語與代碼結(jié)構(gòu)的映射規(guī)則。

A)表“憑借”的介詞短語:

?Snp∈Dep∧(Snp=Wn∨Snp=Wn+Snp) ?

num(Wn|Wn∈Snp)=num(mp)

其中:mp表示方法參數(shù);num(x)表示x的個數(shù)。

B)表“條件”的介詞短語:

?Sip∈Con? ?Sbra∨?Scir∈method

其中:Sbra表示分支結(jié)構(gòu);Scir表示循環(huán)結(jié)構(gòu);method表示方法。

根據(jù)源代碼特點,常見動名詞和源代碼之間存在相應的啟發(fā)式規(guī)則:

規(guī)則6 常見動名詞啟發(fā)式規(guī)則如表2所示。

表2 常見動名詞啟發(fā)式規(guī)則Tab. 2 Heuristic rules of common verbs and nouns

1.2 版本控制信息處理

在軟件開發(fā)和維護的過程中,通常會使用版本控制軟件來輔助開發(fā)人員進行代碼的管理;軟件版本迭代時,將會存在大量的版本更新信息。版本更新信息通常包含版本號(Revision)、作者(Author)、日期(Date)、描述語句(Message)、改動文件的索引(Index),本文方法主要提取版本控制信息中的版本號、描述語句和改動文件的索引。

版本描述語句通常會包含本次代碼修改的主要內(nèi)容,并且基本都是由介詞短語、名詞短語和動詞短語構(gòu)成的簡單句。根據(jù)版本控制信息的特點,結(jié)合定義1和定義2,可以得出如下假設:

假設1 在版本描述語句中:

如果存在Pla,則該Pla與類名存在關(guān)聯(lián)關(guān)系,即

?Snp∈Pla? conj(Snp,CN)

其中CN表示類名。

如果存在Act,則該Act與方法名存在關(guān)聯(lián)關(guān)系,即

?Svp∈Act? conj(Svp,MN)

其中MN表示方法名。

還存在一些對檢索幫助不大的工作性動詞。

例如,在例句1中,表示Pla的名詞短語“裝卸作業(yè)預確報”對應本次版本提交中的類,而表示Act的動詞“查詢船舶預確報”對應本次版本提交中的類中修改的方法。

通過算法1得到版本控制信息與源代碼之間的映射文件。

算法1 版本控制信息中描述語句與源代碼關(guān)聯(lián)算法。

輸入 版本控制信息;

輸出 版本控制信息映射文檔。

1)提取版本控制信息,對版本更新描述語句進行分詞、去停用詞等,提取本次更新相關(guān)的代碼的類和方法。

2)根據(jù)定義1,并用Stanford-Parser工具對其進行句法分析。

3)根據(jù)定義2對版本描述語句進行語義分析,得出相應的多元式表達形式(Act,Pla,Dep,Con)。

4)對處理后的版本描述語句運用假設1得出和相關(guān)類存在關(guān)聯(lián)關(guān)系的名詞或名詞短語,以及和類中相關(guān)方法存在關(guān)聯(lián)關(guān)系的動詞或動詞短語,并寫入版本控制信息映射文檔中。

5)重復步驟1)~4),如果在寫入過程中發(fā)現(xiàn)同一類或方法的關(guān)鍵詞中已存在相同詞語,則將該詞語頻次加1,直到所有版本控制信息處理完畢。

6)輸出版本控制信息映射文檔。

算法1的思想是提取版本控制軟件中的版本更新關(guān)鍵信息,將版本描述語句中的關(guān)鍵詞與本次提交代碼的類和方法關(guān)聯(lián)起來,形成版本控制信息映射文件。

例如,使用svnkit工具[9]從版本控制軟件中提取版本更新關(guān)鍵信息,并獲取本次更新修改的類中的方法,以XML文件的形式保存如圖3所示,包括了版本號和版本更新信息等。

圖3 版本更新關(guān)鍵信息Fig. 3 Key information of version updating

對版本更新關(guān)鍵信息進行處理。首先,對logmes中版本更新描述語句進行預處理(分詞、去停用詞等),并運用定義2和相關(guān)語義分析規(guī)則得出版本描述語句的多元組表達形式Sv=(Act,Pla,Dep,Con),其中,Act=“保存”、Pla=“提運單辦理”、Dep=Null、Con=“件數(shù)和重量均為0”;然后,提取本次更新關(guān)鍵信息中源代碼的相關(guān)信息:

類名:CTOS.BusinessSystem.CargoBill_ADD。

方法名:buttonAddTYD_Click。

最后,根據(jù)假設1得出版本控制信息中描述語句與源代碼之間的映射關(guān)系如表3所示。

表3 版本更新信息中映射關(guān)系Tab. 3 Mapping of version updating information

1.3 文本信息檢索及啟發(fā)式規(guī)則運用

文本信息檢索主要包括對預處理后的數(shù)據(jù)構(gòu)建詞頻-逆文本頻率(Term Frequency-Inverse Document Frequency, TF-IDF)倒排索引表、文本相似度計算兩個過程。

構(gòu)建目標文檔索引表的結(jié)果是生成一個m×n的標引詞-文檔矩陣A,m是所有軟件文檔中出現(xiàn)的標引詞個數(shù),n是文檔的數(shù)量,其中第j行文檔向量dj=(w1, j,w2, j,…,wn, j),wi, j表示第i個標引詞在第j個文檔中的權(quán)重,權(quán)重計算采用TF-IDF模式與啟發(fā)式規(guī)則結(jié)合的方式。

采用向量空間模型對文檔和源代碼進行相似度計算,將每一條文檔語句當作查詢向量,設查詢向量q=(w1,w2,…,wn),將所有源代碼文檔當作目標查詢文檔,對查詢向量和源代碼文檔向量dj計算余弦相似度,如式(1)所示,其中wi為q中標引詞的權(quán)重,wi, j為dj中標引詞的權(quán)重。

(1)

對查詢文檔向量和源代碼文檔向量分別進行相似度計算,得到相似度列表。對每一條查詢語句及存在相似度關(guān)系的源代碼采用啟發(fā)式規(guī)則,對相似度得分進行修正。

1.4 跟蹤關(guān)系推薦

根據(jù)以上分析,本文提出如下關(guān)聯(lián)關(guān)系提取算法。

算法2 基于版本控制信息的文檔到源代碼關(guān)聯(lián)關(guān)系提取算法。

輸入 項目文檔、源代碼、版本控制信息映射文檔;

輸出 文檔與源代碼文件的相似度列表。

1)對文檔進行文本提取,以句子為最小粒度進行切分,并進行預處理(分詞、去停用詞)后,存入XML文件中。

2)提取項目源代碼,以方法為最小粒度,以索引+方法文件的形式保存。

3)提取源代碼中類名、方法名以及注釋內(nèi)容,對類名和方法名進行詞型規(guī)范化,并映射成文字,對注釋內(nèi)容進行預處理。結(jié)合處理后的類名、方法名和注釋內(nèi)容形成表示方法的關(guān)鍵信息。

4)使用向量空間模型結(jié)合代碼檢索規(guī)則對文檔條目和源代碼關(guān)鍵信息進行相似度計算,得出文檔和源代碼間的相似度Score1。

5)計算文檔與版本控制信息映射文檔之間的相似度Score2。

6)分別賦予步驟4)和步驟5)計算出的相似度不同的權(quán)重值(a,b),不同權(quán)重下兩者之和即為文檔與源代碼文件間的相似度Score=aScore1+bScore2。

7)以文件的形式輸出相似度列表。

算法2的思想是利用向量空間模型計算出中文文檔和源代碼間的相似度得分,然后根據(jù)啟發(fā)式規(guī)則進行修正,再結(jié)合源文檔和版本控制信息映射文件之間的相似關(guān)系,得出文檔與源代碼文件的相似度列表。由于版本控制信息中的描述語句與本次提交的源代碼之間具有較高的相關(guān)性,故文檔與版本控制信息映射文檔間的相似度具有較大的可信度,從而a的取值應小于b,故選取a的取值范圍為[0,0.5],b的取值范圍為[0.5,1]。由于不同文檔的書寫風格以及涉及到的軟件實現(xiàn)方式不同,a和b的取值均不是固定值,需要通過訓練集訓練得到,步驟如下:

1)從測試數(shù)據(jù)集中隨機選取若干數(shù)據(jù)作為訓練集,一般為數(shù)據(jù)集的前5%或不少于5條數(shù)據(jù);

2)對訓練集開始訓練,取初始值a=0,b=1,步長λ=0.05開始計算所有a、b取值下的精確度和召回率;

3)選取訓練結(jié)果中精確度和召回率最高的a、b取值作為實驗權(quán)重值。

例如,從中文文檔中提取語句“在裝卸作業(yè)預確報界面,當選中船舶單選框時,根據(jù)船舶名稱和航次查詢船舶預確報”,對其進行預處理,得出多元組表達形式如表1所示。提取項目相關(guān)源代碼關(guān)鍵信息,以索引(GY.SDD.4)+文本(4.txt)的形式保存,提取關(guān)鍵信息:

類名:CTOS.BusinessSystem.YQ_Main。

類注釋:裝卸作業(yè)預確報界面及相關(guān)功能。

方法名:queShipYQB。

方法注釋:船舶預確報查詢。

提取由算法1得出的版本控制映射文檔中相關(guān)信息:

類名:CTOS.BusinessSystem.YQ_Main。

關(guān)鍵詞:裝卸作業(yè)預確報#2、預確報#5。

方法名:queShipYQB。

關(guān)鍵詞:查詢船舶預確報#1。

計算出文檔與源代碼之間的相似度得分Score1=0.759 9,文檔與版本控制信息映射文檔之間的相似度得分Score2=1,通過訓練集訓練得出權(quán)重最優(yōu)值a=0.35,b=0.65,綜合得分Score=0.916 0。

2 實驗

2.1 實驗數(shù)據(jù)集

由于目前公開的相關(guān)實驗數(shù)據(jù)集大多針對英文文檔,并且無法獲取其完整的版本更新記錄,故實驗采用作者參與開發(fā)的、現(xiàn)已正式運行的重慶果園港生產(chǎn)業(yè)務管理系統(tǒng)作為實驗對象,選取軟件設計文檔作為源素材,軟件源代碼作為目標素材,并提取了軟件開發(fā)及維護過程中版本控制軟件中的版本更新記錄,作為跟蹤方法的測試集。

經(jīng)過粒度劃分等處理,共得到具有實際含義的設計文檔語句857條,提取了項目類文件365個,這些類中包含的方法2 872個,從版本控制軟件中提取了系統(tǒng)開發(fā)和維護過程中版本更新信息2 806條。由于軟件文檔和代碼數(shù)量較多,本實驗從系統(tǒng)眾多功能模塊中選取了商務模塊的源素材,通過人工整理出了38條具有關(guān)聯(lián)關(guān)系的跟蹤鏈作為實驗結(jié)果集。

2.2 實驗過程

1)源素材處理。

對素材中提取出的中文語句進行預處理,包括分詞、去停用詞等。本實驗采用ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)詞法分析系統(tǒng)[10],提取系統(tǒng)中的數(shù)據(jù)庫表名和字段名等作為用戶詞典,對中文素材進行分詞。采用哈爾濱工業(yè)大學發(fā)布的中文停用詞表,去掉一些對文本內(nèi)容識別作用不大的詞。

2)源素材和目標素材文本相似度計算。

對中文語句采用Stanford-Parser進行句法分析,根據(jù)定義2及相關(guān)規(guī)則對句法分析后的語句進行語義分析,并采用TF-IDF模型和代碼檢索規(guī)則對源素材(設計文檔語句)和目標素材(源代碼關(guān)鍵信息)進行權(quán)重分配,利用向量空間模型計算其相似度得分,根據(jù)規(guī)則5和規(guī)則6判斷源素材和目標素材中源代碼結(jié)構(gòu)之間的關(guān)系,從而修正源素材和目標素材之間的相似度得分Score1。

3)版本控制信息處理及源素材和版本控制信息映射文檔間相似度計算。

根據(jù)假設1得出版本控制信息映射文檔,計算源素材中Pla和Act與版本控制信息映射文檔中類與方法相關(guān)的關(guān)鍵詞之間的得分,綜合得出源素材和版本控制信息映射文檔之間的得分Score2。

4)基于版本控制信息的中文文檔和源代碼間的相似度計算。

根據(jù)算法2中權(quán)重值a、b的確定規(guī)則,從實驗數(shù)據(jù)中選取8條中文文檔語句和所有源代碼素材,并給出正確的跟蹤鏈關(guān)系,作為訓練集;然后,取初始值a=0,b=1,步長λ=0.05,采用a遞增、b遞減的方式進行訓練;最后,得出最優(yōu)取值a=0.35,b=0.65。最終得分Score=aScore1+bScore2,根據(jù)分數(shù)排序得出相似度列表。

2.3 結(jié)果分析

本實驗與傳統(tǒng)信息檢索方法中的向量空間模型(Vector Space Model, VSM)方法[11]及文獻[4]方法進行對比,采用相似度閾值法過濾實驗結(jié)果,采用信息檢索中最通用的查準率[11]、查全率[11]以及F2measure[12]來度量不同方法所得出的跟蹤關(guān)系的質(zhì)量。相似度閾值法即為設定一個相似度分數(shù)閾值,當實驗結(jié)果分數(shù)大于該閾值時才選取該結(jié)果,小于該閾值時則舍棄,而查準率和查全率均在選取的結(jié)果中計算,因此實驗結(jié)果中的查全率會隨著閾值的增大而降低,查準率會隨著閾值的增大而升高。在本實驗中,當閾值大于0.2時,三種方法查準率雖然會有所提高,但是查全率顯著降低,F(xiàn)2measure的值也會顯著降低,對比意義不大,因此本文選取0.2作為最大閾值,實驗結(jié)果的平均值如表4所示。

表4 實驗結(jié)果平均值Tab. 4 Average value of experimental result

由于實驗方法不同,三種實驗在相同閾值下的橫向?qū)Ρ纫饬x不大。根據(jù)實驗結(jié)果平均值可以看出,三種方法的綜合評判指標F2measure值均在閾值為0.2達到最大,為了更好地說明實驗效果,選取閾值為0.2時的實驗數(shù)據(jù),使用R工具[13]自動生成箱線圖,從圖4所示的箱線圖可以清晰地顯示數(shù)據(jù)的離散度、中間值等,圖中離散的圓點表示數(shù)據(jù)的異常值,上下兩條橫線分別為數(shù)據(jù)的上下邊緣,表示數(shù)據(jù)的整體范圍;中間矩形的上下兩邊為上下四分位數(shù),表示數(shù)據(jù)集中在這一范圍中;矩形中的橫線表示數(shù)據(jù)的中位數(shù),表明數(shù)據(jù)總體的中間值。從圖4可以看出,在查準率方面,三種方法的整體范圍和下四分位數(shù)均相同,本文方法的上四分位數(shù)高于其他兩種方法,中位數(shù)與文獻[4]方法相同,略高于VSM方法;在查全率方面,三種方法中位數(shù)相同,文獻[4]方法浮動范圍稍大;在F2measure方面,三種方法下四分位數(shù)相同,本文方法中位數(shù)高于其他兩種方法,并且本文方法的數(shù)據(jù)集中區(qū)域略高于其他兩種方法。結(jié)合實驗數(shù)據(jù)和箱線圖可以看出在查全率方面本文方法與其他兩種方法相差不大,在查準率和綜合評價指標方面,本文方法在中間值和整體范圍方面均優(yōu)于其他兩種方法。

圖4 實驗結(jié)果箱線圖Fig. 4 Box-plot of experimental result

3 結(jié)語

本文提出了一種基于版本控制信息的中文文檔到源代碼的自動跟蹤方法。該方法首先提取以句子為最小粒度的中文文檔及以方法為最小粒度的源代碼關(guān)鍵信息,結(jié)合自定義的文檔到代碼的啟發(fā)式規(guī)則,利用向量空間模型計算出中文文檔與源代碼之間的相似度得分;然后結(jié)合中文文檔與版本更新信息之間的相似度關(guān)系,調(diào)整中文文檔與源代碼之間的相似度得分,確定中文文檔與源代碼之間的跟蹤關(guān)系。對于相同的測試對象,本文方法相對于傳統(tǒng)的基于信息檢索的方法,提高了精確度和召回率;但是當中文文檔中存在大量的結(jié)構(gòu)化圖形描述時,本文方法效果不太理想,這是今后需要研究的內(nèi)容。

猜你喜歡
規(guī)則信息方法
撐竿跳規(guī)則的制定
數(shù)獨的規(guī)則和演變
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
TPP反腐敗規(guī)則對我國的啟示
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产成人综合亚洲欧美在| 欧美一区福利| 中文字幕色在线| 色偷偷一区二区三区| 亚洲码一区二区三区| av色爱 天堂网| 国产免费怡红院视频| 国产亚洲现在一区二区中文| 精品国产99久久| 国产永久在线视频| 国产噜噜在线视频观看| 久久久久久久久18禁秘| 中文字幕不卡免费高清视频| 91九色国产在线| 亚洲无码91视频| 爽爽影院十八禁在线观看| 福利在线免费视频| 日韩精品亚洲精品第一页| 免费人成视频在线观看网站| 香蕉蕉亚亚洲aav综合| 亚洲国产成熟视频在线多多| 国产一级妓女av网站| 国产毛片高清一级国语| 久久永久精品免费视频| 日韩国产高清无码| 高清欧美性猛交XXXX黑人猛交| 中文字幕资源站| 中文字幕无码中文字幕有码在线| 成人字幕网视频在线观看| 亚洲精品自产拍在线观看APP| 欧美日韩成人| 91成人在线免费视频| 欧美成人一级| 国产自无码视频在线观看| 国产91丝袜| 最新国产网站| 国产午夜小视频| 亚洲男人的天堂在线| 亚洲Va中文字幕久久一区 | 亚洲天堂网视频| 91成人在线免费观看| 国产va在线观看| 国产成人精品综合| 亚洲天堂久久新| 国产亚洲现在一区二区中文| 日韩 欧美 小说 综合网 另类| 粉嫩国产白浆在线观看| 特级精品毛片免费观看| 伊人久久大香线蕉成人综合网| 五月婷婷导航| 2020国产免费久久精品99| 超清无码一区二区三区| 国产迷奸在线看| 2021国产乱人伦在线播放 | 国产精品中文免费福利| 伊人无码视屏| 99热这里只有精品5| 欧美日本二区| 国产一区二区福利| 久热re国产手机在线观看| 中文字幕无码av专区久久| 国产人妖视频一区在线观看| 欧美激情二区三区| 亚洲区一区| 亚洲精品无码抽插日韩| 国产永久无码观看在线| 国产日韩欧美精品区性色| 91成人在线观看| 日韩精品无码不卡无码| 亚洲欧美日韩另类| 国产欧美日韩免费| a欧美在线| 欧美国产日韩另类| 在线观看国产小视频| 国产福利在线免费| 最新日韩AV网址在线观看| 日本色综合网| 欧美午夜网| 亚洲丝袜中文字幕| 成人久久18免费网站| 亚洲第一精品福利| 首页亚洲国产丝袜长腿综合|