
This video gives an overview of the entire course.
In this video, we will learn how we setup a stack of libraries for natural language processing.
Use Python for machine learning
Learn how does NLTK and spaCy fit into natural language processing
Learn how does scikit-learn fit into natural language processing
In this video, we will learn we will be putting textual data into Python to perform NLP.
Use iterators to read large text files
Speed up text file input-output with multiprocessing
In this video, we will be capturing each word in a corpus as a feature.
Split lines of text into word tokens with the split function
Explore a better tokenizer with regular expressions
In this video, we will learn to remove effects of capitalization in our analysis.
Combine what we have learned to read a text file and process it
Split the corpus into case-insensitive tokens
In this video, we will learn to remove noise caused by stop words and uncommon words.
Remove uncommon words
Learn about stop words
Remove uncommon words using the collections module
In this video, we will be getting started with spam classification using an open sourced dataset.
Learn how data anchors natural language processing and machine learning
Find and understand Enron spam dataset
Download the Enron spam dataset
In this video, we will import a directory of data into Python.
Use the OS module to list all files in a folder
Import both positive and negative examples into memory
In this video, we will Implement your first natural language preprocessing pipeline.
Learn about Tokenization and Lemmatization
Learn how do we do these preprocessing steps in Python with NLTK
In this video, we will be implementing your first feature extractor.
Learn about bag-of-words (BOW) features
Extract BOW features from text data in Python
In this video, we will be creating your first ML model with scikit-learn.
Split the dataset into training and testing
Set up your first machine learning model
Evaluate the Naive Bayes model
In this video, we will understand the origin and features of the movie review dataset.
Learn the importance of understanding the data source
Learn how the movie review dataset was collected
In this video, we will see how to get the movie review data into Python.
Learn about scikit-learn's load files function
Organize your dataset to work with sklearn
In this video, we will preprocess the dataset to remove unwanted words and characters.
Learn what a Vectorizer in Scikit-learn is
Use Count Vectorizer to extract features from text
In this video, we will create TF-IDF weighted natural language features.
Learn what is TF-IDF and why is it useful
Implement TF-IDF in scikit-learn
In this video, we will do the basic sentiment analysis with logistic regression.
Learn what logistic regression is, and how does it fit into NLP
Implement logistic regression on sentiment analysis
In this video, we will learn how to engineer better features by looking at the raw data.
Look and analyze the raw data and see how it can help us create better features
Whitelist words related to sentiment
In this video, we will see how to clean tokens using Python string functions and regex.
Learn how to use word lists to test regex
Explore wildcards, endings, optionality and more
In this video, we will create features based on phrases instead of words.
Learn about N-grams
Create N-grams with scikit-learn
In this video, we will see how to experiment with a collection of advanced scikit-learn models.
Explore different models
Use the sklearn module name as a proxy to model type
In this video, we will be combining the predictions of the models into one ensemble model.
Combine models
Use VotingClassifier to combine predictions
In this video, we will understand the origin and features of the 20 newsgroups dataset.
Learn what is document or topic classification
Learn what is the 20 news group dataset
In this video, we will be loading the newsgroup data and extracting features.
Load the 20 newsgroup dataset with load_files
Split up the dataset with train_test_split
In this video, we will see how to build a document classification pipeline.
Learn about pipelines in scikit-learn
Explore the chaining feature extraction and model training using pipelines
In this video, we will be creating a performance report of the model on the test set.
Store predictions and evaluating accuracy
Understand performance with classification report
In this video, we will be finding optimal hyper-parameters using grid search.
Learn about hyper parameters
Implement GridSearch in scikit-learn
In this video, we will learn about Elegantly queue up text preprocessing steps as a decision tree.
Use send() and yield() to pass data around functions
Structure your text preprocessing graph using decorators
In this video, we will be creating hashing based features from natural language.
Differentiate between HashingVectorizer and CountVectorizer
Learn how to use HashingVectorizer
This video shows How to use LSA to reduce the dimensionality of your term-document matrix.
Reduce the size of the matrix that came out of HashingVectorizer
Leverage the LSA algorithm to perform topic classification
This video shows how to use SVM to power document classification.
Learn What are SVMs
Implement a model combining TF-IDF and SVMs in scikit-learn
This video gives an overview of the entire course.
In this video, we use the Python NLTK library to understand more about the POS tagging features in a given text.
Create a variable called simpleSentence
Invoke the NLTK built-in tokenizer function word_tokenize()
Invoke the NLTK built-in tagger pos_tag()
Now, we will explore the NLTK library by writing our own taggers. We’ll write various types of taggers such as Default tagger, Regular expression tagger and Lookup tagger.
Define a new Python function called learnDefaultTagger
Create an object of the DefaultTagger() class
Call the tag() function of the tagger object
Next, let’s learn how to train our own tagger and save the trained model to disk so that we can use it later for further computations.
Define a function called sampleData()
Define a function called buildDictionary()
Build an nltk.UnigramTagger() object
This video will teach us how to define grammar and understand production rules.
Import the generate function from the nltk.parse.generate
Define a new grammar
Create a new grammar object using the nltk.CFG.fromstring()
Probabilistic CFG is a special type of CFG in which the sum of all the probabilities for the non-terminal tokens (left-hand side) should be equal to one. Let's write a simple example to understand more.
Identify tokens in the grammar
Join the list of all the production rules into a string
Recursive CFGs are a special types of CFG where the Tokens on the left-hand side are present on the right-hand side of a production rule. Palindromes are the best examples of recursive CFG.
Create a new list data structure called productions
Add production rules that define palindromes
Pass the newly constructed grammarString to the NLTK built-in nltk.CFG.fromstring function
In this video, we will learn how to use the in-built chunker. We will use some features that will be used from NLTK as part of this process.
Add string to a variable called text
Break the given text into multiple sentences
Do POS analysis using the default tagger
Now that we know using the built-in chunker, in this video, we will write our own Regex chunker.
Write regular expressions
Understand tag patterns
Identify chunks
In this video, we will learn the training process, training our own chunker, and evaluating it.
Import the conll2000 corpus and treebank corpus
Define a new function, mySimpleChunker()
Create a list of two datasets
Recursive descent parsers belong to the family of parsers that read the input from left to right and build the parse tree in a top-down fashion and traversing nodes in a pre-order fashion.
Define a new function, RDParserExample
Iterate over the list of sentences in the textlist variable
Create a new CFG object using grammar
In this video, we will learn to use and understand shift-reduce parsing.
Define a new function, SRParserExample
Iterate over the list of sentences in the textlist variable
Define two sample sentences to understand the shift-reduce parser
We will now learn how to parse dependency grammar and use it with the projective dependency parser.
Create a grammar object using the nltk.grammar.DependencyGrammar class
Define the sample sentence on which parser will be run
Chart parsers are special types of parsers which are suitable for natural languages as they have ambiguous grammars. Let’s learn about them in detail.
Import CFG module, ChartParser and BU_LC_STRATEGY features
Create a sample grammar for the example
Acquire all the parse trees
Python NLTK has built-in support for Named Entity Recognition (NER). Let’s learn to use inbuilt NERs.
Define a new function called sampleNE()
Define a function called sampleNE2()
Call the two sample functions
Is it possible to print the list of all the words in the sentence that are nouns? Yes, for this, we will learn how to use a Python dictionary.
Define a new class called LearningDictionary
Create buildDictionary() and buildReverseDictionary()
Define getPOSForWord()
Choosing the feature set Features are one of the most powerful components of nltk library. They represent clues within the language for easy tagging of the data that we are dealing with.
Create learnSimpleFeatures()
Create learnFeatures()
Compare both the functions
A natural language that supports question marks (?), full stops (.), and exclamations (!) poses a challenge to us in identifying whether a statement has ended or it still continues after the punctuation characters. Let’s try and solve this classic problem.
Define featureExtractor()
Create segmentTextAndPrintSentences()
Extract all the features from the traindata and store it in traindataset
In previous videos, we have written regular-expression-based POS taggers that leverage word suffixes, let’s try to write a program that leverages the feature extraction concept to find the POS of the words in the sentence.
Indicate the dual behavior of the words
Define a new function called withContextTagger()
Build a featuredata list
In computing, a pipeline can be thought of as a multi-phase data flow system where the output from one component is fed to the input of another component.
Create new empty list to keep track of all the threads in the program
Define a new function, extractWords()
The text similarity problem deals with the challenge of finding how close given text documents are.
Define an IDF that finds the IDF value
Define a TF_IDF
Display the contents of vectors
In many natural languages, while forming sentences, we avoid the repeated use of certain nouns with pronouns to simplify the sentence construction.
Define a new class called AnaphoraExample
Create a unique list of males and females
Create a NaiveBayesClassifier object called _classifier
In previous videos, we learned how to identify POS of the words, find named entities, and so on. Just like a word in English behaves as both a noun and a verb, finding the sense in which a word is used is very difficult for computer programs.
Define a function with the name understandWordSenseExamples()
Define a new function, understandBuiltinWSD()
Define a new variable called maps
Feedback is one of the most powerful measures for understanding relationships. In order to write computer programs that can measure and find the emotional quotient, we should have some good understanding of the ways these emotions are expressed in these natural languages.
Define a new function, wordBasedSentiment()
Define sample text to analyze
Create multiWordBasedSentiment()
Let’s write our own sentiment analysis program based on what we have learned in the previous video.
Define a new function, mySentimentAnalyzer()
Extract the sentences from the variable feedback
Conversational assistants or chatbots are not very new. One of the foremost of this kind is ELIZA, which was created in the early 1960s and is worth exploring. NLTK has a module, nltk.chat, which simplifies building these engines by providing a generic framework. Let’s see that in detail.
Define builtinEngines()
Create a new function called myEngine()
Define a nested tuple data structure
Natural Language Processing (NLP) is the most interesting subfield of data science. It offers powerful ways to interpret and act on spoken and written language. It’s used to help deal with customer support enquiries, analyse how customers feel about a product, and provide intuitive user interfaces. If you wish to build high performing day-to-day apps by leveraging NLP, then go for this Learning Path.
This comprehensive 2-in-1 course teaches you to write applications using one of the popular data science concept, NLP. You will begin with building 3 NLP applications which are a spam filter, a topic classifier, and a sentiment analyzer. You will then learn how to use open source libraries such as NLTK, scikit-learn, and spaCy to perform routine NLP tasks backed by machine learning and NLP processing models with ease. You will be taken on a journey starting from the very basics such as using a corpus and regular expressions to learning advanced NLP concepts while simultaneously solving common NLP problems faced in your day-to-day tasks. You will learn all of these through practical demonstrations, clear explanations, and interesting real-world examples. This learning path will give you a versatile range of NLP skills, which you will put to work in your own applications.
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Hands-on NLP with NLTK and Scikit-learn, puts you right on the spot, starting off with building a spam classifier in our first video. You will then build three NLP applications: a spam filter, a topic classifier, and a sentiment analyzer. You will also be able to build actual solutions backed by machine learning and NLP processing models with ease.
The second course, Developing NLP Applications Using NLTK in Python, course is designed with advanced solutions that will take you from newbie to pro in performing natural language processing with NLTK. You will come across various concepts covering natural language understanding, natural language processing, and syntactic analysis. It consists of everything you need to efficiently use NLTK to implement text classification, identify parts of speech, tag words, and more. You will also learn how to analyze sentence structures and master syntactic and semantic analysis.
By the end of this Learning Path, you will be able to create new applications with Python and NLP. You will also be able to build actual solutions backed by machine learning and NLP processing models with ease.
Meet Your Expert(s):
We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:
Colibri Ltd is a technology consultancy company founded in 2015 by James Cross and Ingrid Funie. The company works to help its clients navigate the rapidly changing and complex world of emerging technologies, with deep expertise in areas such as big data, data science, machine learning, and cloud computing. Over the past few years, they have worked with some of the world's largest and most prestigious companies, including a tier 1 investment bank, a leading management consultancy group, and one of the World's most popular soft drinks companies, helping each of them to make better sense of its data, and process it in more intelligent ways. The company lives by its motto: Data -> Intelligence -> Action.
Rudy Lai is the founder of QuantCopy, a sales acceleration startup using AI to write sales emails to prospects. By taking in leads from your pipelines, QuantCopy researches them online and generates sales emails from that data. It also has a suite of email automation tools to schedule, send, and track email performance—key analytics that all feedback into how our AI generated content. Prior to founding QuantCopy, Rudy ran HighDimension.IO, a machine learning consultancy, where he experienced first-hand the frustrations of outbound sales and prospecting. As a founding partner, he helped startups and enterprises with High Dimension. IO's Machine-Learning-as-a-Service, allowing them to scale up data expertise in the blink of an eye. In the first part of his career, Rudy spent 5+ years in quantitative trading at leading investment banks such as Morgan Stanley. This valuable experience allowed him to witness the power of data, but also the pitfalls of automation using data science and machine learning. Quantitative trading was also a great platform from which to learn deeply about reinforcement learning and supervised learning topics in a commercial setting.
Krishna Bhavsar has spent around 10 years working on natural language processing, social media analytics, and text mining in various industry domains such as hospitality, banking, healthcare, and more. He has worked on many different NLP libraries such as Stanford CoreNLP, IBM's SystemText and BigInsights, GATE, and NLTK to solve industry problems related to textual analysis. He has also worked on analyzing social media responses for popular television shows and popular retail brands and products. He has also published a paper on sentiment analysis augmentation techniques in 2010 NAACL. he recently created an NLP pipeline/toolset and open sourced it for public use. Apart from academics and technology, Krishna has a passion for motorcycles and football. In his free time, he likes to travel and explore. He has gone on pan-India road trips on his motorcycle and backpacking trips across most of the countries in South East Asia and Europe.
Naresh Kumar has more than a decade of professional experience in designing, implementing, and running very-large-scale Internet applications in Fortune Top 500 companies. He is a full-stack architect with hands-on experience in domains such as ecommerce, web hosting, healthcare, big data and analytics, data streaming, advertising, and databases. He believes in open source and contributes to it actively. Naresh keeps himself up-to-date with emerging technologies, from Linux systems internals to frontend technologies. He studied in BITS-Pilani, Rajasthan with dual degree in computer science and economics.
Pratap Dangeti develops machine learning and deep learning solutions for structured, image, and text data at TCS, in its research and innovation lab in Bangalore. He has acquired a lot of experience in both analytics and data science. He received his master's degree from IIT Bombay in its industrial engineering and operations research program. Pratap is an artificial intelligence enthusiast. When not working, he likes to read about nextgen technologies and innovative methodologies. He is also the author of the book Statistics for Machine Learning by Packt.