基于人工智能的数据采集方法及系统的制作方法

文档序号:10535033
基于人工智能的数据采集方法及系统的制作方法
【专利摘要】本发明提出了一种基于人工智能的数据采集方法及系统,包括:根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库;将数据信息输入至预设的人工智能的机器学习训练集,以对数据信息自动机器学习训练以区分数据信息的属性,对数据信息进行分类并设置对应的标签;将机器学习分类后的数据信息存储到云端服务器,其中,云端服务器采用Hadoop和NoSQL的云存储方式。本发明可以基于人工智能机器学习的方式,采用多线程执行方式,提高数据采集的效率。
【专利说明】
基于人工智能的数据采集方法及系统
技术领域
[0001]本发明涉及互联网技术领域,特别涉及一种基于人工智能的数据采集方法及系统。
【背景技术】
[0002]在互联网上多数网页都有超链接的存在。这些超链接将各个网页链接起来构成了一个庞大的网络,也就是超链接网络。数据采集系统作为一种网络程序从一些网页出发,保存网页的内容,寻找网页当中的超链接,然后访问这些超链接,并重复以上过程,这个过程可以不断进行下去。
[0003]面对大数据时代的到来,如果想对数据进行定量的分析,数据采集系统的重要性越来越高。然而,目前市面上的数据采集系统多为第一代数据采集系统,第一代数据采集是利用计算机做重复性工作的优势,将数据分析师制作好的模板,进行批量的采集和处理。
[0004]因此,如果原网站改版,则配置好的模板就会失效,需要数据分析师重新制作模块,而且对于网站文章的重复性问题也没有很好的规避,同时需要大量的数据分析师的介入,花费了大量的时间和精力,且采集效率也不高。

【发明内容】

[0005]本发明的目的旨在至少解决所述技术缺陷之一。
[0006]为此,本发明的目的在于提出一种基于人工智能的数据采集方法及系统,可以基于人工智能机器学习的方式,采用多线程执行方式,提高数据采集的效率。
[0007]为了实现上述目的,本发明一方面的实施例提供一种基于人工智能的数据采集方法,包括如下步骤:
[0008]步骤SI,根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载所述URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库;
[0009]步骤S2,将所述步骤SI的数据信息输入至预设的人工智能的机器学习训练集,以对所述数据信息自动机器学习训练以区分所述数据信息的属性,对所述数据信息进行分类并设置对应的标签;
[0010]步骤S3,将机器学习分类后的数据信息存储到云端服务器,其中,所述云端服务器米用Hadoop和NoSQL的云存储方式。
[0011]进一步,在所述步骤SI中,
[0012]配置一个或多个种子URL地址,以每个所述种子URL地址作为起点进行数据采集;
[0013]根据预设的采集时间参数获取这段时间内的网站上的数据;
[0014]配置采集类别、主题、时长和相关度的阈值;
[0015]删除与所述主题无关的网页内容。
[0016]进一步,计算爬取链接与预设主题的相关度,选取相关度大于所述相关度的阈值的URL地址,将上述URL地址放入已抓取的URL队列中。
[0017]进一步,所述步骤SI,还包括如下步骤:实时监控采集过程的当前执行动作、采集数据量、采集时长、采集服务器的工作状态,并生成系统日志和用户日志。
[0018]进一步,在所述步骤SI中,当检测到待爬取的网页需要输入验证码时,对验证码图片进行预处理和图像识别,提取图像特征值,采用基于神经网络的学习方法对所述图像特征值进行计算以识别出所述验证码并自动输入,在输入验证码后并进入网页后,继续执行对该网页的数据采集。
[0019]进一步,在所述步骤S2中,采用规则归纳的机械学习方法对所述网页的数据信息进行机器学习训练。
[0020]进一步,当检测到数据采集异常、云端服务器异常或网络异常时,记录异常发生时最后抓取的URL地址,并在系统重启后,自动从该记录的URL地址开始恢复爬取。
[0021]本发明另一方面的实施例提供一种基于人工智能的数据采集系统,包括:数据采集子系统和云存储子系统,
[0022]所述数据采集子系统包括:多台采集服务器,每台采集服务器与网页服务器进行通信,用于根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载所述URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库,以及将数据信息输入至预设的人工智能的机器学习训练集,以对所述数据信息自动机器学习训练以区分所述数据信息的属性,对所述数据信息进行分类并设置对应的标签,并将机器学习训练后的数据信息发送至所述云存储子系统;所述云存储子系统包括:多个存储节点服务器、光纤路由器和主控服务器,其中,每个所述存储节点服务器用于接收来自所述数据采集子系统的采集服务器的数据信息,并将所述数据信息通过所述光线路由器发送至所述主控服务器,由所述主控服务器采用Hadoop和NoSQL的云存储方式,运行HDFS分布式文件系统,对来自每个所述采集服务器的数据信息作为一个节点进行存储,并发送至远程监控服务器,以由管理员对数据采集过程进行监控。
[0023]进一步,所述云存储子系统还包括:数据压缩模块,所述数据压缩模块用于将来自所述数据采集子系统的数据信息,采用基于字典的数据压缩算法进行压缩后,再发送至所述光线路由器,由所述光纤路由器转发至所述主控服务器。
[0024]进一步,还包括:备份节点服务器,所述备份节点服务器与所述主控服务器进行通信,以对所述数据采集子系统采集的数据信息进行备份存储。
[0025]根据本发明实施例的基于人工智能的数据采集方法及系统,采用基于人工智能机器学习的方式,从优化下载量、过滤与主题不相关的URL机制和本地多线程架构这几个角度入手,综合了时间与速度的开销。利用机器学习的方法为数据打标签,筛选掉与主题不相关的链接,通过人工智能的神经网络算法来识别常见的验证码,以实现自动采集数据功能。并且,本发明运用Hadoop和NoSQL结合的方式,分布式爬取和存储海量数据,并加入了高性能的数据压缩算法对原数据进行压缩。此外,本发明采用创新性数据采集分析方案,将中文处理模块加入数据采集系统中,实现中文的自动分词,停用词去除等功能,增加的检索效率,并在完成对数据整理后,为了实现后续需求,完成了给数据设置标签的功能。并且,通过采用多线程采集方式,并加入了控制、监控模块、采集配置、智能守护的异常处理等功能,使得采集工作可以更好地执行,并在具有良好的容错性。本发明还可以实现数据采集的大并发量、自动适应网站改版、自动配置代理地址和自动重启程序。
[0026]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0027]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0028]图1为根据本发明实施例的基于人工智能的数据采集方法的流程图;
[0029]图2为根据本发明实施例的URL地址的采集过程示意图;
[0030]图3为根据本发明实施例的验证码识别流程图;
[0031 ]图4为根据本发明实施例的基于人工智能的数据采集系统的结构图;
[0032]图5为根据本发明实施例的数据采集子系统的结构图;
[0033]图6为根据本发明实施例的云存储子系统的结构图;
[0034]图7为根据本发明实施例的主控制器的存储示意图。
【具体实施方式】
[0035]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0036]如图1所示,本发明实施例的基于人工智能的数据采集方法,包括如下步骤:
[0037]步骤SI,根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库。
[0038]需要说明的是,用于完成数据采集的采集服务器都布置在私有云上,从而当采集数据量增加时,可以动态的增加采集服务器而不影响整个系统的运行。其中,对采集服务器自动设置IP代理功能,轮换使用代理服务器来访问采集网站。
[0039]具体地,配置一个或多个种子URL地址,以每个种子URL地址作为起点进行数据采集。即,通过定义几个网站的首页作为网络爬虫爬取数据的种子页面,以这些页面为起点,展开数据采集工作。
[0040]根据预设的采集时间参数获取这段时间内的网站上的数据。自动化配置采集类另IJ、主题、时长和相关度的阈值,然后删除与主题无关的网页内容。具体地,确定网络爬虫采集数据时的偏好设置,去掉广告、导航条、友情链接等与主题内容无关的链接、文本、图片、动画、视频。
[0041 ]在完成上述配置后,从一个或多个种子URL地址开始,获得初始网页上的URL,在抓取网页的过程中,以爬取链接数量或者爬取的URL的层数等因素作为限制条件,不断从当前页面上抽取新的URL放入队列,直到满足系统的限制条件时停止。
[0042]具体地,参考图2,计算爬取链接与预设主题的相关度,选取相关度大于相关度的阈值的URL地址,将上述URL地址放入已抓取的URL队列中。
[0043]计算爬取链接与主题的相关度,筛选过滤与所爬取的主题相关度小于阈值的链接,保留下与主题相关的URL并将其放入已抓取的URL队列中。然后,根据某种的搜索条件从已抓取的队列中抽取出新的URL放入待抓取URL队列进行下一层的抓取。重复以上过程,直到满足系统的限制条件时停止。此方法可以尽可能多的采集与主题相关的页面,减少与主题不相关的页面的采集,使得数据采集系统更加高效。
[0044]步骤SI,还包括如下步骤:实时监控采集过程的当前执行动作、采集数据量、采集时长、采集服务器的工作状态,并生成系统日志和用户日志。
[0045]具体地,实时监控整个采集过程,包括实时获得数据采集过程的情况,例如:数据采集进行到的步骤、采集得到数据量、采集总共所用的时间、采集服务器是否还在继续工作等。如果采集服务器没有继续工作,则将该采集服务器上的运行的任务交给其他采集服务器,然后给用户提供异常报警服务。上述采集监控信息均生成相应的系统日志和用户日志,以供系统及用户后续分析查看。
[0046]在步骤SI中,当检测到待爬取的网页需要输入验证码时,对验证码图片进行预处理和图像识别,提取图像特征值,采用基于神经网络的学习方法对图像特征值进行计算以识别出验证码并自动输入,在输入验证码后并进入网页后,继续执行对该网页的数据采集。
[0047]参考图3,当目标网站中需要输入验证码才能访问时,通过数字图像处理中的验证码识别技术可以将自动获得验证码,确保采集服务器可以继续采集数据。
[0048]在本发明的一个实施例中,本步骤采用基于神经网络的学习方法用来识别验证码。具体地,神经网络(Artificial Neural Networks)是模拟人类大脑神经突出的连接结构进行信息传递和信息处理的一种数学模型。神经网络包括大量的节点和相互之前连接结构。每一个节点表示一种类型的输出函数,节点之间的连接代表通过该渠道信号的加权值。通过不断的修改其内部节点中的连接关系找到最优解,从而达到处理输入信息的目的。
[0049]在本步骤中,通过人工智能的神经网络算法,识别常见的验证码。例如,网站中图片的验证码包括大写字母、小写字母、数字等三个部分。下面对这三个部分采用三个神经网络子网进行识别的过程进行说明。
[0050]如图3所示,首先识别到验证码图片,然后对识别出的验证码图片进行预处理操作。其后对验证码进行识别和分割,并分别利用预设的大写字母神经网络、小写字母神经网络和数字神经网络,对验证码图片进行特征值提取,建立单个字符样本数据,确定好输入数据,然后随机初始化各个节点间权重,运用神经网络输入数据计算输出结果并计算其误差,通过反复调整各个节点间的权重值直到计算出的误差与预测输出结果偏差缩小到一定范围内,则系统达到理想的效果,完成整个神经网络学习过程。利用模板匹配技术建立验证码图内容的数据库。具体地模板匹配是计算机图形学中的一种重要的图像处理技术。模板匹配需要建立一个或多个模板库,将匹配的图像与模板库进行一一对比,找到与图像最匹配的模板得到匹配结果。由于当前网站的验证码图片字符和大小相对固定,可以设置各个字母与数字对应的模板库,把相关的配置字段存储到数据库中,通过模板匹配的方法对验证码的内容进行匹配,从而识别出验证码图片中的大写字母、小写字母和数字。
[0051 ]进而,根据验证码图片的识别结果,自动输入验证码,进入网页,实现对网页数据信息的爬取。
[0052]在网页的爬取过程中,当遇到网页中的中文词汇时,采用中文自动分词功能。具体地,由于原始数据包括公告,统计表格等不同形式,为了得到一致的半结构化以及结构化数据,需要将原始数据中的有效数据进行提取。为了实现上述目标,需对原始数据进行分词,从而将其中所需要的数据切分出来。中文分词就是将句子中的词汇按照使用时的意义划分出来。由于汉语词与词之间没有空格,因此对于汉语文档信息的提取无法向英语那样直接。因此数据切分首先面临的问题是汉语的自动分词。
[0053]本发明采用的中文分词算法为将统计的方法与词典的方法进行结合,对原始数据中的有效数据进行提取,得到整理后的半结构化以及结构化数据。
[0054]为了提高节省存储空间和提高处理效率,在进行中文自动分词之前需要过滤掉某些字或者词汇,这些便成为停用词,在文本处理中如果遇到这些停用词便要立刻停止,将其扔掉,从而减少了数据的索引量,增加了检索效率。在完成对数据整理后,为了实现后续需求,需对不同数据进行分类,即为数据设置标签。
[0055]需要说明的是,本发明采用多线程方式实现对网页的爬取。其中,多线程包括:一个主线程和多个子线程。主线程进行总体控制,多个子线程协同完成。具体地,主线程可以检测所有子线程是否全部休眠、是否为空以及是否被锁定等问题,从而使得整个数据采集工作可以顺利向下进行。这种多线程的方式,可以提高数据采集的效率。
[0056]步骤S2,将步骤SI的数据信息输入至预设的人工智能的机器学习训练集,以对数据信息自动机器学习训练以区分数据信息的属性,对数据信息进行分类并设置对应的标签。
[0057]在本发明的一个实施例中,采用规则归纳的机械学习(MachineLearning)方法对网页的数据信息进行机器学习训练。
[0058]具体地,机器学习是一种使获取知识自动化的计算方法的学习。目的是使计算机获取新的知识或技能,从而不断改善自身的性能。机器学习技术被广泛用于分类(classificat1n)、预测(predict1n)、关联(associat1n)以及侦查(detect1n)等目的。
[0059]本步骤中采用的是规则归纳(RuleInduct1n)的机器学习方法,该技术利用训练集中产生的一棵决策树或一组决策规则来进行分类,具有易于处理大型数据,适合进行分类和预测的优点。对于整理后的不同数据,其数据间有明确以及清晰的分类标准。因此,利用机器学习技术中的规则归纳方法,先人工整理并提取数据,准备相关分类的训练集文本放置到相应的目录下,自动机器学习训练并借此来确定用来区分的属性。当分类属性确定好后,可以通过分析对新的数据进行合适的分类,为数据打上标签。
[0060]步骤S3,将机器学习分类后的数据信息存储到云端服务器,其中,云端服务器采用Hadoop和NoSQL的云存储方式。
[0061 ]具体地,将爬取下来经过机器学习的数据信息,保存到云端服务器中。
[0062]需要说明的是,在将数据信息存储到云端服务器之前,需要先对数据信息进行压缩。即,运用高强度的数据压缩算法对源数据进行压缩,压缩比例50%左右。数据压缩是用最少的代码来表示原始数据,将一种数据的表示方式转变为另一种表示方式,但长度却比原来短。
[0063]在本发明的一个实施例中,采用基于字典的数据压缩算法对数据信息进行压缩,其基本思想是用比较短的数字和符号对各种可能出现的较长的字符串进行组合编码,并将各种编码以及它们对应的数据都记录在字典中构成字典的数据项。在数据压缩过程中从原数据中读入数据,并将其与字典中记录的数据进行匹配,输出相应的编码,使得数据所占用空间被大大压缩。
[0064]在完成上述数据压缩后,将压缩后的数据信息传输至云端服务器。由于云端服务器采用Hadoop和NoSQL的云存储方式,可以构造海量数据的解决方案,可以实现系统的可扩展性,并提高存储效率。
[0065]NoSQL指的是非关系型的数据库,它是为了解决多重数据种类及大数据而产生的,适用于以下几种情况:1)数据模型较为简单;2)对数据库性能要求较高;3)不需要高度的数据一致性;4)对于给定的关键字,映射复杂值较为容易;5)需要灵活性强的IT系统。
[0066]NoSQL采用Key-Value的方式存储,其中关键字Key由一级主要关键字和二级次要关键字组成。并且,可对NoSQL数据库编写SQL查询和连接关系表。同时它还支持Hadoop以及Apache的map-reduce技术,具有数据模型简单、扩展性强、行为可预测性强、可用性高、管理与维护方便等特点。
[0067]此外,云端服务器采用分布式数据采集系统架构,在hadoop上运行分布式的数据采集程序。分布式数据采集基于web的hadoop方式,其存储采用HDFS分布式文件系统,用于计算各个节点上存储的数据,并提供对数据读写的较高的容错性;计算逻辑采用mapreduce计算框架,其能够将应用程序分割成很多小的工作单元,每个工作单元可以在任何服务器集群节点上执行。
[0068]在本发明的一个实施例中,当检测到数据采集异常、云端服务器异常或网络异常时,记录异常发生时最后抓取的URL地址,并在系统重启后,自动从该记录的URL地址开始恢复爬取。
[0069]具体地,当采集过程中出现网络中断、服务器异常停止、数据采集系统异常中断等不可抗力宕机时,及时保护现场参数,记录停止或线程死掉时最后抓取的URL地址,然后自动重启系统,再次运行程序时从上次记录的URL地址开始爬取,使得系统可以恢复之前抓取数据的进度。然后,在故障排除时,可以以上次记录的URL地址为起点,继续执行数据爬取过程。
[0070]如图4所示,本发明实施例还提出一种基于人工智能的数据采集系统,包括:数据采集子系统I和云存储子系统2。
[0071]具体地,如图5所示,数据采集子系统I包括:多台采集服务器,每台采集服务器与网页服务器进行通信,用于根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库。
[0072]需要说明的是,用于完成数据采集的采集服务器都布置在私有云上,从而当采集数据量增加时,可以动态的增加采集服务器而不影响整个系统的运行。其中,对采集服务器自动设置IP代理功能,轮换使用代理服务器来访问采集网站。
[0073]具体地,配置一个或多个种子URL地址,以每个种子URL地址作为起点进行数据采集。即,通过定义几个网站的首页作为网络爬虫爬取数据的种子页面,以这些页面为起点,展开数据采集工作。
[0074]根据预设的采集时间参数获取这段时间内的网站上的数据。自动化配置采集类另IJ、主题、时长和相关度的阈值,然后删除与主题无关的网页内容。具体地,确定网络爬虫采集数据时的偏好设置,去掉广告、导航条、友情链接等与主题内容无关的链接、文本、图片、动画、视频。
[0075]在完成上述配置后,从一个或多个种子URL地址开始,获得初始网页上的URL,在抓取网页的过程中,以爬取链接数量或者爬取的URL的层数等因素作为限制条件,不断从当前页面上抽取新的URL放入队列,直到满足系统的限制条件时停止。
[0076]具体地,计算爬取链接与预设主题的相关度,选取相关度大于相关度的阈值的URL地址,将上述URL地址放入已抓取的URL队列中。计算爬取链接与主题的相关度,筛选过滤与所爬取的主题相关度小于阈值的链接,保留下与主题相关的URL并将其放入已抓取的URL队列中。然后,根据某种的搜索条件从已抓取的队列中抽取出新的URL放入待抓取URL队列进行下一层的抓取。重复以上过程,直到满足系统的限制条件时停止。此方法可以尽可能多的采集与主题相关的页面,减少与主题不相关的页面的采集,使得数据采集系统更加高效。
[0077]数据采集子系统I还可以实时监控采集过程的当前执行动作、采集数据量、采集时长、采集服务器的工作状态,并生成系统日志和用户日志。具体地,实时监控整个采集过程,包括实时获得数据采集过程的情况,例如:数据采集进行到的步骤、采集得到数据量、采集总共所用的时间、采集服务器是否还在继续工作等。如果采集服务器没有继续工作,则将该采集服务器上的运行的任务交给其他采集服务器,然后给用户提供异常报警服务。上述采集监控信息均生成相应的系统日志和用户日志,以供系统及用户后续分析查看。
[0078]当数据采集子系统I检测到待爬取的网页需要输入验证码时,对验证码图片进行预处理和图像识别,提取图像特征值,采用基于神经网络的学习方法对图像特征值进行计算以识别出验证码并自动输入,在输入验证码后并进入网页后,继续执行对该网页的数据米集。
[0079]当目标网站中需要输入验证码才能访问时,通过数字图像处理中的验证码识别技术可以将自动获得验证码,确保采集服务器可以继续采集数据。
[0080]在本发明的一个实施例中,通过人工智能的神经网络算法,识别常见的验证码。例如,网站中图片的验证码包括大写字母、小写字母、数字等三个部分。进而,根据验证码图片的识别结果,自动输入验证码,进入网页,实现对网页数据信息的爬取。
[0081]在网页的爬取过程中,当遇到网页中的中文词汇时,采用中文自动分词功能。本发明采用的中文分词算法为将统计的方法与词典的方法进行结合,对原始数据中的有效数据进行提取,得到整理后的半结构化以及结构化数据。
[0082]为了提高节省存储空间和提高处理效率,在进行中文自动分词之前需要过滤掉某些字或者词汇,这些便成为停用词,在文本处理中如果遇到这些停用词便要立刻停止,将其扔掉,从而减少了数据的索引量,增加了检索效率。在完成对数据整理后,为了实现后续需求,需对不同数据进行分类,即为数据设置标签。
[0083]需要说明的是,本发明采用多线程方式实现对网页的爬取。其中,多线程包括:一个主线程和多个子线程。主线程进行总体控制,多个子线程协同完成。具体地,主线程可以检测所有子线程是否全部休眠、是否为空以及是否被锁定等问题,从而使得整个数据采集工作可以顺利向下进行。这种多线程的方式,可以提高数据采集的效率。
[0084]采集服务器进一步将数据信息输入至预设的人工智能的机器学习训练集,以对数据信息自动机器学习训练以区分数据信息的属性,对数据信息进行分类并设置对应的标签,并将机器学习训练后的数据信息发送至云存储子系统2。
[0085]在本发明的一个实施例中,采集服务器采用规则归纳的机械学习(MachineLearning)方法对网页的数据信息进行机器学习训练。
[0086]具体地,机器学习是一种使获取知识自动化的计算方法的学习。目的是使计算机获取新的知识或技能,从而不断改善自身的性能。机器学习技术被广泛用于分类(classificat1n)、预测(predict1n)、关联(associat1n)以及侦查(detect1n)等目的。
[0087]采集服务器采用的是规则归纳(Rule Induct1n)的机器学习方法,该技术利用训练集中产生的一棵决策树或一组决策规则来进行分类,具有易于处理大型数据,适合进行分类和预测的优点。对于整理后的不同数据,其数据间有明确以及清晰的分类标准。因此,利用机器学习技术中的规则归纳方法,先人工整理并提取数据,准备相关分类的训练集文本放置到相应的目录下,自动机器学习训练并借此来确定用来区分的属性。当分类属性确定好后,可以通过分析对新的数据进行合适的分类,为数据打上标签。
[0088]如图6所示,云存储子系统2包括:多个存储节点服务器、光纤路由器和主控服务器,其中,每个存储节点服务器用于接收来自数据采集子系统的采集服务器的数据信息,并将数据信息通过光线路由器发送至主控服务器,由主控服务器(Master控制器)采用Hadoop和NoSQL的云存储方式,运行HDFS分布式文件系统,对来自每个采集服务器的数据信息作为一个节点进行存储,并发送至远程监控服务器,以由管理员对数据采集过程进行监控。
[0089]需要说明的是,如图7所示,主控服务器只运行名字节点,可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间,包括对文件系统的建立、删除等操作和集群信息的配置、存储块的复制等。而每一个数据采集服务器上运行一个数据节点,是文件的基本存储单元。主控服务器将不同数据采集服务器上共享的文件夹组织在一起,构成一个目录树,使得在用户看来所有共享文件存储在同一地点,只需访问一个HDFS根目录就能直接访问分布在网络上的文件夹。
[0090]进一步,云存储子系统2还包括:数据压缩模块,数据压缩模块用于将来自数据采集子系统的数据信息,采用基于字典的数据压缩算法进行压缩后,再发送至光线路由器,由光纤路由器转发至主控服务器。具体地,在将数据信息存储到存储节点服务器之前,需要先由数据压缩模块对数据信息进行压缩。即,运用高强度的数据压缩算法对源数据进行压缩,压缩比例50%左右。数据压缩是用最少的代码来表示原始数据,将一种数据的表示方式转变为另一种表示方式,但长度却比原来短。
[0091]在本发明的一个实施例中,数据压缩模块可以采用基于字典的数据压缩算法对数据信息进行压缩,其基本思想是用比较短的数字和符号对各种可能出现的较长的字符串进行组合编码,并将各种编码以及它们对应的数据都记录在字典中构成字典的数据项。在数据压缩过程中从原数据中读入数据,并将其与字典中记录的数据进行匹配,输出相应的编码,使得数据所占用空间被大大压缩。
[0092]在完成上述数据压缩后,将压缩后的数据信息传输至存储节点服务器。由于存储节点服务器采用Hadoop和NoSQL的云存储方式,可以构造海量数据的解决方案,可以实现系统的可扩展性,并提高存储效率。
[0093]NoSQL指的是非关系型的数据库,它是为了解决多重数据种类及大数据而产生的,适用于以下几种情况:1)数据模型较为简单;2)对数据库性能要求较高;3)不需要高度的数据一致性;4)对于给定的关键字,映射复杂值较为容易;5)需要灵活性强的IT系统。
[0094]NoSQL采用Key-Value的方式存储,其中关键字Key由一级主要关键字和二级次要关键字组成。并且,可对NoSQL数据库编写SQL查询和连接关系表。同时它还支持Hadoop以及Apache的map-reduce技术,具有数据模型简单、扩展性强、行为可预测性强、可用性高、管理与维护方便等特点。
[0095]此外,存储节点服务器采用分布式数据采集系统架构,在hadoop上运行分布式的数据采集程序。分布式数据采集基于web的hadoop方式,其存储采用HDFS分布式文件系统,用于计算各个节点上存储的数据,并提供对数据读写的较高的容错性;计算逻辑采用mapreduce计算框架,其能够将应用程序分割成很多小的工作单元,每个工作单元可以在任何服务器集群节点上执行。
[0096]进一步,云存储子系统还包括:备份节点服务器,备份节点服务器与主控服务器进行通信,以对数据采集子系统采集的数据信息进行备份存储。
[0097]根据本发明实施例的基于人工智能的数据采集方法及系统,采用基于人工智能机器学习的方式,结合优化下载量、过滤与主题不相关的URL机制和本地多线程架构,综合了时间与速度的开销。利用机器学习的方法为数据打标签,筛选掉与主题不相关的链接,通过人工智能的神经网络算法来识别常见的验证码,以实现本系统的自动采集数据功能。并且,本发明运用Hadoop和NoSQL结合的方式,分布式爬取和存储海量数据,并加入了高性能的数据压缩算法对原数据进行压缩。此外,本发明采用创新性数据采集分析方案,将中文处理模块加入数据采集系统中,实现中文的自动分词,停用词去除等功能,增加的检索效率,并在完成对数据整理后,为了实现后续需求,完成了给数据设置标签的功能。并且,通过采用多线程采集方式,并加入了控制、监控模块、采集配置、智能守护的异常处理等功能,使得采集工作可以更好地执行,并在具有良好的容错性。本发明还可以实现数据采集的大并发量、自动适应网站改版、自动配置代理地址和自动重启程序。
[0098]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0099]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。
【主权项】
1.一种基于人工智能的数据采集方法,其特征在于,包括如下步骤: 步骤SI,根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载所述URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库; 步骤S2,将所述步骤SI的数据信息输入至预设的人工智能的机器学习训练集,以对所述数据信息自动机器学习训练以区分所述数据信息的属性,对所述数据信息进行分类并设置对应的标签; 步骤S3,将机器学习分类后的数据信息存储到云端服务器,其中,所述云端服务器采用Hadoop和NoSQL的云存储方式。2.如权利要求1所述的基于人工智能的数据采集方法,其特征在于,在所述步骤SI中, 配置一个或多个种子URL地址,以每个所述种子URL地址作为起点进行数据采集; 根据预设的采集时间参数获取这段时间内的网站上的数据; 配置采集类别、主题、时长和相关度的阈值; 删除与所述主题无关的网页内容。3.如权利要求2所述的基于人工智能的数据采集方法,其特征在于,计算爬取链接与预设主题的相关度,选取相关度大于所述相关度的阈值的URL地址,将上述URL地址放入已抓取的URL队列中。4.如权利要求1所述的基于人工智能的数据采集方法,其特征在于,所述步骤SI,还包括如下步骤:实时监控采集过程的当前执行动作、采集数据量、采集时长、采集服务器的工作状态,并生成系统日志和用户日志。5.如权利要求1所述的基于人工智能的数据采集方法,其特征在于,在所述步骤SI中,当检测到待爬取的网页需要输入验证码时,对验证码图片进行预处理和图像识别,提取图像特征值,采用基于神经网络的学习方法对所述图像特征值进行计算以识别出所述验证码并自动输入,在输入验证码后并进入网页后,继续执行对该网页的数据采集。6.如权利要求1所述的基于人工智能的数据采集方法,其特征在于,在所述步骤S2中,采用规则归纳的机械学习方法对所述网页的数据信息进行机器学习训练。7.如权利要求1-6任一项所述的基于人工指令的数据采集方法,其特征在于,当检测到数据采集异常、云端服务器异常或网络异常时,记录异常发生时最后抓取的URL地址,并在系统重启后,自动从该记录的URL地址开始恢复爬取。8.—种基于人工智能的数据采集系统,其特征在于,包括:数据采集子系统和云存储子系统, 所述数据采集子系统包括:多台采集服务器,每台采集服务器与网页服务器进行通信,用于根据预设的爬取链接数量或爬取的URL层数,采用多线程方式从互联网上爬取多个网页的URL地址,将获取的URL地址放入队列,读取URL地址和DNS解析以下载所述URL地址对应网页的数据信息,将已下载的网页的数据信息存储至已下载网页库,以及将数据信息输入至预设的人工智能的机器学习训练集,以对所述数据信息自动机器学习训练以区分所述数据信息的属性,对所述数据信息进行分类并设置对应的标签,并将机器学习训练后的数据信息发送至所述云存储子系统; 所述云存储子系统包括:多个存储节点服务器、光纤路由器和主控服务器,其中,每个所述存储节点服务器用于接收来自所述数据采集子系统的采集服务器的数据信息,并将所述数据信息通过所述光线路由器发送至所述主控服务器,由所述主控服务器采用Hadoop和NoSQL的云存储方式,运行HDFS分布式文件系统,对来自每个所述采集服务器的数据信息作为一个节点进行存储,并发送至远程监控服务器,以由管理员对数据采集过程进行监控。9.如权利要求8所述的基于人工智能的数据采集系统,其特征在于,所述云存储子系统还包括:数据压缩模块,所述数据压缩模块用于将来自所述数据采集子系统的数据信息,采用基于字典的数据压缩算法进行压缩后,再发送至所述光线路由器,由所述光纤路由器转发至所述主控服务器。10.如权利要求8所述的基于人工智能的数据采集系统,其特征在于,所述云存储子系统还包括:备份节点服务器,所述备份节点服务器与所述主控服务器进行通信,以对所述数据采集子系统采集的数据信息进行备份存储。
【文档编号】G06N3/08GK105893583SQ201610204571
【公开日】2016年8月24日
【申请日】2016年4月1日
【发明人】高强, 曹志松, 顾海英
【申请人】北京鼎泰智源科技有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1