Mapreduce 案例分析(TF-IDF(term frequency–inverse document frequency))
一.需求介绍
二.思路分析
概念
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加
但同时会随着它在语料库中出现的频率成反比下降
TF-IDF加权的各种形式常被搜寻引擎应用
作为文件与用户查询之间相关程度的度量或评级。
除了TF-IDF以外,因特网上的搜寻引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序:PR。
大白话:
打开百度
搜索:王者
搜索:王者荣耀
继续搜索:王者荣耀 露娜
继续搜索:王者荣耀 露娜 连招
用户通过调整字词来缩小范围
每个字词都有对应出现的页面
通过字词数量缩小范围
最终通过字词对于页面的权重来进行排序
《的》
词频 (term frequency, TF) 指的是某一个给定的词语在一份给定的文件中出现的次数。这个数字通常会被归一化(分子一般小于分母 区别于IDF),以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)
公式中:
ni,j是该词在文件dj中的出现次数,而分母则是在文件dj中所有字词的出现次数之和。
逆向文件频率 (inverse document frequency, IDF) 是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
|D|:语料库中的文件总数
包含ti文件的数目
TF-IDF:
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
先做分词,有了词之后,然后切分
搜索引擎:“小鲜肉”,不是中华古典词汇
分词库
IP分词器是开源的分词结构
相同的ID为一组
客户端在windows系统
Mapred-site.xml为yarn,则要用集群去完成。
在MapReduce端一直在做worldcount
TF-IDF:
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
mr:1
乐_38238909485177232 3
//微博:字词的wc
38238909485177232 40
MR
乐_38238909485177232 (3/40)
//乐 逆向文件频率 1065
乐 4
解需求思路:
分词
面向文本计算词频:wc
面向全量文本计算包含集合:wc
套用公式
MR
第一次:词频统计+文本总数统计
map:
词频:key:字词+文本,value:1
文本总数:key:count,value:1
partition:4个reduce
0~2号reduce并行计算词频
3号reduce计算文本总数
reduce:
0~2:sum
3:count:sum
第二次:字词集合统计:逆向文件频率
map:
key:字词,value:1
reduce:
sum
第三次:取1,2次结果最终计算出字词的TF-IDF
map:输入数据为第一步的tf
setup:加载:a,DF;b,文本总数
计算TF-IDF
key:文本,value:字词+TF-IDF
reduce:
按文本(key)生成该文本的字词+TF-IDF值列表