i am struggling to get word2vec embeddings into tensorflow model. My code is:
import gensim
docs = #list of lists all cleaned and preprocessed
docs[1]
['I',
'will',
'go',
'outside',
'today']
model_w2v = gensim.models.Word2Vec(sentences=docs, vector_size=300, window=5, min_count=1, workers=4)
model_w2v.train(docs, total_examples=model_w2v.corpus_count, epochs=model_w2v.epochs)
and then I have this model:
vocab_size = len(model_w2v.wv)
vec_size=300
input_length=200
model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size, vec_size, input_length = max_length, weights = [embedding_matrix], trainable = False),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, dropout= 0.1, return_sequences=True)),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, dropout = 0.1)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dropout(0.3),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(8, activation="softmax")
])
model.summary()
So what I want to ask is: a) Tokenizing: should I use tensorflow's tokenizer (fit on text, text to sequence and doc max length)? How do i match gensims embeddings with tensorflow's tokenizing generated numbers?
b) how can I import embeddings from Word2vec into tensorflow's model?