NLP Academy · 课时

使用 Gensim 运行 LDA

在真实语料库上拟合主题

第 3 / 4 课13 个步骤

使用 Gensim 运行 LDA 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。

认识 Gensim

Gensim 是一个专为主题建模打造的 Python 库。它让您能够快速、轻松地在真实文本上运行 LDA。🐍

from gensim import corpora, models

从词元开始

Gensim 要求每篇文档都是由干净词元组成的列表。您需要提供已经转换为小写且去除停用词的词语列表。

docs = [["price", "refund"], ["battery", "screen"]]

构建词典

Gensim 的 Dictionary 会将每个不重复的词映射到一个整数 ID。LDA 处理的是这些 ID,而不是原始字符串。

dictionary = corpora.Dictionary(docs)

创建语料库

将每篇文档转换为词袋:由词语 ID 和计数组成的键值对列表。这个列表就是您的语料库。📦

corpus = [dictionary.doc2bow(d) for d in docs]

训练模型

现在拟合 LdaModel,并传入语料库、词典以及您希望它找出的主题数量。

lda = models.LdaModel(corpus, num_topics=2, id2word=dictionary)

谨慎选择主题数量

主题数量是您最重要的选择。数量太少会将多个主题混在一起,数量太多则会把主题拆成噪声。

迭代次数越多,拟合越好

迭代次数参数决定 LDA 读取语料库的次数。增加几次迭代通常可以让主题更加清晰。

lda = models.LdaModel(corpus, num_topics=2, passes=10)

查看主题

调用 print_topics,查看每个主题中权重最高的词语。这是您第一次了解 LDA 发现内容的机会。

for t in lda.print_topics():
    print(t)

评估新文档

将新的词袋传给模型,以获得它的主题分布,显示每个主题适用的程度。

lda[dictionary.doc2bow(["refund", "price"])]

精简词典

使用 filter_extremes 删除极少见和极常见的词语。更干净的词汇表会带来更清晰的主题。🧹

dictionary.filter_extremes(no_below=2, no_above=0.5)

设置随机种子

LDA 具有随机性。传入随机状态,即可让每次运行得到相同的主题,从而使结果可以复现。

lda = models.LdaModel(corpus, num_topics=2, random_state=42)

快速检查

回忆一下在 Gensim 中训练 LDA 模型之前需要执行哪些步骤。

回顾

进行词元化,构建 Dictionary,创建词袋语料库,然后使用您选择的主题数量拟合 LdaModel。Gensim 会处理其余工作。✅

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「使用 Gensim 运行 LDA」课时是免费的吗?

是的 — 「使用 Gensim 运行 LDA」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。

「使用 Gensim 运行 LDA」这节课中我会学到什么?

在真实语料库上拟合主题 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 NLP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「使用 Gensim 运行 LDA」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 NLP Academy 课中编写并运行代码吗?

能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 主题建模解决什么问题
  2. LDA 如何将词语归入主题
  3. 使用 Gensim 运行 LDA
  4. 解读并标注主题
← 返回 NLP Academy