TF-IDF :term frequency-inverse document frequency
- 一种用于咨询检索与资讯勘测的常用加权技术
- 是一种统计方法,用以评估一个字词对于一个文件集或者一个语料库中的其中一份文件的重要程度
- 字词的重要性随着它在文件中出现的次数成正比增加
- 但同时会随着它在语料库中出现的频率成反比下降
- 加权的各种形式常备搜索引擎应用
- 作为文件与用户查询之间相关程度的度量或评级
- 出了TF-IDF以外,因特网上的搜寻引擎还会使用基于链路分析的评级方法,以确定文件在搜寻结果中出现的顺序:PR
用户通过调整字词来缩小范围:
- 每个字词都有对应出现的页面
- 通过字词数量缩小范围
- 通过字词对于页面的权重来进行排序
王者
王者荣耀
王者荣耀 露娜
王者荣耀 露娜 连招
词频(term frequency ,TF)
- 是指某一给定的词语在一份给定的文件中出现的次数,这个数字通常会被归一化(分子一般小于分母区别于IDF),以防止它偏向长的文件。(同一个词语在长文件中可能会比短文件有更高的词频,而不管词语重要与否)
- 公式
- nij是该词在文件dj中出现次数,而分母则是在文件dj中所有字词的出现次数之和。
逆向文件频率(inverse document frequency ,IDF)
- 是一个词语 普遍重要性的度量
- 某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到
- |D|:语料库中的文件总数
- |{j: ti ∈ di}| 包含ti文件的数目
- 一般我们会给|{j: ti ∈ di}| 包含ti文件的数目加1 ,主要是避免这个单词在语料库文章中没有出现,避免分母为0。
TF-IDF:
- tfidfi,j = tfi,j x idfi
- 某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
- TF-IDF的重要思想是:如果某个词或者短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的累别区分能力,适用于与来分类。
- 字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
基础数据:
前面是id号,后面是信息
3823890939805691 约约约,今天我约了,我每天都有约的,
3823890944321377 春天来了,找一个属于自己的地方去放松心情,不在这里就在那里。
3823890948200544 约吃、约喝、约玩,约了以前合租屋的镁铝小姨们来家里坐客,约的太爽、太开心了。今天还要把
3823890948517723 周末,除了大扫除,乐妈跟小情人约好了,约着一起做面包,再做一个草莓蛋糕,周末就跟孩子约,跟美食约,小阳乐妈也想跟你约
对上面数据进行处理:
- 先对上面的信息进行分词
- 面向文本计算词频:wc
- 面向全量文件计算包含集合:wc
- 套用上面TF-IDF公式
mapReduce处理方式:
mapper 1:
结果:
3823890944321377_春天 1/20
3823890948517723_周末 1/15
3823890948517723_大扫除 1/15
...
mapper 2:
对上面的进行排序,按照词组进行排序
reducer 2:
对mapper2 求和就行
mapper3
生成的格式化入下:
3823890944321377 春天:tf-idf值
3823890948517723 周末:tf-idf值
reducer3:
对上面的值进行整合成,相同的id放在一行就行
参考:
https://blog.csdn.net/wuxintdrh/article/details/58587676
https://blog.csdn.net/u012369535/article/details/88018178