#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. Это сработало, я понял, что в моем наборе данных неверное значение, спасибо 🙂