APP下载

基于朴素贝叶斯分类器的软件编译测试分析方法

2018-10-19袁彬

西部论丛 2018年11期
关键词:嵌入式软件贝叶斯

袁彬

摘 要:本文介绍了一种针对嵌入式软件开发包SDK的编译测试的优化方法,通过朴素贝叶斯分类器,可以迅速在编译出错的日志文件中,分析出最有价值的错误信息,节省测试结果的分析时间和成本。

关键词:贝叶斯 文本分类自然语言处理 嵌入式软件 编译测试

引言

目前主流的嵌入式微控制器(MCU)厂商都提供了上千款不同的芯片,为了给客户提供统一的软件使用体验,并方便移植和升级,他们各自都提供了统一的软件开发包Software Development Kit(SDK),如恩智浦的MCUXpresso-SDK。

由于不同的芯片公用了底层的外设驱动软件库,一旦底层软件库有一些编译问题,会给上层的应用程序带来大量的编译错误。如何从大量编译错误日志文件中,自动识别出有价值的编译错误信息,以节省软件编译测试的分析时间和成本,是本文研究的重点。

1.朴素贝叶斯分类器

樸素贝叶斯分类方法是一种简单有效的概率分类方法[1],是以贝叶斯定理为理论基础,一种在已知先验概率与条件概率的情况下的模式识别方法[2]。朴素贝叶斯的“朴素”得名于条件独立性和位置独立性两个基本假设[3],虽然实际情况各条件并非完全独立,但是在分类决策中的效果非常好,因此得到广泛应用。

朴素贝叶斯分类器的核心思想是根据已有的先验概率,来计算新的文本属于每个类别的概率,其公式如下:

其中,C = {c1, c2, …, Cn}是一个类别集,P(cx)是文本s属于类别cx的先验概率, 是文本s的词项,ns 是s中所有词项的数量。在已知文本s属于每个cx的先验概率后,需要找出新的文本s最有可能的类别,对于朴素贝叶斯的方法而言,就是最大后验概率(maximum a posteriori,map)的类别。

2.训练方案

由上述朴素贝叶斯分类器的思想可知,要想得到某一行编译日志是否是最有价值的错误信息,需要先对所有已知的编译日志进行训练,以得到对应类别的先验概率。

这边将类别划分成两类,第一类A,是编译错误日志类别;第二类B,是编译正确日志类别。将所有已知的错误日志所包含的词项进行训练,得到词项对应的先验概率。接着就可以对新的日志每一行的词项进行分析,得到编译错误类别的后验概率,其概率最高者,就是最有可能是最有价值的编译错误信息。具体流程如下图:

小结

朴素贝叶斯分类器分类精度较高,是一个十分实用的分类器。但是其结果的准确率与先验概率的训练集有很大的关系,也就是说要想获得更加准确的编译日志分类结果,需要借助更多的已有的编译出错日志文件,进行训练。随着训练集的扩大和累积,可以获得非常理想的预期结果,大大提升了嵌入式软件编译测试中分析效率。

参考文献:

[1] 袁方,苑俊英. 基于类别核心词的朴素贝叶斯中文文本分类 [J]. 山东大学学报 (理学版),2006(41) :46

[2] 李静梅,孙丽华,张巧荣,张春生. 一种文本处理中的朴素贝叶斯分类器 [J]. 哈尔滨工程大学学报,2003(24) :71

[3] 贺鸣,孙建军,成 颖. 基于朴素贝叶斯的文本分类研究综述 [J]. 情报科学,2016(34):148

猜你喜欢

嵌入式软件贝叶斯
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
浅析嵌入式软件技术的现状与发展动向
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
贝叶斯网络概述
基于朴素贝叶斯模型的大学生创业意识的分析
贝叶斯公式的应用和推广
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
试论计算机嵌入式软件构件提取与组装技术