Функция 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
    })
})
Другие вопросы по тегам