Rom*_*Rom 5 python nlp text-classification tensorflow
我正在处理大约 3000 个问题的数据集,并且想要执行意图分类。该数据集尚未标记,但从业务角度来看,需要识别大约80 个不同的意图类别。假设我的训练数据中每个类别的数量大致相等,并且不会主要偏向某些类别。我打算将文本转换为 word2vec 或 Glove,然后输入到我的分类器中。
我熟悉这样的情况:我有较少数量的意图类,例如 8 或 10 个,并且选择机器学习分类器,例如 SVM、naive bais 或深度学习(CNN 或 LSTM)。
我的问题是,如果您以前有过处理如此大量意图类的经验,您认为哪种机器学习算法可以合理执行?您认为如果我使用深度学习框架,考虑到上述训练数据,大量标签仍然会导致性能不佳吗?
我们需要开始标记数据,想出 80 类标签然后意识到它表现不佳是相当费力的,所以我想确保我在最大意向类别上做出正确的决定应该考虑以及您建议使用什么机器学习算法?
提前致谢...
首先,word2vec 和 GloVe 几乎已经死了。您可能应该考虑使用更新的嵌入,如 BERT 或 ELMo(两者都对上下文敏感;换句话说,您在不同的上下文中为同一个单词获得不同的嵌入)。目前,BERT 是我自己的偏好,因为它是完全开源且可用的(几天前发布了 gpt-2,这显然要好一些。但是,它并不完全向公众开放)。
其次,当您使用 BERT 的预训练嵌入时,您的模型具有查看大量文本(Google 海量)的优势,因此可以在少量数据上进行训练,这将大大提高其性能。
最后,如果您可以将您的意图分类为一些粗粒度类,则可以训练分类器来指定您的实例属于这些粗粒度类中的哪一个。然后,对于每个粗粒度类别训练另一个分类器来指定细粒度类别。这种层次结构可能会改善结果。同样对于分类器的类型,我相信 BERT 之上的简单全连接层就足够了。
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |