Функция Huggingface Load_dataset() выдает «ValueError: не удалось выполнить преобразование»
Моя цель — обучить классификатор, способный выполнять анализ настроений на словацком языке, используя загруженную модель SlovakBert и библиотеку HuggingFace. Код выполняется в Google Colaboratory.
Мой тестовый набор данных считывается из этого CSV-файла: https://raw.githubusercontent.com/kinit-sk/slovakbert-auxiliary/main/sentiment_reviews/kinit_golden_games.csv .
и обучить набор данных: https://raw.githubusercontent.com/kinit-sk/slovakbert-auxiliary/main/sentiment_reviews/kinit_golden_accomodation.csv
Данные имеют два столбца: столбец предложений на словацком языке и второй столбец меток, которые указывают на тональность предложения. Метки имеют значения -1, 0 или 1.
Функция Load_dataset() выдает эту ошибку:
ValueError: Не удалось разыграть Vrtuľník je veľmi zraniteľný pri dobre mierenej streľbe zo zeme. Brániť sa, unikať, alebo vedieť zneškodniť nepriateľa je vecou sekúnd, ak nie stotin, kedy ide život. :string-1:int64-- метаданные схемы -- pandas: '{"index_columns": [{"kind": "range", "name": null, "start": 0, "' + 954 to {'Priestorovo a vybavenim OK.': Value(dtype='string', id=None), '1': Value(dtype='int64', id=None)}, потому что имена столбцов не совпадают
Код:
!pip install transformers==4.10.0 -qqq
!pip install datasets -qqq
from re import M
import numpy as np
from datasets import load_metric, load_dataset, Dataset
from transformers import TrainingArguments, Trainer, AutoModelForSequenceClassification, AutoTokenizer, DataCollatorWithPadding
import pandas as pd
from textblob import TextBlob
from textblob.sentiments import NaiveBayesAnalyzer
#links to dataset
test = 'https://raw.githubusercontent.com/kinit-sk/slovakbert-auxiliary/main/sentiment_reviews/kinit_golden_games.csv'
train = 'https://raw.githubusercontent.com/kinit-sk/slovakbert-auxiliary/main/sentiment_reviews/kinit_golden_accomodation.csv'
model_name = 'gerulata/slovakbert'
#Load data
dataset = load_dataset('csv', data_files={'train': train, 'test': test})
Что сделано не так при загрузке набора данных?
1 ответ
Причина в том, что, поскольку разделитель используется в первом столбце несколько раз, код не может автоматически определить количество столбцов (некоторое время сегментирует предложение на несколько столбцов, поскольку он не может автоматически определить
,
является разделителем или частью предложения.
Но решение простое: (просто добавьте имена столбцов)
dataset = load_dataset('csv', data_files={'train': train,'test':test},column_names=['sentence','label'])
выход:
DatasetDict({
train: Dataset({
features: ['sentence', 'label'],
num_rows: 89
})
test: Dataset({
features: ['sentence', 'label'],
num_rows: 91
})
})