9.1文本挖掘技术
文本挖掘技术
[P1] 数据挖掘之前我们的例子都是各种采集的数据,其实作为数据源,有大量的文本一样包含了很多信息。我们这章就是主要介绍对于文本信息的挖掘。
[P2] 这章节我们分为 6个部分 来介绍文本挖掘技术。
[P3] 什么是文本挖掘。文本挖掘处理的是非结构化的文本信息,文本挖掘的主要任务是分析文本的内容特征,发现文本中的概念、文本之间的相互作用,为用户提供相关知识和信息。由于非结构化数据的特点,文本挖掘和数据库挖掘在目标上具有相似性,在技术实现上具有一定的差异。一个简单的例子,比如我们从一本小说里面,提取出来人物相互之间的联系,从而可以得出人物之间的关系图谱。
[P4] 文本挖掘的一般过程如图所示。第一步,文本准备,任务是对文本进行选择和净化等,用来确定文本信息源中用于进一步分析的文本。具体任务包括分词、句子和段落划分、信息过滤等。第二步,特征标引,任务是给出文本内容特征,通常由计算机系统自动选择一组主题词或关键词来作为文本的特征表示。第三步,特征集缩减,任务是从原始特征集中提取部分特征。第四步,知识模式提取,任务是发现文本中的不同实体、实体间概念关系以及文本中其他类型隐含知识的过程。第五步,知识模式评价,任务是从提取的知识模式集中筛选出用户感兴趣、有意义的知识模式。第六步,知识模式输出,任务是将挖掘出来的知识模式以多种方式提交给用户。
[P5] 文本挖掘作为数据挖掘的一个分支,可以采用数据挖掘的许多相同方法。但两者之间也存在差别,文本挖掘和数据挖掘的区别可以从研究对象、对象结构、目标和方法几个方面进行比较,如表中所示,从而看出,尽管文本挖掘是从数据挖掘发展而来的,但它并不意味着简单地将数据挖掘技术运用到大量文本集上就可以实现文本挖掘,还需要做很多准备工作。从表中大家可以看到,文本挖掘的方法和数据挖掘差异还是比较大的。
[P6] 中文的预处理技术主要包括分词、特征表示和特征提取。与数据库中的结构化数据相比,文本具有有限的结构,或者根本就没有结构。此外,文档的内容是人类所使用的自然语言,计算机很难处理其语义。文本信息源的这些特殊性使得数据预处理技术在文本挖掘中更加重要。数据预处理技术第一个就是分词技术。在对文档进行特征提取前,需要先进行文本信息的预处理,由于中文 词与词 之间没有像英文那样固有的分隔符,需要进行分词处理。目前主要有 基于词库的分词方法 和 无词典的分词方法 两种。基于词库的分词方法是按照一定的策略,将文本中的一部分可能被切成一个词的小段与一个词
典里面的词进行比较,若存在,则划分为一个词。根据采用的策略不同又分为正向最大匹配和逆向最大匹配等。
[P7] 例如,一个句子为 S=“我们是学生”,长度n=5。采用 正向最大匹配 的过程是:取S|=“我们
是学生”,在词典中未找到,去掉 S1 最后一个字得到 S1=“我们是学”,仍未找到,再去掉 S1 最后
一个字得到 S1=“我们是”,然后没有找到,去掉 S 最后一个字得到 S1=“我们”,这个时候我们终于在词典中找到了这个词。接下来,我们把剩下的部分继续分词,取 S2=“是学生”,在词典中未找到,去掉 S2 最后一个字得到 S2=“是学”,仍然没有找到,去掉 S2 最后一个字得到 S2= “是”,此时在词典中找到了。继续对剩下的部分处理,取 S3=“学生”,直接就在词典中找到了。所以 S 的分词结果是三个词 我们,是,学生。
[P8] 采用 反向最大匹配 的过程是。取 S1=“我们是学生”,在词典中未找到,去掉 S 第一个字得到 S1=“们是学生”,仍然找不到,再去掉 S 第一个字得到 S1=“是学生”,仍然找不到,继续去掉 S1 第一个字得到 S1=“学生”,此时在词典中找到了。接下来,对剩余的部分,取 S2=“我们是”,这个词在词典中没找到,继续去掉 S2 第一个字得到 S2=“们
是”,仍然找不到,继续去掉 S2 第一个字得到 S2=“是”,此时在词典中找到了。最后,取剩余的部分 S3=“学生”,这个词在词典中找到了。所以 S 的分词结果同样是三个词,我们,是,学生。基于词库的分词方法的特点是易于实现,设计简单,但分词的正确性很大程度上取决于所建的词库,对于歧义和未登录词的切分具有很大的困难。
[P9] 为了解决词典自身的问题,于是衍生出了另外一种分词的方法,就是基于无词典的分词。这种方法是基于词频的统计,将原文中任意前后紧邻的两个字作为一个词进行出现频率的统计,出现的次数越高,成为一个词的可能性也就越大,在频率超过某个预先设定的阀值时,就将其作为一个词进行索引。这种方法能够有效地抽取出未登录词。然而它也有一定的局限性,会经常抽出一些共现频率高,但并不是词的常用字组,如“有的”,“许多的”等。有的分词方法在分词之前先做一些预处理, 如过滤掉一 些平凡词如“在”、“了”“的”等、过滤掉一-些相对低频词、仅保留相对高频词等,从而提高分词速度。
[P10] 特征表示。文本特征是指关于文本的元数据,分为描述性特征, 如文本的名称、日期、大小、类型 等 和 语义性特征,如 文本的作者、机构、标题、内容 等。特征表示是指以一定特征项,如 词 或 描述 来代表文档,在文本挖掘时只需对这些特征项进行处理,从而实现对非结构化的文本处理。这是一个非结构化向结构化转换的处理步骤。特征表示的构造过程就是挖掘模型的构造过程。特征表示模型有多种,常用的有向量空间模型、 布尔逻辑型、概率型 以及 混合型 等。
[P11] 在向量空间模型中,一个文本集由若干文本组成,每个文本被表示为在一个高维词空间中的一个特征向量如课件中所示。
[P12] 有了前面的向量,我们接下来定义 词频 ,词频 是指一个词在文本中出现的频数,其定义为课件上的公式。其中,是词 ti,j 在文本 di 中出现的次数,Ni 是文本 di 中所有词出现的总数。显然,一个词的 tf 值越大,则对文本的贡献度越大。
[P13] 逆文本频度 idf 表示一个词在整个文本集中的分布情况,其定义见课件上的公式。
[P14] tf 乘以 idf 是一种常用的词权重计算方法,有多种形式。如果一个词 或 短语 在一篇文章中出现的词频 tf 高,并且在其他文章中很少出现,则认为该 词 或 短语 具有较好的类别区分能力,适合用来分类。
tf 乘以 idf 结合了两者,从词出现在文本中的频率和在文本集中的分布情况两方面来衡量词的重要性。
[P15] 第三,特征提取。 用向量空间模型,得到的特征向量的维数,往往会达到数十万维,如此高维的特征对即将进行的分类学习未必全是重要、有益的,而且高维的特征 会大大增加机器的学习时间,这便是特征提取所要完成的工作。特征提取算法一般是构造一个评价函数,对每个特征进行评估,然后把特征按分值高低排队,预定数目分数最高的特征被选取。在文本处理中,常用的评估函数有信息增益、期望交叉熵、互信息、文本证据权 和 词频 等。通过将文本转换为特征向量形式,并经特征提取以后,便可以进行挖掘分析了。常用的文本挖掘分析技术有文本结构分析、文本分类、文本聚类、文本摘要、文本关联分析、分布分析和趋势预测等。
[P16] 文本结构分析的目的是为了更好地理解文本的主题思想,了解文本所表达的内容以及采用的方式。最终结果是建立文本的逻辑结构,即文本结构树。
[P17] 如图所示是文章的形式结构图,根结点是文章层,依次为节层、段落层、句子层和词层。可以看出,文章形式结构单元包括 文章、节、段落、句子、词。它们按照文本的内在逻辑结构安排各个组成单元构成层次关系,由词构成句子,由句子构成段落,由段落构成节,由节构成文章。对于一个文本集,每个文本都采用这种文本形式结构表示,构成了整个文本集的文本结构表示,它是语义划分和更深层次文本挖掘的基础。
[P18] 文本分类的目的,是让计算机学会一个分类函数或分类模型,该模型能把文本映射到已存在的多
个类别中的某一类,使检索或查询的速度更快,准确率更高。训练方法和分类算法是分类系统的核
心部分。文本分类方法常用的有,朴素贝叶斯分类算法,类中心最近距离分类算法,k-最近邻分类算法, 决策树分类算法。
[P19] 对于文本分类,有性能评估的指标。首先是查全率,查全率是衡量所有实际属于某个类别的文本被划分到该类别中的比率。查全率越高表明分类器在该类上可能漏掉的分类越少,它体现了分类的完备性。然后是查准率,查准率是衡量所有被划分到该类别的文本中正确文本的比率。查准率越高表明在该类别上出错的概率越小,它体现了分类的准确程度。
[P20] 文本摘要是指从文档中抽取关键信息,用简洁的形式对文档内容进行解释和概括。这样,用户
不需要浏览全文就可以了解文档或文档集合的总体内容。根据摘要所覆盖的文档数量,文本摘要可以分为单文档摘要与多文档摘要。单文档摘要技术为单个文档生成摘要,而多文档摘要技术则为多个主题类似的文档产生摘要。单文档自动摘要针对单个文档,对其中的内容进行抽取,并针对用户或者应用需求,将文中最
重要的内容以压缩的形式呈现给用户。常见的单文档摘要技术包括基于特征的方法、基于词汇链的
方法和基于图排序的方法。多文档摘要的目的 是为包含多份文档的文档集合生成一份能概括这些文档主要内容的摘要。相对于单文档摘要,多文档摘要除了要剔除多份文档中的冗余内容外,还要能够识别不同文档中的独
特内容,使得生成的摘要能够尽量的简洁完整。
[P21] 文本关联分析是指从文档集合中找出不同词语之间的关系。目前主要是采用基于关键字的关联
分析。采用基于关键字的关联分析是从文本集中收集词或者关键字的集合,将问题转化为事务数据库中事务项的关联挖掘。其基本过程是,调用关联挖掘算法发现频繁共现的词或关键字,即频繁项集,然后根据频繁项集生成词或关键字的关联规则。
[P22] 总结一下,这章主要是介绍了文本挖掘的方法。文本挖掘是对非结构化的文本信息,做数据分析和挖掘。一般分为六个过程,分别是 文本准备、特征标引、特征集缩减、知识模式提取、知识模式评价、知识模式输出。