我正在对新闻分类问题运行BERT-Base,Uncased预训练模型。数据准备的大部分核心逻辑都是从这里复制的。不过,我正在不同的数据集上运行它,因此已经进行了相关更改。我有490篇新闻文章,训练,验证,测试数据比率为405:45:40。这些数据集存在于同一目录中的train.tsv
、dev.tsv
和test.tsv
文件中,所有这些都没有标题。我用于运行分类器的命令是这样的:
python /Users/<username>/Documents/CodeBase/Projects/BERT/run_classifier.py
--task_name=cola
--do_train=true
--do_eval=true
--do_predict=true
--data_dir=/Users/<username>/Desktop/NLP_Learning/Fraud detection/BERT
--vocab_file=./vocab.txt
--bert_config_file=./bert_config.json
--init_checkpoint=./bert_model.ckpt
--max_seq_length=128
--train_batch_size=32
--learning_rate=2e-5
--num_train_epochs=3.0
--output_dir=/Users/<username>/Desktop/NLP_Learning/Fraud detection/BERT_Model_Pretrained/output
--do_lower_case=True
现在,即使训练和预测完成,问题是生成的test_results.tsv
文件仅包含 39 行,应该是 40 行。从外观上看,似乎test.tsv
的第 0 行以某种方式被跳过了。我在这里错过了什么?我已经检查了所有三个输入数据文件,它们都包含适当数量的记录。
是的,cola
任务的数据格式非常具体。它需要3个文件train.tsv
,dev.tsv
和test.tsv
,分别用于训练集,开发/验证集和测试集。
介绍每个 TSV 文件中的数据格式。train.tsv
和dev.tsv
具有相同的格式:
id class_label segment text
并且train.tsv
和dev.tsv
都不应该有标题。
但是,来到test.tsv
,以下是格式:
id text
(请注意,您不应提供标签或细分列(。
更重要的是:test.tsv
应该有一个标题。