📜  Gensim-主题建模

📅  最后修改于: 2020-10-16 02:28:02             🧑  作者: Mango


本章涉及有关Gensim的主题建模。

要注释我们的数据并理解句子结构,最好的方法之一是使用计算语言算法。毫无疑问,借助这些计算语言算法,我们可以了解有关数据的一些更详细的信息,但是,

  • 我们能否知道在我们的语料库中出现的单词比其他单词更常见?

  • 我们可以对数据进行分组吗?

  • 我们可以在数据中成为基础主题吗?

通过主题建模,我们将能够实现所有这些目标。因此,让我们深入探讨主题模型的概念。

什么是主题模型?

主题模型可以定义为包含有关文本中主题信息的概率模型。但是在这里,出现了两个重要的问题,如下所示:

首先,主题到底是什么?

顾名思义,主题是我们文本中表示的基本思想或主题。举一个例子,包含报纸文章的语料库将具有与金融,天气,政治,体育,各州新闻等相关的主题。

其次,主题模型在文本处理中的重要性是什么?

众所周知,为了识别文本的相似性,我们可以使用单词进行信息检索和搜索技术。但是,借助主题模型,现在我们可以使用主题而不是单词来搜索和排列文本文件。

从这个意义上讲,我们可以说主题是单词的概率分布。因此,通过使用主题模型,我们可以将文档描述为主题的概率分布。

主题模型的目标

如上所述,主题建模的重点是有关基础思想和主题。其主要目标如下-

  • 主题模型可用于文本摘要。

  • 它们可用于组织文档。例如,我们可以使用主题建模将新闻文章分组到一个有组织/相互联系的部分,例如组织与板球相关的所有新闻文章。

  • 他们可以改善搜索结果。怎么样?对于搜索查询,我们可以使用主题模型来显示包含不同关键字的文档,但是它们的想法相同。

  • 推荐的概念对于营销非常有用。各种在线购物网站,新闻网站等等都使用它。主题模型有助于就购买商品,下一步阅读内容等提供建议。它们通过查找清单中具有共同主题的材料来做到这一点。

Gensim中的主题建模算法

毫无疑问,Gensim是最受欢迎的主题建模工具包。它的免费可用性和在Python的使用使其更受欢迎。在本节中,我们将讨论一些最受欢迎的主题建模算法。在这里,我们将重点放在“什么”而不是“如何”上,因为Gensim对我们非常好地抽象了它们。

潜在狄利克雷分配(LDA)

潜在狄利克雷分配(LDA)是当前用于主题建模的最常见和最受欢迎的技术。这是Facebook研究人员在2013年发表的研究论文中使用的那个。它最初是由David Blei,Andrew Ng和Michael Jordan于2003年提出的。他们在他们的论文中提出了LDA,其名称简单为Latent Dirichlet分配

LDA的特点

让我们通过它的特性来进一步了解这项奇妙的技术-

概率主题建模技术

LDA是一种概率主题建模技术。如上所述,在主题建模中,我们假设在任何相互关联的文档集合中(可能是学术论文,报纸文章,Facebook帖子,推文,电子邮件等),每个文档中都包含一些主题组合。

概率主题建模的主要目标是发现隐藏的主题结构以收集相互关联的文档。以下三件事通常包含在主题结构中-

  • 主题

  • 统计主题在文档中的分布

  • 包含主题的文档中的单词

以无人监督的方式工作

LDA以无人监督的方式工作。这是因为LDA使用条件概率来发现隐藏的主题结构。它假定主题在整个相关文档的集合中分布不均。

在Gensim中轻松创建它

在Gensim中,创建LDA模型非常容易。我们只需要指定语料库,字典映射以及我们要在模型中使用的主题数即可。

Model=models.LdaModel(corpus, id2word=dictionary, num_topics=100)

可能会遇到计算上的棘手问题

计算每种可能的主题结构的可能性是LDA面临的计算挑战。这具有挑战性,因为它需要计算在每种可能的主题结构下每个观察到的单词的概率。如果我们有大量的主题和单词,则LDA可能会面临计算上棘手的问题。

潜在语义索引(LSI)

最初在Gensim中使用潜在狄利克雷分配(LDA)实现的主题建模算法是潜在语义索引(LSI) 。它也称为潜在语义分析(LSA)

它于1988年由Scott Deerwester,Susan Dumais,George Furnas,Richard Harshman,Thomas Landaur,Karen Lochbaum和Lynn Streeter申请了专利。在本节中,我们将建立LSI模型。可以通过建立LDA模型的相同方法来完成。我们需要从gensim.models导入LSI模型。

LSI的作用

实际上,LSI是一种NLP技术,特别是在分布式语义上。它分析了一组文档和这些文档包含的术语之间的关系。如果我们谈论它的工作原理,那么它将构建一个矩阵,其中包含来自大量文本的每个文档的字数统计。

一旦构造完成,为了减少行数,LSI模型使用了一种称为奇异值分解(SVD)的数学技术。除了减少行数之外,它还保留了列之间的相似性结构。在矩阵中,行代表唯一的单词,列代表每个文档。它基于分布假设进行工作,即假设含义相近的单词将出现在同一类型的文本中。

Model=models.LsiModel(corpus, id2word=dictionary, num_topics=100)

分层狄利克雷过程(HDP)

诸如LDA和LSI之类的主题模型有助于总结和组织无法手动分析的大型文本存档。除了LDA和LSI,Gensim中另一个强大的主题模型是HDP(分层Dirichlet过程)。它基本上是一种混合成员模型,用于对分组数据进行无监督分析。与LDA(它的有限对应项)不同,HDP从数据中推断出主题的数量。

Model=models.HdpModel(corpus, id2word=dictionary