第十四章 文本数据挖掘
自然语言的文本中蕴藏着大量丰富的信息,但是,自然语言却对这些信息进行了编码,把这些信息隐藏在文本当中,使它们成了一种难以解释的形式。可能正是因为这样的原因,在过去的自然语言处理中,很少有人去研究如何从文本中挖掘那些隐藏着的信息,大多数人要么是使用信息抽取的方法从数据中抽取信息,要么就是使用信息检索的方法直接从文本中检索信息。
”文本数据挖掘“(Text Data Mining,简称TDM)目的在于从大规模真实文本的数据中发现或推出那些隐藏在文本中的信息,或者找出文本数据集合的模型,或者预测文本数据中所隐含的趋势,或者从文本数据的噪声中分离出有用的信号。
第一节 文本数据挖掘的特点
“文本数据挖掘”中的“挖掘”这个单词是一个比喻。所谓“挖掘”,意味着从没有价值的岩石中提取出有价值的矿物。例如,从金沙中提取黄金。因此,文本数据挖掘就意味着我们需要在一大堆数据的清单中寻找新的信息,自动地或半自动地发掘在大量的数据中隐藏着的趋势和模式,这就像从没有价值的岩石中提取有价值的矿物,从金沙中提取黄金一样。在很多情况下,文本数据挖掘的目的是制定对于某个特定问题的决策。
区分文本数据挖掘和信息抽取是非常重要的。信息抽取的目的是为了帮助用户从文本中找到能够满足他们信息需求的文档。信息抽取的步骤类似于在一大堆针里找我们需要的针,在找我们需要的针的时候,我们想要的针和很多其他我们不想要的针是混在一起,信息抽取的任务就是从一大堆混杂的信息里把我们需要的信息抽取出来。文本数据挖掘的目标不是简单地抽取信息,而是从大量的数据中发现或获取新的信息,从一大堆数据中寻找模式,预测发展的趋势,或者从噪音中分辨出有用信号。信息抽取系统虽然能够抽取包含了用户所需信息的文件,但这一事实并不意味着用户已经有了新的发现,这是因为,信息抽取系统抽取到的信息对于文本的作者来说是已知的;而文本数据挖掘所挖掘出来的信息,往往是用户事先没有料到的。
当然,在数据挖掘中,如果处理的是非文本数据,那么,不一定能够找出黄金,只要能从上数据中找出模式,也就算很有成绩了。我们把这种数据挖掘叫作“标准的数据挖掘”。至于传统的计算语言学,其目的主要是在文本数据中找出隐藏在其中的模式,也不一定能够找出黄金。
在文本数据挖掘过程中,需要通过逻辑推断,发现新信息,从而找出黄金。而在“信息抽取”中,只需要通过数据库查询就可以查到有关的信息,由于信息抽取没有发现新信息,当然不可能找到黄金。
近年来,由于互联网的迅速发展,人们开始研究“网络数据挖掘”。网络数据挖掘有两个目标。第一个目标是帮助用户在网页上找到有用的信息并在网页文件集描述的范围内,挖掘出有用的知识。第二个目标是分析基于网页系统下的人机交互,我们实际上是把网页中的信息看成是一个庞大的知识库,我们的目的是从中挖掘出新的、前所未有的信息。
文本分类(text categorization)是把一个文件的具体内容用一个或多个预先设定的分类标签表示出来。这样的工作显然不会发现新的信息,因为写文本的人应当知道这个文本的内容,只不过文本分类产生的东西是对已知信息的一个紧凑的总结而已。因此,我们一般把文本分类归入信息检索的领域。然而,最近在文本分类的方面的研究似乎真的符合在更加通用的文本数据中发现趋势和模式这样的概念框架,使得这样的文本分类也算得上是“文本数据挖掘”。这种类型的研究就是使用文本分类标签来寻找隐藏在文本中的那些“意想不到的模式”,其主要的方法是在文本集的子集中比较类别标签的分布情况。例如,比较国家C1和国家C2的商品分布情况,从数据中发现一些有趣或者出乎意料的趋势,通过这样的比较也可能发现一些新的信息。
第二节 从文本中挖掘语言学知识
在自然语言处理的框架内,现有词汇结构的自动扩充研究所取得的成果似乎印证了我们将数据挖掘看作从岩石中提取有价值的矿物的比喻。例如,通过识别词汇语义模式来自动地扩展词网(WordNet)中的关系,从大规模文本预料中自动获取再分类的数据,从而进行再分类,使分类更加精密。这些文本数据挖掘的研究,都从数据中挖掘出了新的信息,而不是单纯地抽取出数据中既存的信息。
语言学知识究竟在哪里?我们的回答是:语言学知识固然在词典里,在语法书里,在汗牛充栋的语言学著作里,但是,这些语言学知识毕竟是通过语言学家对于局部的语言现象归纳出来的,难免会有片面或错误的地方;更多的语言学知识还隐藏在语料库里,语料库是语言学知识最可靠的来源。从语料库中获取语言学知识,并根据这些知识对于前辈语言学家根据内省得出的结论进行检验,从而证实或者证伪这些知识,这是生活在21世纪的语言学家责无旁贷地任务。
除了使用语料库挖掘语言学知识之外,还可以使用语料库挖掘非语言学的知识。
第三节 从文本中给挖掘非语言学知识
前面我们说过,文本数据挖掘目的在于从大规模真实文本数据中发现或推出新的信息,找出文本数据集合的模型,发现文本数据中所隐含的趋势,从文本数据的噪声中分离出有用的信号。
在文本数据挖掘中,对大型文本集进行复杂的分析需要一套混合的操作。这些操作包括:
1.在一个特定的数据范围内,从特定的集合(模式)中提取文本。
2.识别引用文献集。
3.用数据将这些引用的文献进行分类,创造出一个新的文献子集。
4.计算归类后剩余文献的百分比。
5.把这些结果加入到那些已经识别出出版物的文献集里。
6.删除重复的文献。
7.删除具有同一属性类别的文献。
8.找出文献在全文中的位置。
9.从全文中提取特定的属性。
10.对这个属性进行分类。
11.通过一个属性缩小需要考虑的文献集合。
12.对于其中的一个属性,计算统计数据。
13.针对哪一属性会被分配为另一个属性类型的情况,计算文章的百分比。