安全文本的处理方法和装置、存储介质及电子装置与流程

文档序号:29637932发布日期:2022-04-13 17:38阅读:98来源:国知局
安全文本的处理方法和装置、存储介质及电子装置与流程

1.本技术涉及通信领域,具体而言,涉及一种安全文本的处理方法和装置、存储介质及电子装置。


背景技术:

2.相关技术中,随着互联网技术的发展,网络安全也越发得到重视;现有技术一般通过使用bert等语言模型提取特征,再将提取到的特征输入一个训练后的序列标注模型,从而预测相关单词,而在此之前,为了达到更好的效果,需要先在与处理阶段将文本中具有实际语义的完整句子提取出来,从而减少输入模型的噪音。
3.而安全文本中包含了大量的对语言理解无效的内容,例如图标、代码片段等信息;同时大多数apt报告以pdf格式发布,难以通过现有工具和方法获得干净的文本,会对后续的文本抽取任务效果造成负面影响;而且安全文本中蕴含着大量的信息,如果能够对其中的威胁相关信息进行自动化提取,并生成结构化的威胁情报,对于安全态势的感知具有重要意义。
4.经过检索发现,现有技术公开了:
5.1、一种面向文本数据的威胁情报知识图谱构建方法,其设计要点在于从安全文本中自动提取关键信息,并构建威胁情报知识图谱;
6.2、文本预处理方法、分类方法、装置及设备,其设计要点在于对长文本中的核心内容进行和拼接,从而更好地用于语言模型的训练;
7.3、一种基于机器学习的中文商业文本预处理方法,其设计要点在于综合使用多种机器学习算法,对商业文本进行预处理,解决中文商业问答系统由于文本预处理不足导致系统答非所问,应答情景有限的问题;
8.由上述内容可以发现,方法1仅仅对威胁情报的提取方法进行了说明,并未说明文本的预处理方法;而方法2和3分别是对长文本和中文商业文本的预处理,这两种文本属于噪音较低的文本,处理相对容易,因此,这两种方法也难以用于安全文本;综上,现有方法中并不存在针对安全文本的预处理方法,即现有技术中并不存在能够很好解决安全文本噪音过大的问题。
9.针对相关技术中,安全文本噪音过大,不利于后续文本抽取等问题,尚未提出有效的解决方案。


技术实现要素:

10.本技术实施例提供了一种安全文本的处理方法和装置、存储介质及电子装置,以至少解决相关技术中,安全文本噪音过大,不利于后续文本抽取的问题。
11.根据本技术实施例的一个实施例,提供了一种安全文本的处理方法,包括:获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次
结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个结点的文本内容进行分句,以得到所述文本层级结构中所有结点的候选句子;从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
12.在一个示例性实施例中,根据所述文本特征建立所述文本内容的文本层次结构的过程中,所述方法包括:对于所述多行文本内容的任一行文本内容,确定所述任一行文本内容的第一行高;比较所述第一行高和所述任一行文本内容的上一行文本内容的结点的第二行高;根据比较结果确定是否在所述文本层级结构中新建子结点。
13.在一个示例性实施例中,确定所述任一行文本内容的第一行高,包括:确定所述任一行文本内容中所有字符的行高;从所述所有字符的行高中确定出现次数最多的行高,并将所述出现次数最多的行高作为所述第一行高。
14.在一个示例性实施例中,根据比较结果确定是否在所述文本层级结构中新建子结点,包括:在所述第一行高大于所述第二行高的情况下,在所述文本层级结构上向上查找除所述任一行文本内容的结点和上一行文本内容的结点之外的其他结点,以从所述其他结点中确定目标结点的第三行高大于所述第一行高,为所述目标结点新建子结点,并将所述任一行文本内容存储在所述目标结点新建的子结点中;在所述第一行高等于所述第二行高的情况下,将所述任一行文本内容存储到所述上一行文本内容的结点;在所述第一行高小于所述第二行高的情况下,为所述任一行文本内容的结点新建子结点,并将所述任一行文本内容存储在所述任一行文本内容的结点新建的子结点中。
15.在一个示例性实施例中,获取所述文本层次结构中的每一个结点对应的文本内容的分隔符之前,所述方法还包括:按照以下方式获取所述文本层级结构中所有结点的文本内容:遍历所述所有结点,以确定所有结点中出现次数最多的第四行高,将所述第四行高所对应的文本内容作为所述所有结点的文本内容的正文;将大于所述第四行高的第五行高所对应的文本内容作为所述所有结点的文本内容的标题。
16.在一个示例性实施例中,按照以下方式获取所述文本层级结构中所有结点的文本内容之后,所述方法还包括以下至少之一:从所述所有结点的文本内容中确定小于所述第四行高的结点,删除所述小于所述第四行高的结点对应的文本内容;通过第一正则表达式从所述所有结点的文本内容中确定被截断的英文文本,将被截断的英文文本进行拼接,得到拼接后的英文文本,其中,在语言知识库中查找到所述拼接后的文本内容的情况下,确定所述拼接后的英文文本为一个单词。
17.在一个示例性实施例中,从所述所有结点的候选句子提取出具有真实语义的目标文本,包括:确定所述所有结点的所有候选句子的困惑度;将困惑度大于第二预设阈值的候选句子从所述所有候选句子中删除,得到候选句子集合;从所述候选句子集合中提取出具有真实语义的目标文本。
18.在一个示例性实施例中,将困惑度大于第二预设阈值的候选句子从所述所有候选句子中删除,得到候选句子集合之后,所述方法还包括:在所述候选句子集合中存在英文句子的情况下,根据所述英文句子中的空格字符对所述英文句子进行分词,得到多个词语;在所述多个词语的数量小于第三预设阈值的情况下,确定所述英文句子不是具有真实语义的
句子;在所述多个词语的数量大于第三预设阈值的情况下,确定具有真实语义的单词在所述多个词语中的占比;在所述占比大于第四预设阈值的情况下,确定所述英文句子是具有真实语义的句子。
19.在一个示例性实施例中,从所述所有结点的候选句子提取出具有真实语义的目标文本的过程中,所述方法还包括:确定所述候选句子中不具备真实语义的字符串;按照所述字符串的类型将所述不具备真实语义的字符串替换为具有真实语义的单词;根据所述具有真实语义的单词更新所述候选句子。
20.根据本技术实施例的另一个实施例,还提供了一种安全文本的处理装置,包括:获取模块,用于获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;确定模块,用于确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;分句模块,用于获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个接点的文本内容进行分句,以得到所述文本层级结构中所有结点的候选句子;提取模块,用于从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
21.根据本技术实施例的另一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述安全文本的处理方法。
22.根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的安全文本的处理方法。
23.在本技术实施例中,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;确定文本内容的文本特征,文本特征包括但不限于文本的字号与行高,并根据文本特征通过搭建文本树的方式建立文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,其中每一个结点包含了文本内容的一行或多行文本内容,以及一行或多行文本内容的行高;获取文本层次结构中的每一个结点对应的文本内容的分隔符,并根据每一个结点的分隔符对每一个结点的文本内容进行分句,以得到文本层次结构中所有结点的候选句子;并从所有结点的候选句子提取出具有真实语义的目标文本,避免无实际语义的文本对后续文本抽取过程造成影响,并将目标文本输入到语言识别模型中;采用上述技术方案,解决了相关技术中,安全文本噪音过大,不利于后续文本抽取等问题,实现了在后续处理过程中,能够通过干净的安全文本更好地提取特征,提升文本抽取效率的技术效果。
附图说明
24.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
25.图1是本技术实施例的一种可选的安全文本的处理方法的流程示意图;
26.图2是本技术实施例的一种可选的安全文本的处理方法的计算机终端的硬件结构
框图;
27.图3是根据本技术实施例的一种可选的安全文本的处理方法的流程图;
28.图4是根据本技术实施例的一种可选的安全文本的存储方法的示意图;
29.图5为本发明实施例中一种可选的安全文本的判断流程图;
30.图6是根据本技术实施例的一种安全文本的处理系统的结构框图。
具体实施方式
31.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
32.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.图1是本技术实施例的一种可选的安全文本的处理方法的流程示意图。如图1所示,提供了一种安全文本的处理方法,具体地,计算机终端获取一定数量的安全文本,对安全文本进行解析,获取安全文本的层次结构,并按需从层次结构中提取内容,通过对安全文本进行过滤剔除掉一些冗余内容,再对安全文本进行分句以及语义判断,并保留具有实际语义的句子,再对句子进行特殊单词替换,将无实际意义的词语替换为模型可理解的词语;最后使用语言模型分词并提取特征。
34.本技术实施例所提供的方法实施例可以在计算机终端或者类似的运算系统中执行。以运行在计算机终端上为例,图2是本技术实施例的一种安全文本的处理方法的计算机终端的硬件结构框图。如图2所示,计算机终端可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理系统)和用于存储数据的存储器204,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示等同功能或比图2所示功能更多的不同的配置。
35.存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本技术实施例中的安全文本的处理方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储系统、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202
远程设置的存储器,这些远程存储器可以通过网络连接至安全文本。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
36.传输系统206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输系统206包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。
37.在本实施例中提供了一种安全文本的处理方法,应用于上述计算机程序,图3是根据本技术实施例的一种可选的安全文本的处理方法的流程图,该流程包括如下步骤:
38.步骤s302,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;
39.步骤s304,确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;
40.步骤s306,获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个结点的文本内容进行分句,以得到所述文本层级结构中所有结点的候选句子;
41.步骤s308,从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
42.需要说明的是,安全文本:安全从业人员会对网络攻击事件、攻击者、恶意软件、软件漏洞等内容进行分析,并整理为技术性文档,具体包括:apt(advanced persistent threat)报告,网络安全相关的技术博客或微博等内容。具体地,上述安全文本可以为apt(advanced persistent threat)报告,也可以为网络安全相关的技术博客或微博等内容,本技术对此不做限制。
43.需要说明的是,上述安全文本可以为pdf文本、网页文本等,本技术对此不做限制。
44.需要说明的是,上述安全文本的获取过程可以从aptnote等数据源获取apt报告,也可以使用爬虫等工具获取网络上公开的博客内容,本技术对此不做限制。
45.通过上述步骤,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;确定文本内容的文本特征,并根据文本特征建立文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,其中每一个结点包含了文本内容的一行或多行文本内容,以及一行或多行文本内容的行高;获取文本层次结构中的每一个结点对应的文本内容的分隔符,并根据每一个结点的分隔符对每一个结点的文本内容进行分句,以得到文本层次结构中所有结点的候选句子;并从所有结点的候选句子提取出具有真实语义的目标文本,并将目标文本输入到语言识别模型中;采用上述技术方案,解决了相关技术中,安全文本噪音过大,不利于后续文本抽取等问题,实现了在后续处理过程中,能够通过干净的安全文本更好地提取特征,提升文本抽取效率的技术效果。
46.在一个示例性实施例中,根据所述文本特征建立所述文本内容的文本层次结构的过程中,所述方法包括:对于所述多行文本内容的任一行文本内容,确定所述任一行文本内容的第一行高;比较所述第一行高和所述任一行文本内容的上一行文本内容的结点的第二行高;根据比较结果确定是否在所述文本层级结构中新建子结点。
47.也就是说,为了搭建安全文本的文本层次结构,本技术通过搭建一个文本树的方式存储安全文本的内容,通过对每一行文本的行高值与上一行的行高值进行比较,判断是否需要在文本层次结构中新建子结点,确定该行文本的存储位置;通过将不同行高的文本内容存储到高度不同的结点中,搭建出安全文本的文本层次结构。
48.需要说明的是,上述建立文本层次结构的过程主要用于pdf文本,对于网页文本,其本身已经包含了层次结构,且通过beautiful soup解析后也会生成一棵文档树,可通过如下步骤简单地获取文本的层次结构:
49.1)通过人工阅读网页源码确定需要保留的html标签和属性,比如《title》、《p》等;
50.2)使用beautiful soup自带的方法遍历beautiful soup生成的文档树,如果遇到所需的标签或属性则保留结点,否则删除。
51.需要说明的是,上述子结点中,每一个结点包含了一行或多行文本以及该结点中文本的高度和字体。
52.基于上述过程,确定所述任一行文本内容的第一行高,包括:确定所述任一行文本内容中所有字符的行高;从所述所有字符的行高中确定出现次数最多的行高,并将所述出现次数最多的行高作为所述第一行高。
53.由于同一行文本的主要内容的字符的额行高和字号等基本都是相同的,因此将每一行文本内容中所有字符的行高进行确认并统计,根据统计结果确定出现次数最多的行高值,将该行高值作为该行文本的行高值作为标记,便于后续进行文本存储。
54.需要说明的是,上述确定所述任一行文本内容中所有字符的行高是通过使用pdfminer依次遍历文件的每一行,通过库接口获取当前行每一个字符的字号,并存入数组,同时对获取的字号取一位小数,以去除pdfminer库的测量误差。
55.在一个示例性实施例中,根据比较结果确定是否在所述文本层级结构中新建子结点,包括:在所述第一行高大于所述第二行高的情况下,在所述文本层级结构上向上查找除所述任一行文本内容的结点和上一行文本内容的结点之外的其他结点,以从所述其他结点中确定目标结点的第三行高大于所述第一行高,为所述目标结点新建子结点,并将所述任一行文本内容存储在所述目标结点新建的子结点中;在所述第一行高等于所述第二行高的情况下,将所述任一行文本内容存储到所述上一行文本内容的结点;在所述第一行高小于所述第二行高的情况下,为所述任一行文本内容的结点新建子结点,并将所述任一行文本内容存储在所述任一行文本内容的结点新建的子结点中。
56.可以理解的是,为了搭建完整的安全文本的文本层次结构,实现每一个结点存入相同行高的文本内容,在遍历文件的每一行内容并判断该行文本行高之后,对当前的第一行高与上一行的第二行高,当第一行高大于第二行高时,需要找一个高度大于第一行高的结点,因此,在所述文本层级结构上向上查找除了所述任一行文本内容的结点和上一行文本内容的结点之外的其他结点,在确定目标结点的第三行高大于第一行高时,为目标结点新建子结点,并将第一行高对应的文本内容存储在新建的子结点中;在第一行高等于第二行高的情况下,将第一行高对应的文本内容存储到存储上一行文本内容的结点;当第一行高小于第二行高时,为第一行高对应的文本内容新建一个子结点,并将第一行高对应的文本内容存储在该新建的子结点中。
57.在一个示例性实施例中,获取所述文本层次结构中的每一个结点对应的文本内容
的分隔符之前,所述方法还包括:按照以下方式获取所述文本层级结构中所有结点的文本内容:遍历所述所有结点,以确定所有结点中出现次数最多的第四行高,将所述第四行高所对应的文本内容作为所述所有结点的文本内容的正文;将大于所述第四行高的第五行高所对应的文本内容作为所述所有结点的文本内容的标题。
58.为了获取所需的文本内容,可以依据已经搭建好文本层次结构的文本树,通过遍历文本树的所有结点,确定所有结点中出现次数最多的行高,将该行高值所对应的文本内容作为所有结点的文本内容的正文,并将大于该行高值的第五行高值所对应的文本内容作为所有结点的文本内容的标题。
59.在一个示例性实施例中,按照以下方式获取所述文本层级结构中所有结点的文本内容之后,所述方法还包括以下至少之一:从所述所有结点的文本内容中确定小于所述第四行高的结点,删除所述小于所述第四行高的结点对应的文本内容;通过第一正则表达式从所述所有结点的文本内容中确定被截断的英文文本,将被截断的英文文本进行拼接,得到拼接后的英文文本,其中,在语言知识库中查找到所述拼接后的文本内容的情况下,确定所述拼接后的英文文本为一个单词。
60.在获取到所需的文本内容之后,需要对文本做进一步处理,具体包括:删除小于所述第四行高的结点对应的文本内容,并通过第一正则表达式从获取到的文本内容中确定存在的可能被截断的英文文本,通过去除连接符将被截断的英文文本进行拼接,在拼接完成后确定是否能在语言知识库中查找到拼接后的文本内容,若能则确定拼接后的英文文本为一个单词。
61.需要说明的是,上述第一正则表达式可以为:([a-za-z]+\-)[\s]*[\n]+[\s]*([a-za-z]+),用于查找可能被截断的单词候选,本技术对此不做限制。
[0062]
需要说明的是,上述语言知识库可以为wordnet、framenet等,本技术对此不做限制。
[0063]
基于上述过程,从所述所有结点的候选句子提取出具有真实语义的目标文本,包括:确定所述所有结点的所有候选句子的困惑度;将困惑度大于第二预设阈值的候选句子从所述所有候选句子中删除,得到候选句子集合;从所述候选句子集合中提取出具有真实语义的目标文本。
[0064]
安全文本中可能存在许多不具有实际语义的字符串,不利于后续安全文本的处理流程,因此,需要对每一个句子进行语义判断,通过语言模型计算出所有候选句子的困惑度,将困惑度大于第二预设阈值的候选句子删除,得到过滤后的候选句子集合,从该候选句子集合中提取出具有真实语义的目标文本。
[0065]
需要说明的是,上述困惑度是用来度量一个概率分布或概率模型预测样本的好坏程度,它也可以用来比较两个概率分布或概率模型,低困惑度的概率分布模型或概率模型能够更好地预测样本。
[0066]
需要说明的是,上述确定所述所有结点的候选句子的困惑度的过程可以通过使用训练完成的传统n-gram语言模型或gpt(generative pre-training)等基于深度学习的语言模型计算实现,本技术对此不做限制。
[0067]
在上述过程之后,将困惑度大于第二预设阈值的候选句子从所述所有候选句子中删除,得到候选句子集合之后,所述方法还包括:在所述候选句子集合中存在英文句子的情
况下,根据所述英文句子中的空格字符对所述英文句子进行分词,得到多个词语;在所述多个词语的数量小于第三预设阈值的情况下,确定所述英文句子不是具有真实语义的句子;在所述多个词语的数量大于第三预设阈值的情况下,确定具有真实语义的单词在所述多个词语中的占比;在所述占比大于第四预设阈值的情况下,确定所述英文句子是具有真实语义的句子。
[0068]
在对所有句子进行困惑度计算判断得到候选句子集合之后,候选句子集合中可能还存在英文句子,由于英文与中文的不同,英文文本还需要做进一步的处理,以进一步判断其是否具有实际语义,具体过程包括:根据英文句子中的空格字符对英文句子进行分词,得到一系列英语词语,在词语数量小于第三预设阈值的情况下,去除该句子;在剩下的句子中,对每一个英语词语进行词性还原后,在wordnet语言知识库中查询是否存在,若存在则判断是一个有意义的单词,在有意义的单词数量大于第四预设阈值时,确定该英文句子是具有真实语义的句子。
[0069]
需要说明的是,上述基于空格字符对所述英文句子进行分词之后,还会去除分词后每个词首尾的标点符号,比如引号、冒号等,本技术对此不做限制。
[0070]
从所述所有结点的候选句子提取出具有真实语义的目标文本的过程中,所述方法还包括:确定所述候选句子中不具备真实语义的字符串;按照所述字符串的类型将所述不具备真实语义的字符串替换为具有真实语义的单词;根据所述具有真实语义的单词更新所述候选句子。
[0071]
在确定剩余文本均是由实际语义的句子之后,剩余文本中还存在许多没有语义的字符串,根据该字符串的类型将不具备真实语义的字符串替换为对应的具有真实语义的单词,以方便语言模型理解文本。
[0072]
需要说明的是,上述不具备真实语义的字符串包括:ip地址、cve编号、email地址、文件路径、hash值、注册表项、url和微软安全公告(microsoft security bulletin)编号等,其中,hash值还可以根据长度不同,分为md5(32位),sha1(40位),sha256(64位),sha512(128位)等多种情况,本技术对此不做限制。
[0073]
需要说明的是,在提取替换这些内容的同时,也能获取丰富的威胁指标(indicator of compromise,ioc)信息,通过将句子中的多种威胁指标替换为具有实际语义的单词,使句子的语义更加完整,从而让语言模型更好的理解语义,提取出更准确的特征。
[0074]
需要说明的是,上述替换过程可以通过正则表达式将其提取并替换,具体而言,类似于如下替换:
[0075]
ip地址:206.183.111.97替换为ip地址/ip address;
[0076]
email地址:moayy2ad@hotmail.com替换为电子邮件地址/email address;
[0077]
文件路径:c:\users\public\documents\000.exe替换为文件路径/file path;
[0078]
hash值:6dffcfa68433f886b2e88fd984b4995a替换为md5值/md5value;
[0079]
cve编号:cve-2013-3893替换为cve编号/cve id;
[0080]
微软安全公告编号:ms09-025替换为微软安全公告编号/microsoft security bulletin id;
[0081]
注册表键:hklm\software\rat替换为注册表键值/registry key;
[0082]
url:http://is-a-chef.com替换为url/url;
[0083]
此外,还可以包括匹配8种威胁指标的对应正则表达式:
[0084]
ip地址:
[0085]
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3};
[0086]
email地址:[a-za-z0-9_-]+@[a-za-z0-9_-]+(\.[a-za-z0-9_-]+)+;
[0087]
文件路径:
[0088]
[a-za-z]:(\\([a-za-z0-9_\s《》]+.[a-za-z0-9_\s《》\(\)]{1,20}(\.[a-za-z0-9_]{1,4})*))+;
[0089]
hash值(以md5为例):
[0090]
(?:[^a-fa-f\d]|\b)([a-fa-f\d]{32})(?:[^a-fa-f\d]|\b);
[0091]
cve编号:cve\-\d{4}\-\d{4,};
[0092]
微软安全公告编号:ms[0-9]{2}\-[0-9]{3};
[0093]
注册表键:
[0094]
(hkey_classes_root|hkey_current_user|hkey_local_machine|hkey_local_machine|hkey_users|hkey_current_config|hkcu|hkcr|hklm|hkcc|hku)((\\|\\\\)([a-za-z0-9_]+.[a-za-z0-9_.]{1,}))+;
[0095]
url:(https?|ftp|file)://[-a-za-z0-9+&@#/%?=~_|!:,.;]+[-a-za-z0-9+&@#/%=~_|];
[0096]
为了更好的理解上述安全文本的处理方法的过程,以下再结合可选实施例对上述安全文本的处理的实现方法流程进行说明,但不用于限定本技术实施例的技术方案。
[0097]
在本实施例中提供了一种安全文本的处理方法,图4是根据本技术实施例的一种可选的安全文本的存储方法的示意图,如图4所示,具体如下步骤:
[0098]
步骤s402:获取pdf文件数据;
[0099]
步骤s404:遍历文件当前行,将当前行的每一个字符高度存入数组;
[0100]
步骤s406:取数组中的多数值作为当前行行高;
[0101]
步骤s408:将当前行高和上一个结点行高进行比较;
[0102]
步骤s410:若当前行高大于上一个结点行高,则向上找到行高度大于当前行的结点;
[0103]
步骤s412:若当前行高小于上一个结点行高,则向下新建一个结点;
[0104]
步骤s414:若当前行高等于上一个结点行高,则将当前行内容存入上一个结点;
[0105]
步骤s416:新建一个子结点,并存入当前行内容;
[0106]
步骤s418:将当前行所在结点作为上一个结点,继续返回执行步骤s404。
[0107]
在本发明实施例中,通过遍历pdf文件的每一行,将每一行的每一个字符高度分别存入数组,将每一个数组的多数值作为当前行的行高,把当前行行高与上一个结点行高进行比较,若当前行行高大于上一个结点行高,则向上找到行高度大于当前行的结点,新建一个子结点,并存入当前行内容;若当前行行高小于上一个结点行高,则向下新建一个子结点,并存入当前行内容;若当前行行高等于上一个结点行高,则直接将当前行内容存入上一个结点;完成当前行内容存储后,将当前行所在结点作为上一个结点,继续下一行的存储。
[0108]
通过上述步骤,解决了相关技术中,安全文本噪音过大,不利于后续文本抽取等问题,实现了在后续处理过程中,能够通过干净的安全文本更好地提取特征,提升文本抽取效率的技术效果。
[0109]
图5为本发明实施例中一种可选的安全文本的判断流程图;如图5所示,具体包括如下步骤:
[0110]
步骤s502:基于规则的分句结果得到所有候选句子的集合d;
[0111]
步骤s504:遍历d中的每个句子,计算困惑度;
[0112]
步骤s506:判断困惑度是否低于阈值;
[0113]
步骤s508:若困惑度高于阈值,则判断其不是句子;
[0114]
步骤s510:若困惑度低于阈值,则进一步判断是否为英语文本;
[0115]
步骤s512:若不是英语文本,则判断为是句子;
[0116]
步骤s514:若是英语句子,则基于空格对句子进行分词;
[0117]
步骤s516:判断没一个句子词语数量是否大于阈值;
[0118]
步骤s518:若不大于阈值,则判断为不是句子;
[0119]
步骤s520:若大于阈值,则统计其中有意义单词的占比;
[0120]
步骤s522:判断有意义单词的比例是否大于阈值;
[0121]
步骤s524:若大于阈值,则判断是句子;
[0122]
步骤s526:若小于阈值,则判断不是句子。
[0123]
在本发明实施例中,为了筛选文本中存在的不具有实际语义的句子,需要对每个句子进行困惑度计算,困惑度低于阈值的才可能为句子;进一步判断是否为英语文本,若不是则直接输出是句子;若是英语文本则需进一步判断,先对其基于空格分词,若句子中词语数量小于阈值,则判断不是句子;若大于阈值,则统计句子中有意义单词的占比;并判断占比是否大于阈值,若大于则判断是句子,若小于则判断不是句子。
[0124]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
[0125]
图6是根据本技术实施例的一种安全文本的处理系统的结构框图;如图6所示,包括:
[0126]
获取模块62,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;
[0127]
确定模块64,用于确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;
[0128]
分句模块66,用于获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个接点的文本内容进行分句,以得到所述
文本层级结构中所有结点的候选句子;
[0129]
提取模块68,用于从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
[0130]
通过上述装置,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;确定文本内容的文本特征,并根据文本特征建立文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,其中每一个结点包含了文本内容的一行或多行文本内容,以及一行或多行文本内容的行高;获取文本层次结构中的每一个结点对应的文本内容的分隔符,并根据每一个结点的分隔符对每一个结点的文本内容进行分句,以得到文本层次结构中所有结点的候选句子;并从所有结点的候选句子提取出具有真实语义的目标文本,并将目标文本输入到语言识别模型中;采用上述技术方案,解决了相关技术中,安全文本噪音过大,不利于后续文本抽取等问题,实现了在后续处理过程中,能够通过干净的安全文本更好地提取特征,提升文本抽取效率的技术效果。
[0131]
在一个示例性实施例中,所述确定模块,还用于对于所述多行文本内容的任一行文本内容,确定所述任一行文本内容的第一行高;比较所述第一行高和所述任一行文本内容的上一行文本内容的结点的第二行高;根据比较结果确定是否在所述文本层级结构中新建子结点。
[0132]
也就是说,为了搭建安全文本的文本层次结构,本技术通过搭建一个文本树的方式存储安全文本的内容,通过对每一行文本的行高值与上一行的行高值进行比较,判断是否需要在文本层次结构中新建子结点,确定该行文本的存储位置;通过将不同行高的文本内容存储到高度不同的结点中,搭建出安全文本的文本层次结构。
[0133]
在一个示例性实施例中,所述确定模块,还用于确定所述任一行文本内容中所有字符的行高;从所述所有字符的行高中确定出现次数最多的行高,并将所述出现次数最多的行高作为所述第一行高。
[0134]
由于同一行文本的主要内容的字符的行高和字号等基本都是相同的,因此将每一行文本内容中所有字符的行高进行确认并统计,根据统计结果确定出现次数最多的行高值,将该行高值作为该行文本的行高值作为标记,便于后续进行文本存储。
[0135]
在一个示例性实施例中,所述确定模块,还用于在所述第一行高大于所述第二行高的情况下,在所述文本层级结构上向上查找除所述任一行文本内容的结点和上一行文本内容的结点之外的其他结点,以从所述其他结点中确定目标结点的第三行高大于所述第一行高,为所述目标结点新建子结点,并将所述任一行文本内容存储在所述目标结点新建的子结点中;在所述第一行高等于所述第二行高的情况下,将所述任一行文本内容存储到所述上一行文本内容的结点;在所述第一行高小于所述第二行高的情况下,为所述任一行文本内容的结点新建子结点,并将所述任一行文本内容存储在所述任一行文本内容的结点新建的子结点中。
[0136]
可以理解的是,为了搭建完整的安全文本的文本层次结构,实现每一个结点存入相同行高的文本内容,在遍历文件的每一行内容并判断该行文本行高之后,对当前的第一行高与上一行的第二行高,当第一行高大于第二行高时,需要找一个高度大于当前指针指向的结点高度的结点,因此,在所述文本层级结构上向上查找除了所述任一行文本内容的结点和上一行文本内容的结点之外的其他结点,在确定目标结点的第三行高大于第一行高
时,为目标结点新建子结点,并将第一行高对应的文本内容存储在新建的子结点中;在第一行高等于第二行高的情况下,将第一行高对应的文本内容存储到存储上一行文本内容的结点;当第一行高小于第二行高时,为第一行高对应的文本内容新建一个子结点,并将第一行高对应的文本内容存储在该新建的子结点中。
[0137]
在一个示例性实施例中,所述获取模块,还用于按照以下方式获取所述文本层级结构中所有结点的文本内容:遍历所述所有结点,以确定所有结点中出现次数最多的第四行高,将所述第四行高所对应的文本内容作为所述所有结点的文本内容的正文;将大于所述第四行高的第五行高所对应的文本内容作为所述所有结点的文本内容的标题。
[0138]
为了获取所需的文本内容,可以依据已经搭建好文本层次结构的文本树,通过遍历文本树的所有结点,确定所有结点中出现次数最多的行高,将该行高值所对应的文本内容作为所有结点的文本内容的正文,并将大于该行高值的第五行高值所对应的文本内容作为所有结点的文本内容的标题。
[0139]
在一个示例性实施例中,所述确定模块,还用于从所述所有结点的文本内容中确定小于所述第四行高的结点,删除所述小于所述第四行高的结点对应的文本内容;通过第一正则表达式从所述所有结点的文本内容中确定被截断的英文文本,将被截断的英文文本进行拼接,得到拼接后的英文文本,其中,在语言知识库中查找到所述拼接后的文本内容的情况下,确定所述拼接后的英文文本为一个单词。
[0140]
在获取到所需的文本内容之后,需要对文本做进一步处理,具体包括:删除小于所述第四行高的结点对应的文本内容,并通过第一正则表达式从获取到的文本内容中确定存在的可能被截断的英文文本,通过去除连接符将被截断的英文文本进行拼接,在拼接完成后确定是否能在语言知识库中查找到拼接后的文本内容,若能则确定拼接后的英文文本为一个单词。
[0141]
在一个示例性实施例中,提取模块,还用于确定所述所有结点的所有候选句子的困惑度;将困惑度大于第二预设阈值的候选句子从所述所有候选句子中删除,得到候选句子集合;从所述候选句子集合中提取出具有真实语义的目标文本。
[0142]
安全文本中可能存在许多不具有实际语义的字符串,不利于后续安全文本的处理流程,因此,需要对每一个句子进行语义判断,通过语言模型计算出所有候选句子的困惑度,将困惑度大于第二预设阈值的候选句子删除,得到过滤后的候选句子集合,从该候选句子集合中提取出具有真实语义的目标文本。
[0143]
在一个示例性实施例中,分句模块,还用于在所述候选句子集合中存在英文句子的情况下,根据所述英文句子中的空格字符对所述英文句子进行分词,得到多个词语;在所述多个词语的数量小于第三预设阈值的情况下,确定所述英文句子不是具有真实语义的句子;在所述多个词语的数量大于第三预设阈值的情况下,确定具有真实语义的单词在所述多个词语中的占比;在所述占比大于第四预设阈值的情况下,确定所述英文句子是具有真实语义的句子。
[0144]
在对所有句子进行困惑度计算判断得到候选句子集合之后,候选句子集合中可能还存在英文句子,由于英文与中文的不同,英文文本还需要做进一步的处理,以进一步判断其是否具有实际语义,具体过程包括:根据英文句子中的空格字符对英文句子进行分词,得到一系列英语词语,在词语数量小于第三预设阈值的情况下,去除该句子;在剩下的句子
中,对每一个英语词语进行词性还原后,在wordnet语言知识库中查询是否存在,若存在则判断是一个有意义的单词,在有意义的单词数量大于第四预设阈值时,确定该英文句子是具有真实语义的句子。
[0145]
在一个示例性实施例中,所述提取模块,还用于确定所述候选句子中不具备真实语义的字符串;按照所述字符串的类型将所述不具备真实语义的字符串替换为具有真实语义的单词;根据所述具有真实语义的单词更新所述候选句子。
[0146]
在确定剩余文本均是由实际语义的句子之后,剩余文本中还存在许多没有语义的字符串,根据该字符串的类型将不具备真实语义的字符串替换为对应的具有真实语义的单词,以方便语言模型理解文本。
[0147]
本技术的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
[0148]
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
[0149]
s1,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;
[0150]
s2,确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;
[0151]
s3,获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个结点的文本内容进行分句,以得到所述文本层级结构中所有结点的候选句子;
[0152]
s4,从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
[0153]
本技术的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0154]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0155]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0156]
s1,获取目标数量的安全文本的文本内容,其中,所述目标数量大于第一预设阈值;
[0157]
s2,确定所述文本内容的文本特征,并根据所述文本特征建立所述文本内容的文本层次结构,其中,所述文本层次结构中包括有多个结点,所述多个结点中的每一个结点包含了所述文本内容的一行或多行文本内容,以及所述一行或多行文本内容的行高;
[0158]
s3,获取所述文本层次结构中的每一个结点对应的文本内容的分隔符,并根据所述每一个结点的分隔符对所述每一个结点的文本内容进行分句,以得到所述文本层级结构中所有结点的候选句子;
[0159]
s4,从所述所有结点的候选句子提取出具有真实语义的目标文本,并将所述目标文本输入到语言识别模型中。
[0160]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0161]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0162]
显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
[0163]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1