国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件靜態(tài)分析融合技術(shù)研究*

2022-03-08 06:48吳亞鋒
火力與指揮控制 2022年1期
關(guān)鍵詞:相似性語料庫聚類

王 鑫,趙 偉,吳亞鋒

(1.解放軍32381 部隊,北京 100000;2.江蘇自動化研究所,江蘇 連云港 222061)

0 引言

軍品軟件可靠性直接決定武器裝備產(chǎn)品的質(zhì)量,必經(jīng)多輪測試后方可交付列裝。代碼規(guī)則檢查在軟件產(chǎn)品研制與測試過程中均至關(guān)重要。針對C/C++語言的自動化代碼檢測工具在大規(guī)模代碼的多輪迭代及回歸中凸顯其高效性,但單一工具檢測結(jié)果存在誤檢或漏檢,且需人工復(fù)核以確保準(zhǔn)確性,本文提出一種多測試工具代碼規(guī)則檢查報告自動融合的方法,極大縮短了軟件迭代測試周期,提升了復(fù)查結(jié)果準(zhǔn)確率,降低迭代測試的時間、經(jīng)濟成本。

1 面向C/C++ 語言靜態(tài)測試工具及結(jié)果比較

LDRATestbedForC/C++、Klocwork、可集成在Visual C++工具中的C++test 以及HelixQAC 工具是4款面向C/C++語言的靜態(tài)分析工具。除了檢查代碼的標(biāo)準(zhǔn)符合性,更以圖和報告形式實現(xiàn)代碼可視化測試,提高了代碼測試的可視性和清晰度,其中C++test 更支持代碼復(fù)審及在線回歸。4 款測試工具均支持代碼規(guī)則定制以及檢測結(jié)果文本形式瀏覽?;诠ぞ咂饎臃绞?、結(jié)果輸出形式、支持編碼語言以及規(guī)則可查看角度對工具進(jìn)行分析,如表1 所示。

表1 工具特性表

上述工具均無法檢測出全部違規(guī)代碼,測試結(jié)果之間互有補充又諸多重合,各工具分析代碼所依據(jù)的規(guī)則也并非完全一致。

比對測試結(jié)果與原始代碼可以發(fā)現(xiàn)工具自動生成的測試報告具有以下特征:

1)針對存在問題的同一行源碼,不同工具測試結(jié)果描述語言不同,具有獨特語言風(fēng)格;

2)不同測試工具檢測的同一問題代碼,其問題定位信息在不同結(jié)果中顯示不同。測試報告中的問題代碼行數(shù)與源碼存在差異(工程實踐經(jīng)驗該誤差通常不大于5);

3)選定參考標(biāo)準(zhǔn)為GB、GJB 后,測試報告中的問題描述與GB、GJB 建立對應(yīng)關(guān)系。測試工具生成的測試報告為英文描述,而GJB 與GB 均為漢字描述,在人工復(fù)核檢測結(jié)果工作中帶來不便。

綜合上述比對可知,多工具自動化生成的英文檢測報告與漢語描述的GB、GJB 之間仍未完全對應(yīng),面對規(guī)模龐大的代碼,人工分析其測試報告在GB、GJB 標(biāo)中的映射,其時間和人力成本都隨代碼規(guī)模的擴張,呈現(xiàn)幾何級數(shù)的增長。因此,將工具生成的報告與標(biāo)準(zhǔn)之間建立準(zhǔn)確的映射關(guān)系,成為提升“最后一步”工作效率的可行手段。

2 基于語義的跨語言文本聚類方法

檢測結(jié)果與GB 之間的映射關(guān)系可以理解為對不同語言之間語義相近的語句分類,描述同一個問題的英文檢測結(jié)果與其在GB 中的漢字規(guī)則描述理論上存在相關(guān)性。在自然語言研究中,通常把一個詞匯描述為向量,一條語句描述為一個矩陣,語義相近的兩句話之間在語義空間上必然存在向量一致性。為解決上文提出的多工具檢測報告與規(guī)則集映射問題,基于語義的跨語言文本聚類方法體現(xiàn)了其優(yōu)勢。

國內(nèi)外諸多學(xué)者對自然語言文本聚類方法進(jìn)行了深入探討,本文采用基于VTM(Vector Term-frequency Model,向量詞頻模型)完成文本分類。該方法具有以下特點:

1)基于語料庫實現(xiàn)跨語言的文本聚類。多測試工具生成的檢測報告中全部問題描述語句和規(guī)則集構(gòu)成平行語料庫,從各自有限大的語料庫中提取文本分類所需要的信息。通過平行語料庫完成語句分類可以避免傳統(tǒng)模式的先翻譯,再將翻譯結(jié)果進(jìn)行分類帶來的大量計算,全部聚類過程處于語義和概念層面,更多結(jié)合自然語言的涵義。

2)借鑒Word2Vec模型完成“語句- 向量”轉(zhuǎn)換。Word2vec 模型最早由Mikolov 提出,由圖1 可知,由CBOW 模型和Skip-gram 模型構(gòu)成。

圖1 Word2Vec 模型數(shù)學(xué)表達(dá)示意圖

CBOW 模型由詞的前后m 個詞匯出現(xiàn)的概率決定詞A 出現(xiàn)的概率,其數(shù)學(xué)表達(dá)式如下:

類似地,Skip-gram 模型則是由上下文n 個詞匯預(yù)測詞A 出現(xiàn)的概率,其數(shù)學(xué)表達(dá)式如下:

Word2Vec 是自然語言研究中將詞語劃分為實數(shù)值向量表達(dá)的深度機器學(xué)習(xí)工具,在詞向量訓(xùn)練中涵蓋語料的上下文,從語義的層面解決了跨語言文本分類主題漂變和語言隔離問題。同時

Word2Vec 工具訓(xùn)練高效,300 M 語料詞向量的訓(xùn)練時間僅40 min 左右。

2.1 文本的向量表達(dá)

采用Word2Vec 模型,將一段文本S 描述為一組向量V(T),向量存在一個幾何中心,如同該文本存在一個核心詞。核心詞定義為Core(S),其歸一化向量表達(dá)形式如下:

如式(2)所示,歸一化向量表達(dá)式描述了文本S的幾何中心,也是該文本向量表示。

2.2 基于加權(quán)詞頻的文本向量表示

本文用TF-IDF(Term Frequency-Inverse Document frequency)方法確定式(2)中的詞向量權(quán)重。TF-IDF 是一種常用數(shù)據(jù)挖掘的加權(quán)技術(shù),TF(Term Frequency,詞頻)表示目標(biāo)詞在文本中出現(xiàn)的頻率,體現(xiàn)該詞在文本中的重要程度,IDF(Inverse Document Frequency,逆向文本頻率)用度量目標(biāo)詞的普遍性,反映了該詞在文本集中的識別度。TF-IDF 是TF 與IDF 的乘積。

假設(shè)一個預(yù)料庫D 中存在一段文本包含N 個的詞(其中k 個詞不重復(fù)),對于一個詞T而言,其重要性可表示如下:

文本中每個詞的權(quán)重向量可表示如下:

通過式(9)可以得知,在有限語料庫場景下,基于詞頻的文本權(quán)重向量表達(dá)式與TF 無關(guān),僅需要計算IDF 即可得出一段文本的權(quán)重向量表達(dá)式。

2.3 相似性測度計算

圖2 基于語義的檢測結(jié)果規(guī)則聚類流程圖

此時兩文本之間歐氏距離等價于余弦距離,在文本分類中以此為相似性測度。當(dāng)兩個文本相似性測度(歐氏距離)大于設(shè)定閾值時,判定為語義相近。至此完成跨語言的文本聚類。

3 基于語義的檢測結(jié)果與規(guī)則集聚類流程

首先,建立包含檢測結(jié)果與規(guī)則集的平行語料庫,語料庫內(nèi)容如圖3 所示,運行圖4 代碼,完成文本向量表達(dá)和文本向量距離計算。

圖3 平行語料庫截圖

圖4 文本向量相似性計算實現(xiàn)

表2 中第1 列選取了5 條檢測結(jié)果,每一行對應(yīng)計算該檢測結(jié)果與規(guī)則集之間的相似性測度計算值,對于成功匹配的兩條文本相似性計算結(jié)果加粗標(biāo)明??梢?,兩條文本語義上接近的相似性測度值更大,與無關(guān)文本相似性測度存在明顯的分離性,可以通過合理的相似性測度閾值加以區(qū)分。

表2 檢測結(jié)果與規(guī)則集相似性計算

上述方法僅實現(xiàn)檢測報告與規(guī)則集之間映射關(guān)系,檢測結(jié)果之間仍存在重合與互補。檢測結(jié)果自身攜帶問題代碼路徑Path 以及所在函數(shù)中行數(shù)Line 可區(qū)分問題代碼。類似的,規(guī)則集的常見形式是:“編號ID+規(guī)則描述”,編號即一個規(guī)則在其集合中的唯一識別。規(guī)則描述與檢測結(jié)果完成映射,意味著“Path+Line”與“規(guī)則ID”之間建立映射。根據(jù)測試工作實踐,問題與規(guī)則之間的關(guān)系如下頁圖5所示。

圖5 問題代碼路徑與規(guī)則標(biāo)識關(guān)系圖

對于近似行代碼對應(yīng)單規(guī)則ID 情況判定為重復(fù)檢測,任選其一作為最終結(jié)果;單行代碼對應(yīng)多個規(guī)則ID 情況判定為結(jié)果互補,保留不重復(fù)ID規(guī)則。至此完成多工具檢測結(jié)果與規(guī)則集合的融合匹配。

4 結(jié)論

本文結(jié)合靜態(tài)測試實踐,整理代碼規(guī)則檢查工具,針對C/C++語言檢查結(jié)果。以檢測結(jié)果及規(guī)則集作為有限集語料庫,以文本加權(quán)詞頻向量之間的相似程度為判別條件進(jìn)行相似性判斷,并對聚類文本進(jìn)行去重及融合,達(dá)到檢測結(jié)果互相補充、彼此完善的目的。實現(xiàn)了多工具檢測結(jié)果與規(guī)則集智能匹配,提高了代碼級規(guī)則檢測效率。本文介紹了文本詞頻向量表達(dá)聚類算法在多工具檢測結(jié)果與規(guī)則集之間的匹配方法,仍存在優(yōu)化空間。文中相似性測度算法值得在未來研究中完善優(yōu)化,同時面向更多種類語言的代碼規(guī)則檢測結(jié)果融合也具有較高的研究價值。

猜你喜歡
相似性語料庫聚類
一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
基于數(shù)據(jù)降維與聚類的車聯(lián)網(wǎng)數(shù)據(jù)分析應(yīng)用
基于模糊聚類和支持向量回歸的成績預(yù)測
運用語料庫輔助高中英語寫作
12個毫無違和感的奇妙動物組合
基于隱喻相似性研究[血]的慣用句
語料庫與譯者培養(yǎng)探索
潛析結(jié)構(gòu) 把握性質(zhì)
文登市| 汝州市| 蒙山县| 嵩明县| 祁东县| 两当县| 灌云县| 饶平县| 泽州县| 龙泉市| 潢川县| 和平县| 民县| 都匀市| 盐池县| 青铜峡市| 青河县| 贵阳市| 资兴市| 塔河县| 独山县| 茌平县| 阜城县| 云梦县| 同德县| 留坝县| 葫芦岛市| 河间市| 荥阳市| 昌宁县| 廊坊市| 平原县| 武鸣县| 名山县| 沾益县| 鸡泽县| 淮南市| 桦川县| 历史| 彰化县| 乃东县|