KeyError: ошибка ‘true’ при попытке преобразовать метки в 0 и 1

#python #dataframe #nlp #pytorch #label

#python #фрейм данных #nlp #pytorch #метка

Вопрос:

Я использую 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:

Это конечный пробел в '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>) .

Комментарии:

1. это устранило предыдущую ошибку, но теперь у меня есть эта ошибка: KeyError: ‘label’

2. Тогда вам лучше проверить, что находится внутри Data[LABEL_COLUMN] . Data[LABEL_COLUMN].value_counts()

3. Это сработало, я понял, что в моем наборе данных неверное значение, спасибо 🙂