摘 要:随着互联网技术的不断发展,Web数据挖掘技术也在不断地进步,该技术在各行各业的应用越来越广泛。而作为存储技术的里程碑,云计算技术显著提升了数据存储的效率和安全性。因此,分析基于云计算的Web数据挖掘技术对互联网产业的发展来说意义重大。本文分析了基于Web数据挖掘技术的特点,探讨了基于云计算的Web数据挖掘技术。
关键词:云计算;Web;数据挖掘
中图分类号:TP311.13 文献标识码:A 文章编号:2096-4706(2019)05-0100-03
Abstract:With the continuous development of internet technology,Web data mining technology is also making continuous progress,and the technology is more and more widely used in all walks of life. As a milestone of storage technology,cloud computing technology has significantly improved the efficiency and security of data storage. Therefore,the analysis of Web data mining technology based on cloud computing is of great significance to the development of the internet industry. This paper analyses the characteristics of Web data mining technology,and discusses the Web data mining technology based on cloud computing.
Keywords:cloud computing;Web;data mining
0 引 言
互联网极大地改变了人们的生活,推动了社会进步。随着互联网技术的不断发展,互联网数据量快速增加。如何从海量的数据中高效地提取有价值的数据,并将其应用于现实生活中是Web数据挖掘技术需要解决的问题。Web数据挖掘简单来说就是数据挖掘在Web上的应用,该技术利用数据挖掘技术从Web中提取有价值的数据信息,是Web、数据挖掘、计算机、信息技术等多种技术的综合运用。
1 Web数据挖掘分类
数据挖掘主要包括结构挖掘、使用挖掘、内容挖掘三种类型。其中结构挖掘、使用挖掘是最常用的兩种数据挖掘类型:(1)结构挖掘。Web结构挖掘是指从Web结构中挖掘数据,如Web中的页面组织结构、文档结构、链接关系结构等。在研究Web时,要针对页面结构、链接关系结构进行研究,找出隐藏其间的关系模式,从而对链接甚至页面进行分类,筛选出所需页面,这就是Web结构挖掘。(2)使用挖掘。Web使用挖掘是指对用户访问时的模式进行挖掘的一种方式,可以有效提升网络信息服务质量,有效改善Web服务器性能。
2 基于云计算的Web数据挖掘体系
Web数据挖掘可以分为多个节点,利用云计算技术可以强化Web数据挖掘体系中各个节点之间的关联,构建起更加完善的数据挖掘体系。其中主控节点的主要作用是连接客户端与各个节点;算法节点的主要作用是为数据挖掘提供有效的算法支撑,可以将其看作一个算法仓库;数据节点是用来存储数据的大型数据库;服务节点主要用于执行主控下达的任务,并反馈出计算结果。通过分析Web数据挖掘体系的功能,可以将Web数据挖掘体系划分为多个层面:(1)服务层。通过Web数据挖掘体系挖掘出数据,并呈现给用户。(2)控制层。主控节点分析用户返回的结果,确定最合适的算法,实现最高效的数据挖掘。(3)算法和数据存储层。这个层面的主要作用是存储反馈的数据和相关算法,不但会存储原始数据,也会存储数据挖掘的结果,显著降低数据、算法丢失的可能性,即使系统出现问题也可以从数据存储区中找到丢失的数据,进行数据恢复。(4)业务处理层。对存储层数据进行挖掘,再通过主控点对数据进行重新分配,然后通过服务节点返回至主控节点。
3 基于云计算的Web数据挖掘算法
如上所述,Web数据挖掘技术是一种从Web连接、Web网页、Web日志中寻找所需数据信息的数据挖掘技术。WebGraph是用于描述Web信息的一种重要的数据结构,在网络爬虫、搜索结果排序、社交网络中的应用非常广泛,具有非常重要的作用。因此,本文重点研究了基于云计算的Web数据挖掘中的Graph算法,分析了WebGraph数据结构,探讨了基于云计算的社交网站用户Graph数据的获得方案。该方案采用Hadoop分布式云计算框架构建基于Graph算法的应用,用于挖掘Graph数据。Hadoop框架的主要语言是Java,因而也使用Java语言来描述Graph挖掘算法,因此需选用相应的数学模型抽象描述真实的网络链接之间的关系,并寻找合适的数据结构将数据模型存储于计算机中,Web链接分析、WebGraph分析都是基于图论算法,因此,这将两类问题抽象成具有一定结构的节点、边的图形分析,便于进行数据分析处理。
3.1 WebGraph算法数据结构
WebGraph算法需借助适当的描述数据的方法对数据进行分析。本文研究的WebGraph算法采用矩阵法描述数据,按照行列的方式将每一个节点的数据分别排列就可以建立网络矩阵。网络节点数量就是矩阵的阶数。假如Graph描述的是Web页面链接关系模型,就可以用矩阵描述其逻辑关系。矩阵中的元素表示行标号标示的Graph节点与列标号标示的节点是否存在关联。矩阵中各个元素的取值可以不同,用于表述各节点之间关联程度不同的Graph。也可以使用Graph描述社交网络中的用户关系。一般来说,社交网络中各个用户之间的关系是双向的,即用户彼此认可,互加好友,因此,社交网络中用户之间的关系数据结构可以用对称矩阵表示。而高级语言中的矩阵可以使用二维数组来描述,因此,假如用高级语言实现Graph处理算法,则可以用矩阵作为Graph数据结构。
3.2 WebGraph数据存储方式
本次研究的GraphML是一种长期稳定的Graph信息存储方案。基于XML语言的GraphML是一种用来描述图(Graph)的通用文件格式。GraphML文件格式和GML等别的专有文件格式的不同在于,该文件格式完全可以用XML语言表示,绝大部分程序开发语言都可以解析GraphML。在此背景下,GraphML非常适合用于生成、存储、处理Graph的应用。与此同时,GraphML非常直观,使用比较简单,更易被程序开发人员理解。GraphML格式的Graph数据分析修改难度较低,方便程序开发人员修改,为程序开发带来极大的便利。GraphML可以比较完美地描述Graph数据。目前使用较多的Graph数据结构包括轻量级语法分析器、有向图、无向图、有向兼无向图、超图、分级图、图形显示、作为特定应用的属性数据和为外部数据提供的引用。这些数据结构都可以通过GraphML进行很好地描述。
3.3 Graph数据抓取
本次研究的Web数据挖掘数据结构都是Graph。基于WebGraph算法的数据挖掘技术经常通过爬取页面来获取页面信息,然后再对其中包含的Web连接进行分析,最终构建一个Graph结构。WebGraph挖掘算法的主要特点就是运算量非常大,特别是分析大量基于文本的页面链接任务需要消耗大量的计算资源。而且除了Web页面之间的关联,还能用Graph结构描述现实中一种常见事物的关联,即社交网络中的用户。在当前Web技术不断发展的背景下,以Facebook为代表的在线社交网络受到广大用户的青睐,其应用也越来越普及。目前,Facebook的注册用户已经超过20亿,体量如此庞大的用户群中各个用户之间的关系非常符合作为Graph挖掘算法研究数据对象的要求。因此,本文将以Facebook的注册用户之间的关系数据为例,分析如何针对Facebook的应用程序编程接口API来获取用户关系的Graph,以探讨基于云计算的Web数据挖掘的关键技术。
3.3.1 创建Facebook应用程序
本文设计了一个建立在Facebook社交网络基础上的应用,其主要作用是获得Facebook的用户关系Graph。Facebook社交网络提供了相应的应用程序编程接口API,方便程序开发人员开发基于Facebook社交平台的应用程序,并在Facebook上运行。而要想开发一个Facebook应用程序,先需要获得一个Facebook平台接口密钥Facebook Platform API Key。我们需要从Facebook的Get Started站点获取需要的开发资料,再填写资料,完成申请开发Facebook应用程序的流程。在流程走完后就可以获得该应用程序的Application ID、API Key以及Secret Key,它们都是后续进行应用程序开发必须使用的核心字段。截止目前,Facebook官方取消了对Java开发接口的支持,使用Java开发Facebook应用程序的开发人员被建议使用第三方接口。而在Google Code创建了一个facebook-java-api项目,用于维护、扩展被Facebook取消支持的代码库,提供给Java开发者一个优质的Facebook API。Facebook Java API中包括和包含所有与Facebook Application API有关的全部库和相关jar,在Web项目中导入这些jar文件就可以很方便地进行Facebook应用程序开发。
3.3.2 开发Facebook应用程序获取用户关系
通过开发Facebook应用程序获取Facebook用户关系数据。为了实现与用户的交互,需通过Java Servlet实现与浏览器的通信。因此,必须自定义Servlet类,它和常规的Web项目不存在差异,只不过是在web.xml配置文件中加上了初始化参数配置。其中如API Key、Secret Key这两个程序开发申请阶段获得的重要字段。通过Servlet只能实现和浏览器的基本通信,要想获得Facebook用户之间的关系数据,就必须先获取用户的好友数据。Facebook Java API目前给程序开发者提供了三种获取登陆用户好友列表的方法,每一种方法都以不同的格式返回用户的好友数据,如FacebookXmlRestClient類的结果返回格式为XML,FacebookJsonRestClient类的结果返回格式为JSON格式,FacebookJaxbRestClient类的结果返回格式为JAXB格式。与此同时,Facebook Java API支持以批量查询的方式获得用户的好友列表。然而Facebook Java API只可以获得当前登陆的用户好友列表数据,我们需要在外部环境允许的情况下获取尽量多的用户好友数据。很明显利用Facebook Java API无法获取大量的用户之间关系数据。因此,为了获取大量用户好友关系数据,可以利用Facebook API提供的Automatic Authentication模式。使用该认证模式的好处是Facebook不再要求在Session中保存用户信息,而只要给系统传送一个userid,再依据这个userid获取用户信息。同时,在使用该模式的情况下,在创建FacebookXmlRestClient类对象时不必传入参数SessionID,因为已经不存在Session这个概念。根据上述分析可知,本次研究需要的Facebook应用程序可以借助类似堆栈的结构对大量的用户进行访问,获取用户之间的关联,再使用Java操作XML文档的API,GraphML语言存储用户关系数据。这样一来就实现了Graph数据的挖掘。具体程序细节由于篇幅限制就不再一一介绍。
4 结 论
综上所述,基于云计算的Web数据挖掘技术可以从Web中高效获取有价值的数据信息,可以根据Web用户的兴趣爱好和使用习惯对数据进行筛选,有选择地呈现,从而更好地满足用户的需求。在云计算环境下,Web数据挖掘可以在网络平台进行统一管理,可以充分发挥云计算的存储优势,不但有效提高了Web数据挖掘的效率,还提升了Web数据的利用率。由此可见,基于云计算的Web数据挖掘关键技术的研究与应用对我国互联网的发展具有十分重要的现实意义。
参考文献:
[1] 孟强,李海晨.Web数据挖掘技术及应用研究 [J].电脑与信息技术,2017,25(1):59-62.
[2] 杨翔云.Web数据挖掘在云计算平台的实际运用 [J].电子技术与软件工程,2016(21):186-186.
[3] 周戈.云计算时代下数据挖掘技术的应用分析 [J].数字技术与应用,2017(3):254-254.
作者简介:王建明(1980.03-),男,汉族,山西平定人,在职研究生,讲师,工学学位,本科,研究方向:计算机基础课程。