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