一种数据类型自动化识别方法

文档序号:10612895阅读:458来源:国知局
一种数据类型自动化识别方法
【专利摘要】本发明公开一种数据类型自动化识别方法,本发明属于智能信息处理领域,尤其涉及一种文本分类方法和系统,使用自定义算法对图片、行文本、记录文本进行识别分类,进而满足海量大数据文件的处理需求。
【专利说明】
一种数据类型自动化识别方法
技术领域
[0001] 本发明属于智能信息处理领域,尤其涉及一种文本分类方法和系统,使用自定义 算法对图片、行文本、记录文本进行识别分类,进而满足海量大数据文件的处理需求。
【背景技术】
[0002] 计算机和互联网在政治、经济、文化以及社会生活中发挥着越来越重要的作用,信 息的共享与交流已成为不可阻挡的发展趋势。文件作为信息的载体,被广大企业和个人用 户广泛使用。文件是计算机组织和存储信息的重要结构,文件的类型多种多样,如文本文 件、图像文件、声音文件、可执行文件等等,目前已知的文件类型已有几千种,仅图像文件类 型就已经超过了 100种。多样化的文件类型能够满足人们对信息处理的各种需求,给人们的 工作、生活等各方面带来了极大的便利。从个人使用的角度来说,伴随着数据处理技术的不 断发展,用户对文件归档、分析等需求也日趋多样化,特别是大数据时代,文件类型识别作 为大数据研究分析的第一步,传统的依靠人工识别方式开始显得力不从心,一种海量文件 的类型快速判断应运而生;从网络安全角度来说,文件存储在计算机上时,其各种属性,如 类型信息(包括文件后缀名、魔数信息等)、文件大小、读写权限等,都存储在文件系统的目 录结构中,而文件实体本身则存储在磁盘上相应的簇中。两者分别由不同的结构描述和存 储,文件属性的改变,并不影响文件实体本身的内容。两者的独立性使恶意用户有机可乘, 通过改变目录中文件的有关属性,破坏其与文件实体之间的对应关系,从而掩盖文件实体 的真实类型,以达到传播木马和病毒、隐藏敏感信息和犯罪证据等不可告人的目的,给用户 的信息安全和国家的安定团结构成严重威胁。一方面,一些黑客和网络犯罪分子将木马、病 毒伪装成正常的资源文件,或将恶意代码嵌入资源文件中,诱骗用户访问和下载,窃取破坏 用户的信息资源。据中国互联网络信息中心(CNNIC)和中国互联网络应急响应中心 (CNCERT)在京联合发布的《2009年中国网民网络信息安全状况调查系列报告》指出,2009 年,52%的网民遭遇过网络安全事件,其中71.5%是因为在网络下载或浏览时遭遇病毒或 木马攻击。中国反网络病毒联盟(ANVA)整理发布的活跃恶意代码中,利用网页挂马、捆绑下 载进行传播的恶意代码所占比例较高。另一方面,以计算机作为犯罪对象、犯罪工具以及犯 罪信息载体的计算机犯罪愈演愈烈。据美国FBI下属机构IC3( Internet Crime Complaint Center)发布的2007计算机犯罪调查报告显示,信息盗窃、金融诈骗、内部人士网络滥用、病 毒等计算机犯罪案件造成了巨大的经济损失。而计算机犯罪的专业化、智能化、复杂化、多 样化、隐蔽化的特点,使计算机犯罪的破案率较低,助长了犯罪分子的嚣张气焰。文件类型 识别技术就是在这种背景下应运而生的,它旨在依据文件实体本身所表现出的特征判断文 件的类型,为计算机取证、防火墙、病毒防护、入侵检测系统、邮件过滤及隐写分析等应用研 究领域提供支持。快速、准确识别文件的真实类型,对保护网络和计算机信息安全具有重要 的现实意义。目前,要实现高效而准确地识别文件真实类型,还面临以下难点问题:
[0003] (1)-些恶意用户不断改进文件类型信息的篡改和伪造技术,使篡改和伪造后的 文件辨认度更低、仿真度更高,对文件真实类型的准确识别变得更加困难。如何深入分析文 件实体的内部特性,多方面多角度对文件进行综合判断,是准确识别文件类型的关键所在。
[0004] (2)由于文件的完整程度事先不可预知,因此在设计文件类型识别算法时,既要保 证识别结果有较高的准确率,又要对篡改和损坏的文件具有良好的包容性。采用何种策略 使算法在保持较高准确率的同时,也适应于不完整的文件类型识别,是提高算法适应性必 须解决的重要问题。
[0005] (3)文件类型的种类众多,其中相当一部分类型没有统一的规范和标准,或者其规 范和标准是商业秘密,不能公开发布。这种情况下,收集文件类型信息的难度加大,判断文 件类型无据可依,给文件类型的识别带来了很大的困难。如何不依赖特定文件的规范,设计 出具有较高正确率和较强普适性的文件类型识别算法,是急需解决的问题。

【发明内容】

[0006] 针对上述问题,本发明的目的在于提供一种识别文件类型的方法并能够按照文件 内容特征进行分类,它支持多种类型的文件,包括图片,行文本(自由文本),记录文本(结构 化文本)等。
[0007] 为实现上述目的,本发明采用以下技术方案:
[0008] 一种数据类型自动化识别方法,包括以下步骤:
[0009] 步骤1:对输入的原始文件进行初步分类,使用基于字符统计的文件类型识别方法 判定文件是结构化文件(多媒体文件)还是非结构化文件(文本文件);
[0010] 步骤2:若得到是结构化文件,使用特征码识别的文件类型识别方法判定该文件是 图片JPG,roF,doc中的哪一种,若结果是非结构化文件(文本文件),使用正则表达式的文本 类型识别方法判定文件是结构化文本还是自由文本。
[0011] 基于字符统计的文件类型识别算法:
[0012] 可统计二进制文件中是否存在大量字符70'进行判断。非结构文件的形成主要有 外接设备的输入和编程语言的输出,外接设备主要是指键盘和鼠标,因此文本中除了回车 和换行都是可显示字符,对于'\〇'等转义字符,属于键盘和鼠标的输入范围之外,而'\〇'在 编程语言中一般表示文件的结尾,在文件的读写过程中,编译器都会进行截断处理,所以文 本文件中必然不会包含'\〇',而在多媒体文件(结构化文件),大多使用0x00 ('\〇'的十六进 制形式)进行字符的填充,因此完全可以统计'\〇'字符的个数进行结构化文件与非结构化 文件的分类识别。
[0013] 结构化文件:结构化文件是指文件中数据的组织和存放满足严格约束条件的文 件,需要把特定数据按照一定的顺序和结构存储在文件中。通常每种文件类型都有相应的 格式规范说明,规定了如何将信息编码存储到该类型的文件中去。使用越广泛的文件类型, 其格式规范越标准、越详细。结构化文件使用预先严格定义的结构来管理和组织各类数据, 一个结构化文件必须要满足其所属类型格式规范的约束条件。相反,非结构化文件是指没 有任何约束条件的文件,将字节流按顺序存储在文件中即可。
[0014] 基于特征码识别的文件类型识别算法:
[0015] 通过特征码匹配识别文件类型,首先要深入分析各种类型文件的格式规范,挖掘 出能够代表各类型的特征码组合,并将特征码组合进行统一描述;然后匹配各特征码组合, 以确定文件类型。在匹配特征码时,为增强匹配目标的明确性,提高匹配结果的准确性,本 发明提出基于限定区域的特征码匹配算法,即将待测文件进行区域划分,在限定的区域范 围内分别匹配相应的特征码。最后根据匹配程度识别文件类型。
[0016] 基于正则表达式的文本类型识别算法:
[0017] 非结构文件的进一步分类:对于非结构化文件,又可根据文本内部的组织有无约 束条件分为自由文本和结构化文本,自由文本即无结构文本,是指无法根据文本格式将文 本进行有效分解,形成语义较为清晰的文本模块的自然语言文本。常见的自由文本有散文、 日记、毕业论文、新闻报道等。日常生活中常见的文本绝大多数为自由文本。结构化文本,是 指内容为结构化或半结构化数据的文本。每个独立语义模块之间有明显的非标点分割符 号,如空格、回车、表格、编号、特殊格式字符等等,同一类型数据一般具有相同的类型或值 域,表中语句简短,语句表达方式较为固定。常见的这类文本有编程日志、工资表、各类清 单、结算单等。
[0018] 结构化文本的每个独立语义模块之间一般都有很明显的分割标志,如"上线时间: 2015年1月2号","出勤率--2Γ等,通过对每行文本的词频分析确定可能的分割标志,进而 确定匹配模式,然后将文本中剩余的其它行作为输入进行模式匹配,如匹配结果高于提前 确定的阙值,即可认为该文本为结构化文本。
[0019] 上述技术方案中,基于正则表达式的文本类型识别算法:
[0020] 结构化文本的每个独立语义模块之间都有很明显的分割标志,通过对整个文件的 前10%行文本的词频分析确定分割标志,进而确定匹配模式;然后将文本中剩余的其它行 作为输入进行模式匹配,如匹配结果高于阙值,即可认为该文本为结构化文本。
[0021] 定匹配模式也就是一个通用的模式字符串,可以匹配所有具有模式字符串特征的 字符串,比如在一般的正则表达式实现中字符串'\d'就可以作为模式字符串,用来匹配所 有的单个数字,' \w '可以作为模式字符串,用来匹配所有的单词。
[0022]以"2015年1月2号"为例,说明模式匹配过程:
[0023] 1.统计前100行数据,确定每行都出现"年"字1次,"月"字1次,"号"字一次,暂时认 为分割符为年月日。即匹配模式为"\?年\?月\?号"。
[0024] 2.分析分割符之间的文字特征,发现分割符之间的字符都是数字字符,即ascii码 48-57,更新匹配模式为"\(1+年\(1+月\(1号"。即pattern = Pattern.compile(〃\(1+年\(1+月\(1 号");
[0025] 3.对于剩下的每一行row执行Matcher matcher = pattern.matcher(patte;rn); [0026] boolean b = matcher.matches();若匹配成功的个数大于提前确定的阙值,贝丨J认 为分割符有效,文本类型为结构化文本。
[0027] 文件类型识别技术旨在依据文件实体本身所表现出的特征判断文件的类型,为计 算机取证、防火墙、病毒防护、入侵检测系统、邮件过滤及隐写分析等应用研究领域提供支 持。比如一些黑客和网络犯罪分子会将木马、病毒伪装成正常的资源文件如pdf文档或者 jpg图片等,诱骗用户访问和下载,窃取破坏用户的信息资源。如果采用以上技术方案,能够 快速、准确识别文件的真实类型,会发现文档只是后缀名和开头的幻数符合pdf文档特征, 其文件整体特征不符合pdf文档特征码组合,其真实类型为代码txt文件。
[0028] 因为本发明采用以上技术方案,因此具备以下有益效果:
[0029] 文件类型识别技术旨在依据文件实体本身所表现出的特征判断文件的类型,为计 算机取证、防火墙、病毒防护、入侵检测系统、邮件过滤及隐写分析等应用研究领域提供支 持。采用以上技术方案,能够快速、准确识别文件的真实类型,对保护网络和计算机信息安 全具有重要的现实意义。
[0030] 本发明优势,与传统的基于后缀名和文件幻数的识别方法相比,本发明对文件识 别类型更广,能把识别文本文件,且识别更加准确,能够有效避免恶意用户通过修改后缀名 和文件幻数逃过传统文件类型检查的弊端。
【附图说明】
[0031] 图1算法基本流程图;
[0032] 图2基于限定区域特征码匹配的文件类型识别算法;
[0033]图3基于正则表达式的结构化文本类型识别算法。
【具体实施方式】
[0034]结构化文件与非结构化文件的判定分类
[0035] 对给定的待检测样本文件,采用文本文件特征提取的方式进行判定,在纯文本文 件中,除了回车换行TAB等文本控制符外,都是可打印字符,因此我们可以统计文本文件中 的非打印字符,如' \〇 ',' \a '等,进而可初步判断文件类型。
[0036] 基于特征码的结构化文件类型识别算法
[0037] 结构化文件中不仅需要保存实际的用户数据,而且需要保存表示结构和功能约束 关系的元数据,这两种数据在文件中存储时都受严格的结构规范约束。元数据是用来描述 用户数据的存储结构、定义操作功能属性的字节串,是文件中不可缺少的元素。这种元数据 就是要提取的类型特征码。这种特征码不仅能够体现文件类型的特点,又因为其分散在文 件中的字节流中,出现位置随具体文件而变化,所以篡改难度很大,因此将其作为依据来识 别文件类型结果更为准确可靠。下面以jpg图片格式为例,说明算法的主要流程。
[0038] jpg图片的特征码提取
[0039] jpg文件,其基本数据是由一个个段组成,段的类型有30种,但只有10种是必须的, 因此这10种段都可以作为jpg文件的特征码。段的一般结构如表1所示,10种必须段的标记 码如表2所示。
[0040] 表1: jpg文件格式的段的一般格式
[0041]
[0042] 表2:10种必要的段类型
[0043]
[0044] 本发明选取上述S0I、E0I、S0F0三个字段作为待匹配的特征码。
[0045] 文件头的特征码^和相应的正则表达式(R(Fi))分别如下:
[0046] Fi=(0xFFD8)
[0047] R(Fi) = {FFD8[FF] + }
[0048] 说明:段与段之间多于1个的FF为填充字符,无实际意义
[0049] 文件尾的特征码^和相应的正则表达式(R(F2))分别如下:
[0050] F2=(0xFFD9)
[0051 ] R(F2) = {FFD9[FF] + }
[0052] 文件帧的特征码组F3和正则表达式分别如下:
[0053] F3=(0xFFC0,0xFFC1)
[0054] R(F3) = {FF[C0|C1][FF] + }
[0055] jpg文件识别
[0056]由上分析可知,jpg文件的特征码一般出现在固定区域,如文件头SOI在文件头,帧 开始字段也是在文件开始偏移10-20个字符处。算法伪代码如下:
[0057] 算法:FileTypeldentifyBySignature
[0058] Input:待测文件D特征码组正则表达式集R(R(F1,F2,F3…)
[0059] 得分阈值ri
[0060] Output :P
[0061] Begin:
[0062] 对待测文件D根据各特征码的偏移值进行分割,得到以下两条结果:
[0063] 1.得到划分后的特征码近似区域:{B1,B2,B3',,. . .}
[0064] 2.for(i = 0;i<m; i++)
[0065] 对特征码近似区域Bi使用正则表达式匹配该近似区域相应的特征码组
[0066] Fi,记录匹配次数,加入得分Score;
[0067] 若 Score>n,则P = 1
[0068] 若 Score〈rid!jP = 0
[0069] return(P)
[0070] end
[0071 ]基于正则表达式的结构化文本类型识别算法
[0072]结构化文本的每个独立语义模块之间一般都有很明显的分割标志,如"上线时间: 2015年1月2号","出勤率--2Γ等,通过对每行文本的词频分析确定可能的分割标志,进而 确定匹配模式,然后将文本中剩余的其它行作为输入进行模式匹配,如匹配结果高于提前 确定的阙值,即可认为该文本为结构化文本。
[0073] 实施例一
[0074] 1输入样本文件test,使用基于字符统计的文件分类算法。发现文件test没有字符 '\0',所以test文件为非结构化文件(即文本文件),接着使用基于正则表达式的文件分类 算法,对样本文件进行处理,统计文本总行数为453行,取前10 %,即前45行进行匹配模式的 确认,得到模式为"四个数字一工资=三到四个数字一两个数字月两个数字日"即patterns = \d{4}-工资= \d{3,4}-\d\d月,接着使用这个模式查看对于剩下行的匹配结 果。发现剩下的400行有383都能成功匹配。匹配率大于80%,进而确认test文本类型为结构 化文本。
[0075] 实施例二
[0076]输入样本test2,使用基于字符统计的文件分类算法。发现文件test2总计约50000 个字符中有8000个为' \0 '作为填充字符,所以test2文件为结构化文件,接着使用基于特征 码组合的文件分类算法,对样本文件进行处理一一使用各种文件类型的特征码分别对样本 进行匹配。发现样本与JPG的特征码匹配,故test2文件为jpg文件类型。
【主权项】
1. 一种数据类型自动化识别方法,其特征在于: 步骤1:对输入的原始文件进行初步分类,使用基于字符统计的文件类型识别方法判定 文件是结构化文件(多媒体文件)还是非结构化文件(文本文件); 步骤2:若得到是结构化文件,使用基于特征码识别的文件类型识别方法判定该文件是 图片JPG,roF,doc中的哪一种,若结果是非结构化文件(文本文件),使用正则表达式的文本 类型识别方法判定文件是结构化文本还是自由文本。2. 根据权利要求1所述的一种数据类型自动化识别方法,其特征在于,基于字符统计的 文件类型识别方法:统计二进制文件中是否存在大量字符'\〇'进行判断,非结构化文件(文 本文件)中必不包含' \〇 ',则判断为非结构化文件(文本文件),否则为结构化文件(多媒体 文件)。3. 根据权利要求1所述的一种数据类型自动化识别方法,其特征在于,基于正则表达式 的文本类型识别算法:结构化文本的每个独立语义模块之间都有很明显的分割标志,通过 对整个文件的前10%行文本的词频分析确定分割标志,进而确定匹配模式; 然后将文本中剩余的其它行作为输入进行模式匹配,如匹配结果高于阙值,即可认为 该文本为结构化文本。
【文档编号】G06F17/30GK105975575SQ201610289217
【公开日】2016年9月28日
【申请日】2016年5月4日
【发明人】张小松, 牛伟纳, 唐海洋, 黄婉玉, 卢嘉中, 张 林, 李瑞杏, 曹思宇, 宋珺, 许珑于
【申请人】电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1