You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按70:10:20拆分CoNLL格式的NER数据集为训练、验证、测试集?

拆分CoNLL格式NER数据集为训练/验证/测试集

直接用Python结合scikit-learn就能完成,不需要专门的NER库,步骤如下:

1. 读取CoNLL格式数据

先把文件内容按句子拆分,连续的词-标签行组成一个句子,空行作为句子分隔符:

def load_conll_data(file_path):
    sentences = []
    current_sentence = []
    
    with open(file_path, 'r', encoding='utf-8') as f:
        for line in f:
            line = line.strip()
            if not line:
                # 空行标记句子结束,存入列表后重置当前句子
                if current_sentence:
                    sentences.append(current_sentence)
                    current_sentence = []
            else:
                # 拆分词和标签(取首词和末标签)
                parts = line.split()
                if len(parts) >= 2:
                    word = parts[0]
                    label = parts[-1]
                    current_sentence.append((word, label))
        # 处理文件末尾无空行的最后一个句子
        if current_sentence:
            sentences.append(current_sentence)
    return sentences

2. 按比例拆分数据集

用sklearn.model_selection.train_test_split实现分层随机拆分,设置固定随机种子保证结果可复现:

from sklearn.model_selection import train_test_split

# 加载原始数据集
data = load_conll_data('your_dataset.conll')

# 第一步:拆分出20%的测试集,剩余80%作为训练+验证集
train_val, test = train_test_split(data, test_size=0.2, random_state=42)
# 第二步:从80%的训练+验证集中拆分出10%总数据量的验证集(0.125*0.8=0.1)
train, val = train_test_split(train_val, test_size=0.125, random_state=42)

3. 保存拆分后的数据集

将拆分后的句子列表写回CoNLL格式文件:

def save_conll_data(sentences, output_path):
    with open(output_path, 'w', encoding='utf-8') as f:
        for sent in sentences:
            for word, label in sent:
                f.write(f"{word} {label}\n")
            # 句子间用空行分隔
            f.write("\n")

# 分别保存三个数据集
save_conll_data(train, 'train.conll')
save_conll_data(val, 'val.conll')
save_conll_data(test, 'test.conll')

注意事项

  • 先安装依赖:pip install scikit-learn
  • 如果数据集每行包含多列(如词性标注),只需调整load_conll_data中的拆分逻辑,确保取到首词和末标签即可
  • 固定random_state值可以让每次拆分结果一致,便于调试
  • 处理文件时注意编码格式,避免出现乱码问题

内容的提问来源于stack exchange,提问作者Mai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:45:11