CN107103363A - 一种基于lda的软件故障专家***的构建方法 - Google Patents
一种基于lda的软件故障专家***的构建方法 Download PDFInfo
- Publication number
- CN107103363A CN107103363A CN201710146437.XA CN201710146437A CN107103363A CN 107103363 A CN107103363 A CN 107103363A CN 201710146437 A CN201710146437 A CN 201710146437A CN 107103363 A CN107103363 A CN 107103363A
- Authority
- CN
- China
- Prior art keywords
- failure
- symptom
- fault
- subsystem
- reasoning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于LDA的软件故障专家***的构建方法,步骤如下:1、搜集故障案例;2、对FEMA案例集文本进行迭代,分别构建故障属性主题模型;3、针对故障症状信息,构建症状主题模型;4、实现症状主题模型与故障属性主题模型的语义关联推理评分算法;5、整合步骤2~4,完成推理子***的构建;6、利用Hadoop技术完成存储子***的构建,实现对案例文本数据和LDA主题模型数据存储,以及推理评分数据存取;7、构建服务子***,实现客户端与后端的数据交互;8、整合存储子***、推理子***以及服务子***,完成专家***的构建;本发明完成与故障属性主题模型的语义关联推理,获取故障相关信息作为诊断结果,完成软件故障诊断。
Description
技术领域
本发明提供一种基于LDA的软件故障专家***的构建方法,它涉及一种基于LDA的软件故障专家***的实现,属于软件可靠性、软件故障诊断领域。
背景技术
LDA(Latent Dirichlet Allocation)即潜在狄利克雷分布,是一种非监督机器学习技术,可以用来识别大规模文档集或语料库中隐含的主题信息。目前,基于LDA的技术已在文本挖掘、知识发现、话题跟踪以及多文档摘要等领域得到了广泛应用。例如,通过LDA技术提取文档的主题模型,并依此为依据建立文档之间的相关性生成文档的关系图谱;通过LDA技术对已知的被标记文档内容进行分析,进而推断新文档的标签类别,实现互联网文档标签推荐***等。利用LDA技术,我们将提出一种软件故障专家***的构建方法,该***可以学习软件故障的历史数据,建立对应的故障属性主题模型,当输入故障症状后,***利用症状信息建立症状主题模型,结合故障主题模型分析两者之间潜在的语义联系对故障案例进行关联排序,最后将推理得到的排序结果提供给用户作为故障诊断信息。
该***基于LDA技术融合故障分析与故障处理等相关理论、方法和技术进行构建,在提高软件维护性的同时,达到提高软件可靠性、安全性、可用性的目的。
发明内容
(一)本发明目的:根据知识组织方式与推理机制的不同,专家***可大致分为:基于规则的专家***、基于模型的专家***、基于模糊推理的专家***、基于事例的诊断专家***以及基于网络的诊断专家***等。尽管专家***的种类很多,但这些专家***并不能对故障间的潜在联系进行分析来获得故障推理结果。因此本发明将克服现有技术的不足,提供一种基于LDA的软件故障专家***的构建方法对上述问题进行解决。该***利用“词-主题-文档”的三层贝叶斯概率网络结构分别对已有的历史故障信息及待诊断的故障症状信息数据进行LDA建模,并对两个模型间的主题相似性进行推理评分,从而获得与待诊断故障最为匹配的诊断信息。可以看出基于LDA的故障专家***更加注重故障之间的主题关联,充分地挖掘故障信息的语义,为故障诊断领域提供了一种新的解决方法,并对现有的故障专家***进行了创新。
(二)技术方案
本发明技术方案:一种基于LDA的软件故障专家***的构建方法,其步骤如下:
步骤1、搜集大量与被诊断软件相关的故障案例,筛选出合适的案例集。根据被诊断软件所有可能发生的原因、现象以及其他故障属性(如故障所在位置、故障严酷度等),对案例集中的案例逐条进行失效模式与影响分析即FMEA(Failure Mode and EffectAnalysis)分析;
步骤2、对FEMA形式案例集文本数据进行迭代,利用LDA算法分别构建故障属性主题模型:故障现象主题模型、故障原因主题模型、故障措施主题模型;
步骤3、针对待输入的故障症状信息,结合LDA算法构建症状主题模型;
步骤4、实现症状主题模型与故障属性主题模型的语义关联推理评分算法;
步骤5、整合步骤2~4,完成推理子***的构建;
步骤6、利用Hadoop技术完成存储子***的构建,实现对案例文本数据和LDA主题模型数据存储,以及推理评分数据存取;
步骤7、基于Spring MVC框架,构建服务子***,实现客户端与后端的数据交互;
步骤8、整合存储子***、推理子***以及服务子***,完成专家***的构建。
其中,在步骤1中所述的“FMEA分析”,是指一种***化的可靠性分析方法,它自下而上,通过对被诊断***各组成部分潜在的各种故障模式及其对***功能的影响分析,提出可能采取的预防改进措施,以提高产品的可靠性,它在保证产品可靠性方面起着重要的作用;
其中,在步骤2中所述的“LDA算法”,是指一种文档主题生成模型方法,该方法可以用来识别大规模文档集或语料库中潜藏的主题信息。它采用了词袋的方法,这种方法将每一篇文档视为一个词频向量,将文本信息转化为易于建模的数字信息,从而进行文本分析;
其中,在步骤3中所述的“针对待输入的故障症状信息,结合LDA算法构建症状主题模型”,其作法如下:使用基于向量的建模方法构建症状主题模型,将故障症状表示为一个k维向量pu=<z1,z2,z3,z4…zk>。与故障案例的特征向量定义相同,pu表示故障症状的特征向量,k表示通过LDA算法建模后的主题个数,zk表示该故障症状在第k主题上的生成概率。需要注意的是,症状主题模型的生成方式与案例主题模型有所不同。症状主题模型无法直接从LDA模型中生成,这是由于症状信息通常都是对故障现象的描述,不具备故障原因与故障措施等属性信息。因此,需要联合案例的故障属性信息对故障症状主题模型进行构建:首先定义故障属性向量αi用于表示不同故障属性对应的评分权值,α1对应故障现象的评分权值,α2对应故障原因的评分权值,α3对应故障措施的评分权值,该向量可以在新的故障属性类型加入时被动态扩展。由此,故障症状对某个案例的故障属性可描述为一个故障属性向量Cu,i=<c1,…,cα>,其中cα为该症状与第α故障属性信息的关联相似度,该值可通过计算文本与之对应的主题概率分布求得。症状的故障属性向量模型可以描述为:
其中θk代表了文档中第k个主题的比重,n表示该故障症状曾对比分析过的案例个数。上述公式使用了每一个被分析过的故障属性向量乘以该属性预先定义的权值αi,得到该症状信息在第k主题分量上的值zk,由此计算得出k维向量pu=<z1,z2,z3,z4…zk>,从而构建故障症状主题模型;
其中,在步骤4中所述的“实现症状主题模型与故障属性主题模型的语义关联推理评分算法”,其作法如下:该算法的核心即在已知语料库下通过采样算法来推算模型中的隐含变量过程,用于LDA模型的采样方法通常为吉布斯采样,因此利用吉布斯采样方法实现的推理评分算法如下:
由此,便可以计算得出故障症状信息和每个故障案例的相似评分,***可以根据评分获取前n项案例提供给用户作为故障诊断信息。
其中,在步骤5中所述的“推理子***”,它是指本发明构建***中,用于实现症状主题模型与故障属性主题模型之间语义关联推理评分的子***;
其中,在步骤6中所述的“Hadoop技术”,它是指由Apache基金会组织所开发的一个分布式计算框架,其目的是在大量廉价的硬件设备组成的集群上进行大规模的并行处理,为应用程序提供一套稳定可靠的接口,构建一个具有高可靠性和扩展能力的分布式***。Hadoop的优点主要体现在扩展能力强,成本低,效率高以及免费和开源;
其中,在步骤6中所述的“利用Hadoop技术完成存储子***的构建”,其作法如下:基于Hadoop提供的分布式文件***技术进行数据存取,本***中所有的计算结果,包括推理评分算法产生的最终结果,以及算法产生的中间数据,都将以二进制的向量形式保存在Hadoop的分布式文件***中。并且,案例数据的故障属性文本,分词后所有文本对应的词向量,LDA算法生成的故障属性主题模型及其对应的主题向量和主题词表,故障症状主题模型对应的向量以及推理结果也都存储在该分部是文件***中。通过对本发明构建***中的文档内容数据、文档词条数据、词典数据、文档词条向量、LDA输出模型、症状的故障属性模型、症状主题模型以及诊断推理结果等数据进行结构设计,利用这一存储结构进行集群搭建和环境配置,即可完成存储子***的构建;
其中,在步骤7中所述的“Spring MVC框架”,是一个开源的Java EE的应用框架,其关键特性是实现了基于JavaBean的控制反转模式,使得应用程序的模块化管理更加容易。Spring MVC分离了代码中的控制器、模型对象等角色,使得程序各个层次的组件更容易进行重用和定制。并且可以使用基于注解的方式在控制器上声明资源的映射和参数的映射等信息;
其中,在步骤7中所述的“基于Spring MVC框架,构建服务子***”,其作法如下:该子***是与外部交互的接口,用于接收和返回外部的请求调用。服务子***需要重点对输入服务和内容服务进行实现,子***框架其他部分的构建并不用特别注意,因此在这里不再进行分析。
其中输入服务是指对用户输入的故障症状信息进行操作处理,内容服务是指对案例文档的以及推理结果的操作处理。对于输入服务,需要构建对输入数据操作的控制器SymptomController类,该控制器用来响应用户输入请求。在SymptomController类中,需要实现addSymptom方法,这一方法可以将用户输入的文本信息添加至存储子***中,进一步交给推理子***完成内容建模和语义推理。
对于内容服务即***相关数据的操作,是由控制器DocumentController类来实现的,该控制器中包含:以分页的方式获取案例对象的方法getDocuments;向***中添加案例对象的方法addDocument,addDocument方法会自动对创建的案例对象及故障属性添加ID值,并将该内容添加到HDFS中;用于向客户端提供推理结果的getRecommend方法,该方法会按评分由高到低的顺序返回案例内容;
其中,在步骤8中所述的“整合存储子***、推理子***以及服务子***”,其作法如下:对子***进行接口设计,实现子***之间的连接,从而完成***的整合工作。***的整合有两部分需要进行接口设计:服务-存储子***接口和推理-存储子***接口。这里,可以通过继承Hadoop的辅助类编写入口程序实现这两个接口,其中Hadoop的辅助类可以为子类提供读取和解析配置数据的能力。继承Hadoop辅助类实现接口的优点在于,当***在子***间进行数据处理任务时,入口程序不会对数据进行操作修改,会将处理任务分送给对应的子***模块执行。这样,就可以利用继承辅助类编写的接口程序实现三个子***的连接,完成***的整合。
通过上述步骤,可以完成对基于LDA的软件故障专家***的构建,对于被诊断对象中的故障症状,通过建立症状主题模型,完成与故障属性主题模型的语义关联推理,获取按推理评分排序的故障相关信息作为诊断结果,从而完成软件故障诊断。
本发明与现有技术相比的优点在于:目前,大部分专家***对于历史故障案例只能在文字层面上进行匹配检索,并不能考虑到文字背后的语义关联。对于没有相同文字描述却内容相似的历史故障数据,这些专家***并不能进行有效地识别。而本发明能够充分挖掘故障间的语义关联,以此为依据进行推理,获取与故障症状最为相似的故障数据作为诊断信息。同时,***的诊断能力会随着案例集的丰富而不断提升,即***具有自我完善能力。
附图说明
图1为本发明的总体步骤流程。
图2为本发明的推理评分算法流程。
图3为本发明的内容建模流程。
图4为本发明的服务子***架构。
图5为本发明的***整体逻辑架构。
图中序号、符号、代号说明如下:
图1中的“步骤1~8”是本发明技术方案中对应的步骤;
图3中的“LDA”是潜在狄利克雷分布是构建主题模型所使用的技术;
图4中的“step1~8”是Spring MVC框架运行流程对应的步骤;
图4中的“DispatcherServlet”是Spring MVC框架的前端控制器,客户端发出的所有请求都经由它进行统一分发;
图4中的“HandlerMapping”是Spring MVC框架的处理器映射,用于完成客户端请求到控制器Controller的映射;
图4中的“SymptomController”是控制器中的一种,用于响应用户输入的请求;
图4中的“DocumentController”是控制器中的一种,用于响应***相关数据操作的请求;
图4中的“ModelAndView”是控制器处理完请求所返回的对象,该对象中通常包括模型与视图的相关属性;
图4中的“ViewResolver”是Spring MVC框架的视图解析器,用于把逻辑上的视图名称解析为视图对象;
图5中的“Hadoop”是构建存储子***所采用的分布式计算框架;
图5中的“HDFS”是用于进行数据结构设计的分布式文件***;
图5中的“Map/Reduce”是用于进行数据集并行运算的编程模型;
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图进行详细描述。
本发明提出了一种基于LDA的软件故障专家***的构建方法,利用该方法构建的***能够对故障间的语义关联信息进行充分挖掘,获取与故障症状相似的故障信息。***通过构建主题模型,对历史故障数据与症状数据进行语义关联推理分析,从而获得关联程度最好的历史故障数据,作为与待诊断症状最匹配的故障诊断信息。
本发明一种基于LDA的软件故障专家***的构建方法,如图1所示,其具体构建步骤如下:
步骤一:搜集大量与被诊断软件相关的故障案例,筛选出合适的故障案例组成案例集。根据被诊断软件所有可能发生的原因、现象以及其他故障属性(如故障所在位置、故障严酷度等),对案例集中的案例逐条进行FMEA分析。这里,我们规定仅分析归纳出案例的故障现象,故障原因以及故障措施这三个属性,即每条案例都是由这三部分构成。这样,我们就初步完成了历史故障数据的处理;
步骤二:利用基于LDA的分析算法对完成FEMA处理的案例数据进行建模。***通过LDA算法在文档和词条之间建立基于主题的中间层,并用主题向量来描述历史故障数据与待诊断故障症状的特征。这里,我们对FEMA形式案例集文本数据进行预处理然后进行迭代,分别为每条案例的故障现象属性信息,故障原因属性信息以及故障措施属性信息生成k维向量qi=<z1,z2,z3,z4…zk>,其中qi表示故障属性的特征向量,k表示通过LDA建模后的主题个数,zk表示该文档在第k主题上的生成概率;
步骤三:针对待输入的故障症状信息,结合LDA算法构建症状主题模型。这里,我们使用基于向量的建模方法构建症状主题模型,故障症状表示为一个k维向量pu=<z1,z2,z3,z4…zk>。与故障案例的特征向量定义相同,pu表示故障症状的特征向量,k表示通过LDA算法建模后的主题个数,zk表示该故障症状在第k主题上的生成概率。需要注意的是,症状主题模型的生成方式与案例主题模型有所不同。症状主题模型无法直接从LDA模型中生成,这是由于症状信息通常都是对故障现象的描述,不具备故障原因与故障措施等属性信息。但对于故障案例而言,其原因与解决措施的描述中,同样包含对于故障现象相关信息的描述。这就意味着从历史故障数据的故障原因与故障措施信息中,可以进行与现象信息关联语义的挖掘工作。因此可以联合故障属性,区分不同属性的评分权重,解决模型生成问题。
首先定义故障属性向量αi用于表示不同故障属性对应的评分权值,α1对应故障现象的评分权值,α2对应故障原因的评分权值,α3对应故障措施的评分权值,该向量可以在新的故障属性类型加入时被动态扩展。由此,故障症状对某个案例的故障属性可描述为一个故障属性向量Cu,i=<c1,…,cα>,其中cα为该症状与第α故障属性信息的关联相似度,该值可通过计算文本与之对应的主题概率分布求得。症状的故障属性向量模型可以描述为:
其中θk代表了文档中第k个主题的比重,n表示该故障症状曾对比分析过的案例个数。上述公式使用了每一个被分析过的故障属性向量乘以该属性预先定义的权值αi,得到该症状信息在第k主题分量上的值zk。进一步即可计算得出k维向量pu=<z1,z2,z3,z4…zk>;
步骤四:利用FMEA案例数据与故障症状信息的模型向量,设计模型推理评分算法,该算法的核心即在已知语料库下通过采样算法来推算模型中的隐含变量过程,用于LDA模型的采样方法通常为吉布斯采样,本发明利用吉布斯采样方法实现推理评分算法。其具体操作如下:
由此,便可以计算得出故障症状信息和每个故障案例的相似评分,***可以根据该评分获取前n项提供给用户,该算法的流程如图2所示;
步骤五:本发明构建的***由三部分组成,即存储子***、推理子***以及服务子***。通过上述步骤中,完成了推理子***的构建,可以发现整体构建流程可分为两阶段:内容建模与语义推理。
在内容建模阶段,对全部的文档内容数据进行遍历,对文档内容进行分词处理,生成词条的列表,以该词条列表作为输入,运行LDA算法生成所有文档内容的主题向量以及主题对应的词条概率分布;在语义推理阶段,联合故障属性,分配不同属性的评分权重,计算故障症状主题模型,其构建流程如图3所示。
因此,整个推理过程的具体步骤如下:
1)***读入文本内容数据。遍历所有文本,使用分词器对文本中的内容进行分词,为每一篇文本生成词袋向量<w1,w2,w3…wn>;
2)使用词袋向量作为输入,调用LDA算法,生成所有文档的主题分类矩阵和故障属性模型矩阵。设分类数量K,其中表示主题的分类矩阵为:
其中,该矩阵的每一行向量表示一个主题,向量的每一个分向量t代表该主题对应词条的生成概率。另一个生成的故障属性模型矩阵为:
其中,矩阵的每一行向量表示一个故障属性,由k个分量组成,每一个分量表示该故障属性对应的主题特征;
3)利用故障症状的故障属性矩阵和上一步得到的主题向量,计算出故障症状以k个主题维度构成的特征向量;
4)计算故障属性主题模型qi=<z1,z2,z3…zk>和故障症状主题模型pu=<z1,z2,z3…zk>,利用相似评分公式获得故障症状与每个故障案例的相
似评分,取前n个结果提供给用户最为故障诊断信息。
通过以上步骤,即可实现***的整个推理流程,利用内容建模模块和语义推理模块实现子***的构建,该子***是本***的核心,实现了所有的推理算法。在本***中,推理子***通过与存储子***的交互,完成文本数据的处理及推理结果的生成;
步骤六:存储子***是整个***的基础。在本发明中,将利用Hadoop技术构建存储子***。该子***采用Hadoop的HDFS进行数据存取,在本***中所有的计算结果,包括推理评分算法产生的最终结果,以及算法产生的中间数据,都将以二进制的向量形式保存在HDFS中。并且,案例数据的故障属性文本,分词后所有文本对应的词向量,LDA算法生成的故障属性主题模型及其对应的主题向量和主题词表,故障症状主题模型对应的向量以及推理结果也都存储在HDFS中。
本发明对基于HDFS文本数据结构进行了设计,其具体数据结构如下:
1)文档内容数据:
该文件用于保存文档的原始内容。这些内容来源于案例的故障属性信息。文件中的每一行代表一篇文档,其中第一个值为文档的ID;第二个值是纯文本内容。
2)文档词条数据:
该文件用于保存文档经过分词处理后的词条。这些内容经过了分词器的分词,除去了停用词,只保留了关键的名词和动词。文件的每一行代表一篇文档,其中第一个值为文档的ID,第二个值是由空格分割的词条列表。
3)词典数据
该文件保存了整个语料库中的词典,该词典维护了词条和维度之间的对应关系。文件的每一行代表一个词条,第一个int类型值的作用是标示该词条的索引,第二个Text类型的值是词条对应的字符串。
4)文档词条向量
该文件用于保存文档经过词典处理后的词条向量。第一个Text类型的值对应文档的ID,第二个值由一个Map Writable构成,该映射中的键表示了词条在词典中的索引位置,值表示了这个值在文档中出现的次数。
5)LDA输出模型
该文件是LDA算法产生的一系列文件,这些文件保存了在LDA算法执行过程中每一轮迭代之后产生的每一个主题对应的词条生成概率。每一行的第一个值对应一个主题的一个词条位置,例如(1,0)表示第0个主题生成第0个词条的概率,第二个值代表了生成概率。
6)症状的故障属性向量
该文件用于保存故障症状与案例故障属性信息的文本相似度。每一行为故障症状与一条故障属性信息的文本相似度,第一个值是存储了文本的ID,第二个值存储了相似度数值。
7)症状主题向量
该文件表示了最终生成的症状主题模型向量。其中每一行代表了一个故障症状,第一个值为故障症状的ID,第二个值为一个MapWritable,其中的key对应主题的ID,值对应了症状对这个主题的语义关联度。
8)诊断推理结果
该文件用于保存最终的推理评分结果,这些结果在推理子***计算完成之后写入。其中每一行代表一个评分结果,第一个值是故障案例的ID,第二个值是该故障案例与故障症状的关联相似度评分结果。
以上是基于HDFS的数据结构设计。在完成Hadoop集群搭建与环境配置等相关工作后,利用这一存储结构完成存储子***的构建;
步骤七:在本发明中,将利用Spring MVC框架完成服务子***的构建,这一子***是与外部交互的接口,用于接收和返回外部的请求调用。服务子***需要重点对输入服务和内容服务进行实现,其中输入服务是指对用户输入的故障症状信息进行操作处理,内容服务是指对案例文档的以及推理结果的操作处理。
对于输入服务,需要构建对输入数据操作的控制器SymptomController类,该控制器用来响应用户输入请求。在SymptomController类中,需要实现addSymptom方法,这一方法可以将用户输入的文本信息添加至存储子***中,进一步交给推理子***完成内容建模和语义推理。
对于内容服务即***相关数据的操作,是由控制器DocumentController类来实现的,该控制器中包含:以分页的方式获取案例对象的方法getDocuments;向***中添加案例对象的方法addDocument,addDocument方法会自动对创建的案例对象及故障属性添加ID值,并将该内容添加到HDFS中;用于向客户端提供推理结果的getRecommend方法,该方法会按评分由高到低的顺序返回案例内容。
Spring MVC框架其他部分的构建并不用特别注意,因此在这里不再进行分析,基于Spring MVC的服务子***的架构如图4所示,该框架具体的执行流程也在图中详细标明;
步骤八:通过上述步骤,分别完成了推理子***、存储子***以及服务子***的构建,整合后的***整体逻辑架构如图5所示。因此需要进行接口设计对子***进行连接,完成***的整合工作。参照***的整体逻辑架构图进行分析,有两部分需要进行接口设计:服务-存储子***接口和推理-存储子***接口。这里,可以通过继承Hadoop的辅助类Configured编写入口程序实现这两个接口,其中Configured类的作用是为子类提供读取和解析配置数据的能力。继承Configured类实现接口的优点在于,当***在子***间进行数据处理任务时,入口程序不会对数据进行操作修改,会将处理任务分送给对应的子***模块执行。这样,就可以利用继承Configured类编写的接口程序实现三个子***的连接,完成***的整合。
其中,在步骤四中所述的吉布斯采样是一种采样方法,该方法利用每个变量的条件分布实现从联合分布中抽样,在每个变量以固定次序从其他变量的条件分布中进行抽样,构造收敛于目标概率分布的马尔科夫链,从链中抽取被认为接近该概率分布值的样本。吉布斯采样的基本过程是:
1)随机初始化:对语料库中每篇文档中的每个词,随机赋予一个主题;
2)重新扫描语料库,对每个词,重新采样它的主题,在语料库中进行更新;
3)重复以上语料库的重新采样过程,直到采样收敛;
4)统计语料库中的频率矩阵,该矩阵即为所需模型;
在步骤六中所述的HDFS(Hadoop Distributed File System),即Hadoop分布式文件***,HDFS最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的,目前是Apache Hadoop Core项目的一部分。HDFS是适合运行在通用硬件上的分布式文件***,具有高度容错性特点,该***适合部署在廉价的机器上,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用;
在步骤六中所述的Text,IntWritable,DoubleWritable以及MapWritable是Hadoop运行时的基本数据类型。这四个数据类型均来源于Hadoop的核心类Writable,一般来说,所有存储在HDFS里的数据都需要使用Writable来实现;
在步骤六中所述的KeyValue,SequenceFile是Hadoop中常使用的文件存储结构。在本***中,Hadoop利用这两种结构实现数据的输入输出;
通过上述步骤,可以完成对基于LDA的软件故障专家***的构建,这一***通过对故障历史数据与故障症状进行LDA建模与关联语义分析,完成故障症状与案例集的主题相似性推理评分,最后按评分对案例集排序作为故障诊断信息提供给用户,完成软件故障诊断。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于LDA的软件故障专家***的构建方法,其特征在于:其步骤如下:
步骤1、搜集大量与被诊断软件相关的故障案例,筛选出合适的案例集;根据被诊断软件所有可能发生的原因、现象以及其他故障属性,如故障所在位置、故障严酷度,对案例集中的案例逐条进行失效模式与影响分析即FMEA(Failure Mode and Effect Analysis)分析;
步骤2、对FEMA形式案例集文本数据进行迭代,利用LDA算法分别构建故障属性主题模型:故障现象主题模型、故障原因主题模型、故障措施主题模型;
步骤3、针对待输入的故障症状信息,结合LDA算法构建症状主题模型;
步骤4、实现症状主题模型与故障属性主题模型的语义关联推理评分算法;
步骤5、整合步骤2~4,完成推理子***的构建;
步骤6、利用Hadoop技术完成存储子***的构建,实现对案例文本数据和LDA主题模型数据存储,以及推理评分数据存取;
步骤7、基于Spring MVC框架,构建服务子***,实现客户端与后端的数据交互;
步骤8、整合存储子***、推理子***以及服务子***,完成专家***的构建;
通过上述步骤,可以完成对基于LDA的软件故障专家***的构建,对于被诊断对象中的故障症状,通过建立症状主题模型,完成与故障属性主题模型的语义关联推理,获取按推理评分排序的故障相关信息作为诊断结果,从而完成软件故障诊断。
2.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤1中所述的“FMEA分析”,是指一种***化的可靠性分析方法,它自下而上,通过对被诊断***各组成部分潜在的各种故障模式及其对***功能的影响分析,提出采取的预防改进措施,以提高产品的可靠性,它在保证产品可靠性方面起着重要的作用。
3.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤3中所述的“针对待输入的故障症状信息,结合LDA算法构建症状主题模型”,其作法如下:使用基于向量的建模方法构建症状主题模型,将故障症状表示为一个k维向量pu=<z1,z2,z3,z4…zk>。与故障案例的特征向量定义相同,pu表示故障症状的特征向量,k表示通过LDA算法建模后的主题个数,zk表示该故障症状在第k主题上的生成概率;需要注意的是,症状主题模型的生成方式与案例主题模型有所不同;症状主题模型无法直接从LDA模型中生成,这是由于症状信息通常都是对故障现象的描述,不具备故障原因与故障措施属性信息;因此,需要联合案例的故障属性信息对故障症状主题模型进行构建:首先定义故障属性向量αi用于表示不同故障属性对应的评分权值,α1对应故障现象的评分权值,α2对应故障原因的评分权值,α3对应故障措施的评分权值,该向量能在新的故障属性类型加入时被动态扩展;由此,故障症状对故障属性能描述为一个故障属性向量Cu,i=<c1,…,cα>,其中cα为该症状与第α故障属性信息的关联相似度,该值能通过计算文本与之对应的主题概率分布求得;症状的故障属性向量模型能描述为:
<mrow>
<msub>
<mi>z</mi>
<mi>k</mi>
</msub>
<mo>=</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>n</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</msubsup>
<mfrac>
<mrow>
<msub>
<mi>&theta;</mi>
<mi>k</mi>
</msub>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>&alpha;</mi>
</msubsup>
<msub>
<mi>c</mi>
<mrow>
<mi>u</mi>
<mo>,</mo>
<mi>i</mi>
</mrow>
</msub>
<msub>
<mi>&alpha;</mi>
<mi>i</mi>
</msub>
</mrow>
<mi>N</mi>
</mfrac>
<mo>.</mo>
</mrow>
其中θk代表了文档中第k个主题的比重,n表示该故障症状曾对比分析过的案例个数;上述公式使用了每一个被分析过的故障属性向量乘以该属性预先定义的权值αi,得到该症状信息在第k主题分量上的值zk,由此计算得出k维向量pu=<z1,z2,z3,z4…zk>,从而构建故障症状主题模型。
4.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤5中所述的“推理子***”,它是指本发明构建***中,用于实现症状主题模型与故障属性主题模型之间语义关联推理评分的子***。
5.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤6中所述的“Hadoop技术”,它是指由Apache基金会组织所开发的一个分布式计算框架,其目的是在大量廉价的硬件设备组成的集群上进行大规模的并行处理,为应用程序提供一套稳定可靠的接口,构建一个具有高可靠性和扩展能力的分布式***。
6.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤6中所述的“利用Hadoop技术完成存储子***的构建”,其作法如下:基于Hadoop提供的分布式文件***技术进行数据存取,本***中所有的计算结果,包括推理评分算法产生的最终结果,以及算法产生的中间数据,都将以二进制的向量形式保存在Hadoop的分布式文件***中;并且,案例数据的故障属性文本,分词后所有文本对应的词向量,LDA算法生成的故障属性主题模型及其对应的主题向量和主题词表,故障症状主题模型对应的向量以及推理结果也都存储在该分部是文件***中;通过对构建***中的文档内容数据、文档词条数据、词典数据、文档词条向量、LDA输出模型、症状的故障属性模型、症状主题模型以及诊断推理结果数据进行结构设计,利用这一存储结构进行集群搭建和环境配置,即能完成存储子***的构建。
7.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤7中所述的“Spring MVC框架”,是一个开源的Java EE的应用框架,其关键特性是实现了基于JavaBean的控制反转模式,使得应用程序的模块化管理更加容易;Spring MVC分离了代码中的控制器、模型对象等角色,使得程序各个层次的组件更容易进行重用和定制,并且能使用基于注解的方式在控制器上声明资源的映射和参数的映射信息。
8.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤7中所述的“基于Spring MVC框架,构建服务子***”,其作法如下:该子***是与外部交互的接口,用于接收和返回外部的请求调用;服务子***需要重点对输入服务和内容服务进行实现,子***框架其他部分的构建并不用特别注意,因此在这里不再进行分析;
其中输入服务是指对用户输入的故障症状信息进行操作处理,内容服务是指对案例文档的以及推理结果的操作处理;对于输入服务,需要构建对输入数据操作的控制器SymptomController类,该控制器用来响应用户输入请求;在SymptomController类中,需要实现addSymptom方法,这一方法能将用户输入的文本信息添加至存储子***中,进一步交给推理子***完成内容建模和语义推理;
对于内容服务即***相关数据的操作,是由控制器DocumentController类来实现的,该控制器中包含:以分页的方式获取案例对象的方法getDocuments;向***中添加案例对象的方法addDocument,addDocument方法会自动对创建的案例对象及故障属性添加ID值,并将该内容添加到HDFS中;用于向客户端提供推理结果的getRecommend方法,该方法会按评分由高到低的顺序返回案例内容。
9.根据权利要求1所述的一种基于LDA的软件故障专家***的构建方法,其特征在于:在步骤8中所述的“整合存储子***、推理子***以及服务子***”,其作法如下:对子***进行接口设计,实现子***之间的连接,从而完成***的整合工作;***的整合有两部分需要进行接口设计:服务-存储子***接口和推理-存储子***接口;这里,通过继承Hadoop的辅助类编写入口程序实现这两个接口,其中Hadoop的辅助类能为子类提供读取和解析配置数据的能力;继承Hadoop辅助类实现接口的优点在于,当***在子***间进行数据处理任务时,入口程序不会对数据进行操作修改,会将处理任务分送给对应的子***模块执行,这样,就能利用继承辅助类编写的接口程序实现三个子***的连接,完成***的整合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710146437.XA CN107103363B (zh) | 2017-03-13 | 2017-03-13 | 一种基于lda的软件故障专家***的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710146437.XA CN107103363B (zh) | 2017-03-13 | 2017-03-13 | 一种基于lda的软件故障专家***的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107103363A true CN107103363A (zh) | 2017-08-29 |
CN107103363B CN107103363B (zh) | 2018-06-01 |
Family
ID=59674666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710146437.XA Active CN107103363B (zh) | 2017-03-13 | 2017-03-13 | 一种基于lda的软件故障专家***的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107103363B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107817787A (zh) * | 2017-11-29 | 2018-03-20 | 华南理工大学 | 一种基于机器学习的智能产线机械手故障诊断方法 |
CN107909116A (zh) * | 2017-12-07 | 2018-04-13 | 无锡小天鹅股份有限公司 | 洗衣机故障识别方法及装置 |
CN108647791A (zh) * | 2018-03-30 | 2018-10-12 | 中国标准化研究院 | 一种多源汽车安全信息的处理方法、装置及*** |
EP3477487A1 (en) * | 2017-10-24 | 2019-05-01 | Sap Se | Determining failure modes of devices based on text analysis |
CN109902153A (zh) * | 2019-04-02 | 2019-06-18 | 杭州安脉盛智能技术有限公司 | 基于自然语言处理和案例推理的设备故障诊断方法及*** |
CN110110870A (zh) * | 2019-06-05 | 2019-08-09 | 厦门邑通软件科技有限公司 | 一种基于事件图谱技术的设备故障智能监控方法 |
CN110851177A (zh) * | 2019-11-05 | 2020-02-28 | 北京联合大学 | 一种基于软件故障传播的软件***关键实体挖掘方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877075A (zh) * | 2009-10-29 | 2010-11-03 | 北京航空航天大学 | 一种故障诊断知识获取*** |
US20130204808A1 (en) * | 2012-02-08 | 2013-08-08 | General Electric Company | Fault Prediction of Monitored Assets |
CN103729473A (zh) * | 2014-01-22 | 2014-04-16 | 扬州大学 | 一种基于lda主题模型的相关软件历史数据提取方法 |
-
2017
- 2017-03-13 CN CN201710146437.XA patent/CN107103363B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877075A (zh) * | 2009-10-29 | 2010-11-03 | 北京航空航天大学 | 一种故障诊断知识获取*** |
US20130204808A1 (en) * | 2012-02-08 | 2013-08-08 | General Electric Company | Fault Prediction of Monitored Assets |
CN103729473A (zh) * | 2014-01-22 | 2014-04-16 | 扬州大学 | 一种基于lda主题模型的相关软件历史数据提取方法 |
Non-Patent Citations (1)
Title |
---|
何鑫等: "基于FMEA/FTA 的嵌入式软件故障诊断模型与应用", 《计算机测量与控制》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3477487A1 (en) * | 2017-10-24 | 2019-05-01 | Sap Se | Determining failure modes of devices based on text analysis |
US11922377B2 (en) | 2017-10-24 | 2024-03-05 | Sap Se | Determining failure modes of devices based on text analysis |
CN107817787A (zh) * | 2017-11-29 | 2018-03-20 | 华南理工大学 | 一种基于机器学习的智能产线机械手故障诊断方法 |
CN107909116A (zh) * | 2017-12-07 | 2018-04-13 | 无锡小天鹅股份有限公司 | 洗衣机故障识别方法及装置 |
CN108647791A (zh) * | 2018-03-30 | 2018-10-12 | 中国标准化研究院 | 一种多源汽车安全信息的处理方法、装置及*** |
CN109902153A (zh) * | 2019-04-02 | 2019-06-18 | 杭州安脉盛智能技术有限公司 | 基于自然语言处理和案例推理的设备故障诊断方法及*** |
CN110110870A (zh) * | 2019-06-05 | 2019-08-09 | 厦门邑通软件科技有限公司 | 一种基于事件图谱技术的设备故障智能监控方法 |
CN110110870B (zh) * | 2019-06-05 | 2022-03-22 | 厦门邑通软件科技有限公司 | 一种基于事件图谱技术的设备故障智能监控方法 |
CN110851177A (zh) * | 2019-11-05 | 2020-02-28 | 北京联合大学 | 一种基于软件故障传播的软件***关键实体挖掘方法 |
CN110851177B (zh) * | 2019-11-05 | 2023-04-28 | 北京联合大学 | 一种基于软件故障传播的软件***关键实体挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107103363B (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sharp et al. | A survey of the advancing use and development of machine learning in smart manufacturing | |
CN107103363A (zh) | 一种基于lda的软件故障专家***的构建方法 | |
CN112860872B (zh) | 基于自学习的配电网操作票语义合规性的校验方法及*** | |
Ilkou et al. | Symbolic vs sub-symbolic ai methods: Friends or enemies? | |
Grau et al. | Modular reuse of ontologies: Theory and practice | |
US20200118014A1 (en) | Adaptable Systems and Methods for Discovering Intent from Enterprise Data | |
CN103778215A (zh) | 一种基于情感分析和隐马尔科夫模型融合的股市预测方法 | |
CN112199512B (zh) | 面向科技服务的事理图谱构建方法、装置、设备及存储介质 | |
Vogel-Heuser et al. | Potential for combining semantics and data analysis in the context of digital twins | |
CN112559766A (zh) | 一种法律知识图谱构建*** | |
CN113095050A (zh) | 一种智能成票方法、***、设备及存储介质 | |
CN115438199A (zh) | 一种基于智慧城市场景数据中台技术的知识平台*** | |
CN112613611A (zh) | 一种基于知识图谱的税务知识库*** | |
Yu et al. | Digital Twin-enabled and Knowledge-driven decision support for tunnel electromechanical equipment maintenance | |
Atoum | A scalable operational framework for requirements validation using semantic and functional models | |
Saini et al. | Automated traceability for domain modelling decisions empowered by artificial intelligence | |
Salmani et al. | Bayesian inference by symbolic model checking | |
Bella et al. | ATLaS: A framework for traceability links recovery combining information retrieval and semi-supervised techniques | |
Bao et al. | Ontology-based assembly process modeling with element extraction and reasoning | |
Wang et al. | Ids-kg: An industrial dataspace-based knowledge graph construction approach for smart maintenance | |
CN113643141B (zh) | 解释性结论报告生成方法、装置、设备及存储介质 | |
Kiyavitskaya et al. | Requirements model generation to support requirements elicitation: the Secure Tropos experience | |
Hu et al. | A classification model of power operation inspection defect texts based on graph convolutional network | |
Macanovic et al. | A systematic evaluation of text mining methods for short texts: Mapping individuals’ internal states from online posts | |
CN111242520B (zh) | 特征合成模型的生成方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |