Моя цель - создать модель, которая разбивает текст на предложения. У меня есть набор данных (xlsx) с 24 столбцами: первый столбец для экземпляров (слова), 22 объектов и последний столбец содержит класс. Только первый столбец является строкой, все остальные являются целыми числами.
Мой код:
dataset = pd.read_excel('File_xlsx', header=0, dtype=str)
testdataset = pd.read_excel('file_xlsx', header=0, dtype=str)
# Split-out validation dataset
array = dataset.values
testarray = dataset.values
X_train = array[1:-1]
Y_train = array[:,22]
X_test = testarray[1:-1]
Y_test = testarray[:,22]
svclassifier = SVC(kernel='linear')
svclassifier.fit(X_train,Y_train)
#Predict values using the SVM algorithm model
Y_pred = svclassifier.predict(X_test)
#Evaluation
Print(confusion_matrix(Y_test,Y_pred))
print(classification_report(Y_test,Y_pred))
После запуска я получаю
ValueError: не удалось преобразовать строку в число с плавающей точкой: 'Alkl'
'Alkl'
- последняя строка в первом столбце
Печать моего набора данных (набор данных [: 5])
0 1 2 3 4 5 6 7 8 9 ... 14 15 16 17 18 19 20 21 22 23
0 dstwr 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 0 0 0 1
1 twns 1 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 0 0 0 2
2 Aljdyd 1 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 2
3 kml 1 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 2
4 nhAr 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 2
print (X_train [: 5])
[5 rows x 24 columns]
[['twns' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'1' '0' '0' '0' '0' '0' '2']
['Aljdyd' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'0' '0' '0' '0' '0' '0' '0' '2']
['kml' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'0' '0' '0' '0' '0' '0' '2']
['nhAr' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'0' '0' '0' '0' '0' '0' '2']
['27' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'0' '0' '0' '0' '0' '0' '2']]