Я работаю в проекте по предсказанию типа личности из теста Майерса-Бриггса . Я хотел бы получить подходящую модель LSTM для этой задачи классификации текстов мультикласса.
- Метки : есть 16 типов личности
- Набор данных содержит: 70 800 слов . Где был разделен на 80% для данных обучения и 20% для данных проверки.
Размер:
- Данные обучения (X_train) : 56 640 слов.
- Данные проверки (Y_val) : 14 160 слов.
train_data_padded.size
validation_padded.size
дополнено :
данные обучения и проверки дополняются максимальная длина 240 .
Например:
training_padded = tf.keras.preprocessing.sequence.pad_sequences(training_sequences,
maxlen = 240,
dtype = 'int32',
padding = 'post',
truncating = 'post',
value = 0.0)
ФОРМА:
training padded: {train_data_padded.shape}
validation padded: {validation_padded.shape}
training padded: (236, 240)
validation padded: (59, 240)
Ожидаемый выход: Возможны два типа выхода:
- 1 вывод: где тип личности с большей точностью.
INTJ: 0,84%
16 выходных данных: , где дано 16 типов личности, показывающих каждый процент точности.
INTJ: 0,5 | INTP: 0,45 | ENTP: 0,8 | ... | ISFP: 0,20
Что я пробовал?: Я уже пробовал некоторые модели LSTM с веб-сайта TF, однако мне хотелось бы узнать ваш собственный ответ по этому топи c.
model = tf.keras.Sequential([
tf.keras.layers.Embedding(56640, 240),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(240)),
tf.keras.layers.Dense(240, activation='relu'),
# When we have multiple outputs, softmax convert outputs layers into a probability distribution.
tf.keras.layers.Dense(16, activation='softmax')
])
#loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
Прежде чем пытаться закрыть вопрос, пожалуйста, сделайте любое предложение, чтобы улучшить его, будет рассмотрен.