将单标签数据集转换为多标签数据集

数据挖掘 nlp 数据 多标签分类
2022-02-19 23:37:59

我收到了一个数据集,其中包含一串文本和一个标签,该标签将该文本分类为 50 个类别之一。我希望建立一个模型来预测一串文本属于哪个类别。

当数据集放在一起时,它是在每个文本字符串只能属于一个组的假设下组装的。实际上,文本可以同时属于多个组。

与其回到绘图板并再次手动标记数据,我想尝试将这个单标签数据集转换为多标签数据集。

我尝试了一种结果可疑的方法。我构建了一个线性回归,分别预测每个类别,并将这些预测附加到原始数据中。虽然这为我提供了我需要的结构中的数据,但它产生了乏善可陈的结果。大多数文本字符串仍然只属于一个类别(许多应该属于多个类别),而且很大一部分根本没有分配任何标签。

看来,即使我能把这些数据“弗兰肯斯坦”放在一起,也未必能作为优质的训练数据。我很好奇,有没有什么好方法可以将这个单标签数据转换成多标签数据?

2个回答

您应该考虑为此使用神经网络。通过跨多个类别使用二元交叉熵,您可以获得每个类别的概率“评级”以及它如何应用于文本。从那里,您可以开发一个脚本来建立一个阈值(比如 0.8),然后为跨多个类别的特定文本创建一个新的标记数据条目。有很多例子表明人们获取 IMDB 数据和电影描述并将多种类型分配给一部电影(例如“恐怖”电影也可以是“悬疑”电影,“喜剧”电影也可以是“动画” “ 电影)。这些类型的示例应该适合您在这里的需要。

是否可以进行某种形式的聚类?

我实际上也在尝试这样做(将单个标签数据转换为多标签数据,除了我的数据是时间序列的形式)。因此,就我而言,时间序列可以转换为成对距离矩阵。然后使用某种形式的聚类方法(k-means),可以将相似形状/模式的时间序列组合在一起。最后,每个集群中的每个样本都可以具有当前在同一组中的所有标签。

我不确定这是否是正确的方法,因为我也在研究它。希望有其他专家能够提供一些见解