精华内容
下载资源
问答
  • 向量空间模型(VSM)的JAVA实现,从文档表示到相似度计算,使用两种相似度计算方式:cos和tf-idf算法
  • 基于结构化向量空间模型的中文信息检索系统研究与实现
  • 利用倒排索引和向量空间模型实现的信息检索系统。 完成工作: 带位置信息的倒排索引 转化空间模型 TOP K查询 BOOL查询 初步查询 拼写矫正 名词查询 拼写矫正(以下) 运行 环境要求:python3 在初次运行程序前请下载...
  • 向量空间模型的构建 C++实现 VS2013上做的,绝对的好用
  • 在传统向量空间模型的基础上,提出一种新的信息检索算法模型——N层向量模型。此模型应用在Web信息检索上,能较好地适应文档集合的动态扩充。
  • 于是,利用我们的数据知识,我们可以知道,在同样的空间中,如果两个向量的夹角越小,说明两个向量越相似,反之两个向量越无关。因此使用cosine定理,我们可以很简单地得到向量之间的相似度 ...

    TF:

    tf 即 term frequency, 表示一个 term t 出现在 document d 中的次数,这是文档中一个很重要的概念。出现次数更多意味着重要程度越高,但是需要注意的是,相关度的提高并不是和次数的提高成同比的。因此通常tf需要做如下的处理

    w1= log10(tf+1)

    这样做就是要弱化次数对于相关度的影响


    DF/IDF:

    df 即 document frequency,表示一个 term 在整个文档集中出现的频率。与 tf 相反,一个 term 的重要程度是随着它在语料库中出现的频率成反比的。比如 and,or 等词在几乎所有文档中都出现,那么这些词的意义就很弱,而一些专业词汇只在几篇文档中出现过,显然意义更加重要。idf 就是 df 取倒数,这里只是为了表示方便。

    同样,为了弱化频率的效果,我们也做如下处理

    w2= log10(N/df) 其中N为文档总数,df是文档term在所有文档集合中出现的次数。


    有了上面的tfidf作为权重,我们可以很简单的计算所有词的权重,然后用一个N维的向量来表示一个文档,同样用N维的向量来表示query,query中如果没有对应的term,则该维权重为0。

    于是,利用我们的数据知识,我们可以知道,在同样的空间中,如果两个向量的夹角越小,说明两个向量越相似,反之两个向量越无关。因此使用cosine定理,我们可以很简单地得到向量之间的相似度



    Worked example. We now consider the query best car insurance on a fictitious collection with $N=1{,}000{,}000$ documents where the document frequencies of auto, best, car and insurance are respectively 5000, 50000, 10000 and 1000.

    termquerydocumentproduct
     tfdfidf$\mbox{w}_{t,q}$tfwf$\mbox{w}_{t,d}$ 
    auto050002.3
    math.log(1000000/5000, 10)
    0
    0 * 2.3
    110.410
    best1500001.3
    math.log(1000000/50000, 10)
    1.3
    1 * 1.3
    0000
    car1100002.02.0
    1 * 2.0
    110.410.82
    insurance110003.03.0
    1 * 3.0
    220.822.46

    ref: http://nlp.stanford.edu/IR-book/html/htmledition/queries-as-vectors-1.html



    展开全文
  • 第六章 文档评分、词项权重计算及向量空间模型 在文档集规模很大时,满足布尔查询结果的文档数量可能非常多,往往会大大超过用户能够浏览的文档的数目。对于给定的查询,搜索引擎会计算每个匹配文档的得分并排序。 ...

    第六章 文档评分、词项权重计算及向量空间模型

    在文档集规模很大时,满足布尔查询结果的文档数量可能非常多,往往会大大超过用户能够浏览的文档的数目。对于给定的查询,搜索引擎会计算每个匹配文档的得分并排序。

    6.1.参数化索引及域索引

    之前,我们都是将文档看成一系列词项的序列。但实际上,文档除了文本外还有元数据,比如创建时间、文档标题,作者信息等,因此我们也可以对他进行限制;比如限制查询文档结果必须是2010年发表的;

    参数化索引(parametric index):某个字段取值存在一定限制,如取值范围的限制,日期,则为参数化索引;

    域索引:某个字段取值没有任何限制,比如标题,可以是任意的自由文本;

    1. 域加权评分

    给定一系列文档,假定每篇文档有l个域,其对应的权重分别是
    g1,...,gl[0,1] g 1 , . . . , g l ∈ [ 0 , 1 ] ,且满足
    li=1gi=1 ∑ i = 1 l g i = 1
    si s i 为查询和文档的第i个域的匹配得分(1表示匹配上,0表示没匹配上),则域加权评分方法定义为: li=1gisi ∑ i = 1 l g i s i ,该方法有时也被称为排序式布尔检索(ranked Boolean retrieval)。

    例如,一个文档集,每篇文档都有三个域–author,title,body,三个域的权重系数分别为 g1=0.2,g2=0.3,g3=0.5 g 1 = 0.2 , g 2 = 0.3 , g 3 = 0.5 ,查询shakespeare,出现shakespeare时得分为1,否则为0。如果shakespeare出现在某文档的title和body域,则该文档最后得分为0.8。

    2.权重学习

    对于不同域的权重,可以从训练数据学习得到。

    6.2 词项频率及权重计算

    自由文本查询(参见第一章,没有任何搜索连接符如布尔操作符),在Web上很流行,它将查询看成多个词组成的集合。先对于每个词项计算它与文档的匹配得分,然后将所有查询词项的得分求和。

    这样,我们对文档中每个词项都赋予了一个权重。最简单的,可以将权重设置为词项频率。

    词项频率(term frequency):词项t在文档d中的出现次数,记为 tft,d t f t , d

    词袋模型(bag of words model):忽略文档在文档中的出现次序,只关心出现的次数。词袋模型下,文档Mary is quicker than John和John is quicker than Mary是等价的。

    只考虑词项频率有一个严重的问题,即在和查询进行相关度计算时,所有的词项都被认为是同等重要的。实际上,有些词项对相关度计算基本没有区分能力,如停用词the等。需要将出现次数较多的词项赋予较低的权重,常用的因子是文档频率。

    文档频率:出现t的所有文档的数目,记为 dft d f t

    逆文档频率:假定所有文档的总数为N,词项t的 idf(逆文档频率) 定义如下:
    idft=logNdft i d f t = log ⁡ N d f t

    tf-idf权重:对每篇文档每个词项,将其tf和idf组合起来形成最终的权重,即文档d中词项t的权重如下: tf-idft,d=tft,d×idft t f - i d f t , d = t f t , d × i d f t

    我们可以将每个文档看成是一个向量(vector),其中每个分量都对应词典中的一个词项,分量值为计算出的tf-idf权重。当某个词项在文档中没有出现时,其对应的分量值为0。这种向量形式对于评分和排序十分重要。

    6.3 向量空间模型

    在文档向量中,每个分量代表词项在文档中的相对重要性。一系列文档在同一向量空间中的表示被称为向量空间模型(vector space model,简称VSM)

    1. 两篇文档的相似性计算

    假设文档d对应的向量用 V(d) V → ( d ) 表示,其中每个分量对应一个词项,向量分量可以用tf或tf-idf等权重计算方式。注意,在词袋模型下,文档Mary is quicker than John和John is quicker than Mary是等价的。

    计算两篇文档 d1,d2 d 1 , d 2 的相似度的常用方法是用余弦相似度

    sim(d1,d2)=V(d1)V(d2)|V(d1)||V(d2)| s i m ( d 1 , d 2 ) = V → ( d 1 ) ⋅ V → ( d 2 ) | V → ( d 1 ) | | V → ( d 2 ) |

    上式除以分母的效果实际上相当于将向量 V(d1),V(d2) V → ( d 1 ) , V → ( d 2 ) 进行长度归一化,因此,其也可以重写成:

    sim(d1,d2)=v(d1)v(d2) s i m ( d 1 , d 2 ) = v → ( d 1 ) ⋅ v → ( d 2 )

    其中, v(d1),v(d2) v → ( d 1 ) , v → ( d 2 ) 是相应的单位向量。

    2. 查询向量

    也可以将查询表示成向量,记为。可以通过计算给定的查询向量和每个文档向量的相似度来对所有文档进行排名,

    score(q,d)=V(q)V(d)|V(q)||V(d)| s c o r e ( q , d ) = V → ( q ) ⋅ V → ( d ) | V → ( q ) | | V → ( d ) |

    因此,整个检索过程就是:计算查询向量和文档集中每个文档向量的余弦相似度,结果按照得分排序,并返回得分最高的K篇文档。然而,这个过程的代价很大,因为每次相似度计算都是数万维向量之间的内积计算。

    3. 其他tf-idf权重计算方法

    每篇文档每个词项权重计算方法可以用很多方式计算,如:

    • tf
    • tf-idf
    • tf的亚线性尺度变换方法:
      即使一个词项在文档中出现20次,它所携带信息的重要性也不可能是只出现1次的词项的20倍。一个常用修改是采用原始词项频率的对数函数,此时权重计算方法如下:

      wft,d={1+logtft,d,0,tft,d>0others w f t , d = { 1 + log ⁡ t f t , d , t f t , d > 0 0 , others

      得到:

      wf-idft,d=wft,d×idft w f - i d f t , d = w f t , d × i d f t

    • 基于最大值的tf归一化:
      采用文档d中最大的词项频率对所有词项进行归一化。
      ntft,d=a+(1a)tft,dtfmax(d) n t f t , d = a + ( 1 − a ) t f t , d t f m a x ( d )

      阻尼系数a是0到1之间的数,通常取0.4。a主要起平滑作用。
      长文档中词项频率一般更大,这显然是不公平的,最大化tf归一化方法可以减轻这种不公平性。
    展开全文
  • 向量空间模型(VSM)的余弦定理公式(cos)
  • 经过最近十几年的发展,信息检索已经由一个纯粹的学术研究学科转变成大多数人信息获取的技术基础。 随着Web 2.0概念的普及和发展,万维网不再仅仅是一个巨大的信息库,更逐渐成为一个用户参与和交流的平台。Web 2.0...
  • 布尔模型(Boolean Model) 要从文档集合D={d1,d2,…,dn}中检索出: 包含"北京妹纸",或者"杭州妹纸, "但不包括"日本妹纸"的文档。 假设D = {“北京的妹纸豪爽”,“北京是中国首都,而东京不是日本首都,一个妹纸说”,...

    布尔模型(Boolean Model)

    要从文档集合D={d1,d2,…,dn}中检索出: 包含"北京妹纸",或者"杭州妹纸, "但不包括"日本妹纸"的文档。
    假设D = {“北京的妹纸豪爽”,“北京是中国首都,而东京不是日本首都,一个妹纸说”,“北京和杭州都是旅游名城”,“杭州的妹纸温婉”}

    将查询语句表示为布尔表达式:Q = 妹纸 AND (北京 OR 杭州) NOT 日本
    将布尔表达式Q转换为向量表达:
    ①(1,1,0,0) 即:包含"妹纸"和"北京",且没包含"杭州"和"日本"的语句
    ②(1,0,1,0) 即:包含"妹纸"和"杭州",且没包含"北京"和"日本"的语句
    ③(1,1,1,0) 即:包含"妹纸",“北京"和"杭州”,且没包含"日本"的语句

    文档集合D中的文档四元组对应的向量值如果包含于上述①②③向量中的任何一个,就可认为他们之间是相似关系,且sim(Q,D)只能为0或1。

    将文档集合D解析为向量表达:
    d1的向量解析为:(1,1,0,0)
    d2的向量解析为:(1,1,0,1)
    d3的向量解析为:(0,1,1,0)
    d4的向量解析为:(1,0,1,0)

    综上可得:d1与向量①相同,d4和③相同,所以查询召回文档d1和d4

    布尔模型缺点

    • 布尔模型没有考虑索引词和文档中词的权重
    • 布尔模型是命中模型,不涉及对召回结果的排序
    • 布尔模型是完全匹配,不支持部分匹配,会导致太多或太少的结果被召回

    向量空间模型(Vector Space Model)

    VSM是把对文本转换为空间向量, 通过向量的计算来处理文本内容

    • 把文本内容转换为空间向量 (一般使用词的tf-idf值作为向量来表征文本内容)
    • 计算向量之间的相似度来度量文档间的相似性 (常用余弦值来度量相似性)

    计算VSM的步骤

    要从文档中找出与查询语句最相关的文档

    查询语句:Query={q1,q2,…,qn}
    文档:
    Document1 = {term11,term12,…,term1N},
    Document2 = {term21,term22,…,term2N},
    Document3 = {term31,term32,…,term3N}

    计算每个文档中所有词的TF-IDF值作为文档的向量表达:
    Vector1 ={weight11, weight12,…,weight1N},
    Vector2 ={weight21, weight22,…,weight2N},
    Vector3 ={weight31, weight32,…,weight3N}

    把查询语句Query当作一个文档并计算其中所有词的TF-IDF值作为向量表达:
    VectorQ = {weightq1, weightq2, …… , weightqN}

    分别计算Query与Document1、Document2、Document3的夹角余弦值sim(Q,D1)、sim(Q,D2)、sim(Q,D3作为相关性的打分,两个向量之间的夹角越小,余弦值就越大,打分就越高,相关也就性越大。

    最终根据sim(Q,D)的大小进行召回、排序

    计算VSM的公式

    sim(Q,D) = cosθ = V e c t o r Q ⋅ V e c t o r D ∣ V e c t o r Q ∣ ∣ V e c t o r D ∣ \frac{VectorQ·VectorD}{|VectorQ||VectorD|} VectorQVectorDVectorQVectorD = q 1 d 1 + q 2 d 2 + . . . + q n d n q 1 2 + q 2 2 + . . . + q n 2 ∗ d 1 2 + d 2 2 + . . . + d n 2 \frac{q_1d_1+q_2d_2+...+q_nd_n}{\sqrt{q_1^2+q_2^2+...+q_n^2}*\sqrt{d_1^2+d_2^2+...+d_n^2}} q12+q22+...+qn2 d12+d22+...+dn2 q1d1+q2d2+...+qndn

    在求得各个文档中词的TF-IDF后,有时会再除以文档长度来消除长文档对结果的影响
    在计算cosθ值时Query与Document的维度要一样,对于维度不一样的可以使用补零等方式使维度变的一致

    VSM缺点

    用户想查询的是一个跟query相关度大的文档,并不一定是这个文档中出现了查询词。
    换句话说就是即便这个文档中出现了查询词,并不一定相关性就大。

    展开全文
  • 信息检索技术——向量空间模型

    千次阅读 2012-05-19 13:12:38
    上次介绍了信息检索技术——布尔检索,布尔模型已经可以解决一个很重要的问题,就是找到和用户需求相关的文档(其中还需要很多处理,比如分词,归一化,去掉停用词等等,我们只是介绍主要的框架流程)。但是这样找到的...

    上次介绍了信息检索技术——布尔检索,布尔模型已经可以解决一个很重要的问题,就是找到和用户需求相关的文档(其中还需要很多处理,比如分词,归一化,去掉停用词等等,我们只是介绍主要的框架流程)。但是这样找到的文档会有很多,也许上千个,也许上万个,这远远不是用户所要的。用户也不会去从几万个文档中挑选自己要找的。因此我们需要对结果进行排序,把最能满足用户需求的文档放在最上面显示给用户,就像google和baidu做的一样。细心的朋友就能发现,其实信息检索是一个循序渐进的剪枝和筛选过程,最后留下的就是用户想要的。

    因此,我们需要一种评分机制来进行排序,通过得分的高低排除top N的文档返回给用户。这个评分通过什么来确定呢?当然是用户查询的query和返回文档的相似度了。计算相似度有很多种方法:

    方法1 Jaccard coefficient

    此方法看上去很好理解,就是用query和文档共同出现的词的个数,除以一共的词数。当然也有很多问题

    1 没有考虑文档中词出现的次数(没有考虑tf因素)

    2 没有考虑文档的频率(没考虑idf因素)

    3 没有考虑文档的长度,长文档和短文档计算相似度的差别会很大

    下面我们一起看看一个非常著名的模型——空间向量模型

    方法2  向量空间模型(VSM)

    首先介绍2个概念,tf和idf

    tf即term frequency, 表示一个term t出现在document d中的次数,这是文档中一个很重要的概念。出现次数更多意味着重要程度越高,但是需要注意的是,相关度的提高并不是和次数的提高成同比的。因此通常tf需要做如下的处理

    w1= log10(tf+1)

    这样做就是要弱化次数对于相关度的影响

    df即document frequency,表示一个term在整个文档集中出现的频率。与tf相反,一个term的重要程度是随着它在语料库中出现的频率成反比的。比如and,or等词在几乎所有文档中都出现,那么这些词的意义就很弱,而一些专业词汇只在几篇文档中出现过,显然意义更加重要。idf就是df取倒数,这里只是为了表示方便。

    同样,为了弱化频率的效果,我们也做如下处理

    w2= log10(N/df) 其中N为文档总数,df是文档term在所有文档集合中出现的次数。

    需要注明的是,tf和idf的计算有很多中变体,不一定要完全使用上面的公式,很多情况还要根据文档集合的大小具体分析。

    有了上面的tfidf作为权重,我们可以很简单的计算所有词的权重,然后用一个N维的向量来表示一个文档,同样用N维的向量来表示query,query中如果没有对应的term,则该维权重为0。

    于是,利用我们的数据知识,我们可以知道,在同样的空间中,如果两个向量的夹角越小,说明两个向量越相似,反之两个向量越无关。因此使用cosine定理,我们可以很简单地得到向量之间的相似度

    空间向量模型可以说是信息检索中相当常见并且非常重要的模型之一。理解起来非常简单直观,并且效果也是不错的。希望对大家有所帮助。

    展开全文
  • 一个使用倒排索引和向量空间模型的简单信息检索项目。 1)源代码只是一个python文件ir.py。 2)代码是用Python 2.7编写的。 3)代码中的query_file和base_dir变量要分别设置为query文件和blogs目录。 4)查询...
  • 2.什么是检索模型 IR的核心问题:预测哪些文档是相关的,哪些文档是不相关的。主要工作在于排序这个核心的问题,如何计算这个排序从而处理文档的相关性。 检索模型描述了如下这些细节 文档表示( Docume...
  • PAGE #- 昆明理工大学信息工程与自动化学院学生实验报告 2018 2019 学年 第 1 学期 课程名称信息检索与搜索引擎技术 开课实验室信自 340 2018 年 12 月 10 日 年级专业班 学号 姓名 成绩 实验项目名称 向量空间模型 ...
  • 针对web信息检索的特点,通过分析传统向量空间模型在web检索中存在的若干问题,对传统向量空间模型进行改进,并提出结构化向量空间模型,其基本思想是将web文档表达为具有一定逻辑结构的向量,即结构化向量组。...
  • 笔者在课后作业中遇到了向量空间模型的概念题,对课堂重温后有了一些简单的理解,在此分享。 向量空间模型(VSM) 向量空间模型(Vector Space Model,VSM),是基于代数的一种常用模型。向量空间模型试图克服布尔...
  • 向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d);…;tn, ωn(d)),其中ti(i=1,2, …,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d中出现频率tfi(d)的函数,即 。 在信息检索中...
  • 昆明理工大学信息工程与自动化学院学生实验报告 20142015 学年第 1 学期 课程名称信息检索与...向量空间模型 指导教师 李卫疆 教 该同学是否了解实验原理 A. 了解 B.基本了解 C.不了解 该同学的实验能力 A. 强 B. 中等
  • 比如两句话 我爱吃鸭, 他爱吃鸡可以构造出一个二维矩阵:横坐标是每一句话包含的信息,纵坐标是所有文字 句子1 句子2 句子n。。。。你00。。我10。。他01。。吃11。。等等。。。。。当用户想要检索某些文字的时候...
  • 基于向量空间信息检索模型VSM,以其简洁直观、检索结果和排序效果良好等优点,在信息检索领域得到普遍的应用。文章结合藏文文本的特点,研究VSM在藏文文本信息检索中的应用方法。
  • 基于向量空间模型的概念检索基于向量空间模型的概念检索基于向量空间模型的概念检索
  • 基于N层向量空间模型的网络信息检索平台 基于N层向量空间模型的网络信息检索平台
  • ElasticSearch之向量空间模型算法

    千次阅读 2017-11-15 09:12:48
    检索模型 1.1 bool模式 bool模式下,是最简单的检索模式,依据操作符AND 或者 OR 过滤document,结果只是包含指定的term的文档。他不会对document打分,只是为了减少后续要计算的document的数量,提升性能   1.2 ...
  • 检索模型1.1 bool模式bool模式下,是最简单的检索模式,依据操作符AND 或者 OR 过滤document,结果只是包含指定的term的文档。他不会对document打分,只是为了减少后续要计算的document的数量,提升性能1.2 TF/IDF...
  • 向量空间模型(vector space model)

    万次阅读 多人点赞 2017-10-17 20:30:08
    向量空间模型(vector space model) 向量空间模型概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量,就可以通过计算向量...
  • 向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于文本检索系统。 VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,...
  • main() 1、实验环境 Python 3.6.4 、Visual Studio Code 2、实验目的和要求 2.1实验目的: 基于向量空间模型理论,构造一定数量的文本库,采用TFIDF权重进行关键词排序选择,并采用向量夹角余弦判断检索词和文本库中...
  • 向量空间模型(VSM)与TF-IDF

    千次阅读 2018-09-29 21:42:13
    向量空间模型,可用于计算文本相似度。 首先我们希望将文章向量化。可以将一篇文章表示成从该文章抽取的关键词及其权重所构成的向量。 ==但如何提取文章的关键词和他的权重? e.g. TF-IDF(词频-逆文档频率) == ....
  • 向量空间模型

    2021-02-19 20:07:49
    1.1 向量空间 如果 V 满足向量的加法和乘法封闭性,我们就称 V 是 F 上的向量空间。 1.2 向量间的距离 曼哈顿距离 欧氏距离 切比雪夫距离 闵氏距离 1.3 向量长度 L1​ 范数 ∣∣x∣∣ ,它是为 x 向量各个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,027
精华内容 8,410
关键字:

信息检索向量空间模型

友情链接: taohan_v18.zip