开发者社区> 问答> 正文

怎么使用PLDA进行文本聚类

      先贴文档哈(http://www.yushanfang.com/portal/help/doc.html?spm=0.0.0.0.nha8ts&file=SuanFaPingTai),在文档里搜PLDA可以看到算法的一些信息。
      算法是对数据进行文本聚类,咱们从数据的源头开始一步步做下来。
1,获得分词后的结果表,可以简单用这个实现:


这里的输出表1_1是一个docid+word+count的结果
2,因为上面的表的输出是word是字符串,而PLDA输入的稀疏矩阵的KV结构要求是BIGINT:DOUBLE,所以需要把String转成Bigint。这里建立一个数字和word的一一对应关系。中间怎么处理就看你实现了。可以筛选出自己认为重要的词后,用<数据预处理>里的<序列追加>组件。而Double类型的地方,在PLDA里需要传入的是单词的词频。
我这里的结果表弄成是weibo_blog_data_train_1_wid ,里面的数据结构是word(string)+rn(bigint)。
3,把结果整理成一张PLDA的输入表。文档里提到可以写MR,但是也可以用更加方便的方法(我这里用了mapjoin(b)是因为我筛选出来的b表数据比较少):

create table weibo_plda_in as
select /*+mapjoin(b) */
a.mid,WM_CONCAT(',',concat(b.rn,':',a.count)) as content
from
weibo_wc_1_1 a
join weibo_blog_data_train_1_wid b
on a.word =b.word
group by a.mid
4,用PLDA跑数据吧,哈哈。



展开
收起
传学 2015-11-24 18:02:54 7170 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
50行代码玩转强化学习讲义 立即下载
大模型时代的搜推广应用和实践 立即下载
典型模型-卷积神经网络入门 从概念原理到应用实现 立即下载