How to import word2vec embeddings into tensorflow model

Viewed 11

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?

0 Answers
Related