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

Hugging Face Datasets .map方法异常:替换而非新增数据集特征

解决Hugging Face Datasets map方法丢失原有特征的问题

问题出在你的自定义函数concatenate_entities的返回值上:如果函数只返回包含新特征text的字典,map方法会默认用这个字典替换整个样本,导致原有特征全部丢失。

两种修复方案:

方案1:在自定义函数中保留原有字段

修改函数,将新生成的text特征添加到原样本字典中,再返回完整的样本:

def concatenate_entities(sample):
    # 替换成你的拼接逻辑,比如合并多个字段
    sample['text'] = f"{sample['first_name']} {sample['last_name']} {sample['company_name']}"
    return sample  # 返回包含所有原有字段和新text的完整样本

执行dataset_c = dataset_c.map(concatenate_entities)后,数据集会保留所有原始特征,同时新增text字段。

方案2:批量处理时保留所有字段

如果使用batched=True进行批量处理,同样需要在返回的batch字典中保留所有原有字段:

def concatenate_entities(batch):
    # 批量生成text特征
    batch['text'] = [
        f"{fn} {ln} {cn}" 
        for fn, ln, cn in zip(batch['first_name'], batch['last_name'], batch['company_name'])
    ]
    return batch  # 返回包含所有原字段的batch

调用时加上batched=True参数:

dataset_c = dataset_c.map(concatenate_entities, batched=True)

这样处理后,数据集的特征列表会包含原始的['_id', 'first_name', ..., 'global_id']加上新增的text。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:23:11