CN111723182B - 一种用于漏洞文本的关键信息抽取方法及装置 - Google Patents
一种用于漏洞文本的关键信息抽取方法及装置 Download PDFInfo
- Publication number
- CN111723182B CN111723182B CN202010660980.3A CN202010660980A CN111723182B CN 111723182 B CN111723182 B CN 111723182B CN 202010660980 A CN202010660980 A CN 202010660980A CN 111723182 B CN111723182 B CN 111723182B
- Authority
- CN
- China
- Prior art keywords
- words
- model
- information
- key
- labeling
- 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.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 247
- 238000002372 labelling Methods 0.000 claims abstract description 186
- 238000012549 training Methods 0.000 claims abstract description 171
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012795 verification Methods 0.000 claims description 101
- 238000012360 testing method Methods 0.000 claims description 73
- 238000007781 pre-processing Methods 0.000 claims description 27
- 239000013598 vector Substances 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种用于漏洞文本的关键信息抽取方法及装置。所述方法包括:利用样本漏洞文本集对待训练的信息抽取模型进行训练,通过将待训练的信息抽取模型抽取出的结果与样本漏洞文本集的实际标注结果做比较,通过计算抽取精度来评估信息抽取模型训练的情况,直至抽取精度符合要求后,利用训练好的信息抽取模型抽取出漏洞文本的关键信息,并按照预设的关键标注分类存储进预先建立的数据库中,构成可以描述和解决漏洞的完整数据库。整个信息抽取过程效率较高,操作较简便,易于实现,具有较高的实用价值。
Description
技术领域
本申请涉及计算机信息处理技术领域,特别涉及一种用于漏洞文本的关键信息抽取方法及装置。
背景技术
随着计算机技术的发展和大规模应用,如何保障信息安全成为一个重要的问题。因漏洞会对计算机系统的安全稳定产生严重威胁,所以对漏洞的预警和防护变得越来越重要。在漏洞的预警和防护工作中漏洞数据库的建立非常有必要,目前网络上有多种对漏洞信息进行共享的平台,比如通用漏洞披露(Common Vulnerabilities&Exposures,CVE)和中国国家信息安全漏洞库(China National Vulnerability Database of InformationSecurity,CNNVD),这些共享平台公开的漏洞信息中含有大量的非结构化文本,由于这些非结构化文本中包含很多漏洞的关键信息,因此为了建立漏洞数据库,将这些关键信息提取出来并转换为便于分析和存储的结构化文本具有十分重要的意义,可以为后续的漏洞扫描和分析提供基础。
现阶段,因为漏洞信息中含有的非结构化文本多是自然语言,不利于计算机直接进行识别和分析,所以需要对这些自然语言进行处理并从中抽取出漏洞的关键信息。目前这些抽取工作有的是通过人力完成,但是由于漏洞信息中包含的数据量较大,并且抽取工作较复杂,因此通过人力进行抽取不仅工作量较大,而且效率也较低。
基于此,目前亟需一种用于漏洞文本的关键信息抽取方法,用于解决现有技术中通过人力进行抽取效率较低的问题。
发明内容
本申请提供了一种用于漏洞文本的关键信息抽取方法及装置,可用于解决现有技术中通过人力进行漏洞关键信息抽取效率较低的技术问题。
第一方面,本申请实施例提供一种用于漏洞文本的关键信息抽取方法,所述方法包括:
获取待抽取漏洞文本集;所述待抽取漏洞文本集包括多条漏洞文本;
对所述漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到所述漏洞文本中符合预设关键标注的单词;所述符合预设关键标注的单词用于表示所述漏洞文本的关键信息;所述信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系。
在第一方面的一种可实现方式中,所述方法还包括:
将所述预处理后的漏洞文本输入所述信息抽取模型,得到所述漏洞文本中单词的标注信息;所述信息抽取模型包括漏洞文本中单词与标注信息的映射关系;
根据所述漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储。
在第一方面的一种可实现方式中,所述信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的。
在第一方面的一种可实现方式中,所述信息抽取模型的训练步骤如下:
获取样本漏洞文本集,以及将所述样本漏洞文本集分为训练集、验证集和测试集;所述样本漏洞文本集包含多条样本漏洞文本;
根据所述BERT模型和所述CRF模型,构建待训练的信息抽取模型;
获取所述训练集中单词的实际标注信息、所述验证集中符合预设关键标注的关键单词、所述验证集中关键单词的实际标注信息、所述测试集中符合预设关键标注的关键单词和所述测试集中关键单词的实际标注信息;
对所述训练集进行预处理,将预处理后的训练集输入所述待训练的信息抽取模型,得到所述训练集中单词的标注信息;
比较所述训练集中单词的标注信息和所述训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失;
根据所述待训练的信息抽取模型的标注损失,调整所述待训练的信息抽取模型的参数;
利用所述训练集对所述待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型;
对所述验证集进行预处理,将预处理后的验证集输入所述第一中间模型,得到符合预设关键标注的验证单词和所述验证单词的标注信息;
比较所述验证单词的标注信息与所述验证集中关键单词的实际标注信息,确定所述第一中间模型的标注正确率;
比较所述验证单词和所述验证集中符合预设关键标注的关键单词,确定所述第一中间模型的关键信息抽取率;
根据所述第一中间模型的标注正确率和所述第一中间模型的关键信息抽取率,确定所述第一中间模型的抽取精度;
重复利用所述训练集和所述验证集对所述第一中间模型进行训练和验证,直至所述第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型;
对所述测试集进行预处理,将预处理后的测试集输入所述第二中间模型,得到符合预设关键标注的预测单词和所述预测单词的预测标注信息;
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率;
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率;
根据所述第二中间模型的标注正确率和所述第二中间模型的关键信息抽取率,确定所述第二中间模型的抽取精度;
如果所述第二中间模型的抽取精度大于预设阈值,则模型训练完成;如果所述第二中间模型的抽取精度小于或等于预设阈值,则获取新的样本漏洞文本集,并对所述待训练的信息抽取模型进行训练。
在第一方面的一种可实现方式中,比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率,包括:
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定各个预测单词的标注正确率;
根据所述各个预测单词的标注正确率,确定所述第二中间模型的标注正确率。
在第一方面的一种可实现方式中,比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率,包括:
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述预测单词中符合所述关键单词的预测正确单词的数量;
根据所述预测正确单词的数量和所述测试集中符合预设关键标注的关键单词的数量,确定所述第二中间模型的关键信息抽取率。
在第一方面的一种可实现方式中,对所述漏洞文本进行预处理,包括:
对所述漏洞文本进行向量化,确定所述漏洞文本的向量集。
第二方面,本申请实施例提供一种用于漏洞文本的关键信息抽取装置,所述装置包括:
获取单元,用于获取待抽取漏洞文本集;所述待抽取漏洞文本集包括多条漏洞文本;
处理单元,用于对所述漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到所述漏洞文本中符合预设关键标注的单词;所述符合预设关键标注的单词用于表示所述漏洞文本的关键信息;所述信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系。
在第二方面的一种可实现方式中,所述装置还包括存储单元;
所述处理单元,用于将所述预处理后的漏洞文本输入所述信息抽取模型,得到所述漏洞文本中单词的标注信息;所述信息抽取模型包括所述漏洞文本中单词与标注信息的映射关系;
所述存储单元,用于根据所述漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储。
在第二方面的一种可实现方式中,所述信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的。
在第二方面的一种可实现方式中,所述信息抽取模型的训练步骤如下:
获取样本漏洞文本集,以及将所述样本漏洞文本集分为训练集、验证集和测试集;所述样本漏洞文本集包含多条样本漏洞文本;
根据所述BERT模型和所述CRF模型,构建待训练的信息抽取模型;
获取所述训练集中单词的实际标注信息、所述验证集中符合预设关键标注的关键单词、所述验证集中关键单词的实际标注信息、所述测试集中符合预设关键标注的关键单词和所述测试集中关键单词的实际标注信息;
对所述训练集进行预处理,将预处理后的训练集输入所述待训练的信息抽取模型,得到所述训练集中单词的标注信息;
比较所述训练集中单词的标注信息和所述训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失;
根据所述待训练的信息抽取模型的标注损失,调整所述待训练的信息抽取模型的参数;
利用所述训练集对所述待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型;
对所述验证集进行预处理,将预处理后的验证集输入所述第一中间模型,得到符合预设关键标注的验证单词和所述验证单词的标注信息;
比较所述验证单词的标注信息与所述验证集中关键单词的实际标注信息,确定所述第一中间模型的标注正确率;
比较所述验证单词和所述验证集中符合预设关键标注的关键单词,确定所述第一中间模型的关键信息抽取率;
根据所述第一中间模型的标注正确率和所述第一中间模型的关键信息抽取率,确定所述第一中间模型的抽取精度;
重复利用所述训练集和所述验证集对所述第一中间模型进行训练和验证,直至所述第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型;
对所述测试集进行预处理,将预处理后的测试集输入所述第二中间模型,得到符合预设关键标注的预测单词和所述预测单词的预测标注信息;
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率;
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率;
根据所述第二中间模型的标注正确率和所述第二中间模型的关键信息抽取率,确定所述第二中间模型的抽取精度;
如果所述第二中间模型的抽取精度大于预设阈值,则模型训练完成;如果所述第二中间模型的抽取精度小于或等于预设阈值,则获取新的样本漏洞文本集,并对所述待训练的信息抽取模型进行训练。
在第二方面的一种可实现方式中,比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率,具体采用以下步骤:
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定各个预测单词的标注正确率;
根据所述各个预测单词的标注正确率,确定所述第二中间模型的标注正确率。
在第二方面的一种可实现方式中,比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率,具体采用以下步骤:
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述预测单词中符合所述关键单词的预测正确单词的数量;
根据所述预测正确单词的数量和所述测试集中符合预设关键标注的关键单词的数量,确定所述第二中间模型的关键信息抽取率。
在第二方面的一种可实现方式中,所述处理单元具体用于:
对所述漏洞文本进行向量化,确定所述漏洞文本的向量集。
如此,本申请实施例将预处理后的多条漏洞文本逐条输入信息抽取模型,利用信息抽取模型从这些漏洞文本中抽取出符合预设关键标注的漏洞关键信息,整个过程信息抽取效率较高,操作较简便,易于实现,具有较高的实用价值。
附图说明
图1为本申请实施例提供的一种用于漏洞文本的关键信息抽取方法所对应的流程示意图;
图2为本申请实施例提供的信息抽取模型的结构示意图;
图3为本申请实施例提供的信息抽取模型训练前的准备过程所对应的流程示意图;
图4为本申请实施例提供的信息抽取模型训练过程所对应的流程示意图;
图5为本申请实施例提供的信息抽取模型训练效果的验证过程所对应的流程示意图;
图6为本申请实施例提供的信息抽取模型训练是否完成的判定过程所对应的流程示意图;
图7为本申请实施例提供的一种用于漏洞文本的关键信息抽取装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了解决技术问题,本申请实施例提供一种用于漏洞文本的关键信息抽取方法,具体用于解决现有技术中通过人力进行漏洞关键信息抽取效率较低的技术问题。如图1所示,为本申请实施例提供的一种用于漏洞文本的关键信息抽取方法所对应的流程示意图。具体包括如下步骤:
步骤101,获取待抽取漏洞文本集。
步骤102,对漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到漏洞文本中符合预设关键标注的单词。
本申请实施例中,将预处理后的多条漏洞文本逐条输入信息抽取模型,利用信息抽取模型从这些漏洞文本中抽取出符合预设关键标注的漏洞关键信息,整个信息抽取过程效率较高,操作较简便,易于实现,具有较高的实用价值。
具体来说,步骤101中,待抽取漏洞文本集包括多条漏洞文本。待抽取漏洞文本集的获取方式有多种,一个示例中,可以从网络上的漏洞信息共享平台中下载多个漏洞的漏洞信息,从这些漏洞信息中筛选出描述性的非结构化信息作为待抽取漏洞文本集,待抽取漏洞文本集中一条漏洞文本可以代表一个漏洞的描述性的非结构化信息。在其他可能的示例中,本领域技术人员可以根据经验和实际情况来确定待抽取漏洞文本集的获取方式,比如,可以从漏洞相关书籍上收集漏洞信息,具体不作限定。
在执行步骤101的过程中,本领域技术人员可以根据经验和实际情况来分析描述和解决漏洞应该包含的所有属性,进而根据这些属性来预设关键标注。为了对获取待抽取漏洞文本集和预设关键标注进行更加清楚地说明,下面通过具体示例来说明。
假如从漏洞共享平台中下载的漏洞信息包括漏洞的CVE编号、本地编号、漏洞名称、漏洞简介、危害等级、威胁类型、发布时间、漏洞影响的实体、漏洞补丁、漏洞公告、厂商、漏洞来源和参考网址,共十三部分内容。本领域技术人员根据经验和实际情况将其中的CVE编号、本地编号、漏洞名称、漏洞简介、危害等级、威胁类型、发布时间、漏洞影响的实体和漏洞补丁这九部分内容认为是漏洞的关键属性,其余的认为是漏洞的非关键属性。假设通过分析各属性对应的文本内容可以看出,因CVE编号、本地编号、漏洞名称、危害等级、威胁类型和发布时间这六个属性对应的文本内容都是格式统一便于计算机直接存储的结构化文本,因此这六个属性可以仅作为关键属性,而不作为预设关键标注;因漏洞影响的实体和漏洞补丁这两部分对应的文本内容包含在漏洞简介和非关键属性中的漏洞公告中,漏洞简介和漏洞公告都是自然语言形式进行描述的非结构化文本,因此可以预设两个关键标注:“漏洞影响的实体”和“漏洞补丁”。每一个漏洞的漏洞简介对应的文本内容和漏洞公告对应的文本内容构成一条漏洞文本,多条漏洞文本构成待抽取漏洞文本集。
步骤102中,对漏洞文本进行预处理可以是对漏洞文本进行向量化,得到漏洞文本中每个字符对应的原始字符向量,这些原始字符向量构成了漏洞文本的向量集。
具体地,对漏洞文本进行向量化的方式有多种,一个示例中,可以对漏洞文本中每一个字符利用Word2Vector算法进行预训练,得到每个字符的原始字符向量。在其他可能的示例中,本领域技术人员可以根据经验和实际情况来确定对漏洞文本进行向量化的方式,比如,可以对漏洞文本中每一个字符进行随机初始化,得到每个字符的原始字符向量,具体不作限定。
本申请实施例提供的信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的。其中,BERT模型用于根据预设关键标注和输入的漏洞文本向量集,结合漏洞文本的全文语义信息对漏洞文本中的每个字符进行学习和分类,生成漏洞文本中每个字符对应的融合了漏洞文本的全文语义信息的中间向量组成的中间向量集;CRF模型用于根据预设关键标注和输入的中间向量集,将中间向量集映射为漏洞文本中每个字符对应于各个预设关键标注的概率向量组成的关键标注概率向量集。
信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系,也包括漏洞文本中单词与标注信息的映射关系。其中,单词可以表示中文中的单字词或词语,也可以表示英文中的词组,单词由多个字符构成。将预处理后的漏洞文本输入信息抽取模型后,文本数据先经过BERT模型对文本进行特征提取和编码,得到文本中每个字符对应的向量,然后映射为CRF层的发射概率,再经过CRF模型输出每个字符对应每个标注的概率,最后通过提取和调用,通过字符和字符的位置关系以及标注可以得到漏洞文本中所有单词的标注信息和漏洞文本中符合预设关键标注的单词,其中,漏洞文本中符合预设关键标注的单词用来表示漏洞文本的关键信息。
图2示例性示出了本申请实施例提供的信息抽取模型的结构示意图。如图2所示,图中W1~Wn表示漏洞文本中的每个字符,P1~Pn表示每个字符对应的标注信息,将漏洞文本中的每个字符输入到BERT模型中,每个字符都会得到一个对应的编码向量,将这个向量降维到和预设关键标注数目相同的维度之后,将向量中的值都压缩到0-1之间作为CRF层的发射概率,经过CRF层拟合和处理之后输出每个字符对应的标注信息。
为了便于后续使用抽取出的关键信息,本申请实施例还可以对关键信息进行分类。具体来说,可以将预处理后的漏洞文本输入信息抽取模型,得到漏洞文本中单词的标注信息。根据漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储。其中,信息抽取模型包括漏洞文本中单词与标注信息的映射关系。
信息抽取模型抽取出了漏洞文本中符合预设关键标注的单词极其标注信息以后,根据这些单词的标注信息,将标注信息相同的单词归类,并分类存储在预先建立的数据库中。具体地,预先建立的数据库可以是由完整描述漏洞和解决漏洞所必需的所有属性构成的,可以将这些属性的描述词作为数据库的标签,将每一条漏洞的信息都按照这些标签分类存储,其中部分标签下的内容是以结构化文本的形式存在于获取的漏洞信息中,则直接提取进行分类存储即可;还有部分内容存在于获取的漏洞信息的描述性文本中,无法以统一的格式直接提取并分类存储,则针对这部分内容预设关键标注,将该部分内容输入信息抽取模型提取出符合预设关键标注的关键信息后,将抽取到的关键信息和原来已经存在的结构化信息进行融合,即可构建较为完整的漏洞数据库。
信息抽取模型是利用样本漏洞文本进行训练生成的。整个具体的训练步骤可以包括训练前的准备过程、模型训练过程、模型训练效果的验证过程和模型训练是否完成的判定过程。图3示例性示出了本申请实施例提供的信息抽取模型训练前的准备过程所对应的流程示意图。图4示例性示出了本申请实施例提供的信息抽取模型训练过程所对应的流程示意图。图5示例性示出了本申请实施例提供的信息抽取模型训练效果的验证过程所对应的流程示意图。图6示例性示出了本申请实施例提供的信息抽取模型训练是否完成的判定过程所对应的流程示意图。具体地,信息抽取模型训练前的准备过程具体包括以下步骤:
步骤301,获取样本漏洞文本集,以及将样本漏洞文本集分为训练集、验证集和测试集;其中,样本漏洞文本集包含多条样本漏洞文本。
具体来说,获取的样本漏洞文本集可以从待抽取漏洞文本集中选取部分漏洞文本作为样本漏洞文本集。将样本漏洞文本集分为训练集、验证集和测试集的方式本领域技术人员可以根据经验和实际情况来确定,比如,可以按照8:1:1的比例进行划分,也可以按照其他方式进行划分,具体不作限定。
步骤302,根据BERT模型和CRF模型,构建待训练的信息抽取模型。
具体来说,将文本数据输入待训练的信息抽取模型后,文本数据先经过BERT模型,再经过CRF模型,最后通过提取和调用,可以得到对文本数据的标注结果。
步骤303,获取训练集中单词的实际标注信息、验证集中符合预设关键标注的关键单词、验证集中关键单词的实际标注信息、测试集中符合预设关键标注的关键单词和测试集中关键单词的实际标注信息。
具体来说,对样本漏洞文本集进行标注的方式有多种,一个示例中,可以采用BIO标注法对样本漏洞文本进行标注,以字符为最小标注粒度,专家标注每一个字符对应的类别,得到样本漏洞文本集中符合预设关键标注的关键单词和关键单词的实际标注信息。在其他可能的示例中,本领域技术人员可以根据经验和实际情况来确定对样本漏洞文本进行标注的方式,比如,可以采用IOB1标注法,也可以采用IOE1标注法,具体不作限定。
信息抽取模型训练过程具体包括以下步骤:
步骤401,对训练集进行预处理,将预处理后的训练集输入待训练的信息抽取模型,得到训练集中单词的标注信息。
步骤402,比较训练集中单词的标注信息和训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失。
具体来说,标注损失的计算方式有多种,本领域技术人员可以根据经验和实际情况来确定标注损失的计算方式,比如,可以采用交叉熵损失函数来计算,也可以采用分类错误率来计算,具体不作限定。
步骤403,根据待训练的信息抽取模型的标注损失,调整待训练的信息抽取模型的参数。
步骤404,利用训练集对待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型。
具体来说,训练集中包含多条训练文本,训练时是将预处理后的训练文本逐条输入待训练的信息抽取模型,根据标注损失调整待训练的信息抽取模型的参数,每条训练文本调整一次模型的参数,直至利用整个训练集中所有训练文本都训练了一遍,此时就是利用训练集完成了一次循环训练。利用训练集完成了预设次数的循环训练后,待训练的信息抽取模型的参数已经经过了多次更新,将此时更新后的待训练的信息抽取模型称为第一中间模型。
信息抽取模型训练效果的验证过程具体包括以下步骤:
步骤501,对验证集进行预处理,将预处理后的验证集输入第一中间模型,得到符合预设关键标注的验证单词和验证单词的标注信息。
步骤502,比较验证单词的标注信息与验证集中关键单词的实际标注信息,确定第一中间模型的标注正确率。
具体来说,针对每一个验证单词,通过比较验证单词的标注信息与验证集中关键单词的实际标注信息,将该验证单词中标注正确的字符数量与该验证单词中字符总数量的比值作为该验证单词的标注正确率。
根据各个验证单词的标注正确率,确定第一中间模型的标注正确率。第一中间模型的标注正确率通过公式(1)确定:
公式(1)中,Pi为第i轮训练后第一中间模型的标注正确率,Ai为第i轮训练后各个验证单词中标注正确的字符数量总和,Ki为第i轮训练后各个验证单词中字符数量总和;i为大于等于1且小于等于I的整数,I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
步骤503,比较验证单词和验证集中符合预设关键标注的关键单词,确定第一中间模型的关键信息抽取率。
具体来说,通过比较验证单词和验证集中的关键单词,找出验证单词中符合关键单词的验证正确单词的数量;根据符合关键单词的验证正确单词的数量和验证集中关键单词的数量,确定验证正确单词抽取率;根据验证正确单词抽取率和验证单词的标注正确率,确定第一中间模型的关键信息抽取率。具体地,可以通过确定验证单词中符合关键单词的字符数量,以及这些符合关键单词的字符中标注正确的字符数量和验证集中关键单词的所有字符数量,确定第一中间模型的关键信息抽取率。第一中间模型的关键信息抽取率通过公式(2)确定:
公式(2)中,Ri为第i轮训练后第一中间模型的关键信息抽取率,Ai为第i轮训练后各个验证单词中标注正确的字符数量总和,T为所有验证集中关键单词的字符数量总和;i为大于等于1且小于等于I的整数,I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
步骤504,根据第一中间模型的标注正确率和第一中间模型的关键信息抽取率,确定第一中间模型的抽取精度。
具体来说,第一中间模型的抽取精度通过公式(3)确定:
公式(3)中,Fi为第i轮训练后第一中间模型的抽取精度,Pi为第i轮训练后第一中间模型的标注正确率,Ri为第i轮训练后第一中间模型的关键信息抽取率,i为大于等于1且小于等于I的整数,I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
步骤505,重复利用训练集和验证集对第一中间模型进行训练和验证,直至第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型。
具体来说,每执行一次步骤401~步骤404,就会得到第一中间模型,然后执行步骤501~504,计算第一中间模型的抽取精度,再重复执行步骤401~步骤404后,执行步骤501~504,再一次计算第二轮训练结束后的中间模型的抽取精度,直至抽取精度连续N次不上升,则模型训练暂停,此时经过多次更新的第一中间模型称为第二中间模型。举例来说,假设预设N=3,对训练集进行预设次数循环训练后,利用验证集计算的抽取精度为90%,第二轮训练结束后,计算的抽取精度为93%,第三轮训练结束后,计算的抽取精度为94%,第四轮训练结束后,计算的抽取精度为92%,第五轮训练结束后,计算的抽取精度为93%,第六轮训练结束后,计算的抽取精度为93.1%,此时在第四、五、六轮连续三轮模型的抽取精度都没有超过第三轮最大的94%,则认为模型的抽取精度已连续3次没有上升,模型训练暂停。
信息抽取模型训练是否完成的判定过程具体包括以下步骤:
步骤601,对测试集进行预处理,将预处理后的测试集输入第二中间模型,得到符合预设关键标注的预测单词和预测单词的预测标注信息;
步骤602,比较预测单词的预测标注信息与测试集中关键单词的实际标注信息,确定第二中间模型的标注正确率;
具体来说,通过比较预测单词的预测标注信息与测试集中关键单词的实际标注信息,确定各个预测单词的标注正确率。针对每一个预测单词,将该预测单词中标注正确的字符数量与该预测单词中字符总数量的比值作为该预测单词的标注正确率。
根据各个预测单词的标注正确率,确定第二中间模型的标注正确率。第二中间模型的标注正确率通过公式(4)确定:
公式(4)中,P′I为第二中间模型的标注正确率,A′I为各个预测单词中标注正确的字符数量总和,K′I为各个预测单词中字符数量总和,I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
步骤603,比较预测单词和测试集中符合预设关键标注的关键单词,确定第二中间模型的关键信息抽取率;
具体来说,通过比较预测单词和测试集中的关键单词,找出预测单词中符合关键单词的预测正确单词的数量;根据符合关键单词的预测正确单词的数量和测试集中关键单词的数量,确定预测正确单词抽取率;根据预测正确单词抽取率和预测单词的标注正确率,确定第二中间模型的关键信息抽取率。具体地,可以通过确定预测单词中符合关键单词的字符数量,以及这些符合关键单词的字符中标注正确的字符数量和测试集中关键单词的所有字符数量,确定第二中间模型的关键信息抽取率。第二中间模型的关键信息抽取率通过公式(5)确定:
公式(5)中,R′I为第二中间模型的关键信息抽取率,A′I为各个预测单词中标注正确的字符数量总和,Z为所有测试集中关键单词的字符数量总和;I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
步骤604,根据第二中间模型的标注正确率和第二中间模型的关键信息抽取率,确定第二中间模型的抽取精度;
具体来说,第二中间模型的抽取精度通过公式(6)确定:
公式(6)中,F′I为第二中间模型的抽取精度,P′I为第二中间模型的标注正确率,R′I为第二中间模型的关键信息抽取率;I为训练集的总循环训练轮数,一轮训练包括预设次数的训练集的完整循环。
采用上述方法利用中间模型的标注正确率和关键信息抽取率的调和平均数来计算中间模型的抽取精度,评估模型的方法较为科学,具有较高的实用性。
步骤605,判断第二中间模型的抽取精度是否大于预设阈值,如果第二中间模型的抽取精度小于或等于预设阈值,则执行步骤606;如果第二中间模型的抽取精度大于预设阈值,则执行步骤607。
步骤606,获取新的样本漏洞文本集,并对待训练的信息抽取模型进行训练。
步骤607,模型训练完成。
采用上述步骤的方法训练信息抽取模型,通过将样本漏洞文本集输入待训练的信息抽取模型,将待训练的信息抽取模型抽取出的结果与样本漏洞文本集的实际标注结果做比较,根据抽取精度来评判抽取模型是否训练完成,进而不断优化抽取模型的学习参数,使得训练好的抽取模型对自然语言具备良好的处理能力且精度较高。
为了更加清楚地说明信息抽取模型训练是否完成的判定过程,下面通过具体示例来说明。
假设预设的五个关键标注为:“entity”表示漏洞影响的实体名称,“version-i”表示离散的实体版本号,“version-b”表示连续的版本号的开始版本号,“version-n”表示连续的版本号的结束版本号,“type”表示漏洞影响的类型。假设经过训练集的训练并验证集验证合格后,得到了第二中间模型,获取的测试集为:“该漏洞影响了Pillow的4.0.1和5.1.2之间的版本”。
专家对测试集中的每一个字符采用BIO标注法进行标注,得到的标注结果如表1所示。标注时B开头表示字符位于符合预设关键标注的关键单词的起始位置,I开头表示字符位于符合预设关键标注的关键单词的除了起始位置之外的位置,O表示无关字符的标注。B、I、O之后的表示字符对应的预设关键标注,以“-”隔开。
表1:测试集专家标注结果的一种示例
序号 | 文本 | 标注 | 序号 | 文本 | 标注 | 序号 | 文本 | 标注 |
1 | 该 | O | 11 | o | I-entity | 21 | . | I-version-n |
2 | 漏 | O | 12 | w | I-entity | 22 | 1 | I-version-n |
3 | 洞 | O | 13 | 的 | O | 23 | . | I-version-n |
4 | 影 | O | 14 | 4 | B-version-b | 24 | 2 | I-version-n |
5 | 响 | O | 15 | . | I-version-b | 25 | 之 | O |
6 | 了 | O | 16 | 0 | I-version-b | 26 | 间 | O |
7 | P | B-entity | 17 | . | I-version-b | 27 | 的 | O |
8 | i | I-entity | 18 | 1 | I-version-b | 28 | 版 | O |
9 | l | I-entity | 19 | 和 | O | 29 | 本 | O |
10 | l | I-entity | 20 | 5 | B-version-n | - | - | - |
从表1中可以确定,“Pillow”、“4.0.1”和“5.1.2”这三个单词就是标注出来的符合预设关键标注的关键单词,共16个字符。将测试集进行预处理后输入第二中间模型,假设输出的各个字符的标注结果如表2所示。
表2:测试集第二中间模型抽取结果的一种示例
通过表2可以确定,“Pillow”、“4.0.1”、“5.1.2”和“本”这四个单词为第二中间模型抽取出的预测单词,共17个字符,将表2内容与表1作对比,可以确定“P”、“i”、“4”、“本”这4个字符标注错误,根据这四个预测单词的标注正确率,根据公式(4)计算第二中间模型的标注正确率为(17-4)÷17=76%,根据公式(5)计算第二中间模型的关键信息抽取率为(17-4)÷16=81%,根据公式(6)计算第二中间模型的抽取精度为(2×76%×81%)÷(76%+81%)=78%,假设预设阈值为90%,则第二中间模型的抽取精度78%<90%,模型不符合要求,微调学习参数后,重新选取样本漏洞文本集进行专家标注并输入待训练的信息抽取模型进行再次训练,直至抽取精度符合预设阈值的要求,模型训练完成。
如此,本申请实施例中利用样本漏洞文本集对待训练的信息抽取模型进行训练,通过将待训练的信息抽取模型抽取出的结果与样本漏洞文本集的实际标注结果做比较,根据抽取精度来评判抽取模型训练的情况,直至抽取精度符合要求,然后采用训练好的信息抽取模型抽取出漏洞文本的关键信息,并按照预设的关键标注分类存储进预先建立的数据库中,构成可以描述和解决漏洞的完整数据库。本申请实施例提供的信息抽取模型对自然语言具备良好的处理能力且精度较高,整个信息抽取过程效率较高,操作较简便,易于实现,具有较高的实用价值。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7示例性示出了本申请实施例提供的一种用于漏洞文本的关键信息抽取装置的结构示意图。如图7所示,该装置具有实现上述用于漏洞文本的关键信息抽取方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:获取单元701和处理单元702。
获取单元701,用于获取待抽取漏洞文本集;待抽取漏洞文本集包括多条漏洞文本;
处理单元702,用于对漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到漏洞文本中符合预设关键标注的单词;符合预设关键标注的单词用于表示漏洞文本的关键信息;信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系。
在一种可能的实现方式中,该装置还可以包括存储单元703;
处理单元702,用于将预处理后的漏洞文本输入信息抽取模型,得到漏洞文本中单词的标注信息;信息抽取模型包括漏洞文本中单词与标注信息的映射关系;
存储单元703,用于根据漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储。
在一种可能的实现方式中,信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的。
在一种可能的实现方式中,信息抽取模型的训练步骤如下:
获取样本漏洞文本集,以及将样本漏洞文本集分为训练集、验证集和测试集;样本漏洞文本集包含多条样本漏洞文本;
根据BERT模型和CRF模型,构建待训练的信息抽取模型;
获取训练集中单词的实际标注信息、验证集中符合预设关键标注的关键单词、验证集中关键单词的实际标注信息、测试集中符合预设关键标注的关键单词和测试集中关键单词的实际标注信息;
对训练集进行预处理,将预处理后的训练集输入待训练的信息抽取模型,得到训练集中单词的标注信息;
比较训练集中单词的标注信息和训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失;
根据待训练的信息抽取模型的标注损失,调整待训练的信息抽取模型的参数;
利用训练集对待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型;
对验证集进行预处理,将预处理后的验证集输入第一中间模型,得到符合预设关键标注的验证单词和验证单词的标注信息;
比较验证单词的标注信息与验证集中关键单词的实际标注信息,确定第一中间模型的标注正确率;
比较验证单词和验证集中符合预设关键标注的关键单词,确定第一中间模型的关键信息抽取率;
根据第一中间模型的标注正确率和第一中间模型的关键信息抽取率,确定第一中间模型的抽取精度;
重复利用训练集和验证集对第一中间模型进行训练和验证,直至第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型;
对测试集进行预处理,将预处理后的测试集输入第二中间模型,得到符合预设关键标注的预测单词和预测单词的预测标注信息;
比较预测单词的预测标注信息与测试集中关键单词的实际标注信息,确定第二中间模型的标注正确率;
比较预测单词和测试集中符合预设关键标注的关键单词,确定第二中间模型的关键信息抽取率;
根据第二中间模型的标注正确率和第二中间模型的关键信息抽取率,确定第二中间模型的抽取精度;
如果第二中间模型的抽取精度大于预设阈值,则模型训练完成;如果第二中间模型的抽取精度小于或等于预设阈值,则获取新的样本漏洞文本集,并对待训练的信息抽取模型进行训练。
在一种可能的实现方式中,比较预测单词的预测标注信息与测试集中关键单词的实际标注信息,确定第二中间模型的标注正确率,具体采用以下步骤:
比较预测单词的预测标注信息与测试集中关键单词的实际标注信息,确定各个预测单词的标注正确率;
根据各个预测单词的标注正确率,确定第二中间模型的标注正确率。
在一种可能的实现方式中,比较预测单词和测试集中符合预设关键标注的关键单词,确定第二中间模型的关键信息抽取率,具体采用以下步骤:
比较预测单词和测试集中符合预设关键标注的关键单词,确定预测单词中符合关键单词的预测正确单词的数量;
根据预测正确单词的数量和测试集中符合预设关键标注的关键单词的数量,确定第二中间模型的关键信息抽取率。
在一种可能的实现方式中,处理单元702具体用于:
对漏洞文本进行向量化,确定漏洞文本的向量集。
如此,本申请实施例中利用样本漏洞文本集对待训练的信息抽取模型进行训练,通过将待训练的信息抽取模型抽取出的结果与样本漏洞文本集的实际标注结果做比较,根据抽取精度来评判抽取模型训练的情况,直至抽取精度符合要求,然后采用训练好的信息抽取模型抽取出漏洞文本的关键信息,并按照预设的关键标注分类存储进预先建立的数据库中,构成可以描述和解决漏洞的完整数据库。整个信息抽取过程效率较高,操作较简便,易于实现,具有较高的实用价值。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序或智能合约,所述计算机程序或智能合约被节点加载并执行以实现上述实施例提供的事务处理方法。可选地,上述计算机可读存储介质可以是只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (5)
1.一种用于漏洞文本的关键信息抽取方法,其特征在于,所述方法包括:
获取待抽取漏洞文本集;所述待抽取漏洞文本集包括多条漏洞文本;
对所述漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到所述漏洞文本中符合预设关键标注的单词;所述符合预设关键标注的单词用于表示所述漏洞文本的关键信息;所述信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系;
将所述预处理后的漏洞文本输入所述信息抽取模型,得到所述漏洞文本中单词的标注信息;所述信息抽取模型包括漏洞文本中单词与标注信息的映射关系;
根据所述漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储;
其中,所述信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的;所述信息抽取模型的训练步骤如下:
获取样本漏洞文本集,以及将所述样本漏洞文本集分为训练集、验证集和测试集;所述样本漏洞文本集包含多条样本漏洞文本;
根据所述BERT模型和所述CRF模型,构建待训练的信息抽取模型;
获取所述训练集中单词的实际标注信息、所述验证集中符合预设关键标注的关键单词、所述验证集中关键单词的实际标注信息、所述测试集中符合预设关键标注的关键单词和所述测试集中关键单词的实际标注信息;
对所述训练集进行预处理,将预处理后的训练集输入所述待训练的信息抽取模型,得到所述训练集中单词的标注信息;
比较所述训练集中单词的标注信息和所述训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失;
根据所述待训练的信息抽取模型的标注损失,调整所述待训练的信息抽取模型的参数;
利用所述训练集对所述待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型;
对所述验证集进行预处理,将预处理后的验证集输入所述第一中间模型,得到符合预设关键标注的验证单词和所述验证单词的标注信息;
比较所述验证单词的标注信息与所述验证集中关键单词的实际标注信息,确定所述第一中间模型的标注正确率;
比较所述验证单词和所述验证集中符合预设关键标注的关键单词,确定所述第一中间模型的关键信息抽取率;
根据所述第一中间模型的标注正确率和所述第一中间模型的关键信息抽取率,确定所述第一中间模型的抽取精度;
重复利用所述训练集和所述验证集对所述第一中间模型进行训练和验证,直至所述第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型;
对所述测试集进行预处理,将预处理后的测试集输入所述第二中间模型,得到符合预设关键标注的预测单词和所述预测单词的预测标注信息;
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率;
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率;
根据所述第二中间模型的标注正确率和所述第二中间模型的关键信息抽取率,确定所述第二中间模型的抽取精度;
如果所述第二中间模型的抽取精度大于预设阈值,则模型训练完成;如果所述第二中间模型的抽取精度小于或等于预设阈值,则获取新的样本漏洞文本集,并对所述待训练的信息抽取模型进行训练。
2.根据权利要求1所述的方法,其特征在于,比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率,包括:
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定各个预测单词的标注正确率;
根据所述各个预测单词的标注正确率,确定所述第二中间模型的标注正确率。
3.根据权利要求2所述的方法,其特征在于,比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率,包括:
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述预测单词中符合所述关键单词的预测正确单词的数量;
根据所述预测正确单词的数量和所述测试集中符合预设关键标注的关键单词的数量,确定所述第二中间模型的关键信息抽取率。
4.根据权利要求1所述的方法,其特征在于,对所述漏洞文本进行预处理,包括:
对所述漏洞文本进行向量化,确定所述漏洞文本的向量集。
5.一种用于漏洞文本的关键信息抽取装置,其特征在于,所述装置包括:
获取单元,用于获取待抽取漏洞文本集;所述待抽取漏洞文本集包括多条漏洞文本;
处理单元,用于对所述漏洞文本进行预处理,将预处理后的漏洞文本输入信息抽取模型,得到所述漏洞文本中符合预设关键标注的单词;所述符合预设关键标注的单词用于表示所述漏洞文本的关键信息;所述信息抽取模型包括漏洞文本中的单词与单词是否符合预设关键标注的映射关系;所述信息抽取模型是基于BERT模型和CRF模型,利用样本漏洞文本进行训练生成的;
所述装置还包括存储单元;
所述处理单元,用于将所述预处理后的漏洞文本输入所述信息抽取模型,得到所述漏洞文本中单词的标注信息;所述信息抽取模型包括所述漏洞文本中单词与标注信息的映射关系;
所述存储单元,用于根据所述漏洞文本中单词的标注信息,将标注信息相同的单词分为一类,进行分类存储;
所述信息抽取模型的训练步骤如下:
获取样本漏洞文本集,以及将所述样本漏洞文本集分为训练集、验证集和测试集;所述样本漏洞文本集包含多条样本漏洞文本;
根据所述BERT模型和所述CRF模型,构建待训练的信息抽取模型;
获取所述训练集中单词的实际标注信息、所述验证集中符合预设关键标注的关键单词、所述验证集中关键单词的实际标注信息、所述测试集中符合预设关键标注的关键单词和所述测试集中关键单词的实际标注信息;
对所述训练集进行预处理,将预处理后的训练集输入所述待训练的信息抽取模型,得到所述训练集中单词的标注信息;
比较所述训练集中单词的标注信息和所述训练集中单词的实际标注信息,确定待训练的信息抽取模型的标注损失;
根据所述待训练的信息抽取模型的标注损失,调整所述待训练的信息抽取模型的参数;
利用所述训练集对所述待训练的信息抽取模型进行预设次数的循环训练后,得到第一中间模型;
对所述验证集进行预处理,将预处理后的验证集输入所述第一中间模型,得到符合预设关键标注的验证单词和所述验证单词的标注信息;
比较所述验证单词的标注信息与所述验证集中关键单词的实际标注信息,确定所述第一中间模型的标注正确率;
比较所述验证单词和所述验证集中符合预设关键标注的关键单词,确定所述第一中间模型的关键信息抽取率;
根据所述第一中间模型的标注正确率和所述第一中间模型的关键信息抽取率,确定所述第一中间模型的抽取精度;
重复利用所述训练集和所述验证集对所述第一中间模型进行训练和验证,直至所述第一中间模型的抽取精度连续N次符合预设精度范围,模型训练暂停,得到第二中间模型;
对所述测试集进行预处理,将预处理后的测试集输入所述第二中间模型,得到符合预设关键标注的预测单词和所述预测单词的预测标注信息;
比较所述预测单词的预测标注信息与所述测试集中关键单词的实际标注信息,确定所述第二中间模型的标注正确率;
比较所述预测单词和所述测试集中符合预设关键标注的关键单词,确定所述第二中间模型的关键信息抽取率;
根据所述第二中间模型的标注正确率和所述第二中间模型的关键信息抽取率,确定所述第二中间模型的抽取精度;
如果所述第二中间模型的抽取精度大于预设阈值,则模型训练完成;如果所述第二中间模型的抽取精度小于或等于预设阈值,则获取新的样本漏洞文本集,并对所述待训练的信息抽取模型进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010660980.3A CN111723182B (zh) | 2020-07-10 | 2020-07-10 | 一种用于漏洞文本的关键信息抽取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010660980.3A CN111723182B (zh) | 2020-07-10 | 2020-07-10 | 一种用于漏洞文本的关键信息抽取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723182A CN111723182A (zh) | 2020-09-29 |
CN111723182B true CN111723182B (zh) | 2023-12-08 |
Family
ID=72572391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010660980.3A Active CN111723182B (zh) | 2020-07-10 | 2020-07-10 | 一种用于漏洞文本的关键信息抽取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723182B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486141A (zh) * | 2021-07-29 | 2021-10-08 | 宁波薄言信息技术有限公司 | 一种基于SegaBert预训练模型的文本、简历和理财公告抽取方法 |
CN113742733B (zh) * | 2021-08-09 | 2023-05-26 | 扬州大学 | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194260A (zh) * | 2017-04-20 | 2017-09-22 | 中国科学院软件研究所 | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 |
CN111177326A (zh) * | 2020-04-10 | 2020-05-19 | 深圳壹账通智能科技有限公司 | 基于精标注文本的关键信息抽取方法、装置及存储介质 |
WO2020133960A1 (zh) * | 2018-12-25 | 2020-07-02 | 平安科技(深圳)有限公司 | 文本质检方法、电子装置、计算机设备及存储介质 |
-
2020
- 2020-07-10 CN CN202010660980.3A patent/CN111723182B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194260A (zh) * | 2017-04-20 | 2017-09-22 | 中国科学院软件研究所 | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 |
WO2020133960A1 (zh) * | 2018-12-25 | 2020-07-02 | 平安科技(深圳)有限公司 | 文本质检方法、电子装置、计算机设备及存储介质 |
CN111177326A (zh) * | 2020-04-10 | 2020-05-19 | 深圳壹账通智能科技有限公司 | 基于精标注文本的关键信息抽取方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于序列标注的漏洞信息结构化抽取方法;陈钧衍;陶非凡;张源;;计算机应用与软件(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111723182A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112070138B (zh) | 多标签混合分类模型的构建方法、新闻分类方法及系统 | |
CN111866004B (zh) | 安全评估方法、装置、计算机系统和介质 | |
CN111694937A (zh) | 基于人工智能的面试方法、装置、计算机设备及存储介质 | |
CN112685324B (zh) | 一种生成测试方案的方法及系统 | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN111723182B (zh) | 一种用于漏洞文本的关键信息抽取方法及装置 | |
CN111984792A (zh) | 网站分类方法、装置、计算机设备及存储介质 | |
CN111368096A (zh) | 基于知识图谱的信息分析方法、装置、设备和存储介质 | |
CN111159115A (zh) | 相似文件检测方法、装置、设备及存储介质 | |
CN114818643A (zh) | 一种保留特定业务信息的日志模板提取方法 | |
CN110781673B (zh) | 文档验收方法、装置、计算机设备及存储介质 | |
CN116402630A (zh) | 一种基于表征学习的财务风险预测方法及系统 | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
CN113515593A (zh) | 基于聚类模型的话题检测方法、装置和计算机设备 | |
CN113312258A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN111813593A (zh) | 一种数据处理方法、设备、服务器及存储介质 | |
CN115906797A (zh) | 文本实体对齐方法、装置、设备及介质 | |
CN115618355A (zh) | 注入攻击结果判定方法、装置、设备及存储介质 | |
CN112989040B (zh) | 一种对话文本标注方法、装置、电子设备及存储介质 | |
CN112085594A (zh) | 身份核实方法、设备及可读存储介质 | |
CN111666770A (zh) | 一种语义匹配方法及装置 | |
CN116187299B (zh) | 一种科技项目文本数据检定评价方法、系统及介质 | |
CN114942980B (zh) | 一种确定文本匹配方法及装置 | |
CN113987135A (zh) | 一种银行产品问题检索方法及装置 | |
CN115757791A (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 |