文本分类和主题模型有什么区别?

数据挖掘 分类 文本挖掘 主题模型
2021-10-09 22:06:27

我知道机器学习中聚类和分类之间的区别,但我不明白文本分类和文档主题建模之间的区别。我可以在文档上使用主题建模来识别主题吗?我可以使用分类方法对这些文档中的文本进行分类吗?

3个回答

文本分类

我给你一堆文件,每个文件都附有标签。我请你了解为什么你认为文件的内容是根据它们的文字被赋予这些标签的。然后我给你新的文件,问你认为每个文件的标签应该是什么。标签对我有意义,对你不一定。

主题建模

我给你一堆文件,没有标签。我请您通过识别每个“关于”的一些主题来解释为什么这些文件有他们所做的文字。你告诉我主题,告诉我每个文档中有多少,我决定主题“意味着”什么。

您必须通过“确定一个主题”或“对文本进行分类”来澄清您的意思。

但我不知道文档中的文本分类和主题模型有什么区别

Text Classification是监督学习的一种形式,因此可能的类集是预先知道/定义的,并且不会改变。

Topic Modeling是一种无监督学习形式(类似于聚类),因此可能的主题集是先验未知的。它们被定义为生成主题模型的一部分。使用像 LDA 这样的非确定性算法,每次运行算法时都会得到不同的主题。

Text classification通常涉及互斥类 - 将这些视为桶。
但它不必:给定正确类型的标记输入数据,您可以设置一系列非互斥的二进制分类器。

Topic modeling通常不是互斥的:同一个文档的概率分布可以分布在许多主题上。此外,还有分层主题建模方法。

我也可以使用文档的主题模型来识别一个主题,我可以使用分类来分类这个文档中的文本吗?

如果您询问是否可以通过主题建模算法获取分配给一个主题的所有文档,然后将分类器应用于该集合,那么是的,您当然可以这样做。

不过,我不确定这是否有意义:至少,您需要为主题概率分布选择一个阈值,在该阈值之上您将在集合中包含文档(通常为 0.05-0.1)。

你能详细说明你的用例吗?

顺便说一句,这里有一个很棒的关于使用 Java 的 MALLET 库进行主题建模的教程:主题建模和 MALLET 入门

主题模型通常是无监督的。还有“监督主题模型”;但即便如此,他们也会尝试在课程中建模主题

例如,您可能有一个“足球”课程,但该课程中可能有与特定比赛或球队相关的主题。

主题的挑战在于它们会随着时间而变化。考虑上面的匹配示例。这样的话题可能会出现,然后又会消失。