掌握LDA算法,让你轻轻松松搞清大型文档中的奥秘
点击上方关注,All in AI中国
导言:
主题模型是一组旨在发现大型文档主题信息的算法。主题模型算法是一种统计方法,通过分析原始文本中的同一单词的出现频率来判断主题。
隐含狄利克雷分布(LDA)是由哥伦比亚大学的David M Blei、斯坦福大学的吴恩达和Michael Jordan (加州大学伯克利分校)开发的一种主题模型算法。简单的说,LDA属于自然语言处理领域中的无监督机器学习领域。
在这篇文章中,作者将尝试对LDA进行一些基本的演算,但不打算深入到具体细节。然后,带领我们使用python对NASA网站上公开提供的文档进行主题模型。
基本判断
LDA的主要目的是判断文档展示了多少个主题。Blei和他的团队用"Seeking Life's Bare (Genetic) Necessities"这篇文章进行LDA算法的演练。其中,彩色标亮的地方是他们需要着重注意的部分。
其中,不同颜色的单词分别代表着不同的主题。我们可以笼统的说,主题就是文本中词汇的分布情况。例如,在上面的文档中,单词的分布情况如下,表示计算预测的部分用蓝色标记。表示基因、基因组的地方用黄色标记等等。如果Blei博士和他的团队花费更多的时间对每一个单词都进行颜色标记(不包括停止词),我们将看到这篇文章将遗传学、数据分析和进化生物学融为一体。其中不同颜色(的单词)占文本的比例,表示这三门学科在文本中的应用情况。
在这里需要强调的是,本文使用LDA得出的结果是建立在以下前提上的,具体内容如下:
- 对于主题文本的分析都采用条形图居右的样式。
- 不同的颜色代表着不同的主题。
- 你需要确定不同颜色代表的具体含义。如果说,你选择黄色代表与遗传学相关的单词。主题模型会不断的分析每一个单词与与遗传学的关系。
- 当主题模型确定你的单词与黄色无关,它会转向其他颜色并且重复第3(步骤)。
通过LDA你会对文章不同阶段主题的变化有着更深的理解。换句话说,我们可以假设一篇文章是不同主题结合的模型。LDA就是对文章包含哪些主题作出的具体分析。
使用python开始主题模型:
我们从导入python库开始。
就像建模前的任何数据一样,我们必须对文本数据进行预处理。我们的预处理步骤包括消除停止词等等。在提取数据之前,我们将创建一个预处理函数,以便在我们对数据进行处理。
我们现在需要取出存储在本地的数据,然后使用刚才所述的步骤进行预处理。
在建模之前,让我们先看看我们的数据是什么样子的。
现在,我们将把数据拟合到我们的LDA算法中。
现在是时候对LDA主题化建模进行可视化处理。从上面的代码中可以看出,我们将参数num_spects设置为3,也就是说我们的模型将给我们提供3个主题。我们需要对每个主题进行可视化处理。
我们看到臭氧、大气、飞行、排放等词。这告诉我们,我们的文件包含与地球大气中臭氧层有关的研究内容。
接下来,让我们看看主题2要告诉我们的关于我们文档的内容。
我们看到像飞行、超音速、商业、声波等词。这告诉我们这篇文章与航空工程有关。最后,我们对主题3进行可视化处理。
火星、任务和漫游者等主题的分布揭示了与火星探索有关的主题。
结语:
像LDA这样的主题建模是无监督的机器学习代表,因为它能在文档集中发现潜在的主题。主题模型对出版、内容推荐以及处理大量法律、科研文件都有着广泛的作用。
补充链接:http://www.cs.columbia.edu/~blei/papers/Blei2012.pdf
运营:李佳惠