In this session on Information Extraction (IE), you learnt to extract entities from unstructured user queries in a structured format using two types of techniques: rule-based techniques (by chunking phrases, and using regular expressions) and probabilistic models (Unigram, Bigram, Naive Bayes and Decision Trees). In the next optional session, you’ll learn another type of probabilistic model widely used in NLP for sequence modelling – Conditional Random Fields (CRFs).
The concepts covered in the optional session are explained below briefly. We highly recommend that you go through the session on CRFs since they are used heavily in the industry(the session has been put as optional mainly due to time constraints). CRFs are also used in the upcoming chatbot project. Although in the project, you will not need to build CRFs from scratch(you will rather use a library), but an understanding of how they work will be helpful for you can study the session at your pace.
CRFs Overview
CRFs are used in a widevariety of sequence labelling tasks such as POS tagging, speech recognition, NER, and even in computational biology for modelling genetic patterns etc. These are commonly used as an alternative to HMMs, and, in some applications, have empirically proven to be significantly better than HMMs. In the next session, you will see that CRFs achieve much better accuracy (on the ATIS flight booking dataset) than any of the models tried in the previous session.
In the session, you’ll study in detail about.
- CRFs architecture
- Feature functions
- Training CRFs
- Python implementation of CRF.