KeyError: 'true ' error when i try to convert labels to 0 and 1

KeyError: 'true ' error when i try to convert labels to 0 and 1

我正在使用 Arabert(经过预训练的阿拉伯语 Bert)进行标记为真和假的二元分类,我正在尝试将标签从“真”和“假”更改为 0,其中一个我使用了代码:

import pandas as pd

Data=pd.read_csv("/content/500-instances.csv")
DATA_COLUMN = 'sent'
LABEL_COLUMN = 'label'
Data.columns = [DATA_COLUMN, LABEL_COLUMN]
label_map = {
    'fake' : 0,
    'true' : 1
}

Data[DATA_COLUMN] = Data[DATA_COLUMN].apply(lambda x: preprocess(x, do_farasa_tokenization=False, use_farasapy = False))
Data[LABEL_COLUMN] = Data[LABEL_COLUMN].apply(lambda x: label_map[x])

我收到一个错误:KeyError: 最后一行 'true '。

你有什么解决办法吗?! 提前致谢

这些是 'true ' 中的尾随 space,这就是 label_map 中没有匹配项的原因,请尝试:

Data[LABEL_COLUMN] = Data[LABEL_COLUMN].apply(lambda x: label_map[x.strip()])

编辑

如果您不确定 Data[LABEL_COLUMN] 中的内容,我建议使用 label_map.get(x.strip(), <DEFAULT_VALUE>).

捕获具有默认输出值的未知值