这次有两个教训:
一:看数据没有耐心。
二:没有打印日志的习惯。
没有打印日志的习惯,导致出现逻辑错误的时候,一直发现不了。之后所有的方法都实验之后,才决定把以前的东西打印日志出来看。白白浪费了两个星期的工作量,实在是得不偿失。看数据没有耐心,其实也容易导致算法逻辑上的错误。做数据挖掘,就是要能耐下心来看数据。
这次的项目,是给Qzone的旅游文章打上标签。用的是基本的贝叶斯模型。
第一步:xianghe统计出分词需要的key,有60W+。挖掘出四万多的tag,统计tag和key的共现次数,算出比值。
计算的时候,用Python写了一个mapreduce程序,处理6G的文本,用时3小时。
第二步:计算tag。提取tag的过程是这样的:分词:分词的时候,加载了key和tag作为词典,这样分词的时候,就能把这些分出来。统计key在文章中出现的次数,这其实就是TF,TF*tpw,算出一个权重。这个权重和共现的比率去相乘,得到的分数作为一个最终的权值。为了更精确,最后还用权值除以了log(tagnum),其中tagnum是tag在测试集中出现的次数。