文本挖掘
Introduction
简介
在现实世界中,可获取的大部信息是以文本形式存储在文本数据库中的,由来自各种数据源的大量文档组成,如新闻文档、研究论文、书籍、数字图书馆、电子邮件和Web页面。由于电子形式的文本信息飞速增涨,文本挖掘已经成为信息领域的研究热点。
文本数据库中存储的数据可能是高度非结构化的,如WWW上的网页。也可能是半结构化的,如e-mail消息和一些XML网页:而其它的则可能是良结构化的。良结构化文本数据的典型代表是图书馆数据库中的文档,这些文档可能包含结构字段,如标题、作者、出版日期、长度、分类等等,也可能包含大量非结构化文本成分,如摘要和内容。通常,具有较好结构的文本数据库可以使用关系数据库系统实现,而对非结构化的文本成分需要采用特殊的处理方法对其进行转化。
文本挖掘(Text Mining)是一个从非结构化文本信息中获取用户感兴趣或者有用的模式的过程。其中被普遍认可的文本挖掘定义如下:文本挖掘是指从大量文本数据中抽取事先未知的、可理解的、最终可用的知识的过程,同时运用这些知识更好地组织信息以便将来参考。
文本挖掘的主要用途是从原本未经处理的文本中提取出未知的知识,但是文本挖掘也是一项非常困难的工作,因为它必须处理那些本来就模糊而且非结构化的文本数据,所以它是一个多学科混杂的领域,涵盖了信息技术、文本分析、模式识别、统计学、数据可视化、数据库技术、机器学习以及数据挖掘等技术 。文本挖掘是从数据挖掘发展而来,因此其定义与我们熟知的数据挖掘定义相类似。但与传统的数据挖掘相比,文本挖掘有其独特之处,主要表现在:文档本身是半结构化或非结构化的,无确定形式并且缺乏机器可理解的语义;而数据挖掘的对象以数据库中的结构化数据为主,并利用关系表等存储结构来发现知识。因此,有些数据挖掘技术并不适用于文本挖掘,即使可用,也需要建立在对文本集预处理的基础之上。
文本挖掘是应用驱动的。它在商业智能、信息检索、生物信息处理等方面都有广泛的应用;例如,客户关系管理,自动邮件回复,垃圾邮件过滤,自动简历评审,搜索引擎等等。
基本步骤
有些人把文本挖掘视为另一常用术语文本知识发现(KDD)的同义词,而另一些人只是把文本挖掘视为文本知识发现过程的一个基本步骤。文本知识发现主要由以下步骤组成:
- 获取文本数据源
- 文本预处理
- 挖掘与分析
- 评估与可视化
本篇文章将在接下来的篇幅中,详细的介绍以上几个步骤。
获取文本数据源
各文档数据库,语料库,论文集
web网页,如通过爬虫抓取,RSS订阅
等
文本预处理
文本数据预处理
去标签,去停用词,分词,生成数据集
特征表达
常用表达模型
特征表达模型种类较多,大体可分为基于集合论的模型、基于代数论的模型和基于概率统计的模型。下面将分别介绍其中比较有代表性和常用的模型。
布尔模型
布尔模型(Bool model)。一个文档表示为文档中出现特征词的集合,也可以表示为一个特征空间上的向量,向量空间的每个分量的权值为0或1。
例
词条数据集 wordset = [‘love’, ‘have’, ‘dream’]
文档1: doc_1 = [‘I’, ‘have’, ‘a’, ‘dream’]
文档2: doc_2= [‘Cats’, ‘love’, ‘fish’]
那么文档1的布尔模型表达为vector_doc_1 = (0, 1, 0, 1),同理文档2的布尔模型表达为vector_doc_2 = (0, 1, 0, 0)
向量空间模型
向量空间模型(VSM:Vector Space Model) (或者 词组向量模型) 作为向量的标识符(比如索引),是一个用来表示文本文件的代数模型。如词频向量模型,TF/IDF权重模型。
例
词频向量模型
词条数据集 words = [‘love’, ‘have’, ‘dream’]
文档1: doc_1 = [‘I’, ‘have’, ‘a’, ‘dream’]
文档2: doc_2= [‘Cats’, ‘love’, ‘fish’]
那么文档1的布尔模型表达为vector_doc_1 = (0, 1, 0, 1),同理文档2的布尔模型表达为vector_doc_2 = (0, 1, 0, 0)
TF/IDF权重模型
Logistic回归模型
基本思想:为了求 P(R=1|Q,D),定义多个特征函数fi(Q,D),认为求 P(R=1|Q,D)是这些函数的组合。
通过训练集合拟合得到相应的系数,对于新的文档带入公式得到概率 P。
特征提取
开方检验
信息增益
前文提到过,除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征选择方法。信息增益(Kullback–Leibler divergence)又称information divergence,information gain,relative entropy 或者KLIC。但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而如何量化特征的重要性,就成了各种方法间最大的不同。开方检验中使用特征与类别间的关联性来进行这个量化,关联性越强,特征得分越高,该特征越应该被保留。
在信息增益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量。所谓信息量,就是熵。
假如有变量X,分别是x1,x2,……,xn,每一种取到的概率分别是P1,P2,……,Pn,,那么X的熵就定义为:
也就是说X可能的变化越多,X所携带的信息量越大,熵也就越大。对于文本分类或聚类而言,就是说文档属于哪个类别的变化越多,类别的信息量就越大。所以特征T给聚类C或分类C带来的信息增益为IG(T)=H(C)-H(C|T)。
H(C|T)包含两种情况:一种是特征T出现,标记为t,一种是特征T不出现,标记为t’。所以H(C|T)=P(t)H(C|t) + P(t’)H(C|t’),再由熵的计算公式便可推得特征与类别的信息增益公式。
信息增益最大的问题在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。
特征降维
主成分分析
主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。又称主分量分析。在很多情形,变量之间是有一定的相关关系的,当两个变量之间有一定相关关系时,可以解释为这两个变量反映某特征的信息有一定的重叠。PCA通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,将许多相关性较高的变量转化成彼此相互独立或不相关的变量,并使它们尽可能多地保留原始变量的信息。
线性判别分析
线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD)。LDA基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。
挖掘与分析
文本分类与聚类
信息抽取
关系抽取
关联分析
评估与可视化
评估
可视化
Conclusion
References
[1] Ronen Feldman and James Sanger, The Text Mining Handbook, Cambridge University Press.
[2] Kao Anne, Poteet, Steve R. (Editors), Natural Language Processing and Text Mining, Springer.