我正在使用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'。
您有什么解决方案吗?! 预先感谢
答案 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>)
使用默认输出值捕获未知值。