zoukankan      html  css  js  c++  java
  • TFIDF与向量空间模型

    TF-IDF(Term Frequency – Inverse Document Frequency)

    TF-IDF是一种用于信息检索(Information Retrieval)与文本挖掘(Text minning)的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度,也是建立在向量空间模型理论中的一种统计技术。

    字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,互联网上的搜寻引擎还会使用基于链接分析(PR)的评级方法,以确定文件在搜寻结果中出现的顺序。

    公式概念

    在一个文本集中,对于一份给定的文件,词频(Term Frequency,TF)指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被正规化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)对于在某一特定文件里的词语 ti 来说,它的词频(重要性)可表示为:

    tf thumb2 thumb TF IDF统计

    (以上式子中 ni,j 是该词在文件dj中的出现次数,而分母则是在文件dj中所有字词的出现次数之和)。逆向文件频率(Inverse Document Frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

    idf thumb1 thumb TF IDF统计

    其中:

    • | D |:语料库中的文件总数
    • f1 thumb2 thumb TF IDF统计 包含词语ti的文件数目(即 ni,j != 0的文件数目),如果关键词不在语料库中,这会导致除零错误,这种情况通常用1+f1 thumb3 thumb TF IDF统计来代替。

    TF-IDF权重

    TF-IDF权重:由此,TF,IDF权重为TF,IDF的乘积:

    w i,j =   tfidfi,j = tfi   *  dfi,j

    为在整个文档集中,关键词Term i(最小单元)在文档j中的权重。某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

    基于TF-IDF余弦相似度

    基于TF-IDF余弦相似度:查询q与文档dj的余弦相似度可以表示为:

    weigh thumb1 thumb TF IDF统计

    其中,i为q与文档dj 把q视作一个文档向量,i为dj 与q中的每一个元关键词标量。

    TF-IDF的理论依据与不足

    TF-IDF算法是建立在这样一个假设之上的 :

    对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。

    另外考虑到单词区别不同类别的能力,TF-IDF法认为一个单词出现的文本频数越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。

    但是在本质上IDF是一种试图抑制噪音的加权 ,并且单纯地认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以TF-IDF法的精度并不是很高。

    此外,在TFIDF算法中并没有体现出单词的位置信息,这也是空间向量模型的不足点。对于Web文档而言,权重的计算方法应该体现出HTML的结构特征。特征词在不同的标记符中对文章内容的反映程度不同,其权重的计算方法也应不同。因此应该对于处于网页不同位置的特征词分别赋予不同的系数,然后乘以特征词的词频,以提高文本表示的效果。

    向量空间模型

    向量空间模型 (VSM:Vector Space Model) 是一个应用于信息过滤, 信息撷取, 索引以及评估相关性的代数模型。由Salton等人于60年代提出,并成功地应用于著名的SMART文本检索系统。

    向量空间模型(VSM)概念

    文件(语料)被视为索引词(关键字)形成的多次元向量空间, 索引词的集合通常为文件中至少出现过一次的词组。在文本检索中,文档与查询词可以表示为以下向量空间模型[1] :

    d= (w1,j,w2,j,…,wt,j)

    q = (w1,q,w2,q,…,wt,q)

    搜寻时,输入的检索词q会被转换成类似于文件的向量,这个模型假设,文件和搜寻词的相关程度,可以经由比较每个文件(向量)和检索词(向量)的夹角偏差程度而得知。 由此两个文档向量空间的夹角余弦为:

    vsm thumb 向量空间模型VSM

    而对应检索词q与文档集中文档d2的向量空间夹角余弦为 :

    vector thumb 向量空间模型VSM

    在坐标系中如图:

    250px Vector space model thumb 向量空间模型VSM

    (余弦为零表示检索词向量垂直于文件向量,即没有符合,也就是说该文件不含此检索词)

    VSM优势

    向量空间模型相对标准布尔模型,优势在于:

    1. 基于线性代数的简单模型
    2. 权重非简单的二值化
    3. 可以在查询与文档集见计算一个连续的相似度
    4. 可以按照文档集间的关联度做排序
    5. 可以进行局部匹配

    VSM局限性

    1. 不适合处理过长的文件,因为近似值不理想(过小的标量积以及过高的次元)。
    2. 检索词组必须要完全符合文件中出现的词组;不完整词组(子字串)会会生false positive
    3. 语言敏感度不佳;情境相同但使用不同语汇的文件无法被关连起来,这产生所谓的false negative
    4. 无法反应词语见的出现的顺序关联性
    5. 模型假设在词语特性均各自独立上
    6. 权重计算比较偏直觉经验上,而非十分正式

    VSM通俗来说缺点

    • 它的缺点是相似度的计算量大,当有新文档加入时,则必须重新计算词的权值;
    • 不适合处理过长的文件,因为近似值不理想;
    • 检索词组必须要完全符合文件中出现的词组,不完整词组(子字串)会会生false positive;
    • 语言敏感度不佳,情境相同但使用不同语汇的文件无法被关联起来,这产生所谓的false negative。

    VSM中的关键词(Term)

    向量空间模型是基于关键词标量模型的,关键词对于区分文档的作用是不同的。例如一些虚词对于区分文档的内容与查询是否相关并没有多大的意义[3]

    对于概率模型而言,可以有完备的理论来估计每篇文档生成某个词的概率,因而其主要工作集中于如何确定较好的概率估计方法。而对于向量 空间模型来说,确定关键词权重在很大程度上依赖于研究者的经验及对文档特性的分析。

    目前,对关键词权重的确定方法一般都需要获取一些关于关键词的统计量,而后根据这些统计量,应用某种认为规定的计算公式来得到权重。 最常用的统计量包括:

    • tf,(Term Frequency), 表示某个关键词在某个文档中出现的频率。
    • qtf,(Query Term Frequency). 表示查询中某关键词的出现频率。
    • N,(Num), 集合中的文档总数
    • df,(Document Frequency), 的缩写,表示文档集合中,出现某个关键词的文档个数。
    • idf,(Inversed Document Frequency), 的缩写。
    • dl,(Document Length), 文档长度
    • adl,(Everage Document Length), 平均文档长度

    VSM指导思想

    在向量空间模型下,构造关键词权重计算公式有三个基本原则:

    1. 如果一个关键词在某个文档中出现次数越多,那么这个词应该被认为越重要。
    2. 如果一个关键词在越多的文档中出现,那么这个词区分文档的作用就越低,于是其重要性也应当相应降低。
    3. 一篇文档越长,那么其出现某个关键词的次数可能越高,而每个关键词对这个文档的区分作用也越低,相应的应该对这些关键词予以一定的折扣。

    扩展模型

    基于向量空间模型上的扩展模型有

    Models based on and extending the vector space model include:

    参考资料

    http://en.wikipedia.org/wiki/Tf%E2%80%93idf

    http://baike.baidu.com/view/1228847.htm

    http://www.vanjor.org/blog/2010/11/tf-idf/

    http://www.vanjor.org/blog/2010/11/vector-space-model/

    http://en.wikipedia.org/wiki/Vector_space_model

    http://cogsys.imm.dtu.dk/thor/projects/multimedia/textmining/node5.html

  • 相关阅读:
    struts2实现的简单的Trie树
    从源码总结struts2命名空间的匹配规则
    Knockout2.x:ko.dataFor()、ko.contextFor()使用
    Reporting Services可選參數設置
    在.net CF中設置DataGrid中列的寬度
    VB.net 簡體繁體轉化代碼
    在SQL語句中獲取錯誤信息
    VS 2005 使用 Crystal report 發生載入報表失敗
    Lazarus一個奇怪的設置
    怎样用wince设备创建快捷方式
  • 原文地址:https://www.cnblogs.com/haippy/p/2199144.html
Copyright © 2011-2022 走看看