Что такое встраиваемые слои?
Это слои, которые преобразуют натуральные числа (возможно, количество слов) в плотные векторы фиксированного размера.Они изучают так называемые вложения для определенного набора текстовых данных (в задачах НЛП).
Почему они полезны?
Встраивание слоев медленно изучает отношения между словами.Следовательно, если у вас достаточно большой корпус (который, вероятно, содержит все возможные английские слова), то векторы для таких слов, как «король» и «королева», покажут некоторое сходство в многомерном пространстве вложения.
Как используются в Keras?
keras.layers.Embedding
имеет следующие конфигурации:
keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
Превращает натуральные числа (индексы)в плотные векторы фиксированного размера.например.[[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]] Этот слой можно использовать только в качестве первого слоя в модели.
Когдаinput_dim
- размер словаря + 1. Словарь - это совокупность всех слов, используемых в наборе данных.input_length
- это длина входных последовательностей, тогда как output_dim
- это размерность выходных векторов (размерности для вектора конкретного слова).
Слой также можно использовать с встроенные слова , такие как Word2Vec или GloVE.
Подходят ли они для моего варианта использования?
Абсолютно, да.Для анализа настроений, если бы мы могли сгенерировать контекст (встраивание) для конкретного слова, то мы могли бы определенно повысить его эффективность.
Как я могу использовать их в моем случае использования?
Выполните следующие действия:
- Вам необходимо поставить токены в предложениях.Может быть, с помощью
keras.preprocessing.text.Tokenizer
. - добавьте последовательности к фиксированной длине, используя
keras.preprocessing.sequence.pad_sequences
.Это будет параметр input_length
для слоя Embedding. - Инициализируйте модель со слоем Embedding в качестве первого слоя.
Надеюсь, это поможет.