A neural network model for Chinese named entity recognition
Python Perl
Switch branches/tags
Nothing to show
Clone or download
Latest commit 48e1007 Jul 12, 2017
Failed to load latest commit information.
data clean data Jul 10, 2017
README.md add suggested readings Jul 10, 2017
conlleval first commit Jan 31, 2017
conlleval.py fix some bugs Jul 4, 2017
data_utils.py add data manager Jul 10, 2017
loader.py replace sgd with mini-batch Jul 10, 2017
main.py change default settings Jul 10, 2017
model.py fix evaluate online Jul 12, 2017
rnncell.py fix some bugs Jul 4, 2017
utils.py fix evaluate online Jul 12, 2017
wiki_100.utf8 fix some bugs Jul 4, 2017


Recurrent neural networks for Chinese named entity recognition in TensorFlow

This repository contains a simple demo for chainese named entity recognition.




The model is a birectional LSTM neural network with a CRF layer. Sequence of chinese characters are projected into sequence of dense vectors, and concated with extra features as the inputs of recurrent layer, here we employ one hot vectors representing word boundary features for illustration. The recurrent layer is a bidirectional LSTM layer, outputs of forward and backword vectors are concated and projected to score of each tag. A CRF layer is used to overcome label-bias problem.

Our model is similar to the state-of-the-art Chinese named entity recognition model proposed in Character-Based LSTM-CRF with Radical-Level Features for Chinese Named Entity Recognition.

Basic Usage

Default parameters:

  • batch size: 20
  • gradient clip: 5
  • embedding size: 100
  • optimizer: Adam
  • dropout rate: 0.5
  • learning rate: 0.001

Word vectors are trained with gensim version of word2vec on Chinese WiKi corpus, provided by Chuanhai Dong.

Train the model with default parameters:

$ python3 main.py --train=True --clean=True

Online evaluate:

$ python3 main.py

Suggested readings:

  1. Natural Language Processing (Almost) from Scratch.
    Propose a unified neural network architecture for sequence labeling tasks.
  2. Neural Architectures for Named Entity Recognition.
    End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF.
    Combine Character-based word representations and word representations to enhance sequence labeling systems.
  3. Transfer Learning for Sequence Tagging with Hierarchical Recurrent Networks.
    Multi-task Multi-domain Representation Learning for Sequence Tagging.
    Transfer learning for sequence tagging.
  4. Named Entity Recognition for Chinese Social Media with Jointly Trained Embeddings.
    Propose a joint training objective for the embeddings that makes use of both (NER) labeled and unlabeled raw text
  5. Improving Named Entity Recognition for Chinese Social Media with Word Segmentation Representation Learning.
    An Empirical Study of Automatic Chinese Word Segentation for Spoken Language Understanding and Named Entity Recognition.
    Using word segmentation outputs as additional features for sequence labeling syatems.
  6. Semi-supervised Sequence Tagging with Bidirectional Language Models.
    State-of-the-art model on Conll03 NER task, adding pre-trained context embeddings from bidirectional language models for sequence labeling task.
  7. Character-Based LSTM-CRF with Radical-Level Features for Chinese Named Entity Recognition.
    State-of-the-art model on SIGHAN2006 NER task.
  8. Named Entity Recognition with Bidirectional LSTM-CNNs.
    Method to apply lexicon features.