如何在社交媒体数据集中发现主题?

数据挖掘 机器学习 nlp 社会网络分析 主题模型
2021-09-26 15:20:54

我正在做一个项目,我需要发现社交媒体数据集中存在的主题。例如,我想提取 200K 推文中存在的主题。有人向我推荐任何机器学习算法吗?

3个回答

您可以查看潜在狄利克雷分配以我的经验,这在没有太多努力的情况下做得很好。在将其提供给算法之前,您需要删除无用的词,例如停用词(在您的情况下是 Twitter 句柄和可能的 URL)。您需要提供的唯一真正重要的参数是主题的数量。这将取决于您的人口(这些是随机推文,还是仅来自特定子组/主题标签的推文?),您需要比较一些设置。你可以做的是打印每个主题最重要的单词,看看它们是否确实属于一起。

如果您的推文中有不同的语言,您需要事先处理,也许可以按语言对它们进行分类,例如只保留英语。

另一个方向(尽管不一定更好)是对您收到的文本进行聚类,可能使用不需要很多输入参数(如聚类数量)的算法。请注意,不是任何文本聚类算法都可以 - 有些算法针对聚类更长的文本进行了优化。本文对短文本聚类方法进行了调查:http: //www.charuaggarwal.net/text-cluster.pdf 这不是最新的,但它是一个起点。根据经验,我同意@Jan van der Vegt 的观点,即至少建议将英语与其他语言分开来看。

一种方法可能如下:

1) 对数据集中的所有文本进行矢量表示,例如使用 tfidf 技术。

2) 取第一个向量并放在一堆。

3)进入以下循环:

3a) 取下一个向量并计算该向量与每个构建桩的质心之间的余弦相似度。

3b) 如果该余弦相似度之一低于预定义阈值,则将该文档表示堆叠在相应的堆中。另一种情况,用这个向量构建一个新的堆。

3c) 重新计算每个修改桩的质心。

该算法将找到相似的推文,我们假设这些推文与同一主题相关。