Named-Entity-Recognition-with-Bidirectional-LSTM-CNNs
                                
                                
                                
                                    Named-Entity-Recognition-with-Bidirectional-LSTM-CNNs copied to clipboard
                            
                            
                            
                        Named-Entity-Recognition-with-Bidirectional-LSTM-CNNs
Better NER BERT Named-Entity-Recognition
Named-Entity-Recognition-with-Bidirectional-LSTM-CNNs
A keras implementation of Bidirectional-LSTM_CNNs for Named-Entity-Recoganition. The original paper can be found at https://arxiv.org/abs/1511.08308
The implementation differs from the original paper in the following ways :
- lexicons are not considered
 - Bucketing is used to speed up the training
 - nadam optimizer used instead of SGD
 
Result
The model produces a test F1_score of 90.9 % with ~70 epochs. The results produced in the paper for the given architecture is 91.14 Architecture(BILSTM-CNN with emb + caps)
Dataset
conll-2003
Network Model in paper
 
Network Model Constructed Using Keras

To run the script
   python3 nn.py
Requirements
0) nltk
1) numpy 
2) Keras==2.1.2
3) Tensorflow==1.4.1
Inference on trained model
from ner import Parser
p = Parser()
p.load_models("models/")
p.predict("Steve Went to Paris")
##Output [('Steve', 'B-PER'), ('went', 'O'), ('to', 'O'), ('Paris', 'B-LOC')]