文档和查询转换为特征向量时,每个特征都会赋予一定的权值,本节叙述如何对特征计算相应的权值。在向量空间模型里,特征权值的计算框架一般被称做Tf*IDF框架,虽然具体计算方式可以有多种,但是大都遵循这一框架,而这一计算框架考虑的主要计算因子有两个:词频Tf和逆文档频率IDF。
词频因子(Tf)
Tf计算因子代表了词频,即一个单词在文档中出现的次数,一般来说,在某个文档中反复出现的单词,往往能够表征文档的主题信息,即Tf值越大,越能代表文档所反映的内容,那么应该给予这个单词更大的权值。这是为何引入词频作为计算权值的重要因子的原因。
具体计算词频因子的时候,基于不同的出发点,可以采纳不同的计算公式。最直接的方式就是直接利用词频数,比如文档中某个单词出现过5次,就将这个单词的Tf值计为5。
一种词频因子的变体计算公式是:
WTf=1+log(Tf)
即将词频数值Tf取Log值来作为词频权值,比如单词在文档中出现过4次,则其词频因子权值是3,公式中的数字1是为了平滑计算用的,因为如果Tf值为1的情况下,取Log后值为0,即本来出现了一次的单词,按照这种方法计算会认为这个单词从来没有在文档中出现过,为了避免这种情形,采用加1的方式来进行平滑。之所以要对词频取Log,是基于如下考虑:即使一个单词出现了10次,也不应该在计算特征权值时,比出现1次的情况权值大10倍,所以加入Log机制抑制这种过大的差异。
另外一种单词词频因子的变体计算公式是:
这种方法被称为增强型规范化Tf,其中的a是调节因子,过去经验取值0.5,新的研究表明取值为0.4效果更好。公式中的Tf代表这个单词的实际词频数目,而Max(Tf)代表了文档中所有单词中出现次数最多的那个单词对应的词频数目。之所以要如此操作,主要出于对长文档的一种抑制,因为如果文档较长,与短文档相比,则长文档中所有单词的Tf值会普遍比短文档的值高,但是这并不意味着长文档与查询更相关。用单词实际词频除以文档中最高词频,等于将绝对的数值进行了规范化转换,公式的含义就转换为:同一个文档内单词之间的相对重要性。即使一个文档很长,单词词频普遍很高,但是除以文档最高词频,那么通过这种计算方式得出的数值比短文档来说并不一定就大。这样就剔除了文档长度因素的影响,长文档和短文档的词频因子就成为可比的了。
逆文档频率因子(IDF)
词频因子是与文档密切相关的,说一个单词的Tf值,指的是这个单词在某个文档中的出现次数,同一个单词在不同文档中Tf值很可能不一样。而逆文档频率因子IDF则与此不同,它代表的是文档集合范围
的一种全局因子。给定一个文档集合,那么每个单词的IDF值就唯一确定,跟具体的文档无关。所以IDF考虑的不是文档本身的特征,而是特征单词之间的相对重要性。
所谓逆文档频率因子IDF,其计算公式如下:
其中的N代表文档集合中总共有多少个文档,而nk代表特征单词k在其中多少个文档中出现过,即文档频率。由公式可知,文档频率nk越高,则其IDF值越小,即越多的文档包含某个单词,那么其IDF权值越小。IDF反映了一个特征词在整个文档集合中的分布情况,特征词出现在其中的文档数目越多,IDF值越低,这个词区分不同文档的能力越差。在极端情况下,考虑一个在文档集合中所有文档中都出现的特征词“term”,即nk=N,这说明无论搜索任何主题,“term”这个词都会出现在所有相关和不相关的文档中,因此“term”对任何主题都没有区分相关文档和不相关文档的能力,这时“term”的IDF值为0。例如,在一个有关计算机领域的文档集合中,特征词“电脑”几乎肯定会出现在所有文档中,这时用它进行搜索没有任何效果。但如果另一个文档集合中包括计算机领域相关的文档和很多有关经济学的文档,那么在这个集合中使用“电脑”搜索计算机相关的文档效果会比较好。也就是说,“电脑”这个特征词在第1个文档集合中区分不同文档的能力很差,在第2个文档集合中区分能力很强。而IDF就是衡量不同单词对文档的区分能力的,其值越高,则其区分不同文档差异的能力越强,反之则区分能力越弱。整体而言,IDF的计算公式是基于经验和直觉的,有研究者进一步分析认为:IDF代表了单词带有的信息量的多少,其值越高,说明其信息含量越多,就越有价值。
Tf*IDF框架
Tf*IDF框架就是结合了上述的词频因子和逆文档频率因子的计算框架,一般是将两者相乘作为特征权值,特征权值越大,则越可能是好的指示词,即:
Weightword=Tf×IDF
从上述公式可以看出,对于某个文档D来说:
如果D中某个单词的词频很高,而且这个单词在文档集合的其他文档中很少出现,那么这个单词的权值会很高。
如果D中某个单词的词频很高,但是这个单词在文档集合的其他文档中也经常出现,或者单词词频不高,但是在文档集合的其他文档中很少出现,那么这个单词的权值一般。
如果D中某个单词词频很低,同时这个单词在文档集合的其他文档中经常出现,那么这个单词权值很低。
经过几十年的不断探索,向量空间模型已经相当成熟,并被各种领域广泛采用。从数学模型的角度看,向量空间模型简单直观,用查询和文档之间的相似性来模拟搜索中的相关性。与布尔模型相比,也能对文档与查询的相关性进行打分排序。但是总体而言,向量空间模型是个经验型的模型,是靠直觉和经验不断摸索完善的,缺乏一个明确的理论来指导其改进方向。