Named Entity Recognition Model for Naver NLP Challenge 2018
Presentation file
Team : State_Of_The_Art (Dongju Park)
1st place on Naver NLP Challenge 2018 NER task
- The code is implemented based on baseline model
- Bidirectional LSTM + CRF
- Embedding layer consists of Word, character(LSTM), and named entity together
- Shuffle training data on every epoch
- Total data : 90000, training data : 80000, development data : 10000
- Important to use RMSPropOptimizer as an optimizer and low value of learning rate
- The model is an ensemble model that uses hard voting method for N different models
| Hyper-parameter | value |
|---|---|
| epoch | 20 |
| batch_size | 128 |
| learning_rate | 0.001 |
| keep_prob | 0.65 |
| word_embedding_size | 128 |
| char_embedding_size | 128 |
| tag_embedding_size | 128 |
| lstm_units | 128 |
| char_lstm_units | 128 |
| sentence_length | 180 |
| word_length | 8 |
| num_ensemble | 3 |
- Converge between 13 and 15 epochs
- In this code, the default value of num_ensemble is set to 5, but I set it to 3 when submitting the model
$ python main.py$ python main.py \
--mode <Choice operation mode> \
--dinput_dir <Input data directory> \
--output_dir <Output data directory> \
--necessary_file <necessary_file> \
--epochs <num_epoch> \
--batch_size <batch_size> \
--learning_rate <learning_rate> \
--keep_prob <dropout_rate> \
--word_embedding_size <Word, WordPos Embedding Size> \
--char_embedding_size <Char Embedding Size> \
--tag_embedding_size <Tag Embedding Size> \
--lstm_units <Hidden unit size> \
--char_lstm_units <Hidden unit size for Char rnn> \
--sentence_length <Maximum words in sentence> \
--word_length <Maximum chars in word> \
--num_ensemble <Number of submodels> Naver NLP Challenge
Changwon University Adaptive Intelligence Research Lab.
NER Leaderboard