| --- |
| license: mit |
| datasets: |
| - databoyface/python-tf-ome-src-v4.1 |
| language: |
| - en |
| --- |
| |
| # Orthogonal Model of Emotions |
|
|
| A Text Classifier created using TensorFlow and Keras |
|
|
| ## Author |
|
|
| C.J. Pitchford |
|
|
| ## Published |
|
|
| 18 August 2025 |
|
|
| ## Model and Weights |
|
|
| Model: "sequential" |
| _________________________________________________________________ |
| Layer (type) Output Shape Param # |
| ================================================================= |
| embedding (Embedding) (None, 1000, 64) 6400000 |
| |
| bidirectional (Bidirection (None, 1000, 128) 66048 |
| al) |
| |
| global_max_pooling1d (Glob (None, 128) 0 |
| alMaxPooling1D) |
| |
| dense (Dense) (None, 64) 8256 |
| |
| dropout (Dropout) (None, 64) 0 |
| |
| dense_1 (Dense) (None, 47) 3055 |
| |
| ================================================================= |
| Total params: 6477359 (24.71 MB) |
| Trainable params: 6477359 (24.71 MB) |
| Non-trainable params: 0 (0.00 Byte) |
| |
| ## Usage |
|
|
|
|
| import numpy as np |
| import tensorflow as tf |
| |
| import tensorflow.keras.preprocessing.text as text |
| |
| import pickle |
| from tensorflow.keras.preprocessing.sequence import pad_sequences |
| |
| # 1. Load pre-trained model |
| model = tf.keras.models.load_model('OME4tf/ome-4a-model.h5') |
| |
| # 2. Load tokenizer and label encoder |
| with open('OME4tf/ome-4a-tokenizer.pkl', 'rb') as f: |
| tokenizer = pickle.load(f) |
| with open('OME4tf/ome-4a-label_encoder.pkl', 'rb') as f: |
| label_encoder = pickle.load(f) |
| |
| # 3. Test model with prediction on text "I failed to hide my distress." |
| text = "I failed to hide my distress." |
| text_seq = tokenizer.texts_to_sequences([text]) |
| max_len = 1000 |
| text_seq = pad_sequences(text_seq, maxlen=max_len, padding='post') |
| pred_probs = model.predict(text_seq) |
| pred_label = np.argmax(pred_probs, axis=1) |
| print(f"Statement: {text}\nPrediction: {label_encoder.classes_[pred_label][0]}") |
| |
| ## Additional |
|
|
| Tokenizer and label encoder included as JSON to avoid using `pickle` files. |