首页 > 代码库 > 大论文微博个性化
大论文微博个性化
1,提取出每个节目下的用户列表
2,将用户id列表与用户的profile进行对应
实现脚本如下:
1 #/bin/sh 2 3 program_dir=/home/minelab/liweibo/raw_data 4 user_file=/home/minelab/liweibo/springNightUser/sina_user.data 5 6 program_list=`ls $program_dir` 7 8 for program in $program_list 9 do 10 #对每个节目生成两个文件 11 #节目名称_userid_times.map 字段:用户id 用户发表该节目相关的微博的次数 12 #节目名称_userid_times_profile 字段:用户id 用户提到该节目的次数 用户昵称 用户性别 用户地域 用户生日 用户关注数目 用户粉丝数目 用户发布微博数目 用户标签 13 rm -rf $program_dir/$program/$program"_userid_times.map" 14 rm -rf $program_dir/$program/$program"_userid_times_profile.map" 15 cat $program_dir/$program/$program.data| awk -F‘\t‘ ‘{print $2}‘ | sort | uniq -c | sort -r -n | sed ‘s/^ *//g‘ | sed ‘s/ /\t /g‘ | awk -F‘\t‘ ‘{print $2"\t"$1}‘ | sort >$program_dir/$program/$program"_userid_times.map" 16 join -t $‘\t‘ $program_dir/$program/$program"_userid_times.map" $user_file >$program_dir/$program/$program"_userid_times_prof ile.map" 17 18 echo $program is done! 19 done 20 21 echo "all is done!"
3,对节目信息进行编号
#!/bin/shprogram_dir=/home/minelab/liweibo/raw_datainter_dir=/home/minelab/liweibo/inter_dataresult_file=$inter_dir/id_program.mapprogram_list=`ls $program_dir`rm -rf $result_filei=1for program in $program_listdo echo $i" "$program>>$result_file i=$[$i+1]doneecho "done"
得到的id_program.map文件
1 百花争妍2 倍儿爽3 春晚是什么4 答案5 扶不扶6 符号中国7 光荣与梦想8 欢歌9 剑心书韵10 卷珠帘11 康定情歌12 空空拜年13 老阿姨14 练兵舞15 玫瑰人生16 梦蝶17 魔幻三兄弟18 难忘今宵19 年味儿20 青春舞曲21 情非得已22 群发的我不回23 扰民24 人到礼到25 舌尖上的春晚26 时间都去哪儿27 说你什么好28 套马杆29 天下黄河九十九道弯30 天耀中华31 同光十三绝32 团圆饭33 万马奔腾34 万泉河水35 我的要求不算高36 我的中国梦37 我就这么个人38 想你的365天39 小马欢腾40 野蜂飞舞41 英雄赞歌42 英雄组歌43 在那遥远的地方44 站在高岗上45 张灯结彩46 最好的夜晚
4,建立节目id_用户矩阵
#!/bin/bash#最终得到的文件格式是节目id" "评论该节目的用户数目" "评论该节目的用户id列表(不同id之间使用空格分开)#如果一个用户多次评论某个节目,当作一次进行处理program_dir=/home/minelab/liweibo/raw_datainter_dir=/home/minelab/liweibo/inter_dataresult_file=$inter_dir/programid_userlist.maptmp_file=$inter_dir/programid_userlist.tmpprogram_list=`ls $program_dir`rm -rf $result_filerm -rf $tmp_filei=1for program in $program_listdo user_list=`cat $program_dir/$program/$program"_userid_times_profile.map" | awk -F‘\t‘ ‘{printf("%s ",$1);}End{print;}‘` line_num=`cat $program_dir/$program/$program"_userid_times_profile.map" | wc -l | awk ‘{print $1}‘` echo $i" "$line_num" "$user_list >>$tmp_file i=$[$i+1]done#根据节目流行度进行排序cat $tmp_file | sort -t $‘\t‘ -k 2 -r -n > $result_filerm -rf $tmp_fileecho "done"
5,建立用户_节目id矩阵
6,统计节目下节目的流行度
7,统计用户的活跃度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。