`

Rocchio算法

阅读更多

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

 

分享到:
评论

相关推荐

    RelevanceFeedback:使用 Bing 搜索从用户相关性反馈中学习的 Rocchio 算法

    相关性反馈团队成员:Karl Bayer Rhea Goel 文件:README.md english.txt BingSearch.py 描述:通过在终端中键入以下内容来运行程序... python BingSearch.py [accountKey] [precision] ['query'][accountKey] the ...

    我对花朵分类的主要成分分析和Rocchio算法的使用

    我对花朵分类的主要成分分析和Rocchio算法的使用 使用PCA减少要素数量以更好地对IRIS数据集进行分类。 *使用Colab是运行此笔记本的选项。

    TextClassification:使用Python进行文本分类的简单实践

    使用 Rocchio 算法的文本分类。 每个文档都在一个向量空间中表示。 在训练阶段,找到每类文档的质心。 在测试阶段,计算测试文档到每个质心的距离,并将文档分配到最近的质心类。 天真的eBayes.py 使用朴素贝叶斯...

    一种快速文本归类算法的设计与实现 (2006年)

    同时保证分类精度和速度且两者相互独立的目标,提出使用类别特征信息数据库、类别特征权重向量模型、待归类文档压缩向量表示法和改进的Rocchio分类算法等技术实现文档的高速归类。在相同的Reuters测试语料集上,与...

    text-classification:一个应用主题分布来表示文档的文本分类项目

    Rocchio: Rocchio算法是一种寻找最近类别中心作为类别的算法。 cn.ac.ict.textcalss.cluster: 聚类算法 Kmeans: 内容相关,如保存网页正文,分类等等 cn.ac.ict.textcalss.sim: 相似度计算 Similarity:相似度计算...

    论文研究-基于聚类分析策略的用户偏好挖掘.pdf

    利用训练文档集准确高效地挖掘隐藏的用户文本偏好和概念向量是文本信息过滤和多...实验结果表明该方法具有对用户的文本偏好刻画更加精确,对相关阈值变化不敏感等优点,可以与Rocchio等算法结合来进行用户兴趣建模。

    CS4300:CS4300信息检索项目

    CS4300 CS4300 信息检索项目 2014 年秋季 与 Akhila Ananthram 和 Imran Bendris 共同完成的项目 项目 1 包括 BM25 和智能符号评估的实现 项目 2 包括文档聚类和 Rocchio 算法 使用 Lucene 实现的搜索引擎算法。

    Algorithm-columbiau-rocchio-search-query-expander.zip

    Algorithm-columbiau-rocchio-search-query-expander.zip,实现rocchio查询扩展-类似于“相关搜索”:在流行的搜索引擎中找到,但基于最终用户选择的相关文档,算法是为计算机程序高效、彻底地完成任务而创建的一组...

    一种文本处理中的朴素贝叶斯分类器

    在特征独立性假设的基础上, 讨论了朴素贝叶斯分类器的原理, 以及训练朴素贝叶斯分类器和应用朴素贝叶斯分类器进行分类的问题。

    NLPLab:自然语言处理实验

    NLP实验室 自然语言处理实验 概括 该项目主持了一些与自然语言处理有关的实验,分为两个不同的部分:形态学和句法分析,语义分析。... Rocchio分类算法的实现 RDF和SPARQL示例项目 这些实验是都灵大学课程的一部分。

    论文研究-一种改进的KNNWeb文本分类方法.pdf

    针对这两个问题,提出了一种改进的KNN方法,该方法先通过Rocchio分类快速得到k0个最有可能的候选类别;然后在k0个类别训练文档中抽取部分代表样本采用KNN算法;最后由一种改进的相似度计算方法决定最终的文本所属...

    一种改进的KNN Web文本分类方法* (2008年)

    针对这两个问题,提出了一种改进的KNN方法,该方法先通过Rocchio分类快速得到k0个最有可能的候选类别;然后在k0个类别训练文档中抽取部分代表样本采用KNN算法;最后由一种改进的相似度计算方法决定最终的文本所属...

    Quadflor:Python中的End-2-End多标签分类

    给定具有描述符标签的特定领域词库,不同的算法将学习如何将这些标签分配给训练集中的文档。 该框架支持进行概念提取,同义词集解析,扩展激活(包括分层重新加权)的机会。 这些功能的进一步处理由分类器执行。 ...

    多页搜索,强化学习排名

    Web搜索引擎通常设计为包含多个搜索结果页面,并且使用临时查询进行探索性搜索的搜索用户可能会... 在OHSUMED数据集上的实验结果表明,我们的方法优于ListNet的传统相关性排名模型的基准和Rocchio的相关性反馈方法。

    文本分类综述及手机垃圾短信过滤方法的研究 (2007年)

    主要介绍了文本分类问题,讨论了文本分类所涉及的关键技术,包括中文分词,文本表示,特征选取方法,以及Rocchio、朴素贝叶斯、K-近邻、决策树、神经网络和支持向量机等文本分类算法的原理和方法。最后,给出了基于...

Global site tag (gtag.js) - Google Analytics