【2】广义向量空间模型
转自 NLP论坛 http://www.threedweb.cn/thread-1283-1-1.html 文本最流行的结构化表示就是向量空间模型,它把文本表示为一个向量,其中该向量的每个元素表示为文本中出现的单词。这会导致极高维的空间;通常,文本文档的集合中出现的每一个不同的字符串都是一个维度,包括常用英语词和其他类型字符串,如电子邮件地址和URL。对于合理大小的文本文件集合,向量很容易就包含数十万个元素。对于那些熟悉数据挖掘和机器学习的读者,向量空间模型可以被看作是一个传统的特征向量,其中的词和字符串代替更传统的数字功能。因此,这并不奇怪,许多文本挖掘解决方案,把文本存储为向量空间的表示,都可用于数据挖掘或机器学习算法。这些算法适用并扩展为有效处理高维空间的文本情况。 向量空间模型提出一个隐含的假设(称为bag-of-words假设),表示的词语在文档中的次序并不重要。这似乎是一个很大的假设,因为文本必须按特定的顺序来读取才能理解。对于许多文本挖掘任务,如文件分类或聚类,这种假设通常不是问题。出现在文件中(以任何顺序)词的集合通常对区分语义概念是足够的。文本挖掘算法的主要优势是它使用了文档中所有的词–主要关键词,以及一般文本的词汇。通常情况下,关键词本身并不能区分一个文件,反而二级字的使用模式提供了区别的特性。 虽然词袋的假设适用于许多任务,但它不是一个通用的解决方案。对于某些任务,如信息提取和自然语言处理,词的顺序是成功解决任务的关键。实体抽取(见第13章)和自然语言处理的突出特点是要考虑前面和后面的字来决定中心词的特性(例如,词性判断)。使用专门的算法和模型来处理序列问题,如有限状态机或条件随机场都用在这些情况下。 用于使用向量空间模型的另一个挑战是多义词的存在。这些是拼写相同,但具有不同的含义的词语。一个例子是词SAW,它可以是一个名词,描述的工具切割木材(例如,“I used a saw to cut down the tree”)或动词的过去时看到(如 “I saw the tree fall”)。幸运的是,多义词通常不会对文本挖掘算法的结果的原因有三个大的影响:
文本预处理其中一个文本挖掘的挑战是将非结构化和半结构化文本结构转化为向量空间模型。这之前,必须做任何先进的文本挖掘和分析完成的。在大多数文本挖掘任务中,文本预处理的步骤都是相同的,虽然其中的处理步骤选择取决于任务。基本步骤如下: 选择的文本的范围,以进行处理(文档,段落等)。对于许多文本挖掘任务时,文本的范围是容易确定的。例如,电子邮件或呼叫记录可以把每封邮件自然转化为单一向量。但是,对于较长的文件需要决定是否使用整个文档或切分文档分成各节、段落或句子。选择适当的范围取决于文本挖掘任务的目标:对于分类或聚类的任务,往往适当范围可以是整个文档;对于情感分析,文档自动文摘,或信息检索,更小的文本单位,如段落或章节可能更合适。 Tokenize 分词接下来的预处理步骤是把文本单元分解成单个的单词或标记。此过程可以采取多种形式,这取决于被分析的语言。就英语而言,直截了当的和有效的标记化的策略是使用空格和标点符号作为标记分隔符。这种策略是很容易实现,但也有一些情况下它可能不匹配所期望的行为。在首字母缩略词和缩写的情况下,使用一个无序向量空间和分离令牌上标点符号的组合将把缩写的不同部分放入不同的令牌。例如,“U.N.”(缩写为联合国)将被表征为单独标记“U”和“N”就失去了缩写词的含义。有两种方法来解决这个问题:智能标记化,试图以检测缩略语,避免拆分这些词,以及调整下游加工通过单独的标记器在转换为向量空间之前来处理这类缩写。 删除停用词(常用词)对于许多文本挖掘任务,除去一些词语,诸如几乎出现每一个文档中,为了节省存储空间和加快加工是很有用的。这些常用词被称为“停用词”,除去这些词语的过程被称为“Stopping”。来自流行的开源文本挖掘库Lucene为例,有专门的模块去除停止字。几乎所有的文本挖掘软件Stopping被封装为通用的功能。停用词的去除可以不丢失信息,因为对于大多数的文本挖掘任务和算法,这些词对算法的最终结果影响不大。涉及的短语,如信息检索的文本挖掘任务,是个例外,因为如果一些词语被删除,短语就会失去意义。 词干提取(对于英文文本)删除前缀和后缀正常化词语 - 比如,run,running, runs,其词干都是run。 拼写规范化统一拼写错误和其他拼写变化成单一的标记。 。 检测句子边界:标记句子的结束。句子边界检测是分解整个文档,并转换成单独句子的过程。对于英文文本,它就是寻找像“。”“?”或 “!”的标点符号一样容易。然而,某些词语出现的缩写或缩写词的一部分(如前所述的符号化)。此外,报价通常会包含句子边界标点符号,但实际的句子还未结束。这些情况表明使用一些简单的启发式规则,可以正确识别大多数句子边界。为了达到近乎完美的(?99%)的精度,可以使用统计分类技术。更多关于文本分类技术可以在第7章中看到。 标准化大小写(英文文本)将文本转换为要么全部小写或全部大写。 文本特征提取tf-idf经过文本预处理,各个词标记必须被转换成适合于输入到文本挖掘算法的向量表示。该向量表示可以采取三种不同的形式:二元表示;整型的计数;浮点值的权重向量。下面是一个非常简单的例子,说明三种方法之间的差异。假设文本是以下三个文件的集合: 文件1:My dog ate my homework
文件2:My cat ate the sandwich
文件3:A dolphin ate the homework
这些文档向量空间包含15个标记,其中9个是不同的。这些术语在括号总计数按字母顺序排序: a (1),ate (3),cat (1),dolphin (1),dog (1),homework (2),my (3),sandwich (1),the (2).
二元和整型计数载体直接从标记(token)流来计算。文档中出现的词汇二元向量存储为1,而整型向量存储在文档中单词出现次数。 文件1:0,1,0,0(注意,尽管“my”出现了两次,在的句子中,二元向量仍然是“1”)
文件2:0,1
文件3:1,1
这三个文件将如下所示整型计数向量: 文件1:0,2,0(请注意,“my”在句子中出现的两次)
文件2:0,1
存储文本的权重向量,首先需要选择一个权重方案。最流行的方案是对TF-IDF权重的方法。TF-IDF代表词频–逆文档频率。词条的词频是词条出现在文档中的次数。在前面的例子中,在文件1的词频“my”是2,因为它在文档中出现了两次。词条的文档频率是包含给定条件的文档数量;对于“my”,在前三个文件集合中,也是2。这些值的公式下图所示。 TF-IDF的假设是,高频率词应该具有高权重,除非它也是高文档频率。“my”这个词在英语语言中是最经常出现的词汇之一。它经常发生在单一的文件中很多次,但也几乎也发生在每个文档中。这两种竞争的影响相互抵消,得到一个低的权重。 还有其他方法用于提取文本特征,后面再详细介绍 LSApLSALDA其他(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |