python主题建模可视化LDA和T-SNE交互式可视化

我尝试使用Latent Dirichlet分配LDA来提取一些主题。 本教程以自然语言处理流程为特色,从原始数据开始,准备,建模,可视化论文。

由Kaizong Ye,Liao Bao撰写

我们将涉及以下几点:1.使用LDA进行主题建模。2.使用pyLDAvis可视化主题模型。3.使用t-SNE可视化LDA结果。

 预处理和矢量化文档

 计算双字母组/三元组:

主题非常相似,可以区分它们是短语而不是单个单词。

In [5]:

删除

In [6]:

清理常见和罕见的单词,我们最终只有大约6%的词。


python爬虫进行Web抓取LDA主题语义数据分析报告

阅读文章


矢量化数据:
第一步是获得每个文档的单词表示。

In [7]:

In [8]:

通过词袋语料库,我们可以继续从文档中学习我们的主题模型。

训练LDA模型 

In [9]:

In [10]:


随时关注您喜欢的主题


如何选择主题数量?


LDA是一种无监督的技术,这意味着我们在运行模型之前不知道在我们的语料库中有多少主题存在。 主题连贯性是用于确定主题数量的主要技术之一。 

但是,我使用了LDA可视化工具pyLDAvis,尝试了几个主题并比较了结果。 四个似乎是最能分离主题的最佳主题数量。

In [11]:

In [12]:

Out[12]:

我们在这看到什么?

左侧面板,标记为Intertopic Distance Map,圆圈表示不同的主题以及它们之间的距离。类似的主题看起来更近,而不同的主题更远。图中主题圆的相对大小对应于语料库中主题的相对频率。 

如何评估我们的模型? 

将每个文档分成两部分,看看分配给它们的主题是否类似。 =>越相似越好

将随机选择的文档相互比较。 =>越不相似越好

In [13]:

转换数据

In [14]:

In [15]:

 让我们看一下每个主题中出现的单词。

In [17]:

In [18]:

 从上面可以检查每个主题并为其分配一个可解释的标签。 在这里我将它们标记如下:

In [19]:

In [20]:

In [22]:

In [23]:

In [24]:

In [25]:

In [26]:

In [27]:

 BokehJS 0.12.5成功加载。

In [28]:

In [29]:


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498