Natural Language Processing Fundamentals
If NLP hasn't been your forte, Natural Language Processing Fundamentals will make sure you set off to a steady start. This comprehensive guide will show you how to effectively use Python libraries and NLP concepts to solve various problems.
You'll be introduced to natural language processing and its applications through examples and exercises. This will be followed by an introduction to the initial stages of solving a problem, which includes problem definition, getting text data, and preparing it for modeling. With exposure to concepts like advanced natural language processing algorithms and visualization techniques, you'll learn how to create applications that can extract information from unstructured data and present it as impactful visuals. Although you will continue to learn NLP-based techniques, the focus will gradually shift to developing useful applications. In these sections, you'll understand how to apply NLP techniques to answer questions as can be used in chatbots.
By the end of this course, you'll be able to accomplish a varied range of assignments ranging from identifying the most suitable type of NLP task for solving a problem to using a tool like spacy or gensim for performing sentiment analysis. The course will easily equip you with the knowledge you need to build applications that interpret human language.
This course takes a hands-on approach to the practical aspects of using Python to build NLP applications. It contains multiple activities that use real-life business scenarios for you to practice and apply your new skills in a highly relevant context. Here is the list of course objectives:
- Learn about space and time complexities express them using big O notation
- Explore various classic sorting algorithms, such as merge and quick sort
- Understand the workings of basic (Lists, queues and stacks) and complex data structures (hash tables and binary trees)
- Gain an insight into various algorithm design paradigms (Greedy, Divide and Conquer and Dynamic programming)
- Discover string matching techniques
- Master graph representations and learn about different graph algorithms, such as cycle detection, traversal and shortest path
This course will require a computer system for the instructor and one for each student. The minimum hardware requirements are as follows:
- Processor: Dual Core or better
- Memory: 4 GB RAM
- Hard disk: 10 GB
- Internet connection
Lesson 1: Introduction to NLP
What is natural language processing (NLP)?
Types of natural language processing tasks
Structuring a natural language processing project
Lesson 2: Extraction Methods from Unstructured Text
Tokenization methods
Term frequency observations
Bag-of-Words and TF-IDF
Lesson 3: Building a Simple Classifier
Basic theoretical coverage and sample code of Supervised
and Unsupervised
Classifiers vs. regressors
Sampling and splitting data for training algorithms
Evaluating the performance of a model
Use of Pandas and scikit-learn
Lesson 4: Collecting Text Data
Retrieve and process web page data using urllib, bs4
Handle various types of data such as JSON, XML
Retrieve real-time data using API provided by the website
Lesson 5: Topic Modeling
Loading and preprocessing documents into a notecourse
Training an LDA model to detect the topics in the document
Visually represent the topics found in a set of documents
Lesson 6: Text Summarization and Text Generation
Summarizing document using word frequency
Generating random text using the markov chain
Compare the results between recent methods
Lesson 7: Vector Representation
Converting words to word vectors
Perform math-like operations on word vectors e.g. king -
man = queen
Converting documents to document vectors.
Using document vectors to measure the similarity between
documents
Lesson 8: Sentiment Analysis
Load a labelled dataset of movie reviews
Use word vectors to represent the words in the movie review
Train a simple model to predict whether the movie review is positive or negative