袁彬
摘 要:本文介紹了一種針對嵌入式軟件開發(fā)包SDK的編譯測試的優(yōu)化方法,通過樸素貝葉斯分類器,可以迅速在編譯出錯的日志文件中,分析出最有價值的錯誤信息,節(jié)省測試結(jié)果的分析時間和成本。
關(guān)鍵詞:貝葉斯 文本分類自然語言處理 嵌入式軟件 編譯測試
引言
目前主流的嵌入式微控制器(MCU)廠商都提供了上千款不同的芯片,為了給客戶提供統(tǒng)一的軟件使用體驗(yàn),并方便移植和升級,他們各自都提供了統(tǒng)一的軟件開發(fā)包Software Development Kit(SDK),如恩智浦的MCUXpresso-SDK。
由于不同的芯片公用了底層的外設(shè)驅(qū)動軟件庫,一旦底層軟件庫有一些編譯問題,會給上層的應(yīng)用程序帶來大量的編譯錯誤。如何從大量編譯錯誤日志文件中,自動識別出有價值的編譯錯誤信息,以節(jié)省軟件編譯測試的分析時間和成本,是本文研究的重點(diǎn)。
1.樸素貝葉斯分類器
樸素貝葉斯分類方法是一種簡單有效的概率分類方法[1],是以貝葉斯定理為理論基礎(chǔ),一種在已知先驗(yàn)概率與條件概率的情況下的模式識別方法[2]。樸素貝葉斯的“樸素”得名于條件獨(dú)立性和位置獨(dú)立性兩個基本假設(shè)[3],雖然實(shí)際情況各條件并非完全獨(dú)立,但是在分類決策中的效果非常好,因此得到廣泛應(yīng)用。
樸素貝葉斯分類器的核心思想是根據(jù)已有的先驗(yàn)概率,來計算新的文本屬于每個類別的概率,其公式如下:
其中,C = {c1, c2, …, Cn}是一個類別集,P(cx)是文本s屬于類別cx的先驗(yàn)概率,
2.訓(xùn)練方案
由上述樸素貝葉斯分類器的思想可知,要想得到某一行編譯日志是否是最有價值的錯誤信息,需要先對所有已知的編譯日志進(jìn)行訓(xùn)練,以得到對應(yīng)類別的先驗(yàn)概率。
這邊將類別劃分成兩類,第一類A,是編譯錯誤日志類別;第二類B,是編譯正確日志類別。將所有已知的錯誤日志所包含的詞項(xiàng)進(jìn)行訓(xùn)練,得到詞項(xiàng)對應(yīng)的先驗(yàn)概率。接著就可以對新的日志每一行的詞項(xiàng)進(jìn)行分析,得到編譯錯誤類別的后驗(yàn)概率,其概率最高者,就是最有可能是最有價值的編譯錯誤信息。具體流程如下圖:
小結(jié)
樸素貝葉斯分類器分類精度較高,是一個十分實(shí)用的分類器。但是其結(jié)果的準(zhǔn)確率與先驗(yàn)概率的訓(xùn)練集有很大的關(guān)系,也就是說要想獲得更加準(zhǔn)確的編譯日志分類結(jié)果,需要借助更多的已有的編譯出錯日志文件,進(jìn)行訓(xùn)練。隨著訓(xùn)練集的擴(kuò)大和累積,可以獲得非常理想的預(yù)期結(jié)果,大大提升了嵌入式軟件編譯測試中分析效率。
參考文獻(xiàn):
[1] 袁方,苑俊英. 基于類別核心詞的樸素貝葉斯中文文本分類 [J]. 山東大學(xué)學(xué)報 (理學(xué)版),2006(41) :46
[2] 李靜梅,孫麗華,張巧榮,張春生. 一種文本處理中的樸素貝葉斯分類器 [J]. 哈爾濱工程大學(xué)學(xué)報,2003(24) :71
[3] 賀鳴,孫建軍,成 穎. 基于樸素貝葉斯的文本分類研究綜述 [J]. 情報科學(xué),2016(34):148