KlingonHeads / DataPPwithspecial.py
DiegoTheExplorar's picture
Update DataPPwithspecial.py
9da3c99 verified
raw
history blame
2.93 kB
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
import tensorflow as tf
def preprocess():
# Load dataset
data = pd.read_csv('English_To_Klingon.csv')
# Append <BOS> and <EOS> tags to the Klingon sentences
data['klingon'] = data['klingon'].apply(lambda x: '<BOS> ' + x + ' <EOS>')
# Separate the sentences
english_sentences = data['english'].values
klingon_sentences = data['klingon'].values
# Split data into training and testing sets. An 80 - 20 split is used here
english_train, english_test, klingon_train, klingon_test = train_test_split(
english_sentences, klingon_sentences, test_size=0.2, random_state=42)
# Initialize tokenizers with specified vocabulary size
english_tokenizer = tf.keras.preprocessing.text.Tokenizer(num_words=5000, oov_token='<UNK>')
klingon_tokenizer = tf.keras.preprocessing.text.Tokenizer(num_words=5000, oov_token='<UNK>')
# Fit tokenizers on training data
english_tokenizer.fit_on_texts(english_train)
klingon_tokenizer.fit_on_texts(klingon_train)
# Tokenize the sentences
english_train_sequences = english_tokenizer.texts_to_sequences(english_train)
klingon_train_sequences = klingon_tokenizer.texts_to_sequences(klingon_train)
english_test_sequences = english_tokenizer.texts_to_sequences(english_test)
klingon_test_sequences = klingon_tokenizer.texts_to_sequences(klingon_test)
# Padding sequences to a fixed length
english_train_padded = tf.keras.preprocessing.sequence.pad_sequences(english_train_sequences, maxlen=50, padding='post')
klingon_train_padded = tf.keras.preprocessing.sequence.pad_sequences(klingon_train_sequences, maxlen=50, padding='post')
english_test_padded = tf.keras.preprocessing.sequence.pad_sequences(english_test_sequences, maxlen=50, padding='post')
klingon_test_padded = tf.keras.preprocessing.sequence.pad_sequences(klingon_test_sequences, maxlen=50, padding='post')
# Prepare target data for training
klingon_train_input = klingon_train_padded[:, :-1] # The decoder input, which is the Klingon sentence shifted by one position to the right for training data.
klingon_train_target = klingon_train_padded[:, 1:] # The target output, which is the same sentence shifted by one position to the left for training data.
klingon_train_target = np.expand_dims(klingon_train_target, -1)
# Prepare target data for testing
klingon_test_input = klingon_test_padded[:, :-1] # The decoder input for testing data.
klingon_test_target = klingon_test_padded[:, 1:] # The target output for testing data.
klingon_test_target = np.expand_dims(klingon_test_target, -1)
return (english_tokenizer, klingon_tokenizer, 50, # max_length
english_train_padded, klingon_train_input, klingon_train_target,
english_test_padded, klingon_test_input, klingon_test_target)