이 질문은 오래되었지만 삽입물이 무엇이며 어떤 목적으로 제공되는지에 대한 혼란의 공통점과 관련이있는 것으로 보입니다.
첫 번째로, 이후에 퍼가려면 한 번 핫으로 변환해서는 안됩니다. 이것은 단지 낭비적인 단계 일뿐입니다.
원시 데이터로 시작하여 토큰 화해야합니다. 이것은 단순히 어휘의 각 요소 (데이터에서 가능한 모든 단어/문자 세트)에 고유 한 정수를 할당하는 프로세스입니다. Keras는 이에 대한 편리한 기능을 제공합니다.
from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer
max_words = 100 # just a random example,
# it is the number of most frequently occurring words in your data set that you want to use in your model.
tokenizer = Tokenizer(num_words=max_words)
# This builds the word index
tokenizer.fit_on_texts(df['column'])
# This turns strings into lists of integer indices.
train_sequences = tokenizer.texts_to_sequences(df['column'])
# This is how you can recover the word index that was computed
print(tokenizer.word_index)
Embedding은 표현을 생성합니다. 모델의 최신 레이어는 이전 표현을 사용하여보다 추상적 인 표현을 생성합니다. 최종 표현은 가능한 클래스 수에 대한 확률 분포를 생성하는 데 사용됩니다 (분류 가정).
모델에서 예측을 수행하면 word_index의 각 정수에 대한 확률 추정값을 제공합니다. 따라서 '고양이'가 다음 단어로 가장 많이 사용되며 word_index는 {cat : 666}과 유사합니다. 모델이 666 (고양이가 아님)에 대한 가능성이 높을 것입니다. 이게 말이 돼? 모델은 임베딩 벡터를 예측하지 않으며 임베딩 벡터는 단어/문자/클래스와 관련된 정수를 예측하는 데 유용하게 사용되는 입력 데이터의 중간 표현입니다.