向量模型认识到
布尔模型中的二元权重的局限性,从而提出了一个适合部分匹配的框架。它在查询串和文档之间分配给索引术语非二元的
权重,这些术语权重反映了数据库中的每篇文档与用户递交的查询串的相关度,并将查询返回的结果文档集按照相关度的降序排列,所以向量模型得到的文档是部分地匹配查询串。向量模型的优点在于根据
秩(rank)返回的结果集要比布尔模型返回的结果集在感觉上更加符合检索用户的需要。
基本简介
假设序偶对 的权重 是准确的,非二元的。更进一步,在查询串中的索引术语也被赋予权重。假设 是序偶对 的权重,且大于0。查询向量 ,t表示数据库中索引术语的数目。和布尔模型中的一样,文档Dj的向量 。
因此,文档Dj和用户查询串q以t维向量的形式表示。该向量模型计算出文档Dj关于查询串q的相关度,即向量 的相关性,这种相关性可以通过余(cosine)法则被量化:
q
其中 和 是文档和查询向量的范数(norms)。元素 并不影响返回的结果文档集,因为它对数据库中所有的文档都是一样的。元素 在文档空间中提供标准化。因为 ,所以 。这样该向量模型根据查询的相关度来标记文档的秩,而在布尔模型中文档相对于查询串,只有相关和不相关两种状态。因此即使有的文档只是部分匹配查询串,由于它相对于查询串具有较高的相关度,也会被返回。为了计算文档的秩,我们首先需要知道定义索引术语权重的方法。
索引术语的权重
索引术语的权重可以通过多种方法获得,这里不详细的进行讨论,我在这里要阐明的是大多数计算术语权重的技术中的共同点。假设存在一个对象的集C和 一个描述模糊的集合A(a vague description of a set),简单聚类算法的目的是将对象集C分成两个集合:与集合A相关的对象的集合和与集合A无关的对象的集合。这里“模糊描述”表示我们不能确定那些对象属于集合A。例如构造一个汽车的集合A ,“which have a price comparable to that of a Lexus 400”。由于不知道术语comparable的确切含义,因此不能准确的来描述集合A。大多数聚类算法会根据这些对象的属性将他们分成不同的类。例如,癌症病人可以被分为以下五类:晚期、早期、转移(metastasis)、已诊断(diagnosed)、和恢复。这样就能决定一个新的癌症病人应该属于上述五类中的哪一类。下面我们讨论简单的聚类问题,即数据库中的文档相对于给定的查询串是相关还是不相关。
信息检索
在Salton的著作中把信息检索问题看作一个
聚类问题。我们把数据库中的文档集作为对象集C,把用户的查询串定义为那个模糊描述的集合A。在这种情况下,信息检索问题可以被简化成为判断数据库中的哪些是属于集合A的,哪些不属于集合A的问题。在聚类问题中需要解决两个主要的问题。首先要确定集合A的特征是什么,这种功能应该能较好的描述集合A中的对象。其次要确定C中剩余的对象区别于集合A中对象的特征。第一个集合的特征为量化提供了内聚相关度,而第二个集合则为量化提供了内聚的相异度。
内聚相关度量化
在向量模型中,内聚
相关度的量化是通过计算术语 在文档 中的出现频率来实现的。这些术语的频率( )表现了术语反映文档内容的程度。此外,内聚的相异程度的量化是通过计算术语 在集合中所有文档的出现频率的倒数来实现的,用 (inverse document frequency)来表示。使用 的目的是,在许多文档中出现的术语对区分查询串与文档是相关还是不相关时是没有多大用处的。在信息检索问题中,好的聚类算法,即最有效的术语权重方案应该尽量平衡这两种要素。
假设N为数据库中的总的文档数, 表示数据库中出现索引术语 的文档数, 为术语 在文档 中出现的次数。则术语 在文档中 的规格化频率 为:
表示在文档 中出现的单词数。如果术语 在文档 中没有出现,则 =0。进一步,定义 为术语 的倒置文档频率,且 。则术语 相对于文档 的权重 。这种术语权重的算法称为 算法。对于查询术语的权重,Salton和Buckley给出了这样一个公式: ,其中 表示术语 在查询串中的频率。
优点
向量模型的优点在于:
2、部分匹配的策略使得检索的结果文档集更接近用户的检索需求;
3、根据结果文档对于查询串的相关度通过Cosine Ranking公式对结果文档进行排序。