ValueError: Ошибка при проверке ввода: ожидалось, что dens_1_input будет иметь форму (2198,), но получил массив с формой (1,) - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь построить модель классификации текста с помощью cnn, но я получил эту ошибку. Я также попытался сделать input_dim = (2198,), но также не работает. Итак, как я могу определить правильность входного измерения и есть ли какая-либо обработка текстовых данных, как эта? Например, нормализация.

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical
import matplotlib.pyplot as plt

#  read dataset

paths = {
    'amazon': 'D:\\NLP\\sentiment labelled sentences\\amazon_cells_labelled.txt',
    'imdb': 'D:\\NLP\\sentiment labelled sentences\\imdb_labelled.txt',
    'yelp': 'D:\\NLP\\sentiment labelled sentences\\yelp_labelled.txt'
}

data_fame = []
for source, path in paths.items():
    df = pd.read_csv(path, names=['sentence', 'label'], sep='\t')
    df['source'] = source  # Add another column filled with the source name amazon,  imdb, yelp
    data_fame.append(df)

df = pd.concat(data_fame)

#  split data frame into features and labels
X, y = [], []
for i in range(len(df)):
    X.append(df.iloc[i][0])
    y.append(df.iloc[i][1])

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

x_train = np.array(x_train)
x_test = np.array(x_test)
y_train = np.array(y_train)
y_test = np.array(y_test)

y_train = to_categorical(y_train, 2)
y_test = to_categorical(y_test, 2)

x_train = np.expand_dims(x_train, axis=0)
x_test = np.expand_dims(x_test, axis=0)

#  define CNN model

model = Sequential()
model.add(Dense(10, activation='relu', input_dim=x_train.shape[0]))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit(x_train, y_train, epochs=90, batch_size=16, validation_data=(x_test, y_test))
model.save('model.h5')
...