Использовать строку в качестве ввода в примере Keras IMDB - PullRequest
0 голосов
/ 09 мая 2018

Я смотрел на пример классификации настроений Keras IMDB Movie ( и соответствующую модель на github ), который учится определять, является ли отзыв положительным или отрицательным.

Данные были предварительно обработаны таким образом, что каждый отзыв кодируется как последовательность целых чисел, например, обзор "Этот фильм потрясающий!"было бы [11, 17, 6, 1187], и для этого ввода модель выдает выходной «положительный».

Набор данных также делает доступным индекс слов, используемый для кодирования последовательностей, т.е. я знаю карту

This: 11
movie: 17
is: 6
awesome: 1187
...

Могу ли я как-то включить это знание в модель так, чтобы его ввод был строкой, то есть он давал прогноз на основе ввода «Этот фильм потрясающий!»?

1 Ответ

0 голосов
/ 09 мая 2018

Прежде всего, ввод в нейронную сеть никогда не является строкой, это в точности список индексов слов (или символов) в словаре. И первое, что обычно делает модель - это встраивание преобразования (см. пример ), которое далее преобразует эти индексы в (обучаемые) векторы с плавающей точкой.

То, что вы действительно имеете в виду, это предварительная обработка данных шаг, который преобразует необработанный ввод от пользователя (может быть текст, пиксели изображения, запись звука и т. Д.) В формат, подходящий и удобный для модель. Предварительная обработка данных является неотъемлемой частью приложения машинного обучения, как и сама модель, и должна храниться отдельно. Если вы собираетесь работать с набором данных imdb, словарь уже обработан. Вы можете позвонить imdb.get_word_index() в кератах, чтобы получить индекс слов, или вы можете напрямую работать с файлом словаря json .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...