分类到主题 - 如何处理数据

数据挖掘 机器学习 nlp r 主题模型 低密度脂蛋白
2022-02-23 14:03:29

晚上好,首先,如果标题具有误导性,我想道歉。我有一个由大约 60000 条推文、它们的日期和时间以及用户名组成的数据集。我需要将它们分类为主题。我正在使用 LDA 进行主题建模,获得正确数量的主题(我猜),这要归功于这个 R 包,它计算三个指标的值(“CaoJuan2009”、“Arun2010”、“Deveaud2014”)。由于我对此很陌生,我只是想了一些对你们中的一些人来说可能很明显的问题,但我在网上找不到。

  1. 在清理数据(删除提及、停用词、奇怪字符、数字等)之前,我已经删除了所有重复的实例(所有三列共有),以避免它们影响主题建模的结果。这是正确的吗?

  2. 出于前面提到的同样原因,我是否应该也删除所有转推?

  3. 到目前为止,我一直在考虑使用“每个文档每个主题”的概率进行分类。如果我摆脱了这么多实例,我是否必须根据“每个单词每个主题”的概率对它们进行分类?

  4. 我是否必须将数据集划分为测试和训练?我认为这只是在监督训练中的事情,因为我不能真正使用测试数据集来衡量分类的质量。

  5. 另一个目标是根据 Twitter 用户最热衷的话题对他们进行分类。您对如何实现这一点有任何想法吗?

提前非常感谢大家。

1个回答

据我所知,没有正确/标准的方法来应用主题建模,大多数决定取决于案例的具体情况。所以下面我只是对这些观点发表我的看法:

  1. 在清理数据(删除提及、停用词、奇怪字符、数字等)之前,我已经删除了所有重复的实例(所有三列共有),以避免它们影响主题建模的结果。这是正确的吗?
  2. 出于前面提到的同样原因,我是否应该也删除所有转推?

一般来说,对数据进行重复数据删除没有严格的要求,是否执行将取决于目标。重复文档会影响这些文档中出现的单词的比例,进而影响这些文档被分配到的主题的概率。如果您希望模型整合推文/单词/主题的流行度/突出度的概念,那么不去重和保留转发可能是有意义的。但是,如果有大量重复/转发,则不平衡可能会导致不那么频繁的推文/单词不那么明显,可能导致主题的多样性减少(例如,最小的主题可能会合并在一起)。

  1. 到目前为止,我一直在考虑使用“每个文档每个主题”的概率进行分类。如果我摆脱了这么多实例,我是否必须根据“每个单词每个主题”的概率对它们进行分类?

我不确定这个包中所谓的“每个文档每个主题”的概率。使用 LDA 对文档进行聚类的典型方法是使用给定文档的主题的后验概率(这可能是同一件事,我不确定):对于任何文档d,该模型可以提供每个主题的条件概率t给定d. 跨主题的此值的总和为 1(这是主题的分布d),并且出于分类目的,可以只选择给定概率最高的主题d.

  1. 我是否必须将数据集划分为测试和训练?我认为这只是在监督训练中的事情,因为我不能真正使用测试数据集来衡量分类的质量。

你是对的,你不需要分成训练集和测试集,因为这是无监督学习。

  1. 另一个目标是根据 Twitter 用户最热衷的话题对他们进行分类。您对如何实现这一点有任何想法吗?

该模型为您提供每条推文主题的后验概率分布。根据这些值,我认为您可以通过边缘化这位作者的推文,为每个推特用户获得类似的主题分布a: 如果我没记错的话,这个概率p(t|a)可以简单地通过计算平均值得到p(t|d)在所有文件/推文中d作者a.