1,得到用户原始数据
cat sina_user.data | grep -E '^[0-9]{10}' | awk -F'\t' '{print $1"\t"$2"\$5"\t"$9"\t"$15"\t"$16"\t"$17"\t"$18"\t"$19"\t"$28}‘' | sort >/home/minelab/liweibo/springNightUser/sina_user.data
得到的字段分别是
用户id用户昵称用户性别用户地域用户生日用户星座用户关注数用户粉丝数用户发布的微博数目用户标签
数据集中微博用户的总数是2916280个微博用户
数据集中微博总数目是12804615
2,提取出每个每个节目对应的用户(利用<节目名称>.data)
cat 百花争妍.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}'
得到的字段分布是:用户id用户提到该节目的次数
在百花争妍目录下userid_times.map
之后将该节目中微博用户的id和用户的特征对应起来
join -t $'\t' userid_time.map ../../springNightUser/sina_user.data
字段为
用户id用户提高该节目的次数用户昵称用户性别用户地域分布用户生日用户关注数用户粉丝数用户发布的微博数目用户标签
userid_times_profile.map
3)计算一个节目下用户性别分布
cat userid_times_profile.map | awk -F'\t' '{print $4}' | sort |uniq -c | sed 's/^ *//g' | awk '{print $2"\t"$1/1770}'
cat userid_times_profile.map | awk -F'\t' '{print $4}' | sort |uniq -c | sed 's/^ *//g' | awk '{print $2"\t"$1/1770}'
百花争妍性别的相关度
4)计算一个节目下用户地域的相关度
cat userid_times_profile.map | awk -F'\t' '{print $5}' | sort | sed 's/ .*//g' | uniq -c | sort -r -n | sed 's/^ *//g' | awk '{print $2"\t"$1/1770}'
这里的1770是所有的观看该节目的所有用户数目
其他 0.151977广东 0.099435四川 0.0830508北京 0.0757062上海 0.0519774浙江 0.0514124null 0.0502825江苏 0.040678福建 0.0316384重庆 0.0276836辽宁 0.0276836河南 0.0276836山东 0.0248588湖北 0.0225989陕西 0.020904湖南 0.019774安徽 0.019774海外 0.019209天津 0.0186441广西 0.0169492河北 0.0129944山西 0.0124294吉林 0.0118644香港 0.0107345黑龙江 0.0107345内蒙古 0.00903955江西 0.00903955云南 0.00677966台湾 0.00677966甘肃 0.00564972新疆 0.00451977海南 0.00451977贵州 0.0039548宁夏 0.00338983
百花争妍地域相关度
5)百花争妍星座的相关度
cat userid_times_profile.map | awk -F'\t' '{print $7}' | sort | uniq -c | sed 's/^ *//g' | awk '{print $2"\t"$1/1770}'
白羊座 0.0333333处女座 0.0305085金牛座 0.040113巨蟹座 0.0361582摩羯座 0.0384181射手座 0.0361582狮子座 0.0355932双鱼座 0.0389831双子座 0.0367232水瓶座 0.0344633天秤座 0.039548天蝎座 0.0440678
百花争妍星座的相关度
6)百花争妍年龄的相关度
2098 cat userid_times_profile.map | awk -F'\t' '$6~198{print $6}' | wc -l2099 cat userid_times_profile.map | awk -F'\t' '$6~197{print $6}' | wc -l2100 cat userid_times_profile.map | awk -F'\t' '$6~196{print $6}' | wc -l2101 cat userid_times_profile.map | awk -F'\t' '$6~195{print $6}' | wc -l2102 cat userid_times_profile.map | awk -F'\t' '$6~194{print $6}' | wc -l2103 cat userid_times_profile.map | awk -F'\t' '$6~193{print $6}' | wc -l2104 cat userid_times_profile.map | awk -F'\t' '$6~199{print $6}' | wc -l2105 cat userid_times_profile.map | awk -F'\t' '$6~200{print $6}' | wc -l
年龄的分布