物联网设备数据集构建方法、装置、电子设备和存储介质
文献发布时间:2023-06-19 10:06:57
技术领域
本发明涉及物联网数据处理技术领域,尤其是涉及一种物联网设备数据集构建方法、装置、电子设备和存储介质。
背景技术
随着“互联网+”时代的到来,物联网发展迅猛,正在逐渐渗透到生活的各个领域之中。在物联网设备规模呈现爆发性增长趋势的同时,物联网安全的重要地位也在物联网快速的发展中愈加凸显。物联网设备数据集对于辅助联网设备识别并进一步辨别设备的漏洞信息,实现对物联网设备的安全防护具有重要意义。
物联网设备数据集通常基于网络中抓取的数据构建,然而网络抓取的数据往往存在某些字段的冗余和缺失,现有技术当前无法解决所抓取数据中存在的冗余和缺失的问题,从而可能影响所构建的物联网设备数据集的数据规范性和可用性。
发明内容
本发明实施例提供一种物联网设备数据集构建方法、装置、电子设备和存储介质,用以解决现有技术当前无法解决所抓取数据中存在的冗余和缺失的问题,从而可能影响所构建的物联网设备数据集的数据规范性和可用性的问题。
针对以上技术问题,第一方面,本发明实施例提供一种物联网设备数据集构建方法,包括:
S1:从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
S2:从所述设备信息中筛选出属于物联网设备的物联网设备信息;
S3:对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
S4:若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
S5:通过设备详情页的内容对修正后的物联网设备信息进行再修正;
S6:对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
可选地,所述S4包括:
若所述异常情况为设备品牌的冗余,则将所述物联网设备信息中的冗余设备品牌输入命名实体识别模型中,得到由所述命名实体识别模型提取的新设备品牌,通过新设备品牌修正所述联网设备信息中的冗余设备品牌;
若所述异常情况为设备型号的冗余,则由正则表达式从所述物联网设备信息中的冗余设备型号中提取新设备型号,通过新设备型号修正所述联网设备信息中的冗余设备型号。
可选地,所述S4还包括:
若所述异常情况为设备品牌的缺失或者通过所述命名实体识别模型未提取到新设备品牌,则根据所述物联网设备信息中不存在缺失且不存在冗余的设备型号进行网络搜索,或者根据通过所述正则表达式提取的新设备型号进行网络搜索;
获取每次进行网络搜索出现的排序在第一预设排序之前的搜索设备品牌,确定每一搜索设备品牌的出现频率,并按照对出现频率由高及低的排序,获取出现频率的排序大于第二预设排序的搜索设备品牌,作为高频设备品牌,判断高频设备品牌中是否存在出现在预设品牌库中的设备品牌;
若高频设备品牌中存在出现在预设品牌库中的设备品牌,则通过出现在所述预设品牌库中的高频设备品牌,补充所述物联网设备信息中缺失的设备品牌或者修正所述联网设备信息中的冗余设备品牌;
若高频设备品牌中不存在出现在预设品牌库中的设备品牌,则通过出现频率的排序最高的高频设备品牌,补充所述物联网设备信息中缺失的设备品牌或者修正所述联网设备信息中的冗余设备品牌。
可选地,所述S5包括:
根据所述物联网设备信息中的设备详情页网址,从所述物联网设备信息的设备详情页中按照设定品牌格式提取详情页品牌,并按照设定型号格式提取详情页型号;
若提取到所述详情页品牌,则通过所述详情页品牌对修正后的物联网设备信息中的设备品牌进行在再修正,否则,不对修正后的物联网设备信息中的设备品牌进行再修正;
若提取到所述详情页型号,则通过所述详情页型号对修正后的物联网设备信息中的设备型号进行在再修正,否则,不对修正后的物联网设备信息中的设备型号进行再修正
可选地,所述S1包括:
获取待抓取设备信息的至少一个静态网站,由所述至少一个静态网站创建爬虫队列;
通过所述爬虫队列,从每一静态网站中抓取设备类型和每一设备类型对应的网址;
从每一设备类型对应的网站中抓取设备品牌和每一设备品牌对应的网址;
从每一设备品牌对应的网站中抓取设备型号和每一设备型号对应的网址,作为设备详情页网址;
生成设备信息,所述设备信息包括:任一设备类型、根据所述任一设备类型对应的网址抓取的任一设备品牌、根据所述任一设备品牌对应的网址抓取的任一设备型号和所述任一设备型号对应的设备详情页网址。
可选地,所述S6包括:
对再修正后的物联网设备信息,将以任一语种显示的设备品牌转换为对所述任一语种设定的标准设备品牌,得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
可选地,对所述命名实体识别模型的训练包括:
获取训练样本;其中,所述训练样本以通过网络抓取的与设备品牌相关的字段作为输入,以对所述字段标注的设备品牌作为期望输出;
通过若干所述训练样本对预先搭建的初始模型进行训练,得到所述命名实体识别模型。
第二方面,本发明实施例提供一种物联网设备数据集构建装置,包括:
抓取模块,用于从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
筛选模块,用于从所述设备信息中筛选出属于物联网设备的物联网设备信息;
判断模块,用于对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
修正模块,用于若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
再修正模块,用于通过设备详情页的内容对修正后的物联网设备信息进行再修正;
添加模块,用于对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如以上所述的物联网设备数据集构建方法的步骤。
第四方面,本发明实施例提供一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如以上所述的物联网设备数据集构建方法的步骤。
本发明的实施例提供了一种物联网设备数据集构建方法、装置、电子设备和存储介质,从网络抓取到物联网设备信息后,当设备品牌存在缺失或冗余时,通过命名实体识别模型、预先设置的正则表达式以及网页内容关键词抽取等方式对物联网设备信息进行修正,基于修正之后的物联网设备信息构建联网设备数据集。通过修正之后符合规范的物联网设备信息构建物联网设备数据集,使得物联网设备数据集中的每一条数据均是符合规范的数据项,从而能够基于规范的数据项对物联网数据集进行查询,提高了物联网数据集的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的物联网设备数据集构建方法的流程示意图;
图2是本发明另一实施例提供的命名实体识别模型的结构示意图;
图3是本发明另一实施例提供的数据集构建整体流程示意图;
图4是本发明另一实施例提供的爬虫爬取信息的流程示意图;
图5是本发明另一实施例提供的物联网设备筛选的流程示意图;
图6是本发明另一实施例提供的物联网设备层次分类的示意图;
图7是本发明另一实施例提供的品牌信息提取流程图;
图8是本发明另一实施例提供的数据标注样例;
图9是本发明另一实施例提供的正则表达式匹配的处理流程;
图10是本发明另一实施例提供的通过网络搜索确定设备品牌的流程;
图11是本发明另一实施例提供的抓取的详情页信息示意图;
图12是本发明另一实施例提供的对设备品牌的名称进行统一标准的转换流程示意图;
图13是本发明另一实施例提供的将规范的物联网设备信息导入数据库的流程示意图;
图14是本发明另一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关背景介绍:
领域数据集构建技术:大规模数据集是机器进行知识学习的前提,也是很多下游任务的基础。数据集的构建通常包括源数据的爬取,以及数据的规则化后处理(在本发明中,主要是关键信息的抽取)。
爬虫技术:网络爬虫是一种按照一定的规则自动地采集网页中信息的程序,它通用从网页上批量获取信息或数据。开发网络爬虫的语言有很多,Python网络爬虫由于可处理多线程,并且框架丰富、代码简洁,如今已成为世界上最受欢迎的爬虫(语言)之一。广度优先爬虫过程就是从一系列的起始网页开始,把网页中的所有下级目录URL提取出来,放入队列中依次进行抓取。
命名实体识别技术:命名实体识别是从文本中提取出人名、地名、组织名或其他特定短语和名称的任务。早期的命名实体识别主要基于规则和词典来进行,对规律性较强的文本环境较为适合,但难以摆脱对领域专家的依赖,费时费力且难以移植。随着语料数据的增长,研究者逐步将机器学习和统计分析技术应用于命名实体识别,其方法可以分为有监督、半监督和无监督。
有监督方法基于序列标注思想,结合大量标注语料,定义一系列实体来训练判别模型。在深度学习领域,针对序列标注的思路,研究者将卷积神经网络(CNN)和循环神经网络(RNN)用于该任务,结合词语的表示学习,取得了优于传统方法的结果。
关键词提取技术:关键词是指能反映文本主题或者主要内容的词语,关键词提取是NLP领域的一个重要的子任务。在信息检索中,准确的关键词提取可以大幅提升效率;在对话系统中,机器可以通过关键词来理解用户意图;在文本分类中,关键词的发现也非常有帮助。
关键词提取的方法主要有TF-IDF、TextRank、Rake、Topic-Model等。其中TF-IDF的基本思想是如果某个词或者短语在一个文档中出现多次,但是在其他文档中很少出现,就可以认为这个词或短语在本文档中具有很好的区分性和代表性。
本申请提供的技术方案介绍:
图1为本实施例提供的物联网设备数据集构建方法的流程示意图,参见图1,该方法包括:
S1:从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
S2:从所述设备信息中筛选出属于物联网设备的物联网设备信息;
S3:对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
S4:若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
S5:通过设备详情页的内容对修正后的物联网设备信息进行再修正;
S6:对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
本实施例中至少一个网站通常是网络上的一些包含有或者可能包含有设备信息的静态网站,例如,工控网、安防网、产品导购网等等。
物联网设备信息可以是以<类型,品牌,型号,URL4>的形式存储的数据。物联网设备信息可以通过爬虫从网络中爬取。
物联网设备信息中的设备品牌由于是直接从网络抓取的,因此物联网设备信息中的设备品牌中有可能存在冗余或者缺失,例如,物联网设备信息中的设备品牌为一句话,该句话中可能包含了设备的实际品牌。或者,从网络中并没有爬取到设备品牌,则任一物联网设备信息中的设备品牌为空,可以用“NULL”表示。
本实施例提供了一种物联网设备数据集构建方法,从网络抓取到物联网设备信息后,当设备品牌存在缺失或冗余时,通过命名实体识别模型、预先设置的正则表达式以及网页内容关键词抽取等方式对物联网设备信息进行修正,基于修正之后的物联网设备信息构建联网设备数据集。通过修正之后符合规范的物联网设备信息构建物联网设备数据集,使得物联网设备数据集中的每一条数据均是符合规范的数据项,从而能够基于规范的数据项对物联网数据集进行查询,提高了物联网数据集的可用性。
进一步地,在上述实施例的基础上,所述S4包括:
若所述异常情况为设备品牌的冗余,则将所述物联网设备信息中的冗余设备品牌输入命名实体识别模型中,得到由所述命名实体识别模型提取的新设备品牌,通过新设备品牌修正所述联网设备信息中的冗余设备品牌;
若所述异常情况为设备型号的冗余,则由正则表达式从所述物联网设备信息中的冗余设备型号中提取新设备型号,通过新设备型号修正所述联网设备信息中的冗余设备型号。
在本实施例中,命名实体识别模型为预先通过训练样本进行机器学习训练得到的模型,训练样本中通常包括作为输入的从网络抓取的与设备品牌相关的信息(例如,与设备品牌相关的一句话),以及作为期望输出的设备品牌。
进一步地,对所述命名实体识别模型的训练包括:
获取训练样本;其中,所述训练样本以通过网络抓取的与设备品牌相关的字段作为输入,以对所述字段标注的设备品牌作为期望输出;
通过若干所述训练样本对预先搭建的初始模型进行训练,得到所述命名实体识别模型。
以下对命名实体识别模型进行介绍:
BiLSTM+CRF命名实体识别模型为预先训练的模型。例如,可以通过人工标注的16000条数据进行训练得到命名实体识别模型。图2为本实施例提供的命名实体识别模型的结构示意图,参见图2,模型共有5层,自底向上分别为输入层、嵌入层、Bi-LSTM层、CRF层、输出层。
输入层是第一层,在这一层把需要进行命名体识别的品牌字段X(即所述任一物联网设备信息中的设备品牌和/或所述设备详情页中的信息)以单字符形式输入模型中,表1为提供的数据标注格式。
表1数据标注格式
嵌入层是第二层,它将输入的每一条语句进行词嵌入(即将每个输入字符转换成向量),其目的是将逻辑字符转换为计算机可以识别与计算的数学变量。在这个模型中,我们随机初始化词嵌入。
Bi-LSTM层是第三层,主要目的是对文本数据进行建模。在序列中的某一时刻,forward-LSTM网络用于获取上文信息,backward-LSTM网络用于获取下文信息,通过串联forward-LSTM和backward-LSTM的输出向量,并经过softmax计算得到当前时刻的隐藏层输出。在嵌入层和Bi-LSTM层之间,还使用了一个Dropout参数,Dropout在前向计算过程中使某些单元随机失效来减少隐藏单元之间的共适应关系,解决过拟合问题,这使得神经网络对于噪声数据更具鲁棒性。
CRF层是第四层,它把Bi-LSTM的隐藏层输出作为输入,输出所有可能的预测标签序列Y。
在输出层,模型训练时初始化一个(K+2)*(K+2)的状态转移矩阵A,矩阵里的每个元素代表标签之间转移的得分(即可能性)。这里K表示标签的数量,2是起始和结束的特殊标签。使用式(1)来计算CRF输出的预测标签序列的可能性,并使真实标签序列在所有预测标签序列中的可能性最大(如式(2))作为目标函数。在训练时,根据目标函数最大化原则,训练得到A以及BiLSTM+CRF模型的相应权重。
上式中,Y
应用模型时,对于输入字段X,设置目标函数式(3),输出得到最优的标签序列。我们从特定的标签(BV、IV)中抽取出对应的字符信息,即是品牌。
以下对正则表达式进行介绍:
正则表达式例如可以设置成“pattern=′[A-Za-z0-9\s\-\+\.\(\)/]+′”的形式。在本实施例中,设置正则表达式是因为:在对爬取到的数据做了一个大概的统计与分析后,发现型号字段有以下特点:设备的型号信息为字母、数字和符号的组合,相对其他字段而言比较规则且有规律,所以在做了些准备工作后,设定正则表达式抽取每条数据中的型号信息。同时如果一句里面有多个型号数据,在返回的型号列表中,取最长的一条为数据型号。
进一步地,在上述各实施例的基础上,所述S4还包括:
若所述异常情况为设备品牌的缺失或者通过所述命名实体识别模型未提取到新设备品牌,则根据所述物联网设备信息中不存在缺失且不存在冗余的设备型号进行网络搜索,或者根据通过所述正则表达式提取的新设备型号进行网络搜索;
获取每次进行网络搜索出现的排序在第一预设排序之前的搜索设备品牌,确定每一搜索设备品牌的出现频率,并按照对出现频率由高及低的排序,获取出现频率的排序大于第二预设排序的搜索设备品牌,作为高频设备品牌,判断高频设备品牌中是否存在出现在预设品牌库中的设备品牌;
若高频设备品牌中存在出现在预设品牌库中的设备品牌,则通过出现在所述预设品牌库中的高频设备品牌,补充所述物联网设备信息中缺失的设备品牌或者修正所述联网设备信息中的冗余设备品牌;
若高频设备品牌中不存在出现在预设品牌库中的设备品牌,则通过出现频率的排序最高的高频设备品牌,补充所述物联网设备信息中缺失的设备品牌或者修正所述联网设备信息中的冗余设备品牌。
举例来说,第一预设排序可以设置为15,第二预设排序可以设置为10,本实施例对此不做具体限制。例如,网络搜索(这里我们使用百度)每条数据的型号字段信息,使用TF-IDF算法处理前15项搜索结果(即,基于百度百科语料找出每项结果中最重要的10个词)。取频率最高的前10个词,若其中有某词出现在已建立好的品牌库中,则把该词作为品牌信息,否则把频率最高的单词作为品牌信息。
本实施例中,通过命名实体识别模型在一定程度上对设备品牌存在冗余的情况进行修正,通过正则表达式在一定程度上对设备型号存在冗余的情况进行修正。同时,在设备品牌缺失或者通过命名实体识别模型未提取到新设备品牌的情况下,通过网络搜索及关键词抽取实现了对设备品牌的规范化。
进一步地,在上述各实施例的基础上,所述S5包括:
根据所述物联网设备信息中的设备详情页网址,从所述物联网设备信息的设备详情页中按照设定品牌格式提取详情页品牌,并按照设定型号格式提取详情页型号;
若提取到所述详情页品牌,则通过所述详情页品牌对修正后的物联网设备信息中的设备品牌进行在再修正,否则,不对修正后的物联网设备信息中的设备品牌进行再修正;
若提取到所述详情页型号,则通过所述详情页型号对修正后的物联网设备信息中的设备型号进行在再修正,否则,不对修正后的物联网设备信息中的设备型号进行再修正。
设定品牌格式为规范的设备品牌对应的格式。设定型号格式为规范的设备型号对应的格式,例如,长度、字符排列规则等。
通过上述的URL4打开设备详情页后,可以通过从设备详情页中提取的设备品牌和设备型号对物联网设备信息进行再修正。
进一步地,在上述各实施例的基础上,所述S1包括:
获取待抓取设备信息的至少一个静态网站,由所述至少一个静态网站创建爬虫队列;
通过所述爬虫队列,从每一静态网站中抓取设备类型和每一设备类型对应的网址;
从每一设备类型对应的网站中抓取设备品牌和每一设备品牌对应的网址;
从每一设备品牌对应的网站中抓取设备型号和每一设备型号对应的网址,作为设备详情页网址;
生成设备信息,所述设备信息包括:任一设备类型、根据所述任一设备类型对应的网址抓取的任一设备品牌、根据所述任一设备品牌对应的网址抓取的任一设备型号和所述任一设备型号对应的设备详情页网址。
本实施例通过至少一个静态网站爬取了相应的设备信息,从相应的设备信息中获取物联网设备信息,提供了添加到物联网设备数据集的数据来源。
进一步地,在上述各实施例的基础上,所述S6包括:
对再修正后的物联网设备信息,将以任一语种显示的设备品牌转换为对所述任一语种设定的标准设备品牌,得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
在本实施例中,任一语种可以是中文或英文,也可以是其它语种。例如,:“海康”,“海康威视”,“HIKVISION”,“Hikvision”都指代同一品牌—海康威视,因此需要将所有品牌转换到统一标准(即对中文设定的标准设备品牌)下。
进一步地,对于英文,可以通过词典(例如,有道字典API)对标准设备品牌进行翻译。需要说明的是,当对某一设备品牌进行翻译时存在多个翻译结果,则选择出现频率最高的翻译结果作为对所述预设标准下的设备品牌的翻译结果。
以下提供一种具体的实施方式:
图3是本实施例提供的数据集构建整体流程示意图,参见图3,该过程大体包括原始数据的爬取、筛选物联网设备类别、自动识别品牌和型号信息、检验并补全品牌和型号信息、类别和品牌的中英文对齐、数据去重入库。
步骤1:从IT168、天极网等15个工控网、安防网的规则化静态网站入手,采用广度优先搜索(BFS)策略,使用beautifulsoup4作为网页解析库进行爬取。图4为本实施例提供的爬虫爬取信息的流程示意图。详情可分解如下:
步骤1.1:设置爬虫空队列,将要爬取的URL1送入爬虫队列;
步骤1.2:依次读取队列中的URL1,获取每个URL1页面中所有设备类型及对应的URL2,以<类型,URL2>数据形式添加到队列中。删除队列中的所有URL1;表2提供了一些网站列表。
步骤1.3:依次读取队列中的<类型,URL2>,获取每个URL2页面中所有商标品牌及对应的URL3,以<类型,品牌,URL3>数据形式添加到队列中;若品牌信息为“其他”,则将<类型,“其他”,URL3>数据添加到队列中。删除队列中的所有<类型,URL2>;
步骤1.4:逐个读取队列中的<类型,品牌,URL3>,若当前URL3页面中存在型号数据,则直接存储设备型号及对应的URL4,即<类型,品牌,型号,URL4>;若当前URL3页面中不存在型号,则通过URL4到设备的详情页面获取型号,并以<类型,品牌,型号,URL4>数据格式存储;若设备的详情页面也无法获取型号信息,则以<类型,品牌,“NULL”,URL4>数据格式进行存储。删除队列中的所有<类型,品牌,URL3>。
表2爬虫网站列表
步骤2:图5为本实施例提供的物联网设备筛选的流程示意图,图6为本实施例提供的物联网设备层次分类的示意图,参见图5和图6,对于抓取到的原始数据,筛选出物联网范围的设备类型及数据,得到115个类型(如网络摄像机),并半自动化地进行了中英文处理。依据专家意见及先验知识,将筛选后的数据类型进行归并,得到相对宽泛的12个物联网大类(如视频系统,每大类包含若干类型),并半自动化地进行了中英文处理。表3为本实施例提供的物联网设备大类,表4为本实施例提供的大类M_VSS的若干类型介绍。
表3物联网设备大类介绍
表4大类M_VSS的若干类型介绍
步骤3:对每条数据的完整性及规范性进行检验。我们获得的数据,存在部分问题:型号字段除了包含型号信息,还可能包含了品牌信息和其他冗余内容;部分数据的品牌字段或型号字段缺失。对于数据完整且纯粹的情况,先利用这些数据建立品牌库,然后转至步骤8;对于型号字段包含冗余内容的情况,我们转至步骤5;对于品牌字段冗余或缺失的情况,我们转至步骤4、6、7;对于型号字段缺失的情况,我们转至步骤7。
步骤4:使用训练好的BiLSTM+CRF命名实体识别模型来提取输入字段中的品牌信息(如图7所示的品牌信息提取流程),该模型由对人工标注的16000条数据(如图8所示的标注样例)进行训练而得到。模型共有5层,自底向上分别为输入层、嵌入层、Bi-LSTM层、CRF层、输出层。
步骤5:使用正则表达式(pattern=′[A-Za-z0-9\s\-\+\.\(\)/]+′)来提取型号字段中的型号信息,同时如果一句里面有多个型号数据,在返回的型号列表中,取最长的一条为数据型号(如图9所示的正则表达式匹配的处理流程)。
步骤6:若步骤4不能抽取出品牌信息,则执行该步;否则跳转步骤7。网络搜索(这里我们使用百度)每条数据由步骤5得到的型号信息,使用TF-IDF算法处理前15项搜索结果(即,基于百度百科语料找出每项结果中最重要的10个词)。取频率最高的前10个词,若其中有某词出现在已建立好的品牌库中,则把该词作为品牌信息,否则把频率最高的单词作为品牌信息(如图10中通过网络搜索确定设备品牌的流程)。
表5数据识别结果样例
步骤7:基于每条数据的URL,抓取其详情页内容,根据可能出现的结构化信息检验和纠正品牌和型号信息(如图11为抓取的详情页信息);如果在详情页抽取不到相应的信息,则得到的数据内容不做改变。
步骤8:各网站抓取的设备品牌名称比较混乱,例如:“海康”,“海康威视”,“HIKVISION”,“Hikvision”都指代同一品牌—海康威视,因此需要将所有品牌转换到统一标准下。我们借助有道字典API,实现了品牌库中英文的完美映射(如果出现了多个翻译结果,我们选择出现频率最高的那个),并将物联网设备数据库中的所有设备品牌替换为相应的小写英文(如图12所示的对设备品牌的名称进行统一标准的转换流程)。
步骤9:对于完整且纯粹包含<类型,品牌,型号,URL>的数据,我们以json的格式将数据集存入MongoDB数据库(如图13所示的将规范的物联网设备信息导入数据库的流程示意图)。
在本实施例中,自动识别品牌和型号信息使用了两种不同方法(命名实体识别NER和正则表达式)来实现;检验并补全品牌和型号信息也使用了两种方法,产品详情页URL页面信息的利用以及搜索引擎+TF-IDF获取关键信息(共获取到了包含12个大类、115个小类、5950个品牌的384875条数据)。
其中,对于命名实体识别模型,通过该模型对剩余数据的品牌信息进行NER识别。模型使用单个字符作为每个时刻的输入,每个输入使用随机的初始化词向量表示;为了防止过拟合现象,在输入层和输出层都采用了dropout策略,设置dropout=0.5;目标函数由BiLSTM的输出和CRF的输出共同构建。
本申请提供的物联网设备数据集构建方法、装置、电子设备和存储介质,着力于物联网设备数据库的构建。物联网设备识别过程中,探测反馈回来的标语内容字符化,设备型号和标语中的其他内容区分度小,通过构建物联网设备数据集,计算标语中与数据库中型号距离相近的字符串,获取标语中的型号信息。物联网设备种类丰富,同一种类的物联网设备由很多厂商生产,同一类型同一品牌的物联网设备也有很多型号,我们可以基于物联网设备数据集构建设备知识图谱,发现设备之间的共性,为安全防护提供支持。
本实施例提供了一种物联网设备数据集构建装置,包括:
抓取模块,用于从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
筛选模块,用于从所述设备信息中筛选出属于物联网设备的物联网设备信息;
判断模块,用于对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
修正模块,用于若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
再修正模块,用于通过设备详情页的内容对修正后的物联网设备信息进行再修正;
添加模块,用于对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
本实施例提供的物联网设备数据集构建装置适用于上述各实施例提供的物联网设备数据集构建方法,在此不再赘述。
本实施例提供了一种物联网设备数据集构建装置,从网络抓取到物联网设备信息后,当设备品牌存在缺失或冗余时,通过命名实体识别模型、预先设置的正则表达式以及网页内容关键词抽取等方式对物联网设备信息进行修正,基于修正之后的物联网设备信息构建联网设备数据集。通过修正之后符合规范的物联网设备信息构建物联网设备数据集,使得物联网设备数据集中的每一条数据均是符合规范的数据项,从而能够基于规范的数据项对物联网数据集进行查询,提高了物联网数据集的可用性。
图14示例了一种电子设备的实体结构示意图,如图14所示,该电子设备可以包括:处理器(processor)1401、通信接口(Communications Interface)1402、存储器(memory)1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信。处理器1401可以调用存储器1403中的逻辑指令,以执行如下方法:
S1:从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
S2:从所述设备信息中筛选出属于物联网设备的物联网设备信息;
S3:对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
S4:若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
S5:通过设备详情页的内容对修正后的物联网设备信息进行再修正;
S6:对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
此外,上述的存储器1403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
S1:从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
S2:从所述设备信息中筛选出属于物联网设备的物联网设备信息;
S3:对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
S4:若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
S5:通过设备详情页的内容对修正后的物联网设备信息进行再修正;
S6:对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
另一方面,本发明实施例还提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
S1:从至少一个网站抓取设备信息;其中,每一设备信息包括如下信息中的至少一种:设备类型、设备品牌、设备型号、设备详情页网址;
S2:从所述设备信息中筛选出属于物联网设备的物联网设备信息;
S3:对每一物联网设备信息,判断所述物联网设备信息是否存在异常情况;所述异常情况包括如下至少一种情况:设备品牌的冗余、设备型号的冗余、设备品牌的缺失;
S4:若所述物联网设备信息存在异常情况,则通过如下至少一种方式修正:通过预先训练的命名实体识别模型修正、通过预设的正则表达式修正、基于修正后的内容通过网络搜索的结果修正;
S5:通过设备详情页的内容对修正后的物联网设备信息进行再修正;
S6:对再修正后的物联网设备信息进行标准化处理得到标准物联网设备信息,将所述标准物联网设备信息添加到数据库中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 物联网设备数据集构建方法、装置、电子设备和存储介质
- 数据集的构建方法、装置、电子设备及存储介质