基于文本数据对连续变量进行分组的一般方法?

数据挖掘 大数据 聚类 文本挖掘
2022-02-26 21:21:48

我有一个普遍的方法论问题。我有两列数据,一列是年龄的数字变量,另一列是对问题的文本响应的短字符变量。

我的目标是根据文本响应对年龄变量进行分组(即为年龄变量创建切点)。我不熟悉进行此类分析的任何一般方法。您会推荐哪些通用方法?理想情况下,我想根据文本响应的语言相似性对年龄变量进行分类。

2个回答

由于这是一个通用的方法问题,假设我们只有一个基于文本的变量——一个句子中的单词总数。首先,可视化您的数据是值得的。我会假装我有以下数据:

字数与年龄

在这里,我们看到年龄和回答中的单词数之间存在轻微的依赖性。我们可以假设年轻人(大约在 12 到 25 岁之间)倾向于使用 1-4 个单词,而 25-35 岁的人试图给出更长的答案。但是我们如何分割这些点呢?我会这样做:

在此处输入图像描述

在 2D 绘图中,它看起来非常简单,这就是它在实践中大部分时间的工作方式。但是,您要求按单个变量 - 年龄拆分数据。也就是说,像这样:

在此处输入图像描述

这是一个很好的分裂吗?我不知道。其实这要看你的实际需求和对“切入点”的解读。这就是我问具体任务的原因。无论如何,这个解释取决于你。

实际上,您将拥有更多基于文本的变量。例如,您可以将每个单词用作特征(不要忘记先对其进行词干或词形还原),其值从零到响应中出现的次数。可视化高维数据并不是一件容易的事,因此您需要一种方法来发现数据组而不用绘制它们。聚类是一种通用的方法。尽管聚类算法可以处理任意维度的数据,但我们仍然只有 2D 来绘制它,所以让我们回到我们的示例。

使用像k-means这样的算法,您可以获得 2 个这样的组:

在此处输入图像描述

两个点 - 红色和蓝色 - 显示集群中心,由 k-means 计算。您可以使用这些点的坐标按任何轴子集拆分数据,即使您有 10k 维。但同样,这里最重要的问题是:哪些语言特征将提供合理的年龄分组

如果我理解正确,我会尝试一些特征化方法将文本列转换为数值。然后您可以照常进行分析。有一本关于 NLP 的好书叫做Taming Text,它提供了很多方法来思考你的文本变量。