摘要:文本挖掘是对具有丰富语义的文本进行分析从而发现隐含的,令人感兴趣的,有潜在使用价值知识的过程,是数据挖掘的一个新兴主题。本文首先介绍数据挖掘的定义及其发展,进而叙述文本挖掘的含义,回顾国内外文本挖掘的研究现状,着重论述文本分类与文本聚类的一般过程并指出它们的区别之处。最后指出中文文本挖掘的特点,展望了今后的研究目标。
关键词:数据挖掘;文本挖掘; 文本分类;文本聚类
中***分类号:TP31文献标识码:A文章编号:1009-3044(2008)31-0792-02
Study and Research in Text Mining
HU Bing1, HU Dong-jun2, Ma Wen-chao3
(puter Department, Henan University, Kaifei 475004, China; 2.Luyi Mapu Centerschool, Zhoukou 477264, China)
Abstract: Text Mining is a new topic of Data Mining, and is process of extracting interesting knowledge form large linguistic semantic text collections. First, itintroduce the concept and developing of Data Mining. Then point out Text Mining and its status, Text classification and clustering are important in this. In the end , it shows the feature of Chinese text mining and highlighting the upcoming Challenges of text mining.
Key words: data mining; text mining; text classification; text clustering
1 引言
数据挖掘(Data Mining)(这一词由Usama Fayaadg,于1995年在加拿大蒙特利尔召开的第一届“知识发现和数据挖掘”国际学术会议上第一次提出)是一门很广泛的交叉学科,它汇聚了不同领域的研究者,尤其是数据库、人工智能、数理统计、可视化、并行计算等方面的学者和工程技术人员。
数据挖掘或数据库中的知识发现KDD(Knowledge Discovery in Databases)比较公认的定义是由William J Frawley , Gregory Piatetsky-Shapiro和Ussma M Fayyad等人提出的数据挖掘就是从大型数据库中提取出人们感兴趣的知识。这些知识是隐含的、先前未知的、对决策有潜在价值的,提取的知识表示为概念(Concepts)、规则(Rules)、规律(Regularities)、和模式(Patterns)等形式。随着数据挖掘研究的发展,数据挖掘的对象己远远超出了数据库的范围,数据源还可以是数据仓库、文本数据集合,数据集、文档或任意数据集合等。
互联网的普及和飞速发展,使Internet成为世界上最大的信息积聚地,但Internet积聚的信息不同与以往的数据挖掘源,其内容大多是半结构化或非结构化的文本。如何有效的对半结构化或非结构化的文本信息进行挖掘即文本挖掘已成为当今热门的研究方向。
2 文本挖掘
2.1 文本挖掘的定义
文本挖掘作为数据挖掘的一个新主题,引起了人们的极大兴趣,同时,它也是一个富于争议的研究方向,目前其定义尚无统一的结论,需要国内外学者开展更多的研究以便进行精确的定义。
一般来说,文本挖掘(Text Mining,TM)和文本数据库中的知识发现(Knowledge Discovery in Textual Database,简称KDT)被认为是具有相同含义的两个词,最早由Ronen Feldman等人提出[1]:The Process of extracting interesting Patterns from very large text collections for the purpose of discovering knowledge”
2.2 文本挖掘的研究状况
国外对于文本挖掘的研究开展较早,50年代末,H.P.Luhn在这一领域进行了开创性的研究,提出了词频统计思想用于自动分类。1960年,Maron[2]发表了关于自动分类的第一篇论文,随后,众多学者在这一领域进行了卓有成效的研究工作。研究主要有围绕文本的挖掘模型[3-4]、文本特征抽取与文本中间表示、文本挖掘算法(如关联规则抽取、语义关系挖掘、文本聚类与主题分析、趋势分析)、文本挖掘工具[5]等,其中[3]首次将KDD中的知识发现模型运用于KDT。
我国学术界正式引入文本挖掘的概念并开展针对中文的文本挖掘研究是从最近几年才开始的。从公开发表的有代表性的研究成果来看,目前我国文本挖掘研究还处在消化吸收国外相关的理论和技术与小规模实验阶段,还存在如下不足和问题:1)没有形成完整的适合中文信息处理的文本挖掘理论与技术框架。目前的中文文本挖掘研究只是在某些方面和某些狭窄的应用领域展开。在技术手段方面主要是借用国外针对英文语料的挖掘技术,没有针对汉语本身的特点,没有充分利用当前的中文信息处理与分析技术来构建针对中文文本的文本挖掘模型,限制了中文文本挖掘的进一步发展。2)中文文本的特征提取与表示大多数采用“词袋”法, “词袋”法即提取文本高频词构成特征向量来表达文本特征。这样忽略了词在文本(句子)中担当的语法和语义角色,同样也忽略了词与词之间的顺序,致使大量有用信息丢失。而且用“词袋”法处理真实中文文本数据时,特征向量的维数往往是高维的,这将使挖掘算法效率大大降低。3)知识挖掘的种类和深度有限,一般只是进行文本的分类、聚类或者信息抽取,而且针对开放语料的实验结果也不是很理想。
2.3 文本挖掘的一般过程
文本挖掘的主要处理过程是对大量文档集合的内容进行预处理、特征提取、结构分析、文本摘要、文本分类、文本聚类、关联分析等。***1给出了文本挖掘的一般处理过程。
在这里主要介绍文本分类与文本聚类:
文本分类是一种典型的有教师的机器学习问题,一般分为训练和分类两个阶段,具体过程如下:
(此文中文档的模型采用的是向量空间模型(V***)[6]模型,每个文档d被表示成一个范化特征向量:
V(d)=(t1,w1(d);…ti,wi(d);…tn,wn(d)),其中ti为词条项, wi(d)为ti在d中的权值。)
训练阶段:
1) 定义类别集合C={C1,…,Ci,…,Cm},这些类别可以是层次式的,也可以是并列式的;
2) 给出训练文档集合S={s1,…,sj,…, sn},每个训练文档 被标上所属的类别标识ci;
3) 统计S 中所有文档的特征向量V(sj),确定代表C中每个类别的特征向量V(ci);
分类阶段:
4) 对于测试文档集合T={d1,…,dk,…dr}中的每个待分类文档,计算其特征向量V(dk)与每个V(ci)之间的相似度sim(dk,ci);
5) 选取相似度最大的一个类别argmaxsim(dk,ci)作为dk的类别,其中ci∈C。
有时也可以为dk指定多个类别,只要dk与这些类别之间的相似度超过某个预定的阀值。如果与所有类别的相似度均低于阀值,那么通常将该文档放在一边,由用户来做最终决定。对于类别与预定义类别不匹配的文档而言,这是合理的,也是必须的。如果这种情况经常发生,则说明需要修改预定义类别。然后重新进行上述训练与分类过程。
文本聚类是一种典型的无教师的机器学习问题.目前的文本聚类方法大致可以分为以G-HAC等算法为代表的层次凝聚法[7]和以k-means等算法为代表的平面划分法[8]两种类型.
对于给定的文档集合D={d1,…,di,…,dn},层次凝聚法的具体过程如下:
1) 将D中的每个文档di看作是一个具有单个成员的簇ci={di},这些簇构成了D的一个聚类C={c1,…,ci,…,cn};
2) 计算C中每对簇(ci,cj)之间的相似度sim(dk,ci);
3) 选取具有最大相似度的簇对arg max(ci,cj),其中ci,cj∈C,并将ci 和cj合并为一个新的簇ck=cj∪ci,从而构成了D的一个新的聚类C'={c1,…,cn-1};
4) 重复上述步骤,直至剩下一个簇为止。
该过程构造出一棵生成树,其中包含了簇的层次信息,以及所有簇内和簇间的相似度。层次聚类方法是最为常用的聚类方法,它能够生成层次化的嵌套簇,且准确度较高。但是,在每次合并时,需要全局地比较所有簇之间的相似度,并选择出最佳的两个簇,运行速度较慢,不适合于大量文档的集合。
平面划分法与层次凝聚法的区别在于它将文档集合水平地分割为若干个簇,而不是生成层次化的嵌套簇。对于给定的文档集合D={d1,…,di ,…,dn},平面划分法的具体过程如下:
①确定要生成的簇的数目k;
②按照某种原则生成k个聚类中心作为聚类的种子S ={s1,…,sj,…,sk};
③对D中的每个文档di,依次计算它与各个种子sj的相似度sim(dk,ci);
④选取具有最大相似度的种子,arg max sim(ci,sj),其中,sj∈S,将di归入以sj为聚类中心的簇cj,从而得到D的一个聚类C ={c1,…,ck}。
⑤重复步骤②、③、④若干次,以得到较为稳定的聚类结果。
该方法的运行速度较快,但是必须事先确定 的取值,且种子选取的好坏对聚类结果有较大影响。
层次凝聚聚类和平面划分聚类各有所长,其中划分方法具有较高的执行效率,而层次聚类在算法上比较符合数据的特性。划分方法和层次方法的另外一个突出区别在于聚类前是否存在已知的类别信息:划分方法在聚类之前需要事先指定划分数k并确定初始划分;层次聚类则不需要初始化,其在预先不知道目标集合内包含多少类别的情况下,自发地将所有信息聚合成不同的类。能否结合两种聚类思想更有效的对文本聚类,还有待于进一步研究。
总之,文本聚类与分类的不同之处在于,聚类没有预先定义好的主题类别,它的目标是将文档集合分成若干个簇,要求同一簇内文档内容的相似度尽可能地大,而不同簇间的相似度尽可能地小。而文本分类是按照预先定义的主题类别,为文档集合中的每个文档确定一个类别。
3 展望
文本挖掘在国外已经取得显著的成果,中文文本挖掘虽然有所进步,但与国外文本挖掘相比,还有一定的差距。中文文本挖掘处理的是汉语文本,因此在进行文本挖掘方法时必须适应汉语重“意合”的特点,结合文本上下文来获取文本的完整“语义”,我们今后的研究目标是结合中文重语义的特点,利用文档中的频繁语义序列来为中文文档集聚类。
参考文献:
[1] Feldman, R.Dagan. KDT-Knowledge Discovery in Textual Databases[A]. In:Proceedings of the 1st International Conference on Knowledge Discovery and Data Mining,1995:112-117.
[2] Maron,M,E. et al..On relevance probabilistic indexing and information Retrieval[J]. Journal of the ACM,1960(7):216-244.
[3] Mothe J, Chrisment C, Dkaki T.Info.mining-use of the document dimensions to analyse interactively a document set [z]. European Colloquium on Information Retrieval Research,2001:6-20.
[4] Ghanem, ChortarasM C, Guo A, Rowe Y et al..A grid infrastructure for mixed bioinformatics data and text mining [J]. In: Computer Systems and Applications, 2005,34(1):116-130.
[5] Salton G, Wong A,Yang C S. A vector space model for automatic indexing[J]. Communications of the ACM,1975,18(5):613-620.
[6] Willet P. Recent trends in hierarchical document clustering: A critical review[J]. Information Processing and Management, 1988, 24:577-597.