KeyError:当我尝试将标签转换为0和1时出现“ true”错误

时间:2020-10-31 09:49:15

标签: python dataframe nlp pytorch label

我正在使用Arabert(经过培训的阿拉伯语Bert)进行二进制分类,标记为true和false,我尝试将标签从“ true”和“ false”更改为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'。

您有什么解决方案吗?! 预先感谢

1 个答案:

答案 0 :(得分:1)

这些是'true '中的尾随空格,这就是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>)使用默认输出值捕获未知值。