используя lstm, чтобы предсказать и иметь только один ответ - PullRequest
0 голосов
/ 17 февраля 2020

Я провел анализ эмоций, используя форму lstm https://www.kaggle.com/eray1yildiz/using-lstms-with-attention-for-emotion-recognition/comments

У меня неправильные прогнозы, а также список результатов, как показано ниже:

['enjoy', 'lovely', 'moment']
{'joy': 0.18797465, 'satisfied': 0.19864388, 'happy': 0.18680806, 'sad': 0.20265724, 'disappointment': 0.22391614}

Ниже приведена часть кодов, которые я использую для прогнозирования:


      # Padding
      encoded_samples = keras.preprocessing.sequence.pad_sequences(encoded_samples, maxlen=max_words)

      # Make predictions
      label_probs, attentions = model_with_attentions.predict(encoded_samples)
      label_probs = {id2label[_id]: prob for (label, _id), prob in zip(label2id.items(), label_probs[0])}

Я хочу, чтобы мой вывод был таким:

Input: ['enjoy', 'lovely', 'moment']
Output: 'joy'

Возможно ли это сделать ? пожалуйста, помогите мне, ребята ..

1 Ответ

0 голосов
/ 18 февраля 2020

Неправильные прогнозы связаны с обучением модели, однако вы можете получить уникальный результат, используя метод argmax() для вашего predict результата (как описано здесь https://github.com/keras-team/keras/issues/5910). Не зная форму encoded_sample, я бы догадался, что вам нужно что-то вроде этого:

label_probs = model_with_attentions.predict(encoded_samples)
label_pred= label_probs.argmax(axis=-1)

Обратите внимание, что здесь это приведет к разочарованию в вашем примере.

...