首页> 中国专利> 一种文本类型识别方法、装置及电子设备和存储介质

一种文本类型识别方法、装置及电子设备和存储介质

摘要

本申请公开了一种文本类型识别方法、装置及一种电子设备和计算机可读存储介质,该方法包括:获取待检测文件;对所述待检测文件的后缀名进行识别,得到第一识别结果;对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。由上可知,本申请在进行文本类型识别时,不仅对待检测文件的后缀名进行识别,还对文件文本内容中的关键字进行识别,并通过结合对后缀名的识别结果和对关键字的识别结果得到待检测文件的文本类型,避免了仅通过后缀名识别时可能导致的误判问题,提高了识别准确率。

著录项

  • 公开/公告号CN113111147A

    专利类型发明专利

  • 公开/公告日2021-07-13

    原文格式PDF

  • 申请/专利权人 深信服科技股份有限公司;

    申请/专利号CN202010032858.1

  • 发明设计人 艾江俊;罗杰;

    申请日2020-01-13

  • 分类号G06F16/33(20190101);G06F16/35(20190101);

  • 代理机构44285 深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人常忠良

  • 地址 518055 广东省深圳市南山区学苑大道1001号南山智园A1栋一层

  • 入库时间 2023-06-19 11:49:09

说明书

技术领域

本申请涉及计算机技术领域,更具体地说,涉及一种文本类型识别方法、装置及一种电子设备和一种计算机可读存储介质。

背景技术

随着互联网的发展,出现了越来越多的语言类别,这些语言的风格有相近的,也有完全不同的。当一个检测引擎需要同时处理多种不同的语言时,例如恶意Webshell后门检测,若不区分语言类型就进行程序检测,将会产生误报,因为可能两种脚本语言的攻击手法完全相反。由此,需要一种文本类型识别方法先将待检测文件的语言类型识别出来,再根据每种语言的特性进行检测。

传统技术在对待检测文件的语言类型进行识别时,通常直接通过文件的后缀名判定该文件属于何种语言类型。然而这种方法是以信任文件后缀作为前提。若在某些场景下,攻击者将脚本后缀改为其他语言,将会导致文本类型误判。因此,如何提供一种解决上述问题的文本类型识别方法是本领域技术人员需要重点关注的。

发明内容

本申请的目的在于提供一种文本类型识别方法、装置及一种电子设备和一种计算机可读存储介质,提高了识别准确率。

为实现上述目的,本申请提供了一种文本类型识别方法,包括:

获取待检测文件;

对所述待检测文件的后缀名进行识别,得到第一识别结果;

对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;

结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。

可选的,对所述待检测文件的后缀名进行识别,得到第一识别结果,包括:

获取所述待检测文件的文件名称;

从所述文件名称中提取所述待检测文件的后缀名;

在预设字符串集合中查找是否存在与所述后缀名相同的字符串,得到针对所述后缀名的第一识别结果。

可选的,对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果,包括:

读取所述待检测文件的文本内容,并利用多模匹配从所述文本内容中提取关键字;

对每个关键字进行分析统计,得到每种语言类型对应的得分;

将得分最高的语言类型确定为所述第二识别结果。

可选的,还包括:

对每种语言类型对应的关键字进行收集,得到预设关键字集合;

通过对所述预设关键字集合中的每个预设关键字的出现概率进行统计,或利用机器学习对每个预设关键字进行加权计算,得到每个预设关键字在各个语言类型下对应的预设权重。

可选的,对每个关键字进行分析统计,得到每种语言类型对应的得分,包括:

统计每个关键字的出现次数,并获取每个关键字在各个语言类型下对应的预设权重;

根据所述出现次数和所述预设权重计算每种语言类型对应的加权得分。

可选的,所述结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型,包括:

若所述第一识别结果和所述第二识别结果相同,则直接将所述第一识别结果或所述第二识别结果确定为所述待检测文件的文本类型;

若所述第一识别结果和所述第二识别结果不相同,则判断所述加权得分是否大于等于预设阈值;

如果是,则将所述第二识别结果确定为所述待检测文件的文本类型;

如果否,则将所述第一识别结果确定为所述待检测文件的文本类型。

为实现上述目的,本申请提供了一种文本类型识别装置,包括:

文件获取模块,用于获取待检测文件;

第一识别模块,用于对所述待检测文件的后缀名进行识别,得到第一识别结果;

第二识别模块,用于对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;

类型确定模块,用于结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。

可选的,所述第二识别模块,包括:

关键字提取单元,用于读取所述待检测文件的文本内容,并利用多模匹配从所述文本内容中提取关键字;

得分统计单元,用于对每个关键字进行分析统计,得到每种语言类型对应的得分;

结果确定单元,用于将得分最高的语言类型确定为所述第二识别结果。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现前述公开的任一种文本类型识别方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种文本类型识别方法的步骤。

通过以上方案可知,本申请提供的一种文本类型识别方法,包括:获取待检测文件;对所述待检测文件的后缀名进行识别,得到第一识别结果;对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。由上可知,本申请在进行文本类型识别时,不仅对待检测文件的后缀名进行识别,还对文件文本内容中的关键字进行识别,并通过结合对后缀名的识别结果和对关键字的识别结果得到待检测文件的文本类型,避免了仅通过后缀名识别时可能导致的误判问题,提高了识别准确率。

本申请还公开了一种文本类型识别装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种文本类型识别方法的流程图;

图2为本申请实施例公开的另一种文本类型识别方法的流程图;

图3为本申请实施例公开的一种文本类型识别装置的结构图;

图4为本申请实施例公开的一种电子设备的结构图;

图5为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,对待检测文件的语言类型进行识别时,通常直接通过文件的后缀名判定该文件属于何种语言类型。然而这种方法是以信任文件后缀作为前提。若在某些场景下,攻击者将脚本后缀改为其他语言,将会导致文本类型误判。

因此,本申请实施例公开了一种文本类型识别方法,提高了识别准确率。

参见图1所示,本申请实施例公开的一种文本类型识别方法包括:

S101:获取待检测文件;

本申请实施例中,首先需要获取待检测文件。待检测文件为需要对其文本类型进行检测的文件,可以具体为脚本文件等。在获取待检测文件时,可以提供预设接收接口以获取用户发送的待检测文件,也可通过预设导入接口获取用户上传的待检测文件,还可通过网络下载待检测文件。本申请对获取待检测文件的过程不进行具体限定。

S102:对所述待检测文件的后缀名进行识别,得到第一识别结果;

在本步骤中,将通过对待检测文件的后缀名进行识别得到针对后缀名的第一识别结果。具体地,对待检测文件的后缀名进行识别,得到第一识别结果的过程可以包括:获取待检测文件的文件名称;从文件名称中提取待检测文件的后缀名;在预设字符串集合中查找是否存在与后缀名相同的字符串,得到针对后缀名的第一识别结果。

可以理解的是,通常文件的后缀名是添加在主文件名的尾部,利用“.”分隔符对后缀名和主文件名进行分隔,文件名称包括主文件名、后缀名和分隔符。在获取到待检测文件的文件名称之后,可以通过识别分隔符,提取到在分隔符之后的文件后缀名。

需要说明的是,本申请可以预先收集所有可能出现的文件类型,并将所有可能出现的文件类型对应的所有后缀名作为预设字符串集合。进而在提取到文件的后缀名之后,可利用后缀名在预设字符串集合中进行匹配,若匹配成功,则表征识别到当前文件的后缀名,该后缀名对应的文件类型即为针对后缀名的识别结果。

S103:对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;

本申请实施例中,将读取待检测文件的文本内容,并通过对文本内容中的关键字进行识别,得到针对关键字的第二识别结果。

需要指出的是,本申请实施例并不限定上述步骤S102和步骤S103之间的先后执行顺序,即可以先执行步骤S102,也可先执行步骤S103,还可同时执行两个步骤,实现并发的识别处理。

S104:结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。

可以理解的是,本申请在得到针对后缀名的第一识别结果,以及针对关键字的第二识别结果之后,可通过对两个结果的综合分析得到更为准确的文本类型识别结果。

在具体实施中,若针对后缀名进行识别后未能得到对应的识别结果,则可直接将针对关键字的第二识别结果确定为待检测文件的文本类型。若针对后缀名和针对关键字均未能得到对应的识别结果,则可判定对当前待检测文件识别失败,此时可输出提示信息以提醒用户进行手动识别。

通过以上方案可知,本申请提供的一种文本类型识别方法,包括:获取待检测文件;对所述待检测文件的后缀名进行识别,得到第一识别结果;对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。由上可知,本申请在进行文本类型识别时,不仅对待检测文件的后缀名进行识别,还对文件文本内容中的关键字进行识别,并通过结合对后缀名的识别结果和对关键字的识别结果得到待检测文件的文本类型,避免了仅通过后缀名识别时可能导致的误判问题,提高了识别准确率。

本申请实施例公开了另一种文本类型识别方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:

S201:获取待检测文件;

S202:对所述待检测文件的后缀名进行识别,得到第一识别结果;

S203:读取所述待检测文件的文本内容,并利用多模匹配从所述文本内容中提取关键字;

在本申请实施例中,将读取待检测文件的文本内容,进而利用多模匹配算法从文本内容中提取关键字。多模匹配算法具体为用于从文本中匹配多个关键字的算法,AC(Aho-Corasick automaton)自动机为一种常见的多模匹配算法,利用AC自动机进行多模匹配的过程可以具体包括:首先利用所有预设的关键字构建字典树,并可以在字典树上构建fail指针,上述fail指针用于确定在字典树上匹配失败后应当从哪个位置继续进行匹配。进而可利用文本内容在字典树上进行关键字的匹配。

S204:对每个关键字进行分析统计,得到每种语言类型对应的得分;

本步骤中,在提取到关键字之后,可统计每个关键字的出现次数,并获取每个关键字在各个语言类型下对应的预设权重,并根据出现次数和预设权重计算每种语言类型对应的加权得分。可以理解的是,同一关键字可能存在于多种语言,但在每种语言中代表的权重可能不同,因此同一关键字可能会对应多个权重,即在多个语言类型下分别对应不同的权重。

需要说明的是,本申请实施例可预先对每种语言类型对应的关键字进行收集,得到预设关键字集合,并对预设关键字集合中的每个预设关键字进行加权,以确定每个预设关键字在各个语言类型下对应的预设权重。上述对预设关键字集合中的每个预设关键字进行加权时,可对预设关键字集合中的每个预设关键字的出现概率进行统计得到预设权重,或可以利用机器学习对每个预设关键字进行加权计算,得到预设权重。作为一种具体的实施方式,本申请可以首先针对每种语言类型收集对应的样本数据作为机器学习训练的样本集,进而对样本集进行预处理,即可对每一个样本进行处理以生成对应的特征串,特征可以为关键字,每一个关键字作为一维特征,特征串即为每个关键字出现的次数组成的一个序列。在训练机器学习模型时,首先可选择一种机器学习算法,将生成的特征串放入算法中进行训练,训练完成后则得到对应的机器学习模型。该机器学习模型还可用于预测脚本的类型,与该机器学习模型同时产生的还包括特征重要性评分即关键字的权重,在一些常用算法,如XGBoost、GDBT、Random Forest、tree等算法中都可以输出特征的重要性评分。在利用机器学习训练模型的过程中,可通过调用 feature_importance_()函数得到每一个特征的重要性指数,进而将这个重要性指数作为关键字的权重。

在统计每个关键字的出现次数,并获取到每个关键字在各个语言类型下对应的预设权重之后,可通过预设得分计算公式计算每种语言类型对应的加权得分,预设得分计算公式为

S205:将得分最高的语言类型确定为所述第二识别结果;

可以理解的是,本申请实施例可在得到每种语言类型对应的得分后,将得分最高的语言类型确定为针对关键字的第二识别结果。

S206:结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。

本申请实施例中,若上述第一识别结果和第二识别结果相同,则可以直接将第一识别结果或第二识别结果对应的文本类型确定为待检测文件的文本类型;若第一识别结果和第二识别结果不相同,则判断第二识别结果中得到的加权得分是否大于等于预设阈值;若加权得分大于等于预设阈值,则可将第二识别结果对应的文本类型确定为待检测文件的文本类型;若加权得分小于预设阈值,则可将第一识别结果对应的文本类型确定为待检测文件的文本类型。上述预设阈值为具体实施过程中可根据具体场景进行设定的阈值,在此不对其进行限定。若加权得分小于预设阈值,则表征对应的识别结果准确率较低,可能存在误判的情况,由此,可将针对后缀名的识别结果作为最终的识别结果;若加权得分大于等于预设阈值,则表征对应的识别结果准确率较高,可直接将针对关键字的识别结果作为最终的识别结果。

下面对本申请实施例提供的一种文本类型识别装置进行介绍,下文描述的一种文本类型识别装置与上文描述的一种文本类型识别方法可以相互参照。

参见图3所示,本申请实施例提供的一种文本类型识别装置包括:

文件获取模块301,用于获取待检测文件;

第一识别模块302,用于对所述待检测文件的后缀名进行识别,得到第一识别结果;

第二识别模块303,用于对所述待检测文件的文本内容中的关键字进行识别,得到第二识别结果;

类型确定模块304,用于结合所述第一识别结果和所述第二识别结果,确定所述待检测文件的文本类型。

在上述实施例的基础上,作为一种优选实施方式,所述第一识别模块 302,包括:

名称获取单元,用于获取所述待检测文件的文件名称;

后缀名单元,用于从所述文件名称中提取所述待检测文件的后缀名;

字符串查找单元,用于在预设字符串集合中查找是否存在与所述后缀名相同的字符串,得到针对所述后缀名的第一识别结果。

在上述实施例的基础上,作为一种优选实施方式,所述第二识别模块303,包括:

关键字提取单元,用于读取所述待检测文件的文本内容,并利用多模匹配从所述文本内容中提取关键字;

得分统计单元,用于对每个关键字进行分析统计,得到每种语言类型对应的得分;

结果确定单元,用于将得分最高的语言类型确定为所述第二识别结果。

在上述实施例的基础上,作为一种优选实施方式,所述文本类型识别装置还可以进一步包括:

关键字收集模块,用于对每种语言类型对应的关键字进行收集,得到预设关键字集合;

加权计算模块,用于通过对所述预设关键字集合中的每个预设关键字的出现概率进行统计,或利用机器学习对每个预设关键字进行加权计算,得到每个预设关键字在各个语言类型下对应的预设权重。

在上述实施例的基础上,作为一种优选实施方式,所述得分统计单元,包括:

权重获取子单元,用于统计每个关键字的出现次数,并获取每个关键字在各个语言类型下对应的预设权重;

得分计算子单元,用于根据所述出现次数和所述预设权重计算每种语言类型对应的加权得分。

在上述实施例的基础上,作为一种优选实施方式,所述类型确定模块 304,包括:

第一确定单元,用于若所述第一识别结果和所述第二识别结果相同,则直接将所述第一识别结果或所述第二识别结果确定为所述待检测文件的文本类型;

得分判断模块,用于若所述第一识别结果和所述第二识别结果不相同,则判断所述加权得分是否大于等于预设阈值;

第二确定单元,用于如果所述加权得分大于等于预设阈值,则将所述第二识别结果确定为所述待检测文件的文本类型;

第三确定单元,用于如果所述加权得分小于预设阈值,则将所述第一识别结果确定为所述待检测文件的文本类型。

本申请还提供了一种电子设备,参见图4所示,本申请实施例提供的一种电子设备包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一种实施例公开的文本类型识别方法的步骤。

在上述实施例的基础上,作为优选实施方式,参见图5所示,所述电子设备还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口 (HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。

图5仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一种实施例公开的文本类型识别方法的步骤。

本申请在进行文本类型识别时,不仅对待检测文件的后缀名进行识别,还对文件文本内容中的关键字进行识别,并通过结合对后缀名的识别结果和对关键字的识别结果得到待检测文件的文本类型,避免了仅通过后缀名识别时可能导致的误判问题,提高了识别准确率。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号