Everyone and welcome to natural language processing in Python.
This is the best and most in-depth online resource for learning about how to use Python to analyze,
understand and generate language.
So in this video, I'm going to describe what this course is about, why you should take it and what
skills you will learn if you do.
So let's start by asking a basic question.
What is natural language processing?
Natural language processing is a sub field of data science and machine learning that specifically deals
with text and speech.
It's one of the two areas of machine learning that deal with naturally occurring data sources.
The other being images.
But some feel that deals with images is called computer vision and by naturally occurring.
What I mean is that people just put a lot of this stuff on the internet.
It's not stuff you need to acquire or measure by doing a survey or an experiment.
So these two areas are very important because they allow us to analyze and process large quantities
of data that just happened to exist in abundance.
The best way to understand why this field is important is to check out some applications.
The first application now he's mentioned is spam detection.
You probably use this every day without knowing it's happening behind the scenes.
Another everyday use of NLP is with predictive text when you send an email or type out a text message.
Machine learning is used to make suggestions while you type, making it easier for you to type your
message.
Speech recognition is another great example of how NLP has impacted our daily lives with Siri, Alexa
and Google Assistant.
We can simply speak commands or ask questions to our devices, and our devices will listen and take
action based on what we've said.
One application, which is a tiny bit abstract, is sentiment analysis.
This is where we can use machine learning to decide whether a passage of text is positive or negative.
This can be used by companies to learn about their reputation and buy stock traders to predict stock
price movements.
Now, you might wonder, why don't people just read the text themselves?
And this is a good opportunity to consider the concept of automation.
There is so much text in the world that you simply do not have time to read everything.
Furthermore, if you're a stock trader, keep in mind that you are competing with other stock traders,
and those who act more quickly will benefit the most.
And so if you are not automating what your competition is, then you risk being not fast enough.
Now, those are some pretty well known classic applications of NLP.
But there have been some amazing advancements in the recent past that are worth making note of.
One example is language translation, which is becoming an increasingly important tool thanks to technology
which connects us with people around the world thanks to automatic transcription and translation.
People all around the world can understand my courses, even if we don't speak the same language.
Language translation also happens to be a very useful tool for us as it motivates the concept of attention,
which leads us to a state of the art model called the Transformer.
Another very futuristic technique is text generation.
This is related to predictive text, as we previously discussed, but the capabilities of today's models
are much greater and allow us to take things much further.
The current state of the art for this task is GPT three, which can generate very long documents, which
are almost totally coherent and grammatically correct.
All you have to do is give it a prompt telling it what you want to write about, and GPT three can write
pages of text that are very difficult to distinguish from what a human would write.
In fact, it's been used to write online comments on social media sites where I'm sure many have already
been fooled into thinking they were reading something written by a human.
Now, that might seem like just a mere curiosity, but in fact, actual money making businesses have
already been built on top of this technology.
One of the most popular examples is GitHub Co-Pilot, which is currently in preview mode but has already
shown great promise in writing code.
So it's not just everyday language that NLP models can understand, but programming languages as well.
In fact, these technologies have been applied in other areas such as genomics, where Alpha Fold2 has
been said to solve the greatest problem in molecular biology.
So now that you're convinced that NLP is an amazingly powerful technology with many real world use cases.
Let's talk about this cause.
This course will take you from beginner to advanced in the field of NLP.
In fact, it's really more like four courses in one.
Let me explain the first major part of this course, which is like a little mini course, focuses on
how to process text on a computer.
Our goal is to convert text into vectors so that we can apply vector based methods.
As you recall, machine learning works on numbers and numerical representations, whether they be text,
images or other custom inputs you've defined.
But the question is how do you convert text into numbers, specifically vectors?
In fact, this is not a trivial process, and there are many possible solutions.
Thus, this section will look at multiple approaches, and you'll also learn some applications for the
real world, such as how to build a document retrieval system.
The second major part of this course, which is like another little mini course, focuses on the probabilistic
view of NLP.
In particular, we look at language models, Markov models and other models inspired by these approaches.
Now that might seem quite simplistic, but in fact, these basic ideas are very powerful.
In fact, the approaches we take for building language models in this part of the course are a prerequisite
for understanding transformers.
So if you want to understand Transformers, which are the current state of the art, then you'll need
to understand this.
This part of the course, we'll look at more very interesting applications, such as how to generate
text articles spinning and code breaking, also known as cipher decryption.
The third major part of this course, which is again like another mini course, is all about machine
learning.
Methods for NLP in this course will differentiate between machine learning and deep learning in the
sense that this part will focus on at nine deep learning approaches, even though deep learning is simply
a part of machine learning.
If you took version one of this course, then you should recognize many of the applications will discuss.
Essentially, this part of the course is a revamped version of NLP version one.
This part of the course will be application focused rather than technique focused.
That is to say, each section will focus on a particular application rather than the underlying machine
learning technique.
All of these applications should be easy to understand.
So you should find this section to be very approachable, even if you are just beginning your NLP journey.
For example, you'll learn about spam detection and sentiment analysis.
You'll also learn about latent semantic indexing, as well as topic modeling.
All of these are extremely applicable in the real world.
For instance, as mentioned, spam detection is something we make use of constantly.
Your email service filters every email you receive to check for spam.
Sentiment analysis is used by companies to manage their reputation and buy stock traders to predict
stock price movements.
Latent semantic indexing is used by SEO experts to improve their search performance.
To understand why topic modeling is useful.
Consider whether or not you have any documents you need to organize.
Perhaps if you're like me, you have way too many documents that it would simply be impossible for you
to read all of them yourself.
But how can you organize them if you don't read them?
The answer is to have a computer organize and read them for you.
This approach has even been applied in areas such as bioinformatics and by law firms for document discovery.
And remember, this part of the course is about machine learning approaches.
So you learn about popular techniques for NLP, such as naive Bayes logistic regression, principal
components analysis and latency richly allocation.
The fourth major part of this course will look at deep learning and neural network methods.
This part is distinct from the machine learning section because it requires more in-depth knowledge
about how deep learning works in specialized libraries.
But like the machine learning part, this part of the course will really combine everything you learned
from the earlier parts.
In particular, you'll see how deep learning methods apply, what you learned about vector based models,
as well as probability models.
The deep learning sections will focus on three main architectures, namely fully connected neural networks,
also known as In�s convolutional neural networks, also known as CNN's and recurrent neural networks,
also known as Arnett's.
The aunt and section will look at popular units such as the Elysium and the.
Or you will see how deep learning methods can really do any of the tasks we previously discussed, like
spam detection, sentiment analysis, language modeling, article spinning and so forth.
And obviously, deep learning includes modern architectures such as the Transformer.
So what you learn in this section will essentially be a prerequisite if you ever want to understand
how Transformers worked.
So if you're curious about Bert and GPT three, these sections are simply an SSD.
OK, so just to recap, this course will contain four major parts, each of which may contain multiple
sections and is really a course on its own.
The first part covers vector based approaches and focuses on how to convert text into numbers.
The second part covers probability based approaches and will cover important topics like language modeling.
The third part covers machine learning based approaches.
This will be application focused, and you'll get to learn about many of the staples of NLP.
The fourth part covers a deep learning based approaches.
This will teach you how neural networks are used for NLP, so I hope you're as excited as I was when
I learned these topics, and I'm confident that they will increase your knowledge, enhance your career,
and even give you some business ideas that you can implement for yourself.
Thanks for listening, and I'll see you in the next lecture.