我想用句子做一些有监督的二元分类任务,并且一直在使用 spaCy,因为它易于使用。我使用 spaCy 将文本转换为向量,然后将向量馈送到机器学习模型(例如 XGBoost)以执行分类。然而,结果并不是很令人满意。
在 spaCy 中,很容易加载模型(例如 BERT / Roberta / XLNet)来将单词/句子转换为 nlp 对象。然而,直接调用对象的向量将默认为令牌向量的平均值。
这里有两个问题:
1)我们能不能比简单地获得标记向量的平均值更好,比如使用 spaCy 获得上下文/顺序感知的句子向量?例如,我们可以从 BERT 转换器的前一层提取句子嵌入,而不是 spaCy 中的最终标记向量吗?
2)直接使用spaCy训练下游的二分类任务会不会更好?例如,这里讨论了如何将文本分类器添加到 spaCy 模型。还是应用更强大的机器学习模型(如 XGBoost)通常更好?
提前致谢!