И, вот, мы запускаем нашу модель на валидационном датасете, где она... досрочно завершается с ошибкой!
Мы поместили в embedding слой из модели fasttext векторы всех слов, которые входят в train и test выборки, но не подумали о том, как мы будем обрабатывать незнакомые слова.
По ссылке ниже вы можете ознакомиться с решением этой проблемы, использующим возможности fastText:
https://github.com/Samsung-IT-Academy/stepik-dl-nlp/blob/master/task7.1_aspect_sentiment_eval.ipynb
А какие еще решения позволят решить проблему с незнакомыми словами?

  • Для незнакомых слов добавить тэг и задать для него случайный вектор в embedding слое; Сделать embedding слой обучаемым.
  • Положиться на возможности fastText: убрать из модели embedding слой и сделать отдельный конвертер: слово -> вектор fastText.
  • Помимо замороженного embedding слоя сделать тренируемый embedding слой, состоящий из вектора >

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.