shirley_cst

博观而约取,厚积而薄发;淡泊以明志,宁静以致远。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

项目-AdCluster

Posted on 2012-10-10 11:21  shirley_cst  阅读(321)  评论(0)    收藏  举报

聚类文本预处理

1. DVM_Data_Preprocess_script:keyad.sh

2. DVM_Data_Preprocess_script/sort_DocTriple: sort_DocTriple

3. Cal_cluster2cluster_similarity_hadoop:hadoop_cal_cpp.sh、cal_cluster2cluter_similarity

4. HC-FN: /HC-FN 3203464 0.90 ../corpus/d20120916_all/valid_keyad.DOCINFO ../corpus/d20120916_all/hc.doc2doc.sim.Triple4Sim.sorted ../result/HC-FN/hc.result

 

group信息利用

做法:利用groupid已经提供的信息对group进行聚类。

最终目的:对于已经存在的groupid,直接取其聚类结果;对于不存在的groupid,计算其文档term权重向量,将其归于其中某一类,根据阈值决定是否使用此聚类结果。

流程:group的文档表示(原始形式) --> 特征词选择 --> group的文档表示(仅含特征词) --> 构建倒排索引(词袋模型) --> 建立VSM模型 --> 聚类 --> 评价

整体流程:对广告库进行预处理得到文档向量文件 --> 聚类并输出 --> 聚类效果评价

广告库的预处理

s0: 去掉质量度低于3星的广告;去掉term中的停用词;利用行业信息;……

s1: 对广告库按照 accid-catetory-planid-groupid-kid-keyword 进行排序并提取这几列信息;

s2: 对keyword进行分词;

s3: 统计TF、term在group中的出现频率;

s4: 提取group的描述term;

s5: 生成TF文件、DF文件、字典、文档描述文件;

s6: 生成文档向量文件。

TODO

1. 语料库的选择。

  sogou一般用三个语料库比较多:

  (1) 字面:聚类结果比较小,聚类精确。现在用得比较少。

  (2) 查询扩展:adr1的查询扩展模块,华北用过。找年华要相关资料。

  (3) 同点击的信息:叶祺用过。

2. term weight的算法。

  (1) TFIDF,TF、DF的计算及含义。

3. 特征词的选取。

4. 聚类算法的选择。

  (1) kmeans

  (2) 由于group的标准有大有小并不一致,也许应该考虑使用层次聚类。

思路

1. 将每个group的广告关键词看成一个文档,利用TFIDF来计算term权重。

2. term权重:term在这个group关键词中出现的比例(例如某个groupid下有N个广告,有M个含有term T, 则T的权重为M/N)。

文本聚类代码

数据及文本的预处理

1. 字符串基本函数(StringUtil.*): split, strip, int_to_str

2. 加载停用词表

3. 构建词袋模型(建倒排表):构建倒排表, 倒排表写入倒排索引文件, 从倒排索引文件加载倒排表到内存

4. 建立VSM(Vector Space Model)

聚类算法

1. kmeans聚类:相似度计算、选取初始类中心、聚类、重算类中心、判断是否到达停止迭代条件、聚类效果评价及各种评价指标、输出结果

2. 层次聚类:算法理解、数据结构设计、编码、聚类、评价

聚类结果评价

1. 评价指标、评价方法:参见《数据挖掘:概念与技术》第10章第6节-聚类评估。

2. kmeans对广告库进行聚类并进行效果评价。

3. 层次聚类:编码、调试、聚类、评价。

 问题

1. group文档是否是欧氏空间?