TF-IDF介绍(原来+代码)

TF-IDF原理

    对于一篇比较长的文章,想要不加人为干预的迅速了解文章的关键词,该怎么做到呢?这时候要送到经典算法IF-IDF,TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。
    直观上理解,如果一个词很关键,那么这个词在文本中出现的次数就会比较多,此时我们就用 TF(词频) 来表示。而你又要问了,那么文章中出现最多的一定是一些类似 “的”,‘是’,‘在’等停用词 需要将这些词事先过滤掉在对文本进行处理。还有一个问题,我们要考虑词语的关键程度,如果文章中有些词出现的次数一样多,比如 “中国”,“蜜蜂”,“养殖” ,是否就能简单的认为这三个词语重要程度一样呢?答案是否定的,我们很容易看出 “中国” 是一个很常见的词语,在很多文献中都是经常出现的词语,就算给你这个词语,你并不知道这篇文章是干什么的。而 “蜜蜂”,“养殖” 却不常见,很能反应文章的内容,其俩关键性要大于 中国 ,所以还需要采取一种方法来解决。
    所以,我们需要一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。
    用统计语言来表示,就是在 词频的基础上,对每个词分配一个表示“重要性”的 权重 ,比如最常见的词 “是”,“的” 等停用词给与最小的权重,“中国” 给与较小的权重,而 “蜜蜂”,“养殖” 这类少见的词语给予较大的权重。我们把这个权重叫做 “逆文档频率(IDF)” ,它的大小与一个词的常见程度成 反比
    我们已经了解了什么是 频率(TF)逆文档频率(IDF) 的概念。将两个值相乘,就得到了一个词的 TF-IDF值 ,值越大,说明词对文章的重要性越高。根绝词语的TF-IDF值排名来选择文章的关键词。

I F − I D F IF-IDF IFIDF 的计算步骤如下:

     1 、 1、 1 计算词频
    词频(TF) = 该词在文章中出现的次数
    考虑到文章有长短之分,这里对文章进行 “词频”标准化
    词频(TF) = 该词在文章出现的次数/文章总词数
     2 、 2、 2 计算逆文档频率
    这是,需要一个语料库(corpus),用来模拟语言的使用环境。计算公式为
    逆文档频率(IDF) = log10(语料库的文档总数/包含该词的文档数+1)
     分母加1是为了防止所有文档都不包含该词,避免分母为0
     3 、 3、 3 计算TF-IDF
    TF-IDF = 词频(TF) X 逆文档频率(IDF)
    从最终的结果来看,TF-IDF值与一个词在文档中出现的次数成 正比 ,与该词在整个语言中的出现次数成 反比 ,所以提取文章关键词就要计算TF-IDF值,按照大小顺序进行选择。
下面以 《中国的蜜蜂养殖》 为例子,为大家计算一下。假定文章长度为1000个词,“中国”,“蜜蜂”,“养殖” 各出现了15次,则这三个词的 “词频(TF)” 都为0.015,然后搜索Google发现,包含 “的” 的网页共有250亿张,包含 “中国” 的网页共有62.3亿张,包含 “蜜蜂” 的网页为0.484亿张,包含 “养殖” 的网页为0.973亿张,则他们的 逆文档频率(IDF)IF-IDF值 如下:

包含该词的文档数(亿) IDF TF-IDF
中国 62.3 0.603 0.009
蜜蜂 0.484 2.713 0.041
养殖 0.973 2.410 0.036
250 0.002 3e-5

    从结果来看,“蜜蜂” 的TF-IDF值最高,**"养殖"其次,“的”**最低,近乎于 0。所以,如果只选择一个词,"蜜蜂"就是这篇文章的关键词。
    TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。(一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。)

使用三种方法计算TF-IDF值

1 、 g e n s i m 库 来 计 算 T F − I D F 值 1、gensim库来计算TF-IDF值 1gensimTFIDF
首 先 构 建 语 料 库 为

  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值