Я очень плохо знаком с машинным обучением, поэтому этот вопрос может показаться глупым.
Я следую учебнику по классификации текста , но я сталкиваюсь с ошибкой, которую не имею понятия о том, как ее решить.
Это код, который у меня есть (в основном это то, что находится в учебнике)
import pandas as pd
filepath_dict = {'yelp': 'data/yelp_labelled.txt',
'amazon': 'data/amazon_cells_labelled.txt',
'imdb': 'data/imdb_labelled.txt'}
df_list = []
for source, filepath in filepath_dict.items():
df = pd.read_csv(filepath, names=['sentence', 'label'], sep='\t')
df['source'] = source
df_list.append(df)
df = pd.concat(df_list)
print(df.iloc[0:4])
from sklearn.feature_extraction.text import CountVectorizer
df_yelp = df[df['source'] == 'yelp']
sentences = df_yelp['sentence'].values
y = df_yelp['label'].values
from sklearn.model_selection import train_test_split
sentences_train, sentences_test, y_train, y_test = train_test_split(sentences, y, test_size=0.25, random_state=1000)
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
vectorizer.fit(sentences_train)
X_train = vectorizer.transform(sentences_train)
X_test = vectorizer.transform(sentences_test)
from keras.models import Sequential
from keras import layers
input_dim = X_train.shape[1]
model = Sequential()
model.add(layers.Dense(10, input_dim=input_dim, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.summary()
history = model.fit(X_train, y_train,
nb_epoch=100,
verbose=False,
validation_data=(X_test, y_test),
batch_size=10)
Когда я достигаю последней строки, я получаю сообщение об ошибке
"Ошибка типа: разреженная длина матрицы неоднозначна; используйте getnnz () или shape [0]"
Полагаю, мне придется выполнить какое-то преобразование данных, которые я использую, или попытаться загрузить эти данные другим способом. Я уже пытался искать в Stackoverflow, но, будучи новичком во всем этом, я не смог найти ничего полезного.
Как мне сделать эту работу? В идеале я хотел бы получить не только решение, но и краткое объяснение того, почему произошла ошибка и что решение делает для ее устранения.
спасибо!