我有一组自由文本的医学叙述语料库,打算用于分类任务,目前大约有4200条记录。
首先,我想使用w2v创建词嵌入,但我对这个任务的训练-测试分割有一个问题。
当我训练w2v模型时,使用所有数据来创建模型是否合适?还是应该只使用训练数据来创建模型?
实际上,我的疑问归结为:我是应该使用整个数据集创建w2v模型,然后用模型转换叙述,最后再分割,还是应该先分割,再创建w2v模型,然后独立转换两个数据集?
谢谢!
编辑
我在工作单位发现了一个由供应商构建的内部项目;他们进行分割,并仅在训练数据上创建w2v模型,然后在不同的任务中独立转换两个数据集;所以这是我上面提到的两个选项中的后者。这是我认为应该的情况,因为我不想让w2v模型受到任何测试数据的污染。
回答:
对于这类NLP问题,大多数答案是“都试试” 🙂
测试数据与训练数据的污染在生成词向量时并不相关或构成问题。这是在使用这些向量的模型中相关的问题。我发现使用整个语料库的向量在我的用例中表现更好。
词向量的质量会随着数据量的增加而提高。如果不使用测试语料库,你将需要一种方法来初始化不在词汇表中的向量,并了解它们可能对模型性能产生的影响。