This is AI4001
GCR : t37g47w
CODE
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, SimpleRNN, Dense
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
texts = ["I love this product", "This is terrible", "Awesome!", "Waste of money"]
labels = [1, 0, 1, 0] # 1 for positive, 0 for negative
# Tokenize the text data
tokenizer = Tokenizer()
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
# Padding sequences to have the same length
max_sequence_length = max([len(seq) for seq in sequences])
sequences = pad_sequences(sequences, maxlen=max_sequence_length, padding='post')
CODE
model = Sequential()
model.add(Embedding(input_dim=len(tokenizer.word_index) + 1, output_dim=16,
input_length=max_sequence_length))
model.add(SimpleRNN(8, activation='tanh'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy',
metrics=['accuracy'])
labels = np.array(labels)
model.fit(sequences, labels, epochs=10, batch_size=2)
test_text = ["I hate it", "Amazing product"]
test_sequences = tokenizer.texts_to_sequences(test_text)
test_sequences = pad_sequences(test_sequences, maxlen=max_sequence_length,
padding='post')
predictions = model.predict(test_sequences)
print(predictions)
Word2Vec Vs Random Embeddings
Word2Vec Embeddings
● Saves Time
Randomly Initialized Embeddings
● Low-Resource Languages
● Domain-Specific Tasks(e.g., medical or legal texts)
● Privacy and Data Security
● Customized Embeddings
● Data Augmentation
References
https://web.stanford.edu/class/cs224n/slides/cs224n-2023-lec
ture05-rnnlm.pdf
http://cs231n.stanford.edu/slides/2020/lecture_10.pdf
https://web.stanford.edu/class/cs224n/slides/cs224n-2021-lec
ture06-fancy-rnn.pdf