- Gensim 教程
- Gensim - 首页
- Gensim - 简介
- Gensim - 入门
- Gensim - 文档与语料库
- Gensim - 向量与模型
- Gensim - 创建词典
- 创建词袋 (BoW) 语料库
- Gensim - 变换
- Gensim - 创建 TF-IDF 矩阵
- Gensim - 主题建模
- Gensim - 创建 LDA 主题模型
- Gensim - 使用 LDA 主题模型
- Gensim - 创建 LDA Mallet 模型
- Gensim - 文档与 LDA 模型
- Gensim - 创建 LSI 和 HDP 主题模型
- Gensim - 开发词嵌入
- Gensim - Doc2Vec 模型
- Gensim 有用资源
- Gensim - 快速指南
- Gensim - 有用资源
- Gensim - 讨论
Gensim - 主题建模
本章讨论关于 Gensim 的主题建模。
为了标注我们的数据并理解句子结构,最好的方法之一是使用计算语言学算法。毫无疑问,借助这些计算语言学算法,我们可以了解数据的更多细节,但是,
我们能否知道哪些词在我们的语料库中出现得比其他词更频繁?
我们能否对我们的数据进行分组?
我们能否找到我们数据中的潜在主题?
借助主题建模,我们可以实现所有这些目标。所以让我们深入了解主题模型的概念。
什么是主题模型?
主题模型可以定义为包含文本中主题信息的概率模型。但是,这里出现两个重要的问题:
首先,什么是主题?
顾名思义,主题是我们文本中体现的潜在思想或主题。举个例子,包含报纸文章的语料库将包含与金融、天气、政治、体育、各州新闻等相关的主题。
其次,主题模型在文本处理中的重要性是什么?
我们知道,为了识别文本中的相似性,我们可以使用词语进行信息检索和搜索技术。但是,借助主题模型,我们现在可以使用主题而不是词语来搜索和整理我们的文本文件。
从这个意义上说,我们可以说主题是词语的概率分布。因此,通过使用主题模型,我们可以将我们的文档描述为主题的概率分布。
主题模型的目标
如上所述,主题建模的重点是潜在的思想和主题。其主要目标如下:
主题模型可用于文本摘要。
它们可用于组织文档。例如,我们可以使用主题建模将新闻文章分组到一个组织的/相互关联的部分中,例如组织所有与板球相关的新闻文章。
它们可以改进搜索结果。如何?对于搜索查询,我们可以使用主题模型来揭示包含不同关键词混合但具有相同思想的文档。
推荐的概念对于营销非常有用。它被各种在线购物网站、新闻网站等等使用。主题模型有助于推荐购买什么、接下来阅读什么等等。它们通过在列表中查找具有共同主题的材料来做到这一点。
Gensim 中的主题建模算法
毫无疑问,Gensim 是最流行的主题建模工具包。它的免费可用性和 Python 的特性使其更受欢迎。在本节中,我们将讨论一些最流行的主题建模算法。这里,我们将关注“是什么”而不是“如何”,因为 Gensim 为我们很好地抽象了它们。
潜在狄利克雷分配 (LDA)
潜在狄利克雷分配 (LDA) 是目前最常用和最流行的主题建模技术。它是 Facebook 研究人员在其 2013 年发表的研究论文中使用的一种技术。它最初由 David Blei、Andrew Ng 和 Michael Jordan 于 2003 年提出。他们在题为潜在狄利克雷分配的论文中提出了 LDA。
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(分层狄利克雷过程)。它基本上是一个混合成员模型,用于对分组数据进行无监督分析。与 LDA(其有限对应物)不同,HDP 从数据中推断主题数量。
Model=models.HdpModel(corpus, id2word=dictionary