Rocchio算法是IR中通过查询的初始匹配文档对原始查询进行修改以优化查询的方法。Rocchio 算法是相关反馈实现中的一个经典算法,它提供了一种将相关反馈信息融到向量空间模型的方法。基本理论:假定我们要找一个最优查询向量q ,它与相关文档之间的相似度最大且同时又和不相关文档之间的相似度最小。若Cr表示相关文档集,Cnr表示不相关文档集,那么我们希望找到的最优的q 是:
sim 函数用于计算相似度。采用余弦相似度计算时,能够将相关文档与不相关文档区分开的最优查询向量为:
这就是说,最优的查询向量等于相关文档的质心向量和不相关文档的质心向量的差。然而,这个发现并没有什么意义,因为检索本来的目的就是要找相关文档,而所有的相关文档集事先却是未知的。
Rocchio 算法。该算法(Rocchio,1971)是20 世纪70 年代左右在Salton 的SMART 系统中引入并广泛流传的一种相关反馈算法。在一个真实的信息检索场景中,假定我们有一个用户查询,并知道部分相关文档和不相关文档的信息,则可以通过如下公式得到修改后的查询向量q:
其中, q 是原始的查询向量,Dr 和Dnr 是已知的相关和不相关文档集合。α、β 及γ 是上述三者的权重。这些权重能够控制判定结果和原始查询向量之间的平衡:如果存在大量已判断的文档,那么会给β 及γ 赋予较高的权重。修改后的新查询从q0 开始,向着相关文档的质心向量靠近了一段距离,而同时又与不相关文档的质心向量远离了一段距离。新查询可以采用常规的向量空间模型进行检索。通过减去不相关文档的向量,我们很容易保留向量空间的正值分量。在Rocchio 算法中,文档向量中的权重分量如果为负值,那么该分量将会被忽略,也就是说,此时会将该分量权重设为0。下图给出了应用相关反馈技术的效果示意图。
相关反馈可以同时提高召回率和正确率。然而,实际表明该技术在一些重召回率的场景下对于提高召回率非常有用。这其中的部分原因在于它对查询进行了扩展,另一个原因是应用的场景所带来的结果:在期望高召回率的情况下,可以预计用户可能会花更多时间来浏览结果并进行反复搜索。正反馈往往比负反馈更有价值,因此在很多IR系统中,会将参数设置成γ < β。一个合理的取值是α = 1、β = 0.75 及γ = 0.15。实际上,很多系统,都只允许进行正反馈,即相当于设置γ = 0。还有一种做法是,只取检索系统返回结果中排名最高的标记为不相关的文档进行负反馈,此时,公式中的|Dnr| = 1。尽管上述相关反馈方法存在各种变形,并且很多比较实验也没有取得一致性的结论,但是一些研究却认为一种称为Ide dec-hi 的公式最有效或至少在性能上表现最稳定。Ide dec-hi 的公式如下:
转http://blog.csdn.net/sulliy/article/details/6670980
相关推荐
在本项目中,我们主要探讨了如何利用主成分分析(PCA)进行花朵分类,并结合Rocchio算法提高分类效果。PCA是一种无监督的线性降维技术,它通过找到原始数据集中的主要成分来减少特征数量,同时尽可能保留数据集中的...
标题“alg.tar.gz_ROCCHIO”中的关键词“ROCCHIO”表明了这个压缩包包含的是与ROCCHIO算法相关的程序或数据。ROCCHIO算法是一种在信息检索和分类领域中广泛使用的迭代方法,尤其在布尔检索模型和向量空间模型...
相关性反馈团队成员:Karl Bayer Rhea Goel 文件:README.md english.txt BingSearch.py 描述:通过在终端中键入以下内容来运行程序... python BingSearch.py [accountKey] [precision] ['query'][accountKey] the ...
- **改进的Rocchio分类算法**:对经典的Rocchio算法进行了优化,以提高其处理大规模数据集时的性能。 #### 方法介绍 该算法的核心思想在于通过建立一个强大的类别特征信息数据库来支持高效的文本分类过程。首先,...
使用 Rocchio 算法的文本分类。 每个文档都在一个向量空间中表示。 在训练阶段,找到每类文档的质心。 在测试阶段,计算测试文档到每个质心的距离,并将文档分配到最近的质心类。 天真的eBayes.py 使用朴素贝叶斯...
Rocchio-KNN分类器通过充分利用Rocchio算法的简单性和KNN算法的高效性,有效地克服了传统分类算法的缺点,如训练时间长、分类速度慢等问题。 Rocchio-KNN分类器的基本设计思路是,首先使用Rocchio方法来确定每个...
Rocchio算法是信息检索与文本分类中的一个重要方法,它结合了向量空间模型(Vector Space Model,VSM)和反馈机制,以提高分类效果。本项目"**NLP-Rocchio-Text-Categorizer**"则是基于Python实现的一个Rocchio文本...
传统的算法(如Rocchio算法)在处理这类问题时往往表现不佳,尤其是在相关文档占比非常低的情况下。相比之下,SVM算法因其强大的分类能力,在处理此类问题时展现出了明显的优势。 - **性能评估**:通过对不同算法...
根据Rocchio算法,我们更新查询向量的方式是:α * 初始查询向量 + β * 相关文档向量 - γ * 不相关文档向量。在这里,α=1,β=0.75,γ=0.25。应用这些参数,我们可以计算出修改后的查询向量,结果为qm=[1, 4, ...
6. **基于统计的分类**:这种方法更为自动化,如朴素贝叶斯、Rocchio算法、K近邻和支撑向量机等。它们可以从训练数据中学习模式,提供概率输出,并具有更好的泛化能力,但也需要大量标注数据。 7. **文本统计分类...
本文详细介绍了文本分类中的特征提取方法及其分类实现,包括词袋模型、TF-IDF、n-gram 模型、词嵌入、主题模型等特征提取方法,以及中心法、Rocchio 算法、最近邻算法、贝叶斯分类器、支持向量机、神经网络、最小...
除此之外,文章中还提到了一些机器学习的算法和技术,比如KNN(K-Nearest Neighbors,K近邻算法)和Rocchio算法。KNN是一种基础的分类和回归方法,用于在特征空间中寻找距离查询实例最近的K个训练实例的类别,以此...
Rocchio算法是相关反馈中最经典的算法之一,它基于向量空间模型,通过调整查询向量来最大化与相关文档的相似度,同时最小化与不相关文档的相似度。算法的核心公式为: \[ q = \alpha q_0 + \beta \frac{\sum_{d \in...
Rocchio: Rocchio算法是一种寻找最近类别中心作为类别的算法。 cn.ac.ict.textcalss.cluster: 聚类算法 Kmeans: 内容相关,如保存网页正文,分类等等 cn.ac.ict.textcalss.sim: 相似度计算 Similarity:相似度计算...
内容过滤则面临新物品冷启动和物品特征抽取困难的问题,常使用向量空间模型对物品和用户进行建模,通过TF-IDF计算关键词权重,并通过KNN、Rocchio算法、决策树、线性分类或贝叶斯方法预测用户对新物品的喜好。...
传统的文档分类方法,例如支持向量机(SVM)、Rocchio算法、K近邻法(KNN)等,虽然在一定程度上解决了分类问题,但它们往往需要大量的训练数据,并且在处理大规模分类体系或中文文本时存在局限性。因此,探索一种新...
此外,文章中还提到了其他的降维和分类技术,例如主成分分析(Principal Component Analysis, PCA)、K最近邻(K-Nearest Neighbor, KNN)和Rocchio算法等,但是重点放在了支持向量机的维度降低方法上。 文章的...