【技术实现步骤摘要】
一种待分析文件的文件具体类型的判断方法及装置
本专利技术涉及文件分析相关
,特别是一种待分析文件的文件具体类型的判断方法及装置。
技术介绍
文件具体类型包括文件类型(比如各种格式的图片,OfficeWord文档等等)以及如果是文本文件的话,其可能所属的编程语言的类型(如Java语言源代码文件,LinuxShell脚本等等)等更为具体的信息。当对代码仓库进行展示时,需要知道各文件具体类型,例如对图片格式的文件进行图片展示;对二进制类型的文件只展示一个占位符以便用户点击进行下载,对于各种编程语言的源代码文件则需要根据相应的语法进行语法高亮展示。另外,在对用户的代码仓库进行统计分析时,以及在用户按语言搜索时等很多场景下,也需要知道每个文件的类型及所属语言。这对于用户体验及数据挖掘都非常重要。然而,现有技术一般仅仅通过文件某一个或一些方面的特性来判断文件类型及所属语言,因此:1)准确性低,特别是对于几种均等的可能性毫无判断的方法;2)判断的标准单一导致局限非常大;3)针对源代码文件无法提供针对性的分析判断;4)判断方法扩展性低,无法通过大量的新数据升级及修正现有的判断标准;5)不能根据实际的需要提供满足不同性能及准确性需要的灵活解决方案。
技术实现思路
基于此,有必要针对现有技术对文件具体类型判断不准确的技术问题,提供一种待分析文件的文件具体类型的判断方法及装置。一种待分析文件的文件具体类型的判断方法,包括:步骤11,扫描待分析文件中与编程语言有关的特征符号及每个特征符号在所述待分析文件中的出现次数;步骤12,选择一种未分析的编程语言作为待分析编程语言;步骤13 ...
【技术保护点】
一种待分析文件的文件具体类型的判断方法,其特征在于,包括:步骤(11),扫描待分析文件中与编程语言有关的特征符号及每个特征符号在所述待分析文件中的出现次数;步骤(12),选择一种未分析的编程语言作为待分析编程语言;步骤(13),获取样本数据库中每个特征符号在待分析编程语言中出现的概率,根据每个特征符号在所述待分析文件中的出现次数以及样本数据库中每个特征符号在待分析编程语言中出现的概率,计算待分析编程语言下特征符号出现总概率;将样本数据库中待分析编程语言的源代码文件的个数除以样本数据库中源代码文件的总个数,计算结果作为样本数据库中待分析编程语言出现概率;将所述待分析编程语言下特征符号出现总概率乘以样本数据库中待分析编程语言出现概率,计算结果作为特征符号下出现待分析编程语言概率;如果还有其他未分析的编程语言,则执行步骤(12),得到其他未分析的编程语言的特征符号下出现待分析编程语言概率,否则执行步骤(14);步骤(14),从多个特征符号下出现待分析编程语言概率中选择最大值,将最大值对应的待分析编程语言,作为所述待分析文件的编程语言;步骤(15),根据所述待分析文件的编程语言,确定所述待分析 ...
【技术特征摘要】
1.一种待分析文件的文件具体类型的判断方法,其特征在于,包括:步骤(11),扫描待分析文件中与编程语言有关的特征符号及每个特征符号在所述待分析文件中的出现次数;步骤(12),选择一种未分析的编程语言作为待分析编程语言;步骤(13),获取样本数据库中每个特征符号在待分析编程语言中出现的概率,根据每个特征符号在所述待分析文件中的出现次数以及样本数据库中每个特征符号在待分析编程语言中出现的概率,计算待分析编程语言下特征符号出现总概率;将样本数据库中待分析编程语言的源代码文件的个数除以样本数据库中源代码文件的总个数,计算结果作为样本数据库中待分析编程语言出现概率;将所述待分析编程语言下特征符号出现总概率乘以样本数据库中待分析编程语言出现概率,计算结果作为特征符号下出现待分析编程语言概率;如果还有其他未分析的编程语言,则执行步骤(12),得到其他未分析的编程语言的特征符号下出现待分析编程语言概率,否则执行步骤(14);步骤(14),从多个特征符号下出现编程语言概率中选择最大值,将最大值对应的编程语言,作为所述待分析文件的编程语言;步骤(15),根据所述待分析文件的编程语言,确定所述待分析文件属于所述编程语言的文件具体类型。2.根据权利要求1所述的待分析文件的文件具体类型的判断方法,其特征在于,所述待分析编程语言下特征符号出现总概率采用如下方式计算:获取样本数据库中每个特征符号在待分析编程语言中出现的概率乘以对应特征符号在所述待分析文件中的出现次数,计算结果作为待分析编程语言下特征符号出现概率,将每个特征符号对应的所述待分析编程语言下特征符号出现概率相加,计算结果作为待分析编程语言下特征符号出现总概率。3.根据权利要求1所述的待分析文件的文件具体类型的判断方法,其特征在于,还包括:步骤(21),获取多个已知编程语言的源代码样本文件保存在样本数据库中;步骤(22),选择一个未统计的编程语言作为待统计编程语言;步骤(23),扫描待统计编程语言的所有源代码样本文件中与编程语言有关的特征符号及每个特征符号在所述源代码样本文件中的出现次数,计算每个特征符号在待统计编程语言中的出现次数除以所有特征符号在待统计编程语言中的出现次数,计算结果作为特征符号在待统计编程语言中出现的概率并保存在样本数据库中,如果还有未统计的编程语言则执行步骤(22),否则执行步骤(24);步骤(24),结束对多个已知编程语言的源代码样本文件的统计。4.根据权利要求3所述的待分析文件的文件具体类型的判断方法,其特征在于,步骤(24)具体包括:将保存在样本数据库中所有源代码样本文件计算一个摘要作为统计摘要,并保存在样本数据库中,结束对多个已知编程语言的源代码样本文件的统计。5.根据权利要求4所述的待分析文件的文件具体类型的判断方法,其特征在于,还包括:将保存在样本数据库中所有源代码样本文件计算一个摘要作为校验摘要,如果所述校验摘要与所述统计摘要一致,则执行步骤(12),否则执行统计步骤(21)至步骤(24)后,执行步骤(12)。6.根据权利要求1所述的待分析文件的文件具体类型的判断方法,其特征在于,还包括:判断待分析文件是否为文本文件,如果待分析文件为文本文件,则根据待分析文件的文件名、扩展名以及幻数匹配查找所述待分析文件的文件具体类型,如果待分析文件的文件具体类型所属编程语言的可能性多于一种,则执行步骤(11)至步骤(15),确定所述待分析文件的文件具体类型。7.一种待分析文件的文件具体类型...
【专利技术属性】
技术研发人员:甘露,
申请(专利权)人:北京京东尚科信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。