• TF_IDF模型和文本相似度的计算


    TF_IDF模型和文本相似度的计算 - icelovely的专栏 - 博客频道 - CSDN.NET

    TF_IDF模型和文本相似度的计算


    分类:
    文本检索


    91人阅读
    评论(0)
    收藏
    举报

    TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,互联网上的搜寻引擎还会使用基 于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。

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

     mathrm{tf_{i,j}} = frac{n_{i,j}}{sum_k  n_{k,j}}

    以上式子中ni,j是该词在文件dj中的出现次数,而分 母则是在文件dj中所有字词的出现次数 之和。

    逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

     mathrm{idf_i} =  log frac{|D|}{|{d: d ni  t_{i}}|}

    其中

    • |D|:语料库中的文件总数
    •  |{d:dni t_{i}}|
      包含词语ti的文件数目(即 n_{i} neq 0
      文件数目)

    然后

     mathrm{tf{}idf_{i,j}} = mathrm{tf_{i,j}}  cdot  mathrm{idf_{i}}

    某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词 语,保留重要的词语。

    =================文本相似性度量=======================

    方法一:向量空间模型

    在向量空间模型中,文本泛指各种机器可读的记录。用D(Document)表示,特征项(Term,用t表示)是指出现在文档D中且能够代表该文档内容的 基本语言单位,主要是由词或者短语构成,文本可以用特征项集表示为D(T1,T2,…,Tn),其中Tk是特征项,1<=k<=N。例如一篇 文档中有a、b、c、d四个特征项,那么这篇文档就可以表示为D(a,b,c,d)。对含有n个特征项的文本而言,通常会给每个特征项赋予一定的权重表示 其重要程度。即D=D(T1,W1;T2,W2;…,Tn,Wn),简记为D=D(W1,W2,…,Wn),我们把它叫做文本D的向量表示。其中Wk是
    Tk的权重,1<=k<=N。在上面那个例子中,假设a、b、c、d的权重分别为30,20,20,10,那么该文本的向量表示为 D(30,20,20,10)。在向量空间模型中,两个文本D1和D2之间的内容相关度Sim(D1,D2)常用向量之间夹角的余弦值表示,公式为:



    其 中,W1k、W2k分别表示文本D1和D2第K个特征项的权值,1<=k<=N。

    在自动归类中,我们可以利用类似的方法来计算待归类 文档和某类目的相关度。例如文本D1的特征项为a,b,c,d,权值分别为30,20,20,10,类目C1的特征项为a,c,d,e,权值分别为 40,30,20,10,则D1的向量表示为D1(30,20,20,10,0),C1的向量表示为C1(40,0,30,20,10),则根据上式计算 出来的文本D1与类目C1相关度是0.86

    方法二:字符串相似度

    对于象字符串计算相似度的算法有很多,常用的有最大公共字串,编辑距离等。

    编辑距离就是用来计算从原串(s)转换到目标串(t)所需要的最少的插入,删除和替换的数目,在NLP中应用比较广泛,如一些评测方法中就用到了 (wer,mWer等),同时也常用来计算你对原文本所作的改动数。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫 Levenshtein Distance。

  • 相关阅读:
    2017的结束2018的开始
    .NET Core使用swagger进行API接口文档管理
    数据库可扩展设计方案
    容量估算--随时更新
    分库分表设计基础
    利用bucardo搭建PostgreSQL数据库双活
    通过pgAgent实现PostgreSQL上的自动作业
    MySQL主主配置
    Oracle统计信息不准(谓词越界)造成的性能问题
    获取Oracle中SQL语句的执行计划
  • 原文地址:https://www.cnblogs.com/lexus/p/2698637.html
Copyright © 2020-2023  润新知