LOUISVILLE, KENTUCKY
ATLANTA, GEORGIA
CHICAGO, ILLINOIS
CINCINNATI, OHIO
DENVER, COLORADO
MADISON, WISCONSIN
RARITAN, NEW JERSEY
TORONTO, ONTARIO
NOIDA, INDIA
HYDERABAD, INDIA

V-Soft's Corporate Headquarters

101 Bullitt Lane, Suite #205
Louisville, KY 40222

502.425.8425
TOLL FREE: 844.425.8425
FAX: 502.412.5869

Denver, Colorado

6400 South Fiddlers Green Circle Suite #1150
Greenwood Village, CO 80111

TOLL FREE: 844.425.8425

Chicago, Illinois

208 N. Green Street, #302, Chicago, IL 60607

TOLL FREE: 844.425.8425

Madison, Wisconsin

2810 Crossroads Drive, Ste. 4000
Madison, WI 53718

TOLL FREE: 844.425.8425

Atlanta, Georgia

1255 Peachtree Parkway Suite #4201
Cumming, GA 30041

TOLL FREE: 844.425.8425

Cincinnati, Ohio

Spectrum Office Tower 11260
Chester Road Suite 350
Cincinnati, OH 45246

Phone: 513.771.0050

Raritan, New Jersey

216 Route 206 Suite 22 Hillsborough Raritan, NJ 08844

Phone: 513.771.0050

Toronto, Canada

1 St. Clair Ave W Suite #902, Toronto, Ontario, M4V 1K6

Phone: 416.663.0900

Hyderabad, India

Incor 9, 3rd Floor, Kavuri Hills
Madhapur, Hyderabad – 500033 India

PHONE: 040-48482789

Noida, India

H-110 - Sector 63 ,
NOIDA , Gautham Budh Nagar ,
UP – 201301

Understanding Named Entity Recognition Pre-Trained Models

Understanding Named Entity Recognition Pre-trained Models

Named Entity Recognition (NER) is an application of Natural Language Processing (NLP) that processes and understands large amounts of unstructured human language. Also known as entity identification, entity chunking and entity extraction. NER extraction is the first step in answering questions, retrieving information and topic modeling. There are many models for implementing NER depending on the application need. Here we compare Spacy pre-trained and Stanford NER models.

Applications and Use Cases of NER

NER has various applications in multiple industries such as news and media, search engines,  and content recommendations.

Use Cases of Named Entity Recognition:

  • Information Extraction Systems
  • Question-Answer Systems
  • Machine Translation Systems
  • Automatic Summarizing Systems
  • Semantic Annotation

Approaches for NERComparing Knoweldge-based approach to Machine Learning approach of Names Entity Recognition Workflow for NER

An NER System is capable of discovering entity elements from raw data and determines the category the element belongs to. The system reads the sentence and highlights the important entity elements in the text. NER might be given separate sensitive entities depending on the project. This means that NER systems designed for one project may not be reused for another task.

For a general entity such as name, location, organization, date and pre-trained library, Stanford NER and Spacy can be used. But for a domain specific entity, an NER model can be trained with custom training data requires lots of human efforts and time. There are a few other approaches such as, Feedforward Neural Networks for NER, BILSTM, CNNS, and Residual Stack BILSTMS with Biased Decoding which can be used to perform NER using deep learning. 

Spacy Pre-trained vs Stanford NER Model

Stanford NER

This is implemented in Java and is based on linear chain CRF (Conditional Random Field) sequence models. For various applications, custom models can be trained with labeled data sets.

 It has three models:

  • 3 class : Location, person, organization
  • 4 class : Location, person, organization, misc.
  • 7 class : Location, person, organization, money, percent, date, time

Model Architecture

Stanford NER stated that Conditional Random Field (CRF) is a sequence modeling algorithm that assumes features are dependent on each other, and also considers future observations while learning a new pattern. This combines the best of HMM (Hidden Markov Model) and MEMM (Maximum Entropy Markov Model). In terms of performance, it is one the best methods for entity recognition problems.

How Conditional Random Field Model  Works     Figure: Conditional Random Field Model

Installation steps

  1. Since it is written in Java, Java JRE must be installed and set to the environment path.
  2. Download the zip file stanford-ner-xxxx-xx-xx.zip from the Stanford NLP website. Unzip it and place it in the application folder.
  3. Install the NLTK package using command: pip install nltk

Example:Example of Java JRE Coding Installation Steps

ResultExample of complete jave coding for Model Architecture

Spacy NER

Spacy is an open source library for natural language processing written in Python and Cython, and it is compatible with 64-bit CPython 2.7 / 3.5+ and runs on Unix/Linux, macOS/OS X and Windows. Spacy provides a Tokenizer, a POS-tagger and a Named Entity Recognizer and uses word embedding strategy. The advantage of Spacy is having Pre-trained models in several languages: English, German, French, Spanish, Portuguese, Italian, Dutch, and Greek.

 

Model Architecture

The current architecture of a Spacy model hasn’t been published yet, but the above video explains how the models work, with particular focus on NER.

 

Spacy Library Architecture Figure: Spacy Library Architecture 

The Spacy NER system contains a word embedding strategy using sub word features and "Bloom" embed, and a deep convolution neural network with residual connections. The system is designed to give a good balance of efficiency, accuracy and adaptability.

 

Spacy NER Architecture. Language processing pipeline

Figure: Spacy NER Architecture. Language processing pipeline

Installation Steps

  1. pip install -U spacy
  2. Once installation is complete, pre-trained models for specific languages can be installed and used in the application.
  3. Python -m Spacy download en

Example:Input for spacy model

Output:

Output of Spacy NER model

Conclusion

Comparing results from Spacy as well as NLTK implementation of Stanford NLP concludes that both can be used for NER to achieve good results. Spacy has support for word vectors, so it's fast and accurate. It is recommended to use Spacy NER for production over Stanford NER. For customizing the process of NER, both models can be used. This requires data labeling and annotation which means giving tags to entities.

New call-to-action

About Author

Durga BhavaniDurga Bhavani works as a Data Scientist with V-Soft Digital. As a Data She has 3 years of experience as a Data Scientist and has extensive knowledge on predictive modelling, data processing, and data mining algorithms. In her professional experience, she has developed applications in Deep Learning, Python, Machine Learning, and Natural Language Processing (NLP). She holds certifications in Natural Language Processing and Computer Vision. Out of her strong interest in higher mathematical concepts relating to AI, currently she is also pursuing Post Graduation program in Mathematics.

Topics: Natural Language Processing, NLP, Named Entity Recognition

Get tech and IT industry Updates

Webinar: Artificial Intelligence Use Cases