TF-IDF 是一种矢量化技术,用于将文档(在您的情况下为单个推文是文档)转换为向量。训练 TF-IDF 模型后,它学习的唯一单词/词汇将来自文档集(也称为语料库,整个 3k 条推文集)。
既然你提到在 TF-IDF 之后有 570 个独特的特征词,那将是你的模型学习的词汇。如果你给这个模型一个包含在它的词汇表中的单词的文档,它会成功地将它向量化。但是,如果新文档中的一个或多个单词不在模型的词汇表中,则这些单词根本不会包含在向量化中。只有当模型在训练中遇到这些词时,新句子中的词才会被赋予权重。换句话说,每个句子都将根据模型的词汇进行向量化。
前任 -
模特的词汇——a, big, hat, have, I, mat
输入 - “我有一个大垫子”
向量 - [ 按照模型词汇顺序排列的 tfidf 权重序列。如果句子中不存在 vocab 中的单词,则分配的权重为 0 ]
输入 - “我有一条狗”
向量 - [为词汇表中所有单词计算的 tfidf 权重序列,与词汇表顺序相同]
由于“狗”不是词汇表的一部分,因此它不包含在矢量化中。
如果该模型从未见过的新推文没有我用于训练的特征词,该模型将无法对它们做出正确的预测(在我的情况下,只有 3 种可能的预测,即正面、负面和中性) ) 对他们来说正确吗?
关于最终预测,我不能说太多,但是如果您期望 TF-IDF 对包含大量模型未训练过的单词的文档进行向量化,那么您来自 TF-IDF 的特征向量可能会很差。不正确的矢量化可能会影响您的预测准确性。
如果是,那么我应该如何处理这种情况
我的建议是考虑以下事项 -
- 彻底预处理训练数据。去除标点符号、用完整形式替换缩写等步骤可以帮助 TF-IDF 模型训练得很好。
- 如果可以选择收集更多数据,请尝试在属于您的预测上下文的大量推文上训练模型。词汇量越多,模型的装备就越好,以向量化新的未见文档。
- 尝试使用像BERT这样的预训练模型。