MapReduce 互联网精准广告推送算法

TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF词频(Term Frequency)指的是某一个给定的词语在该文件中出现的次数。IDF反文档频率(Inverse Document Frequency)的主要思想是:如果包含词条的文档越少,IDF越大,则说明词条具有很好的类别区分能力。

要想精准的向用户推送广告。我们需要知道的一个重要因素是,用户对产品的关注程度,我们可以使用数据建模来将‘关注程度’这样一个抽象的名次转化为一个具体的数字。本次实验我们使用的关注度权重公式为:

W = TF * Log(N/DF)

TF:当前关键字在该条记录中出现的总次数;

N:总的记录数;

DF:当前关键字在所有记录中出现的条数;

 

实验环境

Linux Ubuntu 14.04

jdk-7u75-linux-x64

Hadoop 2.6.0-cdh5.4.5

 

实验内容

传统的广告形式有很多种,但是由于没有区分用户,盲目大量投送广告导致费用增大且收效甚微,在大数据时代,我们使用协同过滤算法和TF-IDF算法来实现精准广告推送功能,合理分类哪些是确切需要本产品的用户,向其投送相关产品的广告,降低成本且提高成功率。

本实验使用微博数据,找出哪些用户对华为手机感兴趣,关注程度是怎样的,计算出权重值。从而实现选出优质用户,向优质用户精准推送华为手机广告的功能。

结果数据为:

通过结果数据我们可以发现,每个关键字的权重已经计算出来了,如果我们想找到比较关注华为手机的用户,我们只需要把‘手机’、‘华为’、‘买’等关键字权重值高的用户提取出来即可。

1.首先,我们来准备实验需要用到的数据,切换到/data/mydata目录下,使用vim编辑一个tj_data.txt文件

  1. cd /data/mydata
  2. vim tj_data.txt

将如下数据写入其中:

  1. 小时光***糖你好 我最近发现我的华为p10后置摄像头照相模糊。这个对于我个只会手机支付身上不带钱的用户造成很大的困扰。我刚去花粉俱乐部看了下,不只有我一个人有这样的问题。请问下p10的后置摄像头是否是批次硬件问题。以及如何解决,求回应
  2. 小媳***结成风5 我的P10耗电太快
  3. 人***花u 凤凰古镇
  4. 全***信他 360全景图 教你手机拍微博全景图哦。
  5. 你说***了没 想去拍茶卡盐湖,一望无际
  6. 路***锡 岳麓山
  7. 让***忧1 世界任你拍
  8. 小***峰 我想去拍青海湖!华为P10plus有了,能送个机票吗
  9. 19***潮 喜马拉雅
  10. leo***海 最想和她在长江大桥上一起拍摄全景~
  11. 花生***商 我微薄有【落霞脆】冬枣转发抽奖哦,欢迎前来围观
  12. 愿我***有但是 想去大草原
  13. EX***的 我用的去年买的华为 nova现在用着挺好的,以后也会继续支持华为手机的,我想去杭州西湖,可是路上缺一个充电宝
  14. 捕风***冷 西藏,超漂亮的!!!而且已经去过了,可惜评论不能发图,不是会员
  15. Msh***kp 香港
  16. ting***15 北京 北京 上海
  17. 没钱***食了 天安门?
  18. 御***殿 华山
  19. 梁天***博 全景
  20. 星***R 迪士尼
  21. 毛***狼叼走 转发微博
  22. 滑***师 站在鼓楼紫峰大厦楼顶拍一张

2.使用wget命令下载IKAnalyzer2012_u6.jar包

  1. wget http://192.168.1.250:60000/allfiles/mr_sf/IKAnalyzer2012_u6.jar

3.切换到/apps/hadoop/sbin目录下,开启Hadoop相关进程

  1. cd /apps/hadoop/sbin
  2. ./start-all.sh

4.输入JPS查看一下相关进程是否已经启动。

  1. jps

5.在HDFS的根下创建一个/tj/input目录,并将tj_data.txt文件上传到HDFS上的/tj/input文件夹下

  1. hadoop fs -mkdir /tj
  2. hadoop fs -mkdir /tj/input
  3. hadoop fs -put /data/mydata/tj_data.txt /tj/input

6.打开Eclipse,创建一个Java项目

 

 

项目名为:mr_sf

 

 

7.右键单击mr_sf项目,创建一个名为:mr_tj的包

 

 

8.创建一个名为:libs 的文件夹,用于存放项目所需的jar包

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值