一种暗网数据采集与抽取系统及方法
技术领域
本发明涉及一种暗网数据采集与抽取系统及方法,属于互联网络信息技术领域。
背景技术
Tor(The Onion Router)网络为用户提供了匿名化的服务,在保证隐私的同时也助长了犯罪行为,许多网站明文标注售卖毒品、枪支弹药等违禁物品。暗网又区别于明网(Surface Web)和深网(Deep Web),前者是搜索引擎可以直接抓取到的页面,后者是指必须通过动态请求才能访问到的页面。Tor借由路由的三跳机制实现完全匿名化。使用Tor浏览器访问暗网时,入口节点和最终的目的服务器之间会有三个中转节点,入口节点知道用户的IP地址,出口节点知道目的服务器的IP地址以及传输的数据,但是整个过程中,每一个节点都不知道完整的信息流向,从而保证了匿名性。暗网中的站点具有域名后缀均包含“onion”的共同点。
在数据获取方面,Nutch是一个非常成熟的分布式爬虫,基于Hadoop搭建分布式爬虫平台可以快速获取海量数据。在深网中,可以通过设置动态IP池,构造查询请求来获取数据库的返回结果,进行相关页面的爬取与处理工作。但在暗网中进行数据爬取则完全不同,Tor中的数据只有通过暗网中才能被访问,且暗网使用的是Socks协议。Nutch使用的是http协议,基于Hadoop+Nutch来对暗网的数据爬取需要配置相关的网络服务、修改网络协议。
暗网中存在着大量的违法交易信息,暗网数据的分析和挖掘对市场监管工作具有着重要的意义。暗网,完全的匿名化服务实现对个人隐私保护的同时也滋生了很多犯罪行为。很多网站大量存在非法交易和售卖,以比特币作为交易的货币基础更使得交易难以追踪,基于暗网数据的犯罪行为发现和检测变得尤为重要。
针对暗网中售卖类网站和论坛类网站的数据采集和内容抽取,通过对暗网数据的分析发现,以售卖类网站为例,很多页面采用表单或者网状表格的形式来展示信息,表中的单元内容称为数据记录。表单即为数据记录的集合。网页中模式的重复性就体现在了数据记录结构的重复性上。对于这样的页面可以采用基于数据记录结构的重复性来完成相应的抽取工作,但是暗网中还有相当一部分页面中只存在少量数据记录,这时候基于数据记录结构的重复性方法就无法抽取到其中相应的内容了。
中国专利文献CN105138561A公开了一种暗网空间数据采集方法及装置,包括:搭建分布式系统基础架构;在分布式系统基础架构中,构建Web请求池;根据Web请求池中Web请求的数量和类型,动态计算任务量,并弹性分配给部署在分布式系统上的采集引擎;采集引擎根据分配到的采集任务基于异步I/O模型采集文本空间的暗网数据,并存储到分布式系统上的数据仓库;解析采集到的暗网数据并抽取目标信息。但是,该专利主要是针对上文提到的深网即Deep web所进行的动态数据获取,深网中的页面没有确定的链接只有通过构造动态查询请求才可以访问,但在构造动态查询请求之后常规的爬虫即可直接进行爬取。该专利是预先基于深网数据构筑页面抽取模板,继而基于该模板抽取用户关心的信息。
发明内容
针对现有技术的不足,本发明提供了一种暗网数据采集与抽取系统;
本发明还提供了一种暗网数据采集与抽取的方法;
针对上述数据记录重复性较低的页面,本发明提出了基于页面特征码相似性模板生成方法,即,使用页面特征码的相似性从具有重复结构的网页集合中选择结构相似网页对应的模板为目标模板。首先,构造具有重复性结构网页的模板集;然后,将页面的结构特征进行向量化,进而使用hash学习得到页面特征码及自动编码矩阵W;最终,将页面特征码与模板的索引关系存入知识库。对于数据记录结构重复性较低的页面,使用W得到页面的特征码,计算其与知识库中页面特征码的相似度,选取特征码相似度最高的页面对应的模板进行抽取;若相似度低于阈值则更新模板集。
术语解释:
1、Nutch,是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。
2、绝对xpath,是指页面html经过解析之后形成的解析树中叶子节点的原始xpath路径,每一条路径都是从根节点到叶子节点以及之间的所有标签节点以标签及节点的位置索引形成的。
3、相对xpath,是指对于绝对xpath路径中的每一个标签节点均去除标签节点位置索引形成的。
4、基于Hadoop+Nutch的分布式爬虫平台,在数据获取领域,Nutch是一款很优秀的开源爬虫,能够和Hadoop完美融合,而且Nutch可以通过代理工作在Socks协议下,Hadoop是一个能够对大量数据进行分布式处理的软件框架,针对暗网的数据特点我们搭建了基于Hadoop+Nutch的分布式爬虫平台,可以多节点分布式的进行暗网数据的获取。
本发明的技术方案为:
一种暗网数据采集与抽取系统,包括依次连接的暗网站点发现模块、暗网数据爬取模块、页面解析与内容抽取模块、数据融合与存储模块;
所述暗网站点发现模块获取多源数据中的暗网url,并发送至所述暗网数据爬取模块;
所述暗网数据爬取模块配置Tor服务,修改Nutch的配置,使其与socks协议交互,基于Nutch做进一步的开发,解决其表单登录和Cookie登录的相关问题;
所述页面解析与内容抽取模块进行页面解析、页面向量化、特征码生成、相似度计算与模板集更新、页面内容抽取;
所述页面解析与内容抽取模块抽取得到的内容是基于数据项粒度的,所述数据融合与存储模块采用数据对齐策略对抽取得到的内容重组,同时将内容相近的数据记录融合存入数据库中。
一种暗网数据采集与抽取的方法,包括:
(1)手动或自动获取暗网url;
(2)构筑基于Hadoop+Nutch的分布式爬虫平台,配置Tor服务,修改Nutch的配置使其与socks协议交互,基于Nutch做进一步的开发,解决其表单登录和Cookie登录的问题;采用基于Hadoop+Nutch的分布式爬虫平台爬取暗网url,得到html文档;
传统的Nutch无法解决表单登录问题,我们采用的方法是使用网站的cookies进行身份验证,通过预设的网站cookies列表进行登录,此外还需要配置Nutch使用socks协议,该过程可以通过使用Privoxy代理软件将http协议转化为socks协议。
(3)对步骤(2)爬取得到的得到html文档依次进行数据预处理、页面解析树生成、页面结构向量化、hash学习与特征码生成、模板集生成、相似度计算与模板集更新、页面内容抽取;
(4)采用数据对齐策略对步骤(3)抽取得到的内容重组,同时将内容相近的数据记录融合存入数据库中。
内容重组是指:对于得到的基于数据项粒度的内容依据数据项内容的长度为准进行重组形成数据记录,对于页面中的数据记录而言,对于单个属性抽取得到的数据项数量是相同的,依据词可以进行数据记录的重组。
将内容相近的数据记录集成在一起方法是:采用属性标签同义词的方式将相似的属性标签的内容放在相同的一列,对于暗网中的数据记录属性标签而言,种类较少,采用同义词字典的方式来进行简单的相似度判断。针对暗网中的售卖类和论坛信息类的网站,如对于售卖类网站而言,第一列属性标签为product,设置product的同义词字典为:{‘product’:[‘product’,’produce’,’goods’,’commodity’]},这样对于存在于product为键的值列表中的属性可以将该属性列放在与product同列即可。
根据本发明优选的,所述步骤(3),数据预处理,包括:
Nutch爬取得到的html文档中可能会存在html文档的编写不规范或错误等问题,如:缺失闭合标签、闭合标签拼写错误。为防止html解析出错,首先要对html文档进行一系列的预处理工作。
1)纠正和规范化html文档,即纠正错误的拼写以及填补缺失的闭合标签;
2)去除在页面解析树生成过程中不需要保留的标签,包括<script>标签、<font>标签、<strong>标签、<br>标签、<b>标签、<javascript>标签、<style>标签、<i>标签、<noscript>标签;
3)替换html文档中的无效字符和特殊字符,去除html文档中所有的注释、换行、空格。
根据本发明优选的,所述步骤(3),页面解析树生成,在预处理工作结束之后要对html解析处理,生成页面的抽取模板。包括:
4)解析html文档生成页面的解析树;使用python语言已有的第三方库lxml读入经过上述过程预处理后的html即可生成页面的解析树。
5)筛选得到解析树中所有叶子节点的绝对xpath路径p1、p2、p3、p4;
p1=/html/body/div[2]/div[1]/table/tbody/tr[1]/td[1];
p2=/html/body/div[2]/div[1]/table/tbody/tr[1]/td[2];
p3=/html/body/div[2]/div[1]/table/tbody/tr[2]/td[1];
p4=/html/body/div[2]/div[1]/table/tbody/tr[2]/td[2];
上述四条绝对xpath路径p1、p2、p3、p4均为页面中叶子节点的原始路径,表达的语义是:一个两行两列的表格;路径中html指的是解析树中的根节点;body是正文标签节点;div为一块级标签节点,用于分块;table为一表格标签节点,用于定义html中的一个表格;tbody指的是标签表格正文,用于组合html表格中的主体内容;tr指的是表格中的行级元素标签用于定义表格中的行;td指的是表格中的列级元素标签用于定义表格中的列;
6)获得页面抽取的模式路径为:/html/body/div[2]/div[1]/table/tbody/tr[*]/td[*];
7)解析完成后得到页面的抽取模板。对于数据记录重复性较低的页面需要采用合适的相似度计算策略生成抽取模板。
页面html实际就是由各个标签节点以及节点中的内容组合成的,经过解析后的HTML会形成一个解析树,树中每个节点都是HTML中的标签节点,对于页面信息内容的抽取实际上就是针对页面的标签节点抽取节点中的内容,这一工作可以很方便的使用xpath路径来进行细粒度的节点定位直接抽取。页面的抽取模板就是一系列xpath路径表达式组合成的,可以使用该抽取规则对页面完成抽取。
根据本发明优选的,所述步骤(3),页面结构向量化,页面结构向量化阶段主要完成页面的向量化处理。包括:基于页面结构信息出发,利用页面绝对模式路径集以及相对模式路径集来向量化生成页面html的向量,即:所有页面的抽取模板的集合即为路径空间,以此路径空间为基础得到每个页面html的向量表述,向量值为0或1,0表示该路径在该页面的抽取模板集中未出现,1表示该路径在该页面的抽取模板集中出现。
向量化处理后能够尽可能的保留原始的结构信息。页面向量化过程目的是基于页面的结构相似性出发来向量化页面的html,我们采用的方法是借鉴传统的词袋模型的思想,选取页面数据记录重复性较高的页面作为训练集,经上述过程处理后可以得到所有页面的抽取模板,所有模板的集合即为我们的路径空间,以此路径空间模型为基础来得到每个页面html的向量表述,向量值为0或1,0表示该路径在该页面html的抽取模板集中未出现,1表示该路径在该页面html的抽取模板集中出现。
根据本发明优选的,所述步骤(3),hash学习与特征码生成,Hash学习与特征码生成阶段主要利用hash学习的方法学习到页面特征码自动编码的转化矩阵W。hash学习的本质是对数据空间的一种再划分操作。使用多个线性函数的划分交集将原始数据嵌入到海明空间中,在保持数据邻近关系不变的基础上实现hash语义编码。包括:
8)对训练数据集进行标注得到监督学习的样本数据,训练数据集是指页面数据记录重复性较高的页面,即:使用余弦相似度计算页面之间的相似度,结合页面的视觉效果进行相似性标注,对相似的页面标注1,反之标注0;
9)利用步骤8)标注的监督学习的样本数据进行hash学习,通过实验不断地调整模型学习的速率和迭代的次数;所述模型是指hash学习过程得到的模型;模型需要根据实验结果来不断地调整学习的速率、经验风险损失函数与结构风险损失函数的权重;
10)优化损失函数,Hash学习的目的就是为了学习到向量的低维二进制表述,同时保留了原始的数据分布信息,使得损失最小化。所述损失函数包括经验风险损失函数和结构风险损失函数,所述经验风险损失函数是指一系列线性函数的集合,所述结构风险损失函数是指正则化项;优化损失函数的目标即不断地调整经验风险损失函数和结构风险损失函数的权重使得模型的损失最小化。使标注的监督学习的样本数据在经过hash学习方法的处理之后得到的特征码符合原始数据的邻近分布,即:网页结构相似的页面生成的特征码距离也较近,反之较远;原始数据就是指参与hash学习的原始向量,hash学习的结果就是生成原始向量的低维二进制向量表示。
11)得到转化矩阵W;
Hash学习的过程就是一个不断优化和迭代的训练过程,最终的结果就是可以生成原始向量的低维二进制表示。在完成这一工作之后模型即训练结束即可获得转化矩阵W,hash学习的目的就是为了得到转化矩阵W,W的输入是原始向量输出即为符合原始向量数据分布的低维二进制向量表示。
12)将步骤11)得到的转化矩阵W为训练数据集中的页面编码,将特征码与页面的抽取模板的索引关系存储在数据库中;针对暗网中的售卖类和论坛类网站构筑训练数据集,样本集中页面均存在结构简单、重复模式高的特点,样本集足够充分,利用生成的转化矩阵W将待抽取的页面,自动生成特征码。因为选取了一部分页面数据作为训练集进过一系列的处理和hash学习得到转化矩阵W,W可用于生成hash码即上述的低维二进制向量。
根据本发明优选的,所述步骤(3),模板集生成,包括:关联训练数据集中的页面的特征码与其对应的页面的抽取模板,生成模板集;所述模板集中的模板的存储格式定义为T=[feature_code,html,Template],feature_code是指页面对应的特征码,Template是指页面的抽取模板,html为页面的html。
根据本发明优选的,所述步骤(3),相似度计算与模板集更新、页面内容抽取,完成待抽取页面的内容抽取;相似度计算与模板集更新阶段主要完成待抽取页面的内容抽取。对于相似度高于阈值的页面直接选择对应的模板进行抽取;对于相似度低于阈值但重复模式高于阈值的页面更新模板集;对于重复模式低的页面进行人工抽取。包括:
13)对待抽取页面的html进行预处理;
14)基于转化矩阵W得到待抽取页面的特征码;
15)计算该特征码与模板集中所有页面特征码的相似度;
16)基于相似度完成数据项抽取,若相似度高于预设阈值0.6,则认定页面相似,选取相似度最高的页面对应的模板进行相应的内容抽取;否则,则认定模板集中不存在页面的抽取模板;
17)模板集更新,重新解析页面,统计页面重复子模式的最大频数是否高于预设阈值5,若高于,则生成模板,存入模板集中并基于相似度完成数据项抽取;否则,人工抽取数据项存入数据库中;所述重复子模式是指数据记录的重复性。
根据本发明优选的,所述步骤(1),自动获取暗网url是指从明网和暗网中寻找包含“.onion”域名的链接;自动获取的方式为敏感词查询或站点监控;
所述敏感词查询包括:
A、基于暗网售卖类相关网站中敏感信息构筑敏感词库;例如,暗网中毒品数据的敏感词库中的敏感词包括大麻、冰毒、杜冷丁、可卡因、古柯等毒品种类;
B、使用敏感词库中的关键词作为查询,爬取搜索引擎返回的结果页面,设定结果页面列表中前n页作为待检测页面;n的取值范围为10-20;
C、设计正则表达式,对得到的待检测页面进行提取,得到待检测页面的url,并将得到的url去重存入url存储列表中。
所述正则表达式就是在html中寻找链接,并且链接中域名的后缀是“.onion”。做法是:先提取html中所有的链接,在获取的链接中过滤出域名的后缀是“.onion”的链接。下面是简单的两个正则表达式,只是简单说明提取url采用的方式。
如获取html中链接:
Pattern="<a.*?href=https|http.*?"
过滤符合要求的链接:
Pattern=”(.*\.onion)|(.*\.onion/.*)”
url存储列表是一个简单的数据库,包含两列,一列为索引号,一列为url。
所述站点监控包括:
a、设定监控网站名单;如:一些宗教网站、社交网站、论坛网站等;另外,明网中的一些网站如:https://www.deepdotweb.com,会公布已经发现的暗网站点,这些网站也是我们的爬取对象,也列入监控网站名单。
b、设定爬取间隔T,每隔一个爬取间隔T对监控网站名单中的网站进行爬取;T的取值范围为一周到一个月;
c、解析所有页面内容,利用正则表达式提取所有符合要求的链接,并将url去重存储;
d、明网中的一些网站如:https://www.deepdotweb.com,会公布已经发现的暗网站点,这些网站也是我们的爬取对象,对所有的url爬取之后去重存储。
进一步优选的,所述步骤B中,设定结果页面列表中前10页作为待检测页面。由于结果页面列表中前10页与查询相关性较高,这里设定爬取前10页作为待检测页面;
所述步骤b中,设定爬取间隔T,每隔一个爬取间隔T对监控网站名单中的网站进行爬取;T为一周。
根据本发明优选的,所述步骤(1),手动获取暗网url,包括:
D、基于暗网售卖类相关网站中敏感信息构筑敏感词库;
E、在暗网中根据敏感词库,采用人工搜索的方法搜集相关网站。由于违禁物品的名称等相关信息会出现在售卖类和论坛类网站中,因此可通过预先制定敏感词库,进行网站手动获取。
本发明的有益效果为:
本发明暗网站点发现、分布式爬虫平台的搭建、页面存储、自动化模板生成、内容抽取;实现了完整的页面保存到内容抽取的系统设计流程,为暗网中违法交易活动的发现与暗网知识图谱的建立提供数据支撑。
附图说明
图1为本发明暗网数据采集与抽取系统的结构框图;
图2为本发明暗网数据采集与抽取方法的流程框图;
图3为本发明暗网数据采集与抽取方法的详细流程示意图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种暗网数据采集与抽取系统,如图1所示,包括依次连接的暗网站点发现模块、暗网数据爬取模块、页面解析与内容抽取模块、数据融合与存储模块;
暗网站点发现模块获取多源数据中的暗网url,并发送至暗网数据爬取模块;
暗网数据爬取模块配置Tor服务,修改Nutch的配置,使其与socks协议交互,基于Nutch做进一步的开发,解决其表单登录和Cookie登录的相关问题;
页面解析与内容抽取模块进行页面解析、页面向量化、特征码生成、相似度计算与模板集更新、页面内容抽取;
页面解析与内容抽取模块抽取得到的内容是基于数据项粒度的,数据融合与存储模块采用数据对齐策略对抽取得到的内容重组,同时将内容相近的数据记录融合存入数据库中。
实施例2
一种暗网数据采集与抽取的方法,如图2、图3所示,本实施例以暗网中毒品数据的爬取为例:包括:
(1)手动或自动获取暗网url;
自动获取暗网url是指从明网和暗网中寻找包含“.onion”域名的链接;自动获取的方式为敏感词查询或站点监控;
敏感词查询包括:
A、基于暗网售卖类相关网站中敏感信息构筑敏感词库;暗网中毒品数据的敏感词库中的敏感词包括大麻、冰毒、杜冷丁、可卡因、古柯等毒品种类;
B、使用敏感词库中的关键词作为查询,爬取搜索引擎返回的结果页面,设定结果页面列表中前10页作为待检测页面;
C、设计正则表达式,对得到的待检测页面进行提取,得到待检测页面的url,并将得到的url去重存入url存储列表中。
正则表达式就是在html中寻找链接,并且链接中域名的后缀是“.onion”。做法是:先提取html中所有的链接,在获取的链接中过滤出域名的后缀是“.onion”的链接。下面是简单的两个正则表达式,只是简单说明提取url采用的方式。
如获取html中链接:
Pattern="<a.*?href=https|http.*?"
过滤符合要求的链接:
Pattern=”(.*\.onion)|(.*\.onion/.*)”
url存储列表是一个简单的数据库,包含两列,一列为索引号,一列为url。
站点监控包括:
a、设定监控网站名单;如:一些宗教网站、社交网站、论坛网站等;另外,明网中的一些网站如:https://www.deepdotweb.com,会公布已经发现的暗网站点,这些网站也是我们的爬取对象,也列入监控网站名单。
b、设定爬取间隔T,每隔一个爬取间隔T对监控网站名单中的网站进行爬取;T为一周;
c、解析所有页面内容,利用正则表达式提取所有符合要求的链接,并将url去重存储;
d、明网中的一些网站如:https://www.deepdotweb.com,会公布已经发现的暗网站点,这些网站也是我们的爬取对象,对所有的url爬取之后去重存储。
手动获取暗网url,包括:
D、基于暗网售卖类相关网站中敏感信息构筑敏感词库;
E、在暗网中根据敏感词库,采用人工搜索的方法搜集相关网站。由于违禁物品的名称等相关信息会出现在售卖类和论坛类网站中,因此可通过预先制定敏感词库,进行网站手动获取。
(2)构筑基于Hadoop+Nutch的分布式爬虫平台,配置Tor服务,修改Nutch的配置使其与socks协议交互,基于Nutch做进一步的开发,解决其表单登录和Cookie登录的问题;采用基于Hadoop+Nutch的分布式爬虫平台爬取暗网url,得到html文档;
传统的Nutch无法解决表单登录问题,我们采用的方法是使用网站的cookies进行身份验证,通过预设的网站cookies列表进行登录,此外还需要配置Nutch使用socks协议,该过程可以通过使用Privoxy代理软件将http协议转化为socks协议。
(3)对步骤(2)爬取得到的得到html文档依次进行数据预处理、页面解析树生成、页面结构向量化、hash学习与特征码生成、模板集生成、相似度计算与模板集更新、页面内容抽取;
数据预处理,包括:
Nutch爬取得到的html文档中可能会存在html文档的编写不规范或错误等问题,如:缺失闭合标签、闭合标签拼写错误。为防止html解析出错,首先要对html文档进行一系列的预处理工作。
1)纠正和规范化html文档,即纠正错误的拼写以及填补缺失的闭合标签;
2)去除在页面解析树生成过程中不需要保留的标签,包括<script>标签、<font>标签、<strong>标签、<br>标签、<b>标签、<javascript>标签、<style>标签、<i>标签、<noscript>标签;
3)替换html文档中的无效字符和特殊字符,去除html文档中所有的注释、换行、空格。
页面解析树生成,在预处理工作结束之后要对html解析处理,生成页面的抽取模板。包括:
4)解析html文档生成页面的解析树;使用python语言已有的第三方库lxml读入经过上述过程预处理后的html即可生成页面的解析树。
5)筛选得到解析树中所有叶子节点的绝对xpath路径p1、p2、p3、p4;
p1=/html/body/div[2]/div[1]/table/tbody/tr[1]/td[1];
p2=/html/body/div[2]/div[1]/table/tbody/tr[1]/td[2];
p3=/html/body/div[2]/div[1]/table/tbody/tr[2]/td[1];
p4=/html/body/div[2]/div[1]/table/tbody/tr[2]/td[2];
上述四条绝对xpath路径p1、p2、p3、p4均为页面中叶子节点的原始路径,表达的语义是:一个两行两列的表格;路径中html指的是解析树中的根节点;body是正文标签节点;div为一块级标签节点,用于分块;table为一表格标签节点,用于定义html中的一个表格;tbody指的是标签表格正文,用于组合html表格中的主体内容;tr指的是表格中的行级元素标签用于定义表格中的行;td指的是表格中的列级元素标签用于定义表格中的列;
6)获得页面抽取的模式路径为:/html/body/div[2]/div[1]/table/tbody/tr[*]/td[*];
7)解析完成后得到页面的抽取模板。对于数据记录重复性较低的页面需要采用合适的相似度计算策略生成抽取模板。
页面html实际就是由各个标签节点以及节点中的内容组合成的,经过解析后的HTML会形成一个解析树,树中每个节点都是HTML中的标签节点,对于页面信息内容的抽取实际上就是针对页面的标签节点抽取节点中的内容,这一工作可以很方便的使用xpath路径来进行细粒度的节点定位直接抽取。页面的抽取模板就是一系列xpath路径表达式组合成的,可以使用该抽取规则对页面完成抽取。
页面结构向量化,页面结构向量化阶段主要完成页面的向量化处理。包括:基于页面结构信息出发,利用页面绝对模式路径集以及相对模式路径集来向量化生成页面html的向量,即:所有页面的抽取模板的集合即为路径空间,以此路径空间为基础得到每个页面html的向量表述,向量值为0或1,0表示该路径在该页面的抽取模板集中未出现,1表示该路径在该页面的抽取模板集中出现。
向量化处理后能够尽可能的保留原始的结构信息。页面向量化过程目的是基于页面的结构相似性出发来向量化页面的html,我们采用的方法是借鉴传统的词袋模型的思想,选取页面数据记录重复性较高的页面作为训练集,经上述过程处理后可以得到所有页面的抽取模板,所有模板的集合即为我们的路径空间,以此路径空间模型为基础来得到每个页面html的向量表述,向量值为0或1,0表示该路径在该页面html的抽取模板集中未出现,1表示该路径在该页面html的抽取模板集中出现。
hash学习与特征码生成,Hash学习与特征码生成阶段主要利用hash学习的方法学习到页面特征码自动编码的转化矩阵W。hash学习的本质是对数据空间的一种再划分操作。使用多个线性函数的划分交集将原始数据嵌入到海明空间中,在保持数据邻近关系不变的基础上实现hash语义编码。包括:
8)对训练数据集进行标注得到监督学习的样本数据,训练数据集是指页面数据记录重复性较高的页面,即:使用余弦相似度计算页面之间的相似度,结合页面的视觉效果进行相似性标注,对相似的页面标注1,反之标注0;
9)利用步骤8)标注的监督学习的样本数据进行hash学习,通过实验不断地调整模型学习的速率和迭代的次数;所述模型是指hash学习过程得到的模型;模型需要根据实验结果来不断地调整学习的速率、经验风险损失函数与结构风险损失函数的权重。
10)优化损失函数,Hash学习的目的就是为了学习到向量的低维二进制表述,同时保留了原始的数据分布信息,使得损失最小化。所述损失函数包括经验风险损失函数和结构风险损失函数,所述经验风险损失函数是指一系列线性函数的集合,所述结构风险损失函数是指正则化项;优化损失函数的目标即不断地调整经验风险损失函数和结构风险损失函数的权重使得模型的损失最小化。使标注的监督学习的样本数据在经过hash学习方法的处理之后得到的特征码符合原始数据的邻近分布,即:网页结构相似的页面生成的特征码距离也较近,反之较远;原始数据就是指参与hash学习的原始向量,hash学习的结果就是生成原始向量的低维二进制向量表示。
11)得到转化矩阵W;
Hash学习的过程就是一个不断优化和迭代的训练过程,最终的结果就是可以生成原始向量的低维二进制表示。在完成这一工作之后模型即训练结束即可获得转化矩阵W,hash学习的目的就是为了得到转化矩阵W,W的输入是原始向量输出即为符合原始向量数据分布的低维二进制向量表示。
12)将步骤11)得到的转化矩阵W为训练数据集中的页面编码,将特征码与页面的抽取模板的索引关系存储在数据库中;针对暗网中的售卖类和论坛类网站构筑训练数据集,样本集中页面均存在结构简单、重复模式高的特点,样本集足够充分,利用生成的转化矩阵W将待抽取的页面,自动生成特征码。因为选取了一部分页面数据作为训练集进过一系列的处理和hash学习得到转化矩阵W,W可用于生成hash码即上述的低维二进制向量。
模板集生成,包括:关联训练数据集中的页面的特征码与其对应的页面的抽取模板,生成模板集;所述模板集中的模板的存储格式定义为T=[feature_code,html,Template],feature_code是指页面对应的特征码,Template是指页面的抽取模板,html为页面的html。
相似度计算与模板集更新、页面内容抽取,完成待抽取页面的内容抽取;相似度计算与模板集更新阶段主要完成待抽取页面的内容抽取。对于相似度高于阈值的页面直接选择对应的模板进行抽取;对于相似度低于阈值但重复模式高于阈值的页面更新模板集;对于重复模式低的页面进行人工抽取。包括:
13)对待抽取页面的html进行预处理;
14)基于转化矩阵W得到待抽取页面的特征码;
15)计算该特征码与模板集中所有页面特征码的相似度;
16)基于相似度完成数据项抽取,若相似度高于预设阈值0.6,则认定页面相似,选取相似度最高的页面对应的模板进行相应的内容抽取;否则,则认定模板集中不存在页面的抽取模板;
17)模板集更新,重新解析页面,统计页面重复子模式的最大频数是否高于预设阈值5,若高于,则生成模板,存入模板集中并基于相似度完成数据项抽取;否则,人工抽取数据项存入数据库中;所述重复子模式是指数据记录的重复性。
(4)采用数据对齐策略对步骤(3)抽取得到的内容重组,同时将内容相近的数据记录融合存入数据库中。
内容重组是指:对于得到的基于数据项粒度的内容依据数据项内容的长度为准进行重组形成数据记录,对于页面中的数据记录而言,对于单个属性抽取得到的数据项数量是相同的,依据词可以进行数据记录的重组。
将内容相近的数据记录集成在一起方法是:采用属性标签同义词的方式将相似的属性标签的内容放在相同的一列,对于暗网中的数据记录属性标签而言,种类较少,采用同义词字典的方式来进行简单的相似度判断。针对暗网中的售卖类和论坛信息类的网站,如对于售卖类网站而言,第一列属性标签为product,设置product的同义词字典为:{‘product’:[‘product’,’produce’,’goods’,’commodity’]},这样对于存在于product为键的值列表中的属性可以将该属性列放在与product同列即可。