Hi,
Iam trying to build a text classification system using keras.
Input is unstructured text and the output needs to be placed into one of the pre-defined classes
Iam using LSTM.
The classifier accuracy is extremely low. ( < 10% of F-score)
An alternate non deep learning based classifier say an SVM using sklearn is giving performance much better. ( > 60% F-score)
Characteristics of the data:
1. Many classes - ~ 1000
2. Data is noisy
3. Imbalanced ( Many classes < 10 training points).
Any ideas on what I could do to improve.
Things I have tried till now include :
1. Batching - Iam batching all data for a class & incrementally training the model 1 class at a Time
2 .Have added PreLu layer as well as Batch normalization layer
Is 1 the correct thing to do?
What else I can try here?
Is there a benefit in using a Deep Learning model for this kind of task.
Thanking you
Net architecture
model = Sequential()
model.add(LSTM(wordvecSize, 512,init='glorot_uniform', inner_init='orthogonal',activation='tanh', inner_activation='hard_sigmoid', return_sequences=False))
model.add(Dropout(0.5))
model.add(Dense(512, len_labels))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', class_mode='categorical')