首页 > 代码库 > Web挖掘技术
Web挖掘技术
一、数据挖掘
数据挖掘是运用计算机及信息技术,从大量的、不完全的数据集中获取隐含在其中的有用知
识的高级过程。Web 数据挖掘是从数据挖掘发展而来,是数据挖掘技术在Web 技术中的应
用。Web 数据挖掘是一项综合技术,通过从Internet 上的资源中抽取信息来提高Web 技术的
利用效率,也就是从Web 文档结构和试用的集合中发现隐含的模式。
数据挖掘涉及的学科领域和方法很多,有多种分类法。
(1)根据挖掘对象分:关系数据库、面向对象数据库、空间数据库、时序数据库、DNA 数
据库、多媒体数据库、异质数据库、遗产数据库以及Web数据库等;
(2)根据挖掘方法分:机器学习方法、统计方法、神经网络方法和数据库方法等;
a. 机器学习方法可细分为:归纳学习方法(决策树、规则归纳等)、基于范例学习、遗传算
法等。
b.统计方法可细分为:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔
判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析法、相
关分析法等)等。
c. 神经网络方法可细分为:前向神经网络(BP 算法等)、自组织神经网络(自组织特征映
射、竞争学习等)等。
(3)根据开采任务分:可分为关联规则、分类、聚类、时间序列预测模型发现和时序模式
发现等。
a.关联规则:典型的关联规则发现算法是Apriori算法,该算法也称广度优先算法,是
A.Agrawal和R.Srikandt于1994年提出的,它是目前除AIS 算法、面向SQL的SETM 算
法外几乎所有频繁项集发现算法的核心,其基本思想是:如果一个项集不是频繁集,则其父
集也不是频繁集,由此大大地减少了需要验证的项集的数目,在实际运行中它明显优于AIS
算法。
Apriori算法是关联规则挖掘中最具有影响的一种算法.所谓关联规则就是从事务数据库、关
系数据库和其他数据存储中的大量数据的项集之间发现有趣的、频繁出现的模式、关联和相
关性.关联规则可以分为两步:
1)找出所有频繁项集.这部分主要由后面介绍的Apriori算法来解决.
2)由频繁项集产生相关联规则:这些规则必须满足最小支持度和最小置信度.
b.分类规则:数据挖掘的一个重要任务是对海量数据进行分类。数据分类是基于一组数据的
某些属性的值进行的。数据分类的方法很多,包括决策树方法、统计学方法、神经网络方法、
最近邻居方法等等。其中,基于决策树的分类方法与其它的分类方法比较起来,具有速度较
快、较容易转换成简单的并且易于被理解的分类规则、较易转换成数据库查询语言、友善、
可得到更高的准确度等优点。
c.数据聚类:其基本思想是:对数据进行分析的过程中,在考虑数据间的“距离”的同时,
更侧重考虑某些数据间具有类的共同内涵。数据聚类是对一组数据进行分组,这种分组基于
如下的原理:最大的组内相似性与最小的组间相似性。
d. 时序模式:可用如下的例子描述时序模式:一个顾客先租看影片“Star Wars”,然后租
“Empire Strikes Back”,再租“Return of the Judi”,注意到这些租借事物的发生不一定是连
着的。像这样一次事件的发生会导致某些事物的相继发生的事件模式,称为时序模式。
e.相似模式:时态或空间—时态的大量数据存在于计算机中,这些数据库例子包括:股票价
格指数的金融数据库、医疗数据库、多媒体数据库等等。在时态或空间—时态数据库中搜索
相似模式的目的是发现和预测风险、因果关系及关联于特定模式的趋势。
二、Web挖掘
Web 站点上的数据有其自身的特点,主要的可以归纳为以下几点:
1 、数据量巨大,动态性极强;2、 异构数据库环境;3 、半结构化的数据结构。
Web 数据挖掘可以分为Web 内容挖掘,Web结构挖掘,Web 使用挖掘三类。Web 内容挖掘是
从文档内容或其描述中抽取有用信息的过程,Web 内容挖掘有两种策略:直接挖掘文档的内
容和在其他工具搜索的基础上进行改进。采用第一种策略的有针对Web 的查询语言
WebLOG,利用启发式规则来寻找个人主页信息的AHOY 等。采用第二种策略的方法主要是
对搜索引擎的查询结果进行进一步的处理, 得到更为精确和有用的信息。属于该类的有
WebSQL ,及对搜索引擎的返回结果进行聚类的技术等。根据挖掘处理的数据可以将Web 内
容挖掘分为文本挖掘和多媒体挖掘两个部分。Web 结构挖掘是从Web 组织结构和链接关系
中推导知识。挖掘页面的结构和Web 结构,可以用来指导对页面进行分类和聚类,找到权威
页面、中心页面,从而提高检索的性能。同时还可以用来指导页面采集工作,提高采集效率。
Web 结构挖掘可以分为Web 文档内部结构挖掘和文档间的超链接结构挖掘。这方面的代表
有Page Rank和CLEVER,此外,在多层次Web数据仓库( MLDB ) 中也利用了页面的链接结
构。Web 使用挖掘是从服务器端记录的用户访问日志或从用户的浏览信息中抽取感兴趣的模式,通过分析这些数据可以帮助理解用户隐藏在数据中的行为模式,做出预测性分析,从而
改进站点的结构或为用户提供个性化的服务。
Web 挖掘相关技术:
数据挖掘方法通常可以分为两类: 一类是建立在统计模型的基础上, 采用的技术有决策树、
分类、聚类、关联规则等; 另一类是建立一种以机器学习为主的人工智能模型,采用的方法有
神经网络、自然法则计算方法等。
Web 内容挖掘:
1、Web 文本挖掘
Web 文本挖掘可以对Web 上的大量文档的集合的内容进行总结、分类、聚类、关联分析,
以及利用Web 文档进行趋势预测。在Internet 上的文本数据一般是一组html 格式的文档集,
要将这些文档转化成一种类似关系数据库中记录的规整且能反映文档内容特征的表示,一般
采用文档特征向量,但目前所采用的文档表示方法中,都存在一个弊端就是文档特征向量具有
非常大的维数,使得特征子集的选取成为Internet 上文本数据挖掘过程中的必不可少的一个
环节。在完成文档特征向量维数的缩减后,便可利用数据挖掘的各种方法,如分类、聚类、关
联分析等来提取面向特定应用的知识模式,最后对挖掘结果进行评价,若评价结果满足一定的
要求则输出,否则返回到以前的某个环节,分析改进后进行新一轮的挖掘工作。。关联规则模式
数据描述型模式, 发现关联规则的算法属于无监督学习的方法。发现关联规则通常要经过以
下3个步骤: ①连接数据, 做数据准备; ②给定最小支持度和最小可信度, 利用数据挖掘工
具提供的算法发现关联规则; ③可视化显示、理解、评估关联规则。
目前 Web 内容挖掘研究主要集中在基于文本内容的检索、信息过滤的提炼、重复数据消除、
数据模式抽取、中间形式表示、异构集成、文本分类和聚类、文档总结和结构提取、数据仓
库及OLAP等几个方面,尤其是基于XML的上述专题研究。
对分类挖掘而言,在预处理阶段要做的事情就是把这个Web页面集合文本信息转化成一个
二维的数据库表,其中每一列是一个特征,每一行为一个Web页面的特征集合。在文本学
习中常用的方法是TF工DF向量表示法,它是一种文档的词集(bag-of-words)表示法,所有
的词从文档中抽取出来,而不考虑词间的次序和文本的结构。构造这种二维表的方法是:每
一列为一个词,列集(特征集)为辞典中的所有有区分价值的词,所以整个列集可能有几十万
列之多。每一行存储一个页面内词的信息,这时,该页面中的所有词对应到列集(特征集)上。
列集中的每一个列(词),如果在该页面中不出现,则其值为0;如果出现k次.那么其值就为k。
这样就可以表征出页面中词的频度。这样构造的二维表表示的是Web页面集合的词的统计
信息,最终就可以采用Naive Bayesian方法或k-Nearest Neighbor方法进行分类挖掘。
WebSQL 是一个用于Web 页重构的查询语言,利用Web 文档的图树表示形式,可从在线的文
档站点或导游指南中获取信息。而Ahoy则利用像搜索引擎一类的互联网服务来获取与个人
有关的服务,利用试探法识别文档中显示该文档作为个人主页的句法特征。
分词
目前已有很多分词算法,如:正向最大匹配法(MM)、逆向最大匹配法(RMM)、逐词遍历匹
配法、设立切分标志法、正向最佳匹配法和逆向最佳匹配法等。近几年又提出了很多新的方
法旨在提高分词的精度和分词的速度,如:生成测试法通过词法ATN和语义ATN之间的相
互作用来进行歧分决策,以提高分词的精确性;改进的MM分词算法采用正向增字最大匹
配法和跳跃匹配法,结合词尾语义检查和归右原则以消除类型歧义;基于神经网络的分词方
法尝试利用神经网络来处理歧分问题,但同时又引入一个问题:训练样本的选取,由于自然
语言的复杂性,如何选取训练样本还需要作深入的研究;结合直接匹配算法、后缀分词算法
和词表结构支持首字Hash的方法,局部提高了速度,但不能进行标准的二分查找;支持首
字Hash的近邻匹配算法利用最大增字匹配算法,并支持首字Hash和标准二分查找以提高
分词速度。
分词的基本算法有: (1)基于词典与规则匹配法。基于词典与规则的方法应用词典匹配, 汉语
词法或其它汉语语言知识进行分词, 这类方法简单、分词效率较高,但对词典的完备性、规则
的一致性等要求比较高。匹配策略有: 最大匹配法、最小匹配法、逆向匹配法、增字或减字
匹配法、双向扫描法。(2)标志法。如切分标志法、统计标引法。(3)词频统计法。基于统计
的分词方法将汉语基于字和词的统计信息, 完备性较差。(4)语义语用法。如后缀分词法。目
前使用最多的是基于词库的分词方法。由于中文在分词时可能产生二义性, 如“计算机器”
可分成“计算”“/ 机器”和“计算机”“/ 器”, 这样必须结合其它分分词方法, 如基于语
法规则的分词法、基于朴素贝叶斯分词法等。在具体的分词过程中, 我们还可以将单词变型
归并, 像同义词、近义词可进行归并, 如“因特网”和“万维网”可当成一个词条处理。
语义Web 是下一代的Web 技术,它赋予Web 以计算机可理解的语义信息。
在语义Web技术中,本体起着重要的作用。本体是人们对领域知识达成的共识,是对领域
的形式化与结构化的描述。本项目针对语义Web 目前存在的问题,应用语义Web 技术,
信息集成和信息管理的若干关键技术,从多个方面对语义Web 进行研究。
(1)语义信息集成。对本体的语义标注和本体集成方法进行研究,利用基于本体的语义标
注和本体映射技术从异构的资源中抽取出有用信息,并通过映射方法集成多种信息源的的信
息。
(2)语义查询。实现语义信息的多种查询方式,包括:本体的可视化导航查询,针对概念/
实例/属性的查询,基于全文检索技术的查询,语义关系的查询。
(3)语义信息挖掘。语义信息的挖掘一直处在一个很浅层的阶段,目前的多数研究一直处
在传统的文本信息挖掘。本项目的研究主要从本体实例聚类、本体分类,本体关联规则挖掘
以及本体中关键词的抽取。这些技术是语义Web 的应用的基础,他们可以用来分析语义信
息的趋势,语义数据的自动处理等。
(4)语义Web Service。通过系统定义的软件本体对Web Service 进行描述,从而实现
WebService 的评估、组装等功能。
(5)基于Peer to Peer 的语义信息管理。这个问题的核心思想是要通过集成已有的Peer to
Peer框架实现语义挖掘平台在P2P 环境下的应用。
(6)算法解释。利用定义的基础数据结构对上述算法的执行过程进行log,从而轻松的实现
用户-算法及开发-算法之间的交互。提供针对算法本身的更友好的接口。
2 、Web 多媒体挖掘
Web 多媒体挖掘与Web 文本挖掘的不同点就在于需要提取的特征不同。Web 多媒体挖掘
需要提取的特征一般包括图像或视频的文件名URL 、类型、键值表、颜色向量等。然后可
以对这些特征进行挖掘工作。如关联分析发现类似“如果图像是‘大’而且与关键词‘草原’
有关,那么它是绿色的概率是0. 8”的关联规则。当然也可以对多媒体进行分类、聚类等操作。
多媒体数据挖掘的方法主要有:多媒体数据中的相似搜索,主要有两种多媒体标引和检索技
术:基于描述的检索系统和基于内容的检索系统;多媒体数据的多维分析,可以按传统的从
关系数据中构造数据立方体的方法,设计和构造多媒体数据立方体;分类和预测分析,主要
应用于天文学、地震学和地理科学的研究,决策树分类是最常用的方法;多媒体数据的关联
规则挖掘,关联规则的挖掘主要包括以下三类规则:图像内容和非图像内容之间的关联、与
空间关系无关的图像内容的关联、与空间关系有关的图像内容的关联。
3、特征提取
经典的文本表示模型是向量空间模型(VSM—Vector Space Model),由Salton 等人于60 年
代末提出,并成功地应用于著名的SMART 文本检索系统。向量空间模型对文本进行简化
表示,认为特征之间是相互独立的而忽略其依赖性,将文档内容用它所包含的特征词来表示:
D=(t1,t2,?,tN),其中tk 是文档D 的第k 个特征词,1 ≤ k ≤ N 。两个文档D1 和
D2 之间内容的相似程度Sim(D1,D2)通过计算向量之间的相似性来度量。最常用的相似
性度量方式是余弦距离。
除了向量空间模型之外,Stephen Robertson 和Spark Jones 等人提出的概率模型得到了人们
的广泛认可。该模型综合考虑了词频、文档频率和文档长度等因素,把文档和用户兴趣(查
询)按照一定的概率关系融合,形成了著名的OKAPI 公式。该模型在信息检索领域取得了
成功。
降维就是自动从原始特征空间中提取出部分特征的过程,一般通过两种途径:一是根据对样
本集的统计信息删除不包含任何信息的特征;二是将若干低级的特征合成一个新特征。目前
关于特征提取的方法很多,如文档频率法(DF)、信息增益(IG)、互关联信息(MI)、 x2 统计
法(CHI)、特征增强(TS)等。DF是指包含某一特征的文档数,TS 法通过统计特征在一组相
近文档中出现的频率来估计特征的重要性,然而,人们在实际应用中发现,某些DF值或
TS值很低的特征反而是信息相关的,不能从特征空间中删去,因此这两种方法在某些情况
下不可靠,MI的弱点是受特征的边缘概率的影响很大,CHI和IG的使用效果较好。一般用的评估函数有几率比(Odds ratio) 、信息增益( Information Gain) 、期望交叉熵( Expected
CrossEntropy) 、互信息( Mutual Information) 、词频( WordFrequency) 等。
(1)IG(Information Gain):即信息赢取。IG值代表了特征在训练集上的分布情况,它通过统
计特征在各个类别中的出现次数来计算,公式如下:
其中 t 代表特征 ,ci代表第i个类别,m为类别个数,只Pr (cI)代表类别cI的概率,Pr (cI|i)
代表在包含特征t的条件下类别ci的概率,Pr (cI|-t) 代表在不包含特征t的条件下类别cI
的概率,Pr(t) 代表特征t出 现 的 概率,Pr (-t) 代表特征t不出现的概率。IG值越高表示
该特征在训练集中的类别上分布越集中。IG方法提取IG值较高的特征,其基本思想为分布
越集中的特征越重要。
(2) MI(Mutual Information):即互信息值,它通过计算特征t和类别c间 的相关性来完成提取。
计算公式为: 为方便计算,简化为: 其中N为训练集中包含的文本总数,A为t与c同时出
现的次数,B为t出现而c不出现的次数,C为c出现而t不出现的次数。通过该公式就可
以取得特征与各类别间的互信息值。为了能取得特征在数据集上的整体评价,有以下两种计
算方法:
前 者代表 了 特 征 和 各类别的平均互信息值,后者则取特征与各类别互 信 息 值中
的最大值。MI方法提取互信息值较高的特征,其基本思想为与类别相关性越高的特征越重
要。
(3)CHI 具有和MI方法基本相似的思想,同样通过计算特征t和类别c间的依赖程度来完
成提取。但二者的计算细节不同,CHI作了更多地考虑 ,有种看法认为CHI是一种“正规
化”了的MI。CHI的计算公式如下: 其中N为训练集中包含的文本总数,A为t与c同时
出现的次数,B为t出现而c未出现的次数,C为c出现而t未出现的次数,D为二者都未
出现的次数。与MI相同,CHI也有平均值和最大值两种方法来取得特征的整体评价:
CHI 方 法 的基本思想也是与类别关系越紧密的特征重要性越高。
(4)DF (Document frequency):即文档频率,指训练集中包含该特征的文本总数。所谓文本包含
特征是指这个特征在该文本中出现,忽略其在文本中的出现次数。DF方法提取DF值较高
的特征,它的目的是去掉在训练集上出现次数过少的特征,保留出现达到一定次数、具有一
定影响力的特征。在各个特征提取方法中,DF方法的计算是最简单的。
(5)WEE(Weight Evidence):即文本证据权,其计算公式如下: 其中,t是一个特征,m是类
别的数量,ci代表第i个类别,代表类别ci的概率,Pr (cI|t)代表在包含特征t的条件下类别
ci的概率,Pr(t)代表特征t出现的概率。
4、分类
目前文本分类的方法很多,如多元回归模型、K-邻近方法、神经网络法、贝叶斯方法、决策树法、支持向量机等,这些方法基本上可以分为两类:统计分类方法和基于机器学习的分
类方法。支持向量机(SVM)是统计学习理论领域近几年才提出的新知识,目前仍处于发展阶
段,但就目前的应用而言,SVM在很多领域的运用效果都非常理想。
网页自动分类是Web内容挖掘的主要研究内容之一,采用的主要技术是分本分类技术,这
是因为文本是目前Web内容的主体,并且对文本的处理较音频、视频的处理容易。文本分
类首先要进行特征抽取。所谓特征是指一个词或词组。目前英文分类算法大多以单词为特征,
在分词的时候利用空格和其它一些标点符号作为分隔符,从而抽取出文档中出现的所有特
征,所有抽取出来的特征称为全特征集。特征抽取完毕后一般还要进行特征提取。特征提取
是指从全特征集中提取一个子集的过程。提取出来的子集称为特征子集。根据John Pierre
的理论,用来表示文本的特征理论上应具有如下特点;(1)数量上尽量少;(2)出 现频率适中;(3)
冗余少;(4)噪音少;(5)与其所属类别语义相关;(6)含义尽量明确;从全特征集中提取特征子集
时通常根据特征的权值进行取舍,权值的计算方 法有多种,比如信息赢取(Information
Gain),互信息(Mutual Information)等。特征提取后就可以用特征子集来表示文本,然后就可
以构造用不同分类方法用来分类。常见的分类模型有:(1)K一 近邻模型,(2)Rocchio模型,
(3)贝叶斯模型,(4)神经网络模型,(5)决策树模型。目前研究人员己经提出了许多文本分类
方法,如向量空间法(VSM)、回归模型、K近邻法、贝叶斯概率方法、决策树、神经网络、
在线学习、支持向量机等。
在完成特征提取之后,我们就可以使用这些特征来表示一个文本。具体的表示方法因分类方
法而异。每种分类模型都会采用自己的方法来表示一个文本,并将这种表示方法纳入到自己
的体系中去。所有的分类模型大体上都可分为训练和分类两个步骤。一般来说,训练例越多
分类的准确度越有保证,但也并不是越多越好。
(1) 基于TFIDF的Rocchio算法
Rocchio 算法来源于向量空间模型理论,向量空间模型(Vector space model)的基本思想为采
用向量来表示一个文本,之后的处理过程就可以转化为空间中向量的运算。基于TFIDF的
Rocchio是这种思想的一种实现方法,其中文本以一个N维向量来表示,向量维数N即特征
数,向量分量是特征的某种权重表示,该权值的计算方法称为TFIDF方法,步骤如下:
通过 TFIDF方法首先将训练集中的文本表示为向量,然后生成类别特征向量(即可以用来代
表一个类别的向量)。类别特征向量取值为该类中所有文本向量的平均值。Rocchio算法训练
的过程其实就是建立类别特征向量的过程。分类的时候,给定一个未知文本,先生成该文本
的向量,然后计算该向量与各类别特征向量的相似度,最后将该文本分到与其最相似的类别
中去。向量的相似度度量方法有两种:(以x,y代表向量,xi,yi代表向量分量):
总体来看 ,Rocchio算法简单易行,运行速度尤其是分类速度较快。
(2) 朴素贝叶斯模型
贝叶斯分类是一种统计学分类方法,它基于贝叶斯定理,可以用来预测类成员关系的可能性,给出文本属于某特定类别的概率。分类时根据预测结果将该样木分到概率最高的类别中去即
可。假定有m个类c1,c2,c3?Cm,给定未知文本X,贝叶斯分类将给出条件X下具有最高后
验概率的类别,即最大化P(Ci|X)根据贝叶斯定理可得:
显而易见,P(X)对于所有类是个常数,则只需最大化P(X|Ci )P(Ci)即可。P(ci)可以根据训练
集中的类别分布来计算,即 ,其中|Ci|为类别Ci包含的文本数,|D|为训练集中的文本总数。
在一个具有许多属性的事例中,计算P(X|Ci)的开销会非常大,为了降低这种开销而引出了
称为类条件独立的朴素假定:假定文档的一个属性对于分类的影响独立于其他属性,即文档
的属性之间是不相关的。这就是朴素贝叶斯(Na?ve Bayes)的由来。这样就可以简单的以各个
属性在类别Ci上出现的概率来推算P(X|Ci)。通常使用拉普拉斯估计(Laplacean prior)来推算。
又因实现细节的不同有两种朴素贝叶斯模型,多元模型(Multi-variate Bernoulli Model)只考虑
了特征在文本中是否出现(出现记为1,否则记为。),多项式模型(Multinomial Model)考虑了
特征在文本中的出现次数:
朴素贝叶斯分类模型训练的过程其实就是统计每一个特征在各类中出现规律的过程。从理论
上讲,贝叶斯分类的出错率最小,就试验结果来看,朴素贝叶斯在大型的数据集上表现出来
难得的速度和准确度。
(3) 决策树
决策树(Decision Tree)是一个类似于流程图的树结构,其中每个节点代表一个属性上的测试,
每个分支代表一个测试输出,最后的叶结点代表类别。决策树方便改写为形如if-then的分
类规则,易于理解。决策树的核心算法是一种贪心算法,它以自顶向下的方式在训练集的基
础上构造决策树,之后取未知文本的属性在决策树上测试,路径由根结点到叶结点,从而得
到该文本的所属类别。决策树的算法有C4.5(发展于ID3),CART,CHAID等,他们的区别在
于构造决策树与树枝剪除的算法细节不同。决策树可以很好的抵抗噪声。最大的缺点在于不
适应大规模的数据集,此种情况下决策树的构造会变得效率低下。
(4) 神经网络
神经网 (Neural Network)的学习结果为目标函数,根据这个目标函数的输出作为分类的依
据。输入即为文本在各个特征上的各分量值。神经网络实际上是一组连接的输入/输出单元,
其中每一个连接都具有一定的权值。通过训练集来训练的过程就是调整这些权值的过程,使
得神经网络可以正确的预测类别。神经网络的训练是针对训练例逐个进行的,所以神经网络
的训练集可以随时添加,不需要重新进行训练就可完成网络的调整。同时有实验结果表明,
在训练例过少的情况下,神经网络的分类准确率较低。因为可通过训练来针对特征取一定的
合适的权值,神经网络可以较好地抵御噪音的干扰。
(5) K近邻
K近邻分类(K-nearest neighbor)的思想也来源于向量空间模型,同样采用将文本转化为向量
的思想。KNN是一种基于类比的分类方法。在训练的过程中KNN会生成所有训练例的特
征向量,并将其保存下来。给定一个未知文本,首先生成它的特征向量,之后KNN会搜索所有的训练例,通过向量相似度比较从中找出K个最接近的训练例,然后将未知文本分到
这K个近邻中最普遍的类别中去。相似度可以通过欧几里德距离或向量间夹角来度量。根
据经验x一般取45。KNN是一种懒散的方法,即它没有学习过程,只是存放所有的训练例,
直到接到未知文本的时候才建立分类。ON的训练过程较快,而且可以随时添加或更新训练
例来调整。但它分类的开销会很大,因为需要很大的空间来保存训练例,而且分类效率很差。
有看法认为在小数据集上KNN的表现优异。
(6) SVM方法
SVM方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的
样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意
样本的能力)之间寻求最佳折中,以期获得较好的综合能力。SVM专门针对有限样本,其目
标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值(KNN和Naive
Bayes方法基于样本数趋于无穷大),从理论上说,SVM得到的将是全局最优点,从而解决
了在神经网络方法中无法避免的局部极值问题。此外,SVM将实际问题通过非线性变换转
换到高维的特征空间,在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,
特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样
本维数无关。
5、网页分类方法
一般来说,网页中对于分类有作用的部分首先是核心文本,即网页中关于网页内容的文本部
分。其次是结构信息和超链接信息,再其次是多媒体信息。多媒体信息的识别涉及图像检索、
语音识别等技术,且目前没有较好的结果,因此很少被考虑。我们进行网页分类的基本思路
是:
(1 ) 利用自行研制的网页解析器分离出目标网页的核心纯文本。
(2 ) 利用自行研制的分类系统TCS对目标网页的核心纯文本部分进行分词、特征提取等操
作,并产生目标网页的初始特征向量。
(3) 根据特征向量进行分类,确定目标网页的类别。
通常采用以下五种标准在不同的方面来评价一个分类器: (1) 精 度 (precision) (2)查全率
(recall) (3) F标准综合了精度和查全率,将两者赋予同样的重要性来考虑,即 ,其中r代表
查全率,p代表精度。这三 个 标 准都只用于分类器在单个类别上分类准确度的评价。(4)
宏观平均值(macro-averaged score) (5)微观平均值(micro-averaged score)。
Web 结构挖掘:
整个Web 空间中,有用知识不仅包含在Web页面内容中, 也包含在Web 页间超链接结构与
Web 页面结构之中。挖掘Web 结构的目的是发现页面的结构和Web 间的结构,在此基础上
对页面进行分类和聚类,从而找到权威页面,这种方法可以用来改进搜索引擎。
在搜索引擎中存贮了数以亿计的页面,很容易得到它们的链接结构。需要做到的是寻找一种
好的利用链接结构来评价页面重要性的方法。Page Rank 的基本思想是: 一个页面被多次引
用,则这个页面很可能是重要的;一个页面尽管没有被多次引用,但被一个重要页面引用,该页
面也可能是很重要的;一个页面的重要性被均分并被传递到它所引用的页面。在Page Rank
方法中,Page Rank被定义为: 设u为一个Web页。Fu为所有的u指向的页面的集合,Bu
为所有的指向u的页面的集合。设Nu={Fu}为从u发出的链接的个数,C(C1)为一个归一化
的因子(因此所有页面的总的Page Rank为一个常数),那么u页面的Page Rank被定义为(简
化的版本): 即一 个 页 面的PageRank被分配到所有它所指向的页面:每一个页面求和所有
指向它的链接所带来的PageRank得到它的新的PageRank。该公式是一个递归公式,在计算
时可以从任何一个页面开始,反复计算直到其收敛。对于 搜 索 引擎的键值搜索结果来说,
PageRank是一个好的评价结果的方法,查询的结果可以按照PageRank从大到小依次排列。
从 we b结 构挖掘的现状来看,纯粹的网络结构挖掘研究很少,多数是和其它web挖掘形
式结合起来。主要的研究集中在网络虚拟视图生成与网络导航、信息分类与索引结构重组、
文本分类、文本重要性确定等几个方面。
关键页/ 权威页(Hub/ Authority) 方法
页面的超链接关系十分复杂, 例如: 有的链接是为了导航, 因此不能简单认为超链接即是引
用关系; 此外由于商业的需要,很少有页面会把其竞争对手的页面作为链接。正是由于超链接
结构中存在着以上的缺陷, 出现了关键页/ 权威页方法。关键页/ 权威页方法的思想是: Web
上存在着一种重要的页面。所谓关键页指的是自身不一定为多个页面所链接, 但是它的页面
上存在着就某个专业领域而言最重要的站点链接。对于这种关键页, 它起到了隐含说明其他
Web文档页面重要性的作用。一个权威页应当是被多个关键页所链接的, 而一个关键页应当
包含很多权威页的链接。将关键页与权威页的这种联系按照算法计算出来, 就是关键页/ 权
威页方法的主要思想。
HITS和Page Rank、以及在链接结构中增加了Web内容信息的HITS改进算法等,主要用
于模拟Web站点的拓扑结构,计算Web页面的等级和Web页面之间的关联度,典型的例子
是Clever System和Google.
Web 使用挖掘:
Web 使用挖掘又叫Web 使用记录挖掘,是指通过挖掘Web 日志记录来发现用户访问Web
页面的模式。可以通过分析和研究Web 日志记录中的规律,来识别电子商务的潜在客户;可
以用基于扩展有向树模型来识别用户浏览模式,从而进行Web 日志挖掘;可以根据用户访问
Web 的记录挖掘用户的兴趣关联规则,存放在兴趣关联知识库中,作为对用户行为进行预测
的依据,从而为用户预取一些Web 页面,加快用户获取页面的速度。Web 日志挖掘过程一般分为3 个阶段: 预处理阶段、挖掘算法实施阶段、模式分析阶段。Web 服务器日志记录了
用户访问本站点的信息,其中包括IP 地址、请求时间、方法、被请求文件的URL 、返回码、
传输字节数、引用页的URL 和代理等信息。这些信息中有的对Web 挖掘并没有作用,因此
要进
行数据预处理。预处理包括数据净化、用户识别、事务识别等过程。通过对Web 日志预处
理后,就可以根据具体的分析需求选择访问模式发现的技术,如路径分析、关联分析、时序模
式识别以及分类和聚类技术等。模式挖掘出来以后还要进行分析,使之得到很好的利用。
常用有两种方法发现用户使用记录信息。一种方法是通过对日志文件进行分析, 包含两种方
式, 一是访问前先进行预处理, 即将日志数据映射为关系表并采用相应的数据挖掘技术, 如
关联规则或聚类技术来访问日志数据, 二是对日志数据进行直接访问以获取用户的导航信
息; 另一种是通过对用户点击事件的搜集和分析发现用户导航行为。从研究目标的角度看,
已有的基于Web 服务器日志数据的研究大致可以分为3 类: ①以分析系统性能为目标; ②
以改进系统设计为目标; ③以理解用户意图为目标。由于各目标针对的功能不同, 采取的主
要技术也不同。用户使用记录的挖掘通常要经过下面3 个步骤: ①数据预处理阶段。这是使
用记录信息挖掘最关键的阶段, 数据预处理包括: 关于用户使用记录的预处理、关于内容预
处理和结构的预处理; ②模式识别阶段。该阶段采用的方法包括: 统计法、机器学习和模式
识别等方法。实现算法可以是: 统计分析、聚类、分类、关联规则、序列模式识别等; ③模
式分析阶段。该阶段的任务是从上一阶段收集的数据集中过滤掉不感兴趣和无关联的数据及
模式。具体的实现方法要依具体采用Web 挖掘技术而定,通常采用的方法有两种: 一种采用
SQL 查询语句进行分析; 另外一种将数据导人多维数据立方体中, 而后利用OLA P 工具进
行分析并提供可视化的结构输出。对挖掘用户使用记录的研究早期多采用的是统计的方法,
当用户通过浏览器对Web 站点进行访问时, 建立统计模型对用户访问模式进行多种简单的
统计, 如频繁访问页、单位事件访问数、访问数据量随时间分布图等。早期使用的方法为以
广度优先算法为主的统计模型, 还有一种启发式的HPG(hypertext probabilistic grammar) 模
型用于用户导航行为的发现, 它也是一种基于统计的方法, 由于HPG 模型与k 阶马尔可夫
模型相当, 所以近来也有人提出用马尔可夫模型挖掘用户使用记录。
Web日志的挖掘的方法可以分为 (1)以JiaWei Han为代表的基于数据立方体(data cube)的
方法:将Web 日志保存为数据立方体,然后在其上进行数据挖掘和OLAP操作;(2)以
Ming-Syan Chen为代表的基于Web 事物的方法:他们首先提出了最大向前引用序列(MFR)
的概念,用MFR将用户会话分割成一系列的的事务,然后采用与关联规则相似的方法挖掘
频繁浏览路径。
Web 行为挖掘在电子商务中得到了广泛的应用, 在对事务进行了划分后, 就可以根据具体
的分析需求选择访问模式发现的技术(路径分析、关联、规则挖掘、时序模式以及聚类和分
类技术等)
Web 使用挖掘中的模式分析,主要是为了在模式发现算法找到的模式集合中发现有趣模式。
开发各种Web 分析技术和工具,可辅助分析人员加深理解并使各种挖掘方法得到的模式获
得充分利用。如Webwiz (pitkow) 系统可将www 的访问模式可视化;Webminer则采用类SQL
语言的知识查询机制;另外也可以利用存储Web 使用数据的数据仓库,采用OLAP 方法发现数据中的特定模式。
6、Web 数据挖掘的四个步骤:
1、 查找资源: 任务是从目标W e b文档中得到数据。 2、 信息选择和预处理: 任务是从取
得的W e b 资源中剔除无用信息和将信息进行必要的整理。3 、模式发现: 自动进行模式发
现。可以在同一个站点内部或在多个站点之间进行。4、模式分析: 验证、解释上一步骤产
生的模式。
7、Web 挖掘在Internet 上有非常广泛的应用,比较常见的有:
(1) 帮助寻找用户感兴趣的新闻或其他信息以在Web 站点中提供个性化服务,吸引更多用
户。
(2) 在搜索引擎上对文档进行自动分类从而降低在搜索引擎上为组织整理Internet 文档所需
消耗的人力资源,也可以对Web 页面进行排序,改进搜索引擎。
(3) Web 日志挖掘在电子商务领域有很广阔的应用前景,如发现顾客的购买习惯和浏览兴趣
所在,有针对性调整销售模式,提高业务量。
8、通常Web挖掘可以分为3个子任务:资源发现、信息提取、概括。
·资源发现:是指从Web上搜索可用的信息;
·信息提取:是从已经发现的资源中提取出有用的信息。对于文本信息而言,不仅要考虑文
本内容,而且也要考虑文本的结构;
·概括:是对Web信息自学习的过程,通过学习抽取一定的规则。
一般来说,Web挖掘的数据来源途径有两个:搜索引擎的结果集和Web上的在线信息。这
两种方式各有所长,需要视具体的应用而定。目前,已经有几种资源发现模型广泛应用于
Internet上:目录/浏览模型(WAIS and Gopher)、检索模型(Archie and AltaVista)、超立方体
(Yahoo and Excite)。许多资源发现工具大都采用了基于Robot的检索模型,这种方法扫描
Web上的所有文档,并建立索引,但它同时也将一些不相关的信息和过时的信息包含进来。
9、Web挖掘的发展方向:
目前,在国内外Web 挖掘的研究处于刚起步阶段,是前沿性的研究领域。将来几个非常有
用的研究方向是:
(1)Web 数据挖掘中内在机理的研究;
(2)Web 知识库(模式库)的动态维护、更新,各种知识和模式的融合、提升,以及知识
的评价综合方法;
(3)半结构、非结构化的文本数据、图形图像数据、多媒体数据的高效挖掘算法;
(4)Web数据挖掘算法在海量数据挖掘时的适应性和时效性;
(5)基于Web挖掘的智能搜索引擎的研究;
(6)智能站点服务个性化和性能最优化的研究;
(7)关联规则和序列模式在构造自组织站点的研究;
(8)分类在电子商务市场智能提取中的研究。
10、研究意义和方向:
路径模式挖掘
在Web中,文档通过超链连接便于用户浏览,用户为寻找信息经常通过超链从一个页面跳
到另一个页面。捕捉用户浏览路径称为Path analysis。理解用户浏览路径有助于改进系统设
计,而且有助于作出更好的市场决策,例如在适当的页面出增加广告.
Web中的智能查询
数字 时代 的图书馆并不是一个有组织的信息仓库,而更象一个又一个杂乱无章的信息仓
库,Web中的智能查询包括以下三个方面:1)资源发现:重点是自动生成可查找的索引。2)信
息抽取:发现了资源后,下一个任务就是进行信息的自动抽取。3)信息归纳:利用分类技术可
自动组织和管理数据,也可以发现用户感兴趣的模式。
Web智能工具
We b上 的 用户需要借助与软件系统来抽取、定位和管理Web文档,才能跟上信息的改变
速度。这种软件系统叫做Web工具.现有的Web工具缺乏识别和使用深层语义的能力,查询
语言描述能力有限。新一代 的 智能Web工具,利用智能Agent帮助用户发现新的信息。
它可以自动地获取用户的兴趣主题,发现用户的浏览模式和信息资源的修改模式。能更有效地利用网络资源,将多个用户的查询要求聚成组,减少查询次数。将抽取的文档及其全文索
引保存在数据库中,并发现各种有用的模式。
提高网络响应速度
传统 解 决 网络响应速度慢的途径,一般都基于客户端:如优化传输,减少阻塞;根据预测,
预先传输某些页面。在服务器端利用关联规则挖掘,不仅可以提高网络的响应速度而且可以
有效地调度网络代理的缓存。当用户浏览某个页面时,网络代理可根据关联规则预先下载与
该页面相关联的页面,即用户很可能访问到的页面,从而提高网络的响应速度,因为关联规
则是基于统计规律的,反映了大多数用户的兴趣。
11、基于Web挖掘的个性化技术的发展
(1) 与人工智能技术的结合
个性化系统领域的许多问题最终都可归结到机器学习、知识发现等问题上。用户建模过程用
通常都应用到代理和多代理技术。因此人工智能技术与Web挖掘技术的结合将会促进Web
个性化系统的飞速发展。
(2) 与交互式多媒体Web技术的结合
随着下一代Internet技术的飞速发展与应用,未来的Web的将是多媒体的世界。Web个性化
技术和Web多媒体系统结合出现了交互式个性化多媒体Web系统。支持海量多媒体数据流
的内容挖掘将成为Web挖掘技术的基本功能之一。由于这种基于内容的交互式个性化多媒
体Web系统更能满足用户需要,因此也将成为Web个性化系统的发展方向之一。
(3) 与数据库等技术的结合
12、数据挖掘和知识发现的发展方向:
1、挖掘算法的效率和可扩放性。目前数据库数据量大,维数高,使得数据挖掘的搜索空间
增大,发现知识的盲目性提高。如何充分利用领域的知识,剔除与发现任务无关的数据,有
效地降低问题的维数,设计出高效率的知识发现算法是下一步发展的重点。
2、数据的时序性。在应用领域的数据库中,数据在不断地更新,随着时间的推移,原先发
现的知识将不再有用,我们需要随时间逐步修正发现模式来指导新的发现过程。
3、和其它系统的集成。知识发现系统应该是数据库、知识库、专家系统、决策支持系统、
可视化工具、网络等多相技术集成的系统。
4、交互性。可以利用贝叶斯确定数据的可能性及其分布来利用以前的知识,再就是利用演
绎数据库本身的演绎能力发现知识,并用于指导知识发现的过程。
5、发现模式的精炼。可以利用领域知识进一步提炼发现模式,从中提取有用的知识。
6、互联网上知识的发现。WWW正日益普及,从中可以找到很多新的知识,已有一些资源
发现工具来发现含有关键字的文本,但对在WWW上发现知识的研究不多。加拿大的HAN
等人提出利用多层次结构化的方法,通过对原始数据的一般化,构造出多层次的数据库。例
如可将WWW上的图象描述而不是图像本身存储在高层数据库中。现在的问题是如何从复
杂的数据(例如多媒体数据)中提取有用的信息,对多层数据库的维护,如何处理数据的异类
性和自主性等等。
13、文本挖掘面临许多新的研究课题:
( 1) 文本挖掘算法的可扩展性问题Internet 的发展, 电子商务和数字图书馆的兴起和广泛应
用, 永久存储设备价格的不断降低, 所有这些都使得各单位储存的文本信息规模空前庞大。
要对如此之大的文本集合进行处理, 必须有快速高效的文本挖掘算法。
( 2) 文本表示文本挖掘处理的是自然语言表示的文本, 是无结构或半结构化数据, 缺乏计算
机可理解的含义, 在进行文本挖掘之前,需要对文本进行预处理及特征提取, 将其表示为计
算机可读的一种中间形式。目前, 虽然自然语言处理领域的研究已取得较大进展, 但还没有
一种能够完全表示文本语义的中间形式。对于不同的挖掘目的, 需要使用不同复杂度的中间
表示形式。对于细粒度的、领域特定的知识发现任务, 需要进行语义分析, 以得到足够丰富
的表示, 抓住文本中对象或概念之间的关系。但是语义分析计算量大, 如何更快速地进行语
义分析并且对于大文本集合具有可扩展性是一个挑战性的问题。
( 3) 跨语言问题由于自然语言的多样性, 各种语言各有其特点,在一种语言中有效的文本挖
掘功能却很可能不适用于其它语言, 尤其是印欧语系语言与汉语之间。并且随着经济的全球
化, 待处理的文本集合中可能存在多种语言写成的文本, 因此, 文本挖掘功能要考虑到多种
语言之间的语义转换。
( 4) 算法的选择面对多种多样的文本挖掘算法, 不同算法各有其特点, 如何从中选择一个合
适的算法是一个尚待研究的问题。因为作为一般用户来说, 他们很难搞懂每个算法的原理和
要求。
( 5) 算法运行中参数的设定很多算法运行时需要用户设定参数, 有些参数的含义较难理解,
因而也很难正确设定。如何让算法自动地选择相对较好的参数值, 并且在算法运行的过程中
自行调节参数的取值, 是很多算法能否被广大使用的一个关键问题。
( 6) 模式的理解和可视化显示文本挖掘算法所发现的知识模式形式多样。提高这些模式的可
理解性也是研究者们不得不面对的问题。提高可理解性的解决方法通常包括以图形方式显示
结果, 提供相对少量的规则, 或者生成自然语言以及利用可视化技术等。而目前的文本挖掘系统, 其面对的用户大多是有经验的专家, 一般用户很难使用。
( 7) 领域的知识集成当前的文本挖掘系统大都未采用领域知识。领域知识很有用, 它可以提
高文本分析效率, 有助于取得更紧凑的表示形式等, 因此, 可以考虑把领域知识集成到文本
挖掘系统中。
( 8) 中文文本分词技术在印欧语系语言中, 词与词之间有空格作为固定的分隔符, 因此很容
易进行分词。而在中文中, 词与词之间没有分隔符, 一个句子是由一串连续的汉字组成, 加
之汉语中的词具有不同的长度, 相同的字可出现在许多不同的词中, 还有许多词由单个字组
成, 这使得对中文文本进行正确分词面临较多挑战。
尽管文本挖掘领域还存在许多亟待解决的问题, 但是在需求的强烈推动下, 许多计算机厂商
纷纷推出文本挖掘软件, 典型的应用领域包括将文本挖掘应用于网站管理, 信息分流和过滤;
应用于市场管理,质量管理和顾客关系管理以及利用文本挖掘技术发现的知识引导投资的方
向, 预测股票行情等。这些成功的案例都已经给许多人带来了可观的经济利润。
14、搜索结果处理
对搜索引擎返回的结果进行挖掘可提供给用户更为准确的查询结果。如WebSQL 系统访问
搜索引擎获取文档,并从文档内部采集URL 标题、内容类型、内容长度、修改日期及链接等
信息。而类SQL声明式语言则提出了从搜索结果中获取相关文档的能力。
基于加权统计的Web搜索结果挖掘实现智能元搜索引擎的结果去杂和排序。
个性化服务系统根据其所采用的信息推荐技术可以分为两种:基于规则的系统和信息过滤系
统。信息过滤系统又可分为基于内容过滤的系统和协作过滤系统。基于规则的系统允许系统
管理员根据用户的静态特征和动态属性来制定规则,一个规则本质上是一个If-Then语句,
规则决定了在不同的情况下如何提供不同的服务。基于规则的系统其优点是简单、直接,缺
点是规则质量很难保证,而且不能动态更新,此外,随着规则的数量增多,系统将变得越来
越难以管理。基于内容过滤的系统利用资源与用户兴趣的相似性来过滤信息。基于内容过滤
的系统其优点是简单、有效,缺点是难以区分资源内容的品质和风格,而且不能为用户发现
新的感兴趣的资源,只能发现和用户己有兴趣相似的资源。协作过滤系统利用用户之间的相
似性来过滤信息,基于协作过滤系统的优点是能为用户发现新的感兴趣的信息,缺点是存在
两个很难解决的问题,一个是稀疏性,亦即在系统使用初期,由于系统资源还未获得足够多
的评价,系统很难利用这些评价来发现相似的用户。另一个是可扩展性,亦即随着系统用户
和资源的增多,系统的性能会越来越低。还有一些个性化服务系统同时采用了基于内容过滤
和协作过滤这两种技术结合这两种过滤技术可以克服各自的一些缺点,为了克服协作过滤的
稀疏性问题,可以利用用户浏览过的资源内容预期用户对其他资源的评价,这样可以增加资
源评价的密度,利用这些评价再进行协作过滤,从而提高协作过滤的性能。
网页推荐算法
假定 网页集为I={},当前滑动窗口W={pl,p2,... pm, |W|=m。从Web日志中挖掘的关联规则
集为R={X=>Y|X,Y属于I且|Y|=1},假设客户本次访问的网页序列为<pl,..., pn>,其中
pi是一个URL,任意两个URL都互不相同。设挖掘出的关联规则集为R={X->Y, s},活动
窗口的大小为s,活动窗口为:W=<pm,?, pn >,其中(n-m)=s ,那么推荐算法的原理为:从R
中查找这样的规则:规则的前端与w匹配的最好,然后将规则的后端推荐给客户。具体算法
如下:
三、相关应用论文
Web 挖掘及其在竞争情报系统的应用
介绍了Web 挖掘的分类、特点和实现技术, 并对Web 挖掘在竞争情报系统中的应用进行了
阐述。
Web 挖掘技术在电子商务中的应用研究
基于国内外最新研究成果对电子商务中应用的Web 挖掘技术进行了研究。对于个性化电子
商务网站中难以发现用户行为特征问题,给出了基于Web 日志的客户群体聚类算法及Web
页面聚类算法。利用这些Web 挖掘技术可有效挖掘用户个性特征,从而指导电子商务网站资
源的组织和分配。电子商务中利用Web 日志的聚类算法: 客户群体的模糊聚类算法, K-Paths
聚类方法,客户群体聚类的Hamming 距离算法,神经网络方法,基于模糊理论的Web 页面
聚类算法,Web 页面聚类的Hamming 距离算法,
Web 挖掘技术在搜索引擎中的应用
对于搜索引擎而言, 通过借鉴Web 挖掘技术, 可以提高查准率与查全率, 改善检索结果的
组织, 增强检索用户的模式研究, 从而使得检索效率得到改善。
Web挖掘系统的设计与实现
介绍了Web挖掘理论,包括Web挖掘定义、Web挖掘任务、Web挖掘分类3个方面,并简
单介绍了实现Web文本挖掘系统WTMiner (Web Text Miner)的几个关键技术:分词,特征提
取,分类器的设计。在分词中采用了支持首字Hash和二分查找从而提高了分词速度,分类
器的设计中考虑到SVM的训练算法速度慢的缺点,用近邻法以减少训练样本集中样本的数
量,从而大大提高了算法速度。
Web 挖掘在网络营销中的应用研究
阐述了网络营销的特点和Web 挖掘的概念,并探讨了如何将Web 挖掘技术应用于网络营销,
介绍了一种客户群体和Web 页面的模糊聚类算法。
Web 文本数据挖掘关键技术及其在网络检索中的应用
在分析Web 文本信息特征的基础上,揭示了Web 文本数据挖掘的目标样本的特征提取、分
词处理与Web 文本分类等关键技术,以Google 为例讨论了该技术在网络信息检索中的应
用。
电子商务公共服务平台下的Web挖掘系统研究
针对我国电子商务的发展现状,将数据挖掘技术应用到提高电子商务公共服务平台的服务质
量上来,设计了电子商务公共服务平台下的Web挖掘系统,并提出了系统的评价指标体系,
为电子商务公共服务平台和我国电子商务的发展提供了一种新的思路和方法。研究了电子商
务公共服务平台下的Web挖掘系统中点击流预处理及利用XML解决电子商务异构数据源集
成的问题。
多关系数据挖掘研究综述
多关系数据挖掘是近年来快速发展的重要的数据挖掘领域之一。传统的数据挖掘方法只能完
成单一关系中的模式发现,多关系数据挖掘能够从复杂结构化数据中发现涉及多个关系的复
杂模式。该文综述了多关系数据挖掘的研究状况。首先分析了多关系数据挖掘领域发生的原
因和背景,其次总结了多关系数据挖掘研究的一般方法,然后介绍、分析了最具代表性的多
关系数据挖掘算法。最后总结了多关系数据挖掘将来发展需重点解决的问题和面临的挑战。
分词技术研究及其在Web文本挖掘中的应用
本文阐述了汉语自动分词技术在中文Web文本挖掘中的应用,对有关理论进行了论述,讨
论了Web文本挖掘系统的结构和技术.本文的工作集中在以下几点:
(1 )研究的重点在于中文关键信息提取,其中的难点就是中文自动分词。本文重点讨论的算
法是基于自动建立词库的最佳匹配方法来进行中文分词,同时采用基于改进型马尔可夫N
元语言模型的统计处理方法来处理分词中出现的歧义问题,从而提高精度。
(2 )基于特定的分词系统,设计了相应的分词词典,该分词词典支持词条首字快速查找算法,
并应用于Web挖掘系统中,分析结果表明,此分词方法在处理速度上,还是歧义处理上都
有较大提高。
(3 )在未登录词识别方面,引入决策树方法,使得未登录词识别能力有一定提高。
(4 )在分词的切分排歧方面,我们采取了一种基于N一最短路径的策略。在分词早期阶段召
回N个最佳结果作为候选集,目的是覆盖尽可能多的歧义字段,最终的结果会在完成识别之后从N个最有潜力的候选结果中选优得到。
(5 )针对其他算法对系统资源占用比较大的问题,采取了改进分词算法中用到的数据结构,
精简字典文件等方法。收效最明显的做法是:将程序运行赛程所需要的各种数据文件建成一
个索引文件,大大节省了程序运行时所需内存空间, 并且大大提高了分词处理速度。
基于Web使用挖掘的个性化服务系统
个性化服务系统是一种由多种WEB挖掘技术构成的基于用户使用的站点个性化系统。该系
统使用事务聚类、使用聚类和关联规则技术等数据挖掘技术分析用户访问模式,并结合用户
当前访问情况提供实时化个性服务。实验结果说明,个性化服务系统具有较好的性能。
基于Web挖掘的智能门户搜索引擎的研究
搜索引擎是人们在Internet上快速获得信息的重要工具之一,但是由于中文自身的特点,使
得检索结果的准确性和相关性不是很高,将Web挖掘技术应用到搜索引擎领域,从而产生
智能搜索引擎,将会给用户提供一个高效、准确的Web检索工具。文章首先介绍了搜索引
擎的工作原理和相关概念,然后介绍了Web挖掘的定义、分类和应用。最后,详细讨论了
Web挖掘技术在智能搜索引擎的重要应用。
基于Web挖掘技术的信息检索系统设计与实现
详细介绍了一个基于Web文本挖掘技术的信息检索系统的设计与实现。基于Web文本挖掘
技术的信息检索技术融合了文本挖掘的思想,它将单一的资源发现或者单一的信息提取的传
统信息检索方法结合起来,从而达到在WWW发现资源并将其中的信息提取出来进行处理
的目的。
基于XML的Web数据挖掘技术
在经济全球化形势下,充分利用Web资源,从中挖掘出有决策意义的信息,对企业的自主
发展有着不可估量的意义。本文在分析了Web数据挖掘技术的难点后,根据互联网技术的
发展趋势,介绍了基于XML的Web数据挖掘技术并提出了一个基于XML的评判信息数据
挖掘系统的实现框架。
基于XML的个性化Web内容挖掘研究
基于XML的Web内客挖掘逐渐成为Web数据挖掘的重要研究课题。论文定义了用户模型,
通过三种途径建立用户模型。将XML和个性化技术应用到Web内容挖掘,设计了一个基于
XML的个性化Web内容挖掘系统(PWCMS).并讨论了PWCMS的关键技术及实现。实践
证明,将XML和个性化技术应用到Web内容挖掘是有效的。
基于数据挖掘的Web个性化信息推荐系统
基于数据挖掘的Web个性化信息推荐日益成为一个重要的研究课题。文章设计了一个基于数据挖掘的Web个性化信息推荐系统(WBIRS)在WBIRS中"提出了推荐策略"在推荐策略中
考虑针对不同类型的用户采用不同的推荐算法。根据用户是否有新颖信息的需求WBIRS采
用了两种推荐算法。
基于搜索引擎的知识发现
数据挖掘一般用于高度结构化的大型数据库,以发现其中所蕴含的知识。随着在线文本的增
多,其中所蕴含的知识也越来越丰富,但是,它们却难以被分析利用。因而。研究一套行之
有效的方案发现文本中所蕴含的知识是非常重要的,也是当前重要的研究课题。该文利用搜
索引擎GOOGLE获取相关Web 页面,进行过滤和清洗后得到相关文本,然后,进行文本聚类,
利用Episode进行事件识别和信息抽取,数据集成及数据挖掘,从而实现知识发现。最后给出
了原型系统,对知识发现进行实践检验,收到了很好的效果。
数据抽取及语义分析在Web 数据挖掘中的应用
把复杂的网络站点作为多个业务数据源,采用数据仓库及数据挖掘技术,从中抽取并净化数
据到挖掘数据库,从而将数据抽取及语义分析应用于Web 数据挖掘中。在此基础上又提出
了运用数据抽取进行数据结构转换并把语义分析技术应用到数据抽取的过程中的思想,使数
据提取更加准确。
文本挖掘中运用自组织特征映射算法分析中国人类工效学研究状况
文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识, 并且利用
这些知识更好地组织信息的过程。利用文本挖掘中的自组织特征映射( SOM)算法,对中国《人
类工效学》期刊数据库的大量文档进行聚类分析,得到当前国内人类工效学研究领域里的主
要研究类别、趋势,然后将聚类结果与国际人类工效学协会( IEA)公布的研究领域进行对比分
析。
现代远程教育个性化Web挖掘研究
从Web上异质的、非结构化的数据中发现有用的知识或者模式是目前数据挖掘研究中的一
个重要内容。Web挖掘就是从Web文档和Web活动中抽取感兴趣的、潜在的有用模式和隐
藏的信息。介绍了Web挖掘基本情况,在此基础上对基于Web的文本挖掘进行了分析研究,
给出了一个基于Web的文本挖掘的结构模型图。重点介绍了网页聚类算法,实现了远程教学
的按需学习和因材施教的要求。提出了一个基于Web挖掘的智能化、个性化的现代远程教
育系统结构模型。
一种基于自然语言理解的Web 挖掘模型
如何从网上海量信息中发现有用的知识, 满足使用者的需要是一个迫切需要研究的课题。但
现有的方法很难从W eb 上把大量非结构信息抽取到数据库中, 而且一般的搜索引擎也只是
简单地把关键字匹配作为查询依据, 命中率较低。文章提出了将自然语言理解技术与Web
数据挖掘相结合, 根据用户的需要定制个性化的Web 数据挖掘模型。初步试验结果表明该
方案是可行的, 能很好的满足用户需要, 且模型的通用性和适用性强。 Lucene 是一个基于 Java 的全文检索工具包,你可以利用它来为你的应用程序
加入索引和检索功能。Lucene 目前是著名的 Apache Jakarta 家族中的一个开
源项目,下面我们即将学习 Lucene 的索引机制以及它的索引文件的结构。
在这篇文章中,我们首先演示如何使用 Lucene 来索引文档,接着讨论如何提高
索引的性能。最后我们来分析 Lucene 的索引文件结构。需要记住的是,Lucene
不是一个完整的应用程序,而是一个信息检索包,它方便你为你的应用程序添加
索引和搜索功能。 架构概览
图一显示了 Lucene 的索引机制的架构。Lucene 使用各种解析器对各种不同类
型的文档进行解析。比如对于 HTML 文档,HTML 解析器会做一些预处理的工作,
比如过滤文档中的 HTML 标签等等。HTML 解析器的输出的是文本内容,接着
Lucene 的分词器(Analyzer)从文本内容中提取出索引项以及相关信息,比如索
引项的出现频率。接着 Lucene 的分词器把这些信息写到索引文件中。
Lucene
用Lucene索引文档
接下来我将一步一步的来演示如何利用 Lucene 为你的文档创建索引。只要你能
将要索引的文件转化成文本格式,Lucene 就能为你的文档建立索引。比如,如
果你想为 HTML 文档或者 PDF 文档建立索引,那么首先你就需要从这些文档中
提取出文本信息,然后把文本信息交给 Lucene 建立索引。我们接下来的例子用
来演示如何利用 Lucene 为后缀名为 txt 的文件建立索引。
1. 准备文本文件
首先把一些以 txt 为后缀名的文本文件放到一个目录中,比如在 Windows 平台
上,你可以放到 C:\\files_to_index 下面。
2. 创建索引
清单1是为我们所准备的文档创建索引的代码。
package lucene.index; import java.io.File; import java.io.FileReader; import java.io.Reader; import java.util.Date; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; /** * This class demonstrates the process of creating an index with Lucene * for text files in a directory. */ public class TextFileIndexer { public static void main(String[] args) throws Exception { //fileDir is the directory that contains the text files to be indexed File fileDir = new File("C:\\files_to_index "); //indexDir is the directory that hosts Lucene‘s index files File indexDir = new File("C:\\luceneIndex"); Analyzer luceneAnalyzer = new StandardAnalyzer(); IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true); File[] textFiles = fileDir.listFiles(); long startTime = new Date().getTime(); //Add documents to the index for (int i = 0; i < textFiles.length; i ++) { if (textFiles[i].isFile() >> textFiles[i].getName().endsWith(".txt")) { System.out.println("File " + textFiles[i].getCanonicalPath() + " is being indexed"); Reader textReader = new FileReader(textFiles[i]); Document document = new Document(); document.add(Field.Text("content",textReader)); document.add(Field.Text("path",textFiles[i].getPath())); indexWriter.addDocument(document); } } indexWriter.optimize(); indexWriter.close(); long endTime = new Date().getTime(); System.out.println("It took " +(endTime - startTime) + " milliseconds to create an index for the files in the directory " + fileDir.getPath()); } }
正如清单
1所示,你可以利用 Lucene 非常方便的为文档创建索引。接下来我们
分析一下清单1中的比较关键的代码,我们先从下面的一条语句开始看起。
Analyzer luceneAnalyzer = new StandardAnalyzer();
这条语句创建了类 StandardAnalyzer 的一个实例,这个类是用来从文本中提取
出索引项的。它只是抽象类 Analyzer 的其中一个实现。Analyzer 也有一些其
它的子类,比如 SimpleAnalyzer 等。
我们接着看另外一条语句:
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
这条语句创建了类
IndexWriter 的一个实例,该类也是 Lucene 索引机制里面
的一个关键类。这个类能创建一个新的索引或者打开一个已存在的索引并为该所
引添加文档。我们注意到该类的构造函数接受三个参数,第一个参数指定了存储
索引文件的路径。第二个参数指定了在索引过程中使用什么样的分词器。最后一
个参数是个布尔变量,如果值为真,那么就表示要创建一个新的索引,如果值为
假,就表示打开一个已经存在的索引。
接下来的代码演示了如何添加一个文档到索引文件中。
1 Document document = new Document(); 2 3 document.add(Field.Text("content",textReader)); 4 document.add(Field.Text("path",textFiles[i].getPath())); 5 indexWriter.addDocument(document);
首先第一行创建了类
Document 的一个实例,它由一个或者多个的域(Field)组
成。你可以把这个类想象成代表了一个实际的文档,比如一个 HTML 页面,一个
PDF 文档,或者一个文本文件。而类 Document 中的域一般就是实际文档的一些
属性。比如对于一个 HTML 页面,它的域可能包括标题,内容,URL 等。我们可
以用不同类型的 Field 来控制文档的哪些内容应该索引,哪些内容应该存储。
如果想获取更多的关于 Lucene 的域的信息,可以参考 Lucene 的帮助文档。代
码的第二行和第三行为文档添加了两个域,每个域包含两个属性,分别是域的名
字和域的内容。在我们的例子中两个域的名字分别是"content"和"path"。分别
存储了我们需要索引的文本文件的内容和路径。最后一行把准备好的文档添加到
了索引当中。
当我们把文档添加到索引中后,不要忘记关闭索引,这样才保证 Lucene 把添加
的文档写回到硬盘上。下面的一句代码演示了如何关闭索引。 indexWriter.close();
利用清单1中的代码,你就可以成功的将文本文档添加到索引中去。接下来我们
看看对索引进行的另外一种重要的操作,从索引中删除文档。
从索引中删除文档
类IndexReader负责从一个已经存在的索引中删除文档,如清单2所示。
1 File indexDir = new File("C: 2 \\luceneIndex"); 3 IndexReader ir = IndexReader.open(indexDir); 4 ir.delete(1); 5 ir.delete(new Term("path","C:\\file_to_index\lucene.txt")); 6 ir.close();
在清单2中,
第二行用静态方法 IndexReader.open(indexDir) 初始化了类
IndexReader 的一个实例,这个方法的参数指定了索引的存储路径。类
IndexReader 提供了两种方法去删除一个文档,如程序中的第三行和第四行所
示。第三行利用文档的编号来删除文档。每个文档都有一个系统自动生成的编号。
第四行删除了路径为"C:\\file_to_index\lucene.txt"的文档。你可以通过指定
文件路径来方便的删除一个文档。值得注意的是虽然利用上述代码删除文档使得
该文档不能被检索到,但是并没有物理上删除该文档。Lucene 只是通过一个后
缀名为 .delete 的文件来标记哪些文档已经被删除。既然没有物理上删除,我
们可以方便的把这些标记为删除的文档恢复过来,如清单 3 所示,首先打开一
个索引,然后调用方法 ir.undeleteAll() 来完成恢复工作。
File indexDir = new File("C:\\luceneIndex"); IndexReader ir = IndexReader.open(indexDir); ir.undeleteAll(); ir.close();
你现在也许想知道如何物理上删除索引中的文档,方法也非常简单。清单 4 演
示了这个过程。
4
1 File indexDir = new File("C:\\luceneIndex"); 2 Analyzer luceneAnalyzer = new StandardAnalyzer(); 3 IndexWriter indexWriter = new 4 IndexWriter(indexDir,luceneAnalyzer,false); 5 indexWriter.optimize(); 6 indexWriter.close();
在清单4 中,第三行创建了类 IndexWriter 的一个实例,并且打开了一个已经
存在的索引。第 4 行对索引进行清理,清理过程中将把所有标记为删除的文档
物理删除。
Lucene 没有直接提供方法对文档进行更新,如果你需要更新一个文档,那么你
首先需要把这个文档从索引中删除,然后把新版本的文档加入到索引中去。
提高索引性能
利用 Lucene,在创建索引的工程中你可以充分利用机器的硬件资源来提高索引
的效率。当你需要索引大量的文件时,你会注意到索引过程的瓶颈是在往磁盘上
写索引文件的过程中。为了解决这个问题, Lucene 在内存中持有一块缓冲区。
但我们如何控制 Lucene 的缓冲区呢?幸运的是,Lucene 的类 IndexWriter 提
供了三个参数用来调整缓冲区的大小以及往磁盘上写索引文件的频率。
1.合并因子(mergeFactor)
这个参数决定了在 Lucene 的一个索引块中可以存放多少文档以及把磁盘上的
索引块合并成一个大的索引块的频率。比如,如果合并因子的值是 10,那么当
内存中的文档数达到 10 的时候所有的文档都必须写到磁盘上的一个新的索引
块中。并且,如果磁盘上的索引块的隔数达到 10 的话,这 10 个索引块会被合
并成一个新的索引块。这个参数的默认值是 10,如果需要索引的文档数非常多
的话这个值将是非常不合适的。对批处理的索引来讲,为这个参数赋一个比较大
的值会得到比较好的索引效果。
2.最小合并文档数
这个参数也会影响索引的性能。它决定了内存中的文档数至少达到多少才能将它
们写回磁盘。这个参数的默认值是10,如果你有足够的内存,那么将这个值尽
量设的比较大一些将会显著的提高索引性能。
3.最大合并文档数
这个参数决定了一个索引块中的最大的文档数。它的默认值是
Integer.MAX_VALUE,将这个参数设置为比较大的值可以提高索引效率和检索速
度,由于该参数的默认值是整型的最大值,所以我们一般不需要改动这个参数。
清单 5 列出了这个三个参数用法,清单 5 和清单 1 非常相似,除了清单 5 中
会设置刚才提到的三个参数。
通过这个例子,我们注意到在调整缓冲区的大小以及写磁盘的频率上面
Lucene
给我们提供了非常大的灵活性。现在我们来看一下代码中的关键语句。如下的代
码首先创建了类 IndexWriter 的一个实例,然后对它的三个参数进行赋值。 int mergeFactor = 10;
int minMergeDocs = 10;
int maxMergeDocs = Integer.MAX_VALUE;
IndexWriter indexWriter = new
IndexWriter(indexDir,luceneAnalyzer,true);
indexWriter.mergeFactor = mergeFactor;
indexWriter.minMergeDocs = minMergeDocs;
indexWriter.maxMergeDocs = maxMergeDocs; 下面我们来看一下这三个参数取不同的值对索引时间的影响,注意参数值的不同
和索引之间的关系。我们为这个实验准备了 10000 个测试文档。表 1 显示了测
试结果。
1 通过表
你可以清楚地看到三个参数对索引时间的影响。在实践中,你会经常
的改变合并因子和最小合并文档数的值来提高索引性能。只要你有足够大的内
存,你可以为合并因子和最小合并文档数这两个参数赋尽量大的值以提高索引效
率,另外我们一般无需更改最大合并文档数这个参数的值,因为系统已经默认将
它设置成了最大。
Lucene
索引文件结构分析
在分析 Lucene 的索引文件结构之前,我们先要理解反向索引(Inverted index)
这个概念,反向索引是一种以索引项为中心来组织文档的方式,每个索引项指向
一个文档序列,这个序列中的文档都包含该索引项。相反,在正向索引中,文档
占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。你可以利用
反向索引轻松的找到那些文档包含了特定的索引项。Lucene正是使用了反向索
引作为其基本的索引结构。
索引文件的逻辑视图
在Lucene 中有索引块的概念,每个索引块包含了一定数目的文档。我们能够对
单独的索引块进行检索。图 2 显示了 Lucene 索引结构的逻辑视图。索引块的
个数由索引的文档的总数以及每个索引块所能包含的最大文档数来决定。
2
/** * This class demonstrates how to improve the indexing performance * by adjusting the parameters provided by IndexWriter. */ public class AdvancedTextFileIndexer { public static void main(String[] args) throws Exception { //fileDir is the directory that contains the text files to be indexed File fileDir = new File("C:\\files_to_index"); //indexDir is the directory that hosts Lucene‘s index files File indexDir = new File("C:\\luceneIndex"); Analyzer luceneAnalyzer = new StandardAnalyzer(); File[] textFiles = fileDir.listFiles(); long startTime = new Date().getTime(); int mergeFactor = 10; int minMergeDocs = 10; int maxMergeDocs = Integer.MAX_VALUE; IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true); indexWriter.mergeFactor = mergeFactor; indexWriter.minMergeDocs = minMergeDocs; indexWriter.maxMergeDocs = maxMergeDocs; //Add documents to the index for (int i = 0; i < textFiles.length; i ++) { if (textFiles[i].isFile() >> textFiles[i].getName().endsWith(".txt")) { Reader textReader = new FileReader(textFiles[i]); Document document = new Document(); document.add(Field.Text("content",textReader)); document.add(Field.Keyword("path",textFiles[i].getPath())); indexWriter.addDocument(document); } } indexWriter.optimize(); indexWriter.close(); long endTime = new Date().getTime(); System.out.println("MergeFactor: " + indexWriter.mergeFactor); System.out.println("MinMergeDocs: " + indexWriter.minMergeDocs); System.out.println("MaxMergeDocs: " + indexWriter.maxMergeDocs); System.out.println("Document number: " + textFiles.length); System.out.println("Time consumed: " +(endTime - startTime) + " milliseconds"); } }
Lucene 中的关键索引文件
下面的部分将会分析Lucene中的主要的索引文件,可能分析有些索引文件的时
候没有包含文件的所有的字段,但不会影响到对索引文件的理解。
1.索引块文件
这个文件包含了索引中的索引块信息,这个文件包含了每个索引块的名字以及大
小等信息。表 2 显示了这个文件的结构信息。
2 .域信息文件
我们知道,索引中的文档由一个或者多个域组成,这个文件包含了每个索引块中
的域的信息。表 3 显示了这个文件的结构。
3 .索引项信息文件
这是索引文件里面最核心的一个文件,它存储了所有的索引项的值以及相关信
息,并且以索引项来排序。表 4 显示了这个文件的结构。
4.频率文件
这个文件包含了包含索引项的文档的列表,以及索引项在每个文档中出现的频率
信息。如果Lucene在索引项信息文件中发现有索引项和搜索词相匹配。那么
Lucene 就会在频率文件中找有哪些文件包含了该索引项。表5显示了这个文件
的一个大致的结构,并没有包含这个文件的所有字段。
5
5
.位置文件
这个文件包含了索引项在每个文档中出现的位置信息,你可以利用这些信息来参
与对索引结果的排序。表 6 显示了这个文件的结构
6
到目前为止我们介绍了
Lucene 中的主要的索引文件结构,希望能对你理解
Lucene 的物理的存储结构有所帮助。
总结
目前已经有非常多的知名的组织正在使用 Lucene,比如,Lucene 为 Eclipse 的
帮助系统,麻省理工学院的 OpenCourseWare 提供了搜索功能。通过阅读这篇文
章,希望你能对 Lucene 的索引机制有所了解,并且你会发现利用 Lucene 创建
索引是非常简单的事情。
Web挖掘技术