LDA对微博关注用户聚类

 

最近看了LDA以及文本聚类的一些方法,写在这里算是读书笔记。文章最后进行了一个小实验,通过爬取本人在微博上关注的人的微博,利用微博的内容,尝试将我关注的人按主题进行进行聚类。

文本聚类就是把一个文本集分成一定数量的簇(Cluster),使每个簇内的文本之间具有较大的相似性,而使簇间的文本具有较大的差异性。传统的文本聚类方法一般基于向量空间模型(vector space model): 在对文本集中的每个文本进行预处理(分词、停用词过滤等)、特征选择和权重计算之后,将文档集表示成一个高纬、稀疏的文档-词矩阵,进而使用K-Means、凝聚的层次聚类、DBSCAN等聚类方法对文档进行聚类。

在特征选择选择环节,虽然一些高效的特征选择方法,例如互信息MI(Mutual Information)、x2统计量等已经非常成功地应用于文本分类,但由于它们需要每个文档人工标记的类信息而无法应用于无监督的文本聚类。文本聚类里面一般选择无监督的特征选择方法,例如文档频数(整个数据集中有多少个文本包含这个单词)、单词权(认为一个词在相关的文本中出现得越多, 在不相关的文本中出现得越少就越为重要,需要计算每个文档对的相似度)等。

由于基于VSM 向量空间模型在文本聚类时存在的高维稀疏问题,以及不能从语义上理解文本之间的内在联系,另一种比较流行的方法就是通过主题模型来给文本建模,将文本表示成一个主题概率向量,这样能够充分的挖掘文本集合的主题信息。通过主题模型,原本是在高维的特征词空间上表示的文本,被转换在了低维的并且融入更多语义信息的主题空间上来表达,应该能提高文本聚类性能和效率,使得聚类的结果更加有效。

 

LDA(Latent Dirichlet Allocation)主题模型

LDA 是一个三层贝叶斯概率模型,包含词、主题和文档三层结构。整个文档集有K个主题,每个主题是固定词汇表上的一个多项式分布。这些主题被集合中的所有文档所共享,但每个文档有一个特定的主题分布。每个文档的主题分布θm从Dirichlet分布中抽样产生,每个主题的词分布φk也从Dirichlet分布中抽样产生,这两个Dirichlet分布相互独立,参数分别是α和β。(Dirichlet 分布可以理解为一个分布的分布,从Dirichlet 分布中抽个样取出的是一个分布)。

LDA的图模型表示:

整个文档集的生成过程:

  • 1、首先从以β为参数的Dirichlet分布中,抽样产生整个文档集的K个词分布,标记为φ1至φk,即左侧的K个主题;
  • 2、对于每一篇文档:
  •         2.1、从以α为参数的Dirichlet分布中,抽样产生一个主题分布θm,即这篇文档中各个主题的比重,图中为右侧的直方图;
  •         2.2、对于文章m中的每一个词:
  •                  2.2.1、以概率分布θm,选择K个主题中的一个主题,例如为φi
  •                  2.2.2、以概率分布 φi,从该主题中选择一个词。

LDA的参数估计:

Gibbs 抽样容易实现并且能够有效地从大规模文集中抽取主题,是当前最流行的LDA 模型抽取算法。Gibbs 抽样并没有直接去计算主题-单词分布φk和文本上的主题分布θm,转而对每个位置上的词的主题进行迭代采样。一旦每个位置上的词的主题确定下来,那么φk和θm的值就可以在统计频次后计算出来。对每个位置上的词进行主题采样时,该词的主题以该词当时在各个主题上的概率分布采样获得。采样前需要计算该词属于每个主题的概率。

微博用户聚类实验:

  • (1)爬取我在微博上的关注的用户他们在之前一个月内发的微博。每个人的微博作为一个文本,得到大约500个文本;
  • (2)用IK Analyzer对每个文本进行切词,并同时过滤掉一些停用词;
  • (3)利用JGibbLDA将每个文本表示成一个主题向量,即该文本属于每个主题的概率,运行时指定了20个主题,进行了1000次迭代;
  • (4)使用scikit-learn里的K-Means进行聚类,指定的簇个数是20。

下面是聚类的一部分结果,可以看到一些内容账号的聚类效果还是可以的,主要是它们每天发博量比较大,而且博文的主题较明显。对于个人账号,往往发博量少而且主题分散。当然跟抓的量少也有关系。

(1) LOVE_湖人          湖人新闻动态         NikeBasketball         爱死科比论坛         CNTV体育台  科比演绎之路         于嘉         NBA 苏群

(2) SAP中国     创新工场微招聘     新浪校园招聘         IBM中国有限公司人才与招聘     Google中国校园招聘    IBM中国         IBM杭州分公司     IBM中国大学合作部     新浪招聘

(3) 百度校园  百度开发者中心     百度搜红包     编程之美全国挑战赛     美国国家仪器         阿里巴巴集团校园招聘         微软亚洲研究院         百老汇之家     acmicpc   微软学生技术俱乐部     阿里云     百度云     BaiduFamily     微软校招官方微博         微软中国     网易校园招聘

(4) DataScientist      52opencourse_挖课        网易汪源         丕子         刘思喆     杨滔_数据科学       邓侃         王威廉     北冥乘海生         刘洋THU         ChinaHadoop   MachineLearner      阿里日照

(5) 唯美丶中国风  全球视觉图宴         镜头中的中国         BJTUcaixia        百度旅游         全球顶尖摄影

(6) TechWeb     程苓峰-云科技        互联网的那点事     开心的老胡-GodHope    淘宝鬼脚七     google那点事儿     腾讯微信团队         张辉forestsong       刘江总编         月光博客         PingWest中文网     刘挺         王小川     36氪        雷军         Fenng       高效IT网     庄宝童

(7) Smile_geek 赫阳at百度 199IT-互联网数据中心  苏宁易购李斌         视物致知         蔡学镛     billgates   FT中文网         数据化管理         微数据     爬盟中国         DataV       淘宝技术大学         社会网络与数据挖掘     李开复     于仰民_Emilyu         数据挖掘_PHP         淘依韵     ResysChina      量子恒道         林仕鼎     钱皓-互联网分析师        陈利人     EMC中国研究院    BIT-百度技术学院     3W咖啡  微指数     淘薛奎     数据挖掘研究院     百度统计         TEDNews          周鸿祎     一淘数据工程师     杨栋_Kenny     大数据         张俊林say       郭去疾     数据魔方         微软云计算     ipad应用排行榜     数据挖掘与数据分析     唐福林     五洲红         AdMaster         程辉         2012百度之星程序设计大赛        eBayTech 百度推广         社交数据分析         Google黑板报         张亚勤

(8) 连城404   伯乐在线官方微博         图灵社区         何_登成  一淘测试         python4cn        骆逸         nosqlfan   zhh-2009 阿里技术嘉年华         微博应用架构         developerWorks       开源中国         程序员的那些事     LAMP人  InfoQ        程序员修炼营         TimYang   CNodeJS  百度技术沙龙         朴灵         微博平台架构         SinaAppEngine

(9) 一淘网       淘宝网     淘宝邓悟         Python发烧友         淘宝数据         rockdai     一淘招聘         淘楚材     乔三石     hugozhu   淘宝指数

(10)姚晨  花泽云静         司華Fighting   glinglingw         邹_小珊  蔡圆媛的后花园     开启新起点tianran         凌_欣       任婷婷养了一只皮皮兽     胡思乱想乐     BatmanFly        超级码力         macbax    Miss好好菁    蔡虎Stanley    夏炎xyxy          阿Oey–陈叶萍         Ali_lulululuya   夏碉堡     turbosun  依兰花开_emma    LillianC小超人         Loxpzi-四叶草 稀土部队

 

 

网上有LDA java版的实现,google下JGibbLDA。也可以去这下载:http://pan.baidu.com/share/link?shareid=582000575&uk=705674274

版权声明:本文为lifegoesonitself原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lifegoesonitself/articles/3237055.html