自然语言处理学习笔记4:空间向量模型

向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于著名的SMART文本检索系统。把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂

VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量,就可以通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距离。

M个无序特征项ti,词根/词/短语/其他每个文档dj可以用特征项向量来表示(a1j,a2j,…,aMj)权重计算,N个训练文档AM*N= (aij) 文档相似度比较1)Cosine计算,余弦计算的好处是,正好是一个介于0到1的数,如果向量一致就是1,如果正交就是0,符合相似度百分比的特性,余弦的计算方法为,向量内积/各个向量的模的乘积.2)内积计算,直接计算内积,计算强度低,但是误差大。

向量空间模型 (或词组向量模型) 是一个应用于信息过滤,信息撷取,索引 以及评估相关性的代数模型。SMART是首个使用这个模型的信息检索系统。

文件(语料)被视为索引词(关键词)形成的多次元向量空间, 索引词的集合通常为文件中至少出现过一次的词组。

搜寻时,输入的检索词也被转换成类似于文件的向量,这个模型假设,文件和搜寻词的相关程度,可以经由比较每个文件(向量)和检索词(向量)的夹角偏差程度而得知。

实际上,计算夹角向量之间的余弦比直接计算夹角容易:
余弦为零表示检索词向量垂直于文件向量,即没有符合,也就是说该文件不含此检索词。

通过上述的向量空间模型,文本数据就转换成了计算机可以处理的结构化数据,两个文档之间的相似性问题转变成了两个向量之间的相似性问题。

向量空间模型(vector space model)


向量空间模型概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量,就可以通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距离。


VSM基本概念:


(1) 文档(Document):泛指一般的文本或者文本中的片断(段落、句群或句子),一般指一篇文章,尽管文档可以是多媒体对象,但是以下讨论中我们只认为是文本对象,本文对文本与文档不加以区别"。


(2) 项(Term):文本的内容特征常常用它所含有的基本语言单位(字、词、词组或短语等)来表示,这些基本的语言单位被统称为文本的项,即文本可以用项集(Term List)表示为D(T1,T2,,,,Tn)其中是项,1≤k≤n"


(3) 项的权重(TermWeight):对于含有n个项的文本D(,………,,项常常被赋予一定的权重表示他们在文本D中的重要程度,即D=(,,,,······,)。这时我们说项的权重为(1≤k≤n)。


(4) 向量空间模型(VSM):给定一文本D=D(,………,)由于在文本中既可以重复出现又应该有先后次序的关系,分析起来有一定困难。为了简化分析,暂时不考虑的顺序,并要求互异,这时可以把,………,看作是一个n维的坐标,而就是n维坐标所对应的值,所以文档D()就可以被看作一个n维的向量了。


(5) 相似度(Similarity)两个文本D,和DZ之间的(内容)相关程度(Degree of Relevance)常常用他们之间的相似度Sim(,)来度量,当文本被表示为向量空间模型时,我们可以借助与向量之间的某种距离来表示文本间的相似度"常用向量之间的内积进行计算:
               Sim(,)=*
或者用夹角的余弦值表示:
               Sim(,)=


可以看出,对向量空间模型来说,有两个基本问题:即特征项的选择和项的权重计算。


特征项选择


用来表示文档内容的项可以是各种类别,对汉语来说,有字、词、短语,甚至是句子或句群等更高层次的单位。项也可以是相应词或短语的语义概念类。


项的选择必须由处理速度、精度、存储空间等方面的具体要求来决定。特征项选取有几个原则:一是应当选取包含语义信息较多,对文本的表示能力较强的语言单位作为特征项;二是文本在这些特征项上的分布应当有较为明显的统计规律性,这样将适用于信息检索、文档分类等应用系统;三是特征选取过程应该容易实现,其时间和空间复杂度都不太大。实际应用中常常采用字、词或短语作为特征项。


由于词汇是文本最基本的表示项,在文本中的出现频度较高,呈现一定的统计规律,在考虑到处理大规模真实文本所面临的困难,一般选择词汇或短语作为特征项,但是直接选用文本中的词或词组作为文本特征项也会存在以下问题:
(1) 文本中存在一些没有实在意义但使用频率很高的虚词和功能词,如中文中“的”、“把”、“了”等,常常把一些真正有分类作用的实词淹没掉了。解决这个问题的方法是把这些词组织成一个禁用词表,或者进行权重计算时,使它们的权重很低,通过取阀值将它们丢弃。采用禁用词表时,词表的选择很关键,很难全面地包括所有的禁用词,并且语言是不断发展的,禁用词表也是随着训练文本集合的不同而不同,某个词在这里不是禁用词,到另外一类文本中可能就成了禁用词。另一方面考虑到,最能代表一篇文章实际意义的词,往往是那些实词,如形容词、动词、名词,而且同一个词,当处于不同词性时,可能分别属于和不属于禁用词表。例如:“他高兴地走了”(副词“地”应是禁用词),“地很不平”(名词“地”不应作为禁用词)"针对这个现象,提出了只提取形容词、动词和名词作为特征项,并尝试着取代禁用词表方法.
(2) 采用词语作为特征项时还会出现所谓的同义现象,同义现象是指:对于同一个事物不同的人会根据个人的需要、所处的环境、知识水平以及语言习惯有着不同的表达方式,因此所采用的词汇也有很大的不同。所以经常出现两个文本所用的词汇有所不同,但实际上两者是相似的,这就是词的同义现象造成的。例如电脑和计算机是同一个概念,应该属于同一个特征项,目前最常用的解决方案是采用概念词典来解决这个问题。


分词


确定了特征项单位以后,接下来要做的就是把文本分割成特征项的表示。我们知道,词是最小的能够独立活动的有意义的语言成分。然而,汉语是以字为基本的书写单位,文本中词与词之间没有明确的分隔标记,而是连续的汉字串,显而易见,自动识别词边界,将汉字串分为正确的词串的汉语分词问题无疑是实现中文信息处理各项任务的基础与关键。中文词语分析一般包括3个过程:预处理过程的词语粗切分、切分排歧与未登陆词识别、词性标注。目前中文词语分析采取的主要步骤是:先采取最大匹配、最短路径、概率统计、全切分等方法,得到一个相对最好的粗分结果,然后进行排歧、未登陆词识别,最后标注词性。在实际系统中,这三个过程可能相互交叉、反复融合,也可能不存在明显的先后次序。可以将现在的分词算法分为3大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。


(1)基于字符串匹配的分词方法
这种方法又叫机械分词法,它按照一定的策略将待分析的汉字串与机器字典中的词条进行匹配,若在字典中可以找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,又可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可分为单纯分词法和分词与标注相结合的一体化方法。具体的方法主要有以下几种:
  (a)最大匹配法(maximum matching method, MM)


在计算机中存放一个已知的词表,这个词表叫底表,从被切分的语料中,按给定的顺序截取一个定长的字符串,通常为6-8个汉字,这个字符串的长度叫做最大词长,把这个具有最大词长的字符串与底表中的词相匹配,如匹配成功,则可确定这个字符串为词,然后指针向给定的方向移动与已经识别出的词长相应个数的汉字,继续进行匹配,否则,则把该字符串逐次减一,再与底表中的词长进行匹配,直到成功为止。MM的原理简单,易于在计算机上实现,实现复杂度比较低。缺点是最大词长难以确定,如果定得过长,则算法复杂度显著提高,如果定得太短,则不能切分长度大于它的词,导致切分正确率降低。


(b)逆向最大匹配法(reverse maximum matching method, RMM)


这种方法的原理与MM相同,不同的是切词的扫描方向,如果MM的方向是从左到右取字符串进行匹配,则RMM的切词方向就是从右到左取字符串进行匹配。试验证明RMM的切词正确率较MM更高一些。但是,RMM要求配置逆序的切词字典,这种词典与人们的语言习惯不同。


(c)逐词遍历匹配法


这种方法把辞典中的词按由长到短的顺序,逐个与待切词的语料进行匹配,直到把语料中所有的词都切分出来为止。由于这种方法要把辞典中的每个词都匹配一遍,需要花费很多时间,算法的时间复杂度相应增加,效率不高。


(d)双向扫描法


这种方法是分别用MM和RMM进行正向和逆向扫描完成初步的切分,并将用MM初步切分的结果与用RMM初步切分结果进行比较,如果两种结果一致,则判定正确,否则定为疑点,此时或者结合上下文信息,或进行人工干预,选取一种切分为正确结果,由于要进行双向扫描,时间复杂度增加,而且为了使切分词典能同时支持正向与逆向两种顺序的匹配和搜索,词典的结构比一般的切词词典复杂。


(e)最佳匹配法(optimum matching method,0M)


这是在切词词典中按词出现频率的大小排列词条,高频词在前,低频词在后,从而缩短了查询切词词典的时间,加快切词的速度,使切词达到最佳的效率。这种切词方法对于分词算法没有什么改进,只是改变了分词词典的排列顺序,它虽然降低了切词的时间复杂度,却没有提高分词的正确率。


(f)设立切分标记法


在书面语中,存在的切分标记有两种:一种是自然的切分标志,如标点符号,词不能跨越标点符号而存在,标点符号则是词的边界之所在;另一种是非自然的切分标志,如只能在词首出现的词首字,只能在词尾出现的词尾字,没有构词能力的单音节单纯词、多音节单纯词、拟声词等,词显然也不能跨越这些标志而存在,它们也必然是词的边界。如果收集了大量的这种切分标志,切词时,先找到切分标志,就可以把句子切分成一些较短的字段,然后再用MM或RMM进行进一步切分。使用这种方法切词,要额外消耗时间,并扫描切分标志,还要花费存储空间来存储非自然的切分标志,使切词算法的时间复杂度和空间复杂度都大大增加了,而切词的正确率却提高的有限,所以采用这种方法的自动切词系统不多。


(g)有穷多级列举法


这种方法把现代汉语中的全部词分为两大类:一类是开放词,如名词、动词、形容词等,它们的成员几乎是无穷的,另一类是闭锁词,如连词、助词、叹词等,它们的成员是可以一一枚举的。切词时,先切出词的特殊标志的字符串,如阿拉伯数字、拉丁字母等,再切出可枚举的闭锁词,最后在逐级切出开放词。这是完全立足于语言学的切词方法,在计算机上实现起来还是很有困难。
  


由于汉语很少单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也很少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245(这可能是因为汉语的中心语靠后的特点)。但这种精度还远远不能满足实际的需要。由于分词是一个智能决策过程,机械分词方法无法解决分词阶段的两大基本问题:歧义切分问题和未登陆词识别问题。实际使用的分词系统,都是把机械分词作为一种切分手段,还需通过利用各种其他的语言信息来进一步提高切分的正确率。


对于机械分词方法,可以建立一个通用模型,形式化地表示为ASM(d,a,m)即Automatic Segmentation Model"其中:


d:匹配方向,+1表示正向,一1表示逆向。


a:每次匹配失败后增加/减少字符串长度(字符数),+1为增字,一1为减字。


m:最大/最小匹配标志,+1为最大匹配,一1为最小匹配。


例如,ASM(+,-,+)就是正向减字最大匹配法(即MM),ASM(-,-,


+)就是逆向减字最大匹配法(即RMM),等等。对于现代汉语来说,只有m=+1是实用的方法。


(2)基于理解的分词方法


通常的分词系统,都力图在分词阶段消除所有歧义切分现象,有些系统则在后续过程中来处理歧义切分问题,其分词过程只是整个语言理解过程的一个小部分。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括3个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此,目前基于理解的分词系统还处于试验阶段,联想回溯法就是其中的一种。


联想-回溯法(association-backtracking method ,AB):要求建立知识库-特征词词库、实词词库和规则库。首先将待切分的汉字字符串序列分割为若干子串,子串可以是词,也可以是由几个词组合成的词群,然后就利用实词词库和规则库将词群细分为词。切词时,要利用一定的语法知识,建立联想机制和回溯机制。联想机制由联想网络和联想推理构成,联想网络描述每个虚词的构词能力,联想推理利用相应的联想网络来判定所描述的虚词究竟是单独的词还是作为其他词中的构成成分。回溯机制主要用于处理歧义句子的切分。联想回溯算法虽然增加了算法的时间复杂度和空间复杂度,但是这种方法的切词正确率得到了提高,是一种行之有效的方法。


(3)基于统计的分词方法


从形式上看,词是稳定的字的组合,因此在上下文中,相邻的词同时出现的次数越多,就越有可能构成一个词"因此字与字相邻共现的频率或概率能够较好地反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息为:
              M(X,Y)=log(P(X,Y)/P(X)*P(Y))


其中P(X,Y)是汉字X,Y的相邻共现频率,P(X)、P(Y)分别是X、Y在语料中出现的概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阐值时,便可认为此字组可能构成一个词。这种方法只需要对语料中字组频度进行统计,不需要切分词典,因而又称为无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高,但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。常用的有基于词频统计的切词法和基于期望的切词法。
  (a)基于词频统计的切词法


这种方法利用词频统计的结果帮助在切词过程中处理歧义切分字段.这种方法的缺点是:由于只考虑词频,出现频率较低的词总是被错误地切分.


(b) 基于期望的切词法


这种方法认为一个词的出现,它后面紧随的词就有一种期望,据这种期望,在词典中找到所有的词从而完成切分.这种方法增加了切词的空间复杂度,但在一定程度上提高了切词的正确率。


中文文本自动分词技术一般以词典作为分词依据,使用专门的分词算法将文本中出现于词典中的词识别出来。通过这种方法获得的文本特征只能是词典中出现的词汇,但是自然语言领域相关性和随时间变化的特性,词典中不可能包含文本中所有词汇,因此,对不同类型文本进行分类时,就需要不断修整和扩充词典并改进分词技术,才能获得良好的分类性能。


针对基于词典分词的分类系统存在的弊端,人们提出了一种基于n-gram信息的文本特征提取技术,使文本自动分类系统摆脱了对复杂分词处理程序对庞大词库的依赖,实现了中文文本自动分类的领域无关性和时间无关性。N-gram信息的概念是信息论创始人C.E.Shannon在研究信源编码时提出来的,常被用来表示信源输出的连续n个字符所组成的字符串。Shannon曾用它来研究英文文本中字符或字符串的统计特性,即信息嫡,随后,n一gram信息被广泛应用于文本压缩、字符识别与纠错等领域,是一种直接面向代码的技术。采用n-gram信息作为文本特征具有以下特点:第一:无需任何词典支持;第二:对输入文本所需的先验知识少;第三:无需进行分词处理;但是n-gram信息获取技术的领域无关性和时间无关性的实现是有代价的.首先,n-gram信息的提取对系统资源的要求比较高,因为进行任何n-gram信息提取时,都会产生大量的数据冗余,占用很大的内存空间。相比较于词典的分词技术,其实现效率低,获取n一gram信息将花费较长的时间。


特征值抽取
一篇文章在经过了分词处理之后,会产生很多词条。如果一个文档所有词条都被作为其特征,将会使特征项异常庞大,而且这样的特征项会使得每个特征项所含信息非常平滑,有用信息反而不会突出。因此我们需要进行特征项选取,把词条中最能代表某类文本信息的词条挑选出来,作为文本的特征项。实验结果表明简化特征项不但不会使分类结果准确率降低,而且还会使结果更加准确。特征项选择一般使用统计方法,利用各种计算公式,计算词代表的信息含量,确定一个阀值,将低于阀值的词语过滤掉。或者确定一个特征项数目n,保留处于信息含量在前n位的词条。


特征抽取算法是文本自动分类中的一项关键技术和瓶颈技术,如何从原始文本特征集合中选择最能表示文本主题内容的特征子集,是文本特征抽取算法的研究目标。目前,有多种特征抽取算法被用于文本自动分类的研究中,但这些算法都有其优点和缺点,没有公认的最优方法,需要针对具体系统进行对比来确定最优方法。


特征选择可以从两个方面提高系统性能一是分类速度,通过特征选择,可以大大减少特征集合中的特征数,降低文本向量的维数,简化计算,防止过度拟合,提高系统运行速度。二是准确率,通过适当的特征选择,不但不会降低系统准确性,反而会使系统精度提高。


在文本处理中,一些常用特征提取评估函数有文档频数(document frequency)、信息增益(information gain)、期望交叉熵(expected cross entropy)、互信息(mutual information)、统计(CHI)、文本证据权(the weight of evidence for text)等。


(1) 文档频数DF


它是最简单的评估函数,值为训练集合中该单词发生的文本数。DF评估函数的理论假设稀有单词可能不包含有用信息,也可能太少而不足以对分类产生影响,也可能是噪音,因此可以删去。显然它在计算量上比其他评估函数小很多,但是实践运用中它的效果却很好.DF的缺点是稀有单词可能在某一类文本中并不稀有,也可能包含着重要的判断信息,错误的舍弃,可能影响分类器的精度。因此,在实际运用中一般并不直接使用DF。


 


(2) 信息增益(information Gain)


信息增益表示文档中包含某一特征值时文档类的平均信息量。它定义为某一特征在文档中出现前后的信息熵之差。假定c为文档类变量,C为文档类的集合,d为文档,f为特征(以下各节同此)。对于特征f,其信息增量记为IG(f),计算公式如下:
       IG(f)=H(C)-H(C|f)


            =


 


特征项赋权


为了兼顾查全率和查准率,检索系统在对特征项进行赋权时,应同时包含提高查全率和查准率的赋权因子。特征项赋权因子由频率因子(TF)、文档集因子(DF)和规格化因子三部分组成。


(1)在文档中频繁出现的特征项具有较高的权重,因此检索系统常使用频率因子TF(Term Frequency)进行特征项赋权,使用高频特征项进行查询可以提高系统的查全率。


(2)仅使用频率因子并不能保证系统的查询性能,提高查全率时会影响检索系统的查准率。因此需要引入一个与文档集合有关的因子,加大文档之间的区分度。如果特征项在集合中较少的文档中出现,则相应的文档集因子IDF(Inverse Document Frequency)较大。在文档总数为N的集合中,如果包含某特征项的文档数为n,则文档集因子是idf=。


(3)当文档较长时,查询式与文档进行匹配的可能性更大,所以长文档比短文档更有可能被提取出来,因此引入规格化因子来消除文档长度对匹配结果的影响。假定代表特征项的权重,最后的规格化因子定义为:


 OR


向量空间模型


TF-IDF 权重
特征项的权重计算是文本相似度计算中的一个非常重要的环节。一篇文本中的特征项数目众多,要想得到比较准确的对文本内容的数学化表示,我们需要对能显著体现文本内容特征的特征项赋予高权重,而对不能可以体现文本内容特征的特征项赋予低权重。从效率方面来说,特征项权重的计算是文本相似度计算中的主要工作,它的效率也直接影响文本相似度计算的整体效率。
经典的 TF-IDF 权重是向量空间模型中应用最多的一种权重计算方法,它以词语作为文本的特征项,每个特征项的权重由 TF 权值和 IDF 权值两个部分构成。对于文本 中的第 k 个特征项,其对应权重计算方法为:


              =*


其中


(1) TF (Term Frequency)权值:特征项在文本中出现的次数,即如果在文本中出现次,那么


                   


(2) 在实际应用中,通常需要对 TF 值进行标准化处理,以避免文本太长所导致的的统计偏差:
                    =


(3)IDF(Inverse Document Frequency)权值:特征项在全局文本集 D 中的出现频率,即:
              log


假设全局文本集共有M 篇文本,特征项共在篇文章中出现过,那么
                  =log(M/())


其中为经验常数,一般取 0.01。


TF 权值反映了特征项在给定的文本中的概念重要程度(freq importance),体现了信息论中频度的思想。某特征项在文本中的出现次数越多,表示它对于该文本的重要程度越高。IDF 权值则反映了特征项的信息度(informativeness),用于体现一个特征项的“文义甄别能力”。如果一个特征项只出现在一个或少数文本中,那么它很可能是能体现文本内容特征的语义中心词,会被赋予大的 IDF 值以提高权重。而如果一个特征项在很多的文本中出现过,表示它代表文本的“个性特征”的能力很低,IDF 值也就相应地小。


TF-IDF 权重综合考虑了不同的词在文本中的出现频率(TF 值)和这个词对不同文本的分辨能力(IDF 值),在所有文本中出现次数很少的特征项被赋予高权重,因为它们被认为是文本内容特征的辨别器。例如,在汉语中“是”的出现频率非常高,但由于它在很多文本中都出现,会被赋予一个很低的 IDF 值,以此体现它对于我们分辨文本的特征并没有太大的帮助。而像“偏微分”这种专业词汇由于只会在相关专业文本中才会出现,会被赋予高 IDF 值以体现它的文本特征鉴别能力。


TF-IDF 是基于统计的权重计算方式,在全局文本集包含的语料特征足够的情况下,这种基于统计学的方法经过实践检验是一种有效的特征项权重衡量方法。其局限性在于它的准确度受全局文本集的影响较大:全局文本集越大,语料越完备,所得的权重也就越准确,但相应地计算效率也会随着全局文本集的增大而降低。


你可能感兴趣的:(自然语言处理学习笔记,自然语言处理)