
Welcome to the Natural Language processing Course!
In this lecture we will talk a bit about my experience and the overview of the course, namely three different important points:
What we will cover throughout the course.
How the lectures will be organized.
What you should expect to know at the end of the course.
Happy to have you onboard!
Update this natural language processing bootcamp in Python during 2023 to improve lectures, visuals, and audio. Expand coverage on neural systems behind conversational AI and ChatGPT, adding architectures.
Jump into natural language processing with the natural language toolkit. Optional Python basics and basic string processing prepare beginners for the rest of the course.
Learn to set up your environment with the Anaconda distribution to run Python, including installing Anaconda, navigating Anaconda Navigator, and using Jupyter notebooks; explore Google CoLab notebooks as an alternative.
Import the NLP course environment in Anaconda using the provided YAML from course materials, then launch a Jupyter notebook to access libraries like the Natural Language Toolkit.
Create and manage a Python environment from scratch for the NLP bootcamp, install libraries (nltk and pandas) via UI or command line, and verify setups in Anaconda Navigator or Colab.
Run notebooks in Google Colab by storing files in Google Drive and executing code in the cloud. Install libraries with pip when needed, noting possible version differences from local setups.
Gain a practical introduction to Python basics and strings manipulation, covering data types, variables, lists, indexing and slices, and using libraries like Pandas, NumPy, and Keras in a Jupyter notebook.
Learn to navigate and run code in the Jupyter notebook environment, activate environments, and use code and markdown cells to work with Python, pandas, and numpy.
Explore Python libraries by importing the math module to access functions like sqrt, ceil, floor, and log, and retrieve attributes such as pi.
Master Python strings by declaring with single or double quotes, indexing and slicing with zero-based positions, and understanding concatenation, immutability, and basic type operations.
Learn how Python lists store mixed objects and are mutable, unlike strings. Create, index (zero-based), print, and modify lists using square brackets and commas, and understand list versus string behavior.
Explore how Python treats strings as immutable and uses dot notation to apply methods like replace, returning new strings. Contrast with mutable lists that modify in place.
Explore how Python sets store distinct elements using curly braces, extract distinct elements from a list, and convert a set to a list without indexing to see its unordered nature.
Explore Python dictionaries, a key–value pair data structure stored in curly brackets, and learn to access values with keys using square brackets, plus items, keys, and values properties.
Explore Python tuples as immutable data structures similar to lists, learn indexing and item access, understand their immutability, and compare performance benefits of tuples over lists.
Master python loops to iterate through lists and tuples with for loops, using indentation and print to greet each item, and avoid infinite while loops by updating counters.
Master defining and calling Python functions with def, return, and arguments to make code reusable and flexible, with notes on numpy and pandas for data analysis.
Explore numpy for vectors, matrices, and tensors, including creating arrays, checking shapes, and indexing across dimensions. Learn how pandas complements numpy by enabling labeled data frames for machine learning workflows.
Explore Pandas and its DataFrame for tabular data, using iloc and loc for indexing, and head, tail, and shape to inspect data with NumPy-backed familiarity.
Advance core Python skills in the natural language processing bootcamp in Python by completing the provided exercises, using math imports for log calculations, and validating your code across twenty exercises.
Solve Python exercises on math, type checking, lists, sets, dictionaries, and numpy and pandas basics, with code along demonstrations of log, sqrt, and data frame creation.
Learn basic text processing in Python by manipulating strings: indexing, slicing, immutability, concatenation with plus, replication, iteration, and key methods like strip, split, join, replace, find, count, and case conversions.
Explore how Python stores strings as binary in computers and why binary encoding fails to capture word meaning, highlighting the distinction between characters, strings, and text in natural language processing.
Learn to index and slice strings in Python, including zero-based and negative indices, handle index errors, and understand string immutability and type checks.
Explore Python string methods and functions, including the length function, upper, lower, and isalpha checks; note spaces and punctuation affect alpha, and strings are immutable while concatenating via sum.
Explore the strip, split, and join string methods in Python, learning how strip removes leading and trailing spaces, how split tokenizes text, and how join rebuilds sentences with separators.
Solve string basics in Python through a code-along, covering indexing, slicing, concatenation with spaces, counting o's, lowercasing, splitting, and converting numbers to strings.
Discover the NLTK library and its core NLP techniques—tokenization, stemming, lemmatization, and POS tagging—using off-the-shelf models to build text pipelines.
Learn about part-of-speech tagging with NLTK, off-the-shelf and frequency-based models, and the role of n-grams and the transformer’s attention in capturing word context.
Explore how natural language processing tools help computers understand human language, review NLP pipelines and use cases, and learn the NLTK library for training and applying models in Python.
Explore tokenization in Python, learning how sentence tokenizers and word tokenizers split text, with a hands-on example using Nltc's Punkt to handle decimals and abbreviations.
Learn to tokenize text with nltk's word_tokenize, understand why whitespace splitting fails, and explore treebank word tokenizer and alternatives like tweet and punctuation-based tokenizers.
Explore the NLTK FreqDist function on a tokenized text to count token frequencies, identify the most common tokens, and filter stopwords to reveal EU-related keywords.
Apply stemming to a full sentence using porter, snowball, and lancaster stemmers, compare readability and length, and explore how the tokenized definition becomes stems in NLP pipelines.
learn to train a simple unigram pos tagger using the Brown corpus, exploring tagged sentences and the role of context in tagging words.
Train our own unigram pos tagger on the Brown corpus using a train/test split to assess generalization and understand its accuracy on unseen data.
Train a bigram tagger to augment the unigram tagger using training data and context, with back-off to unigram for unknown pairs, boosting accuracy up to 97%.
Learn how lemmatization uses POS tagging by mapping Brown Corpus tags to WordNet tags and applying NLTK’s lemmatizer, then compare with stemming on sample text.
Explore n-grams in natural language processing by building unigrams, bigrams, and trigrams from tokenized text, analyzing context, and extracting common word pairs.
Master NLP with the NLTK library by tokenizing text into sentences. Identify the most common word per sentence, stem with snowball, and train a unigram tagger on the Brown corpus.
Build a co-occurrence matrix to capture word meaning from neighbor contexts, replacing one-hot vectors with counts, using tokenization, a vocabulary, and a windowed neighborhood.
Visualize word vectors using numpy and matplotlib to explore cosine similarity and co-occurrence, showing how vectors align, differ, and relate across dimensions.
Solve word vectors exercises by building a sorted vocab from the sentence, constructing a two-neighbor co-occurrence matrix with numpy, and computing cosine similarity in a pandas dataframe.
Learn how to read CSV data in Python using the csv module or pandas, handle encodings, and build a list of dictionaries from rows for NLP workflows.
Learn to read a txt file into Python, decide between pandas or native open, handle relative or absolute paths, and tokenize the text for analysis.
Fetch a Wikipedia page with requests and beautiful soup, parse HTML, and extract text for NLP in Python. Understand http status codes like 200 and 404 during scraping.
Learn to scrape a Yahoo Finance news article with requests and BeautifulSoup, extract the Apple settlement text, and use id, class, and get_text to build a robust NLP pipeline.
Explore how request errors block web scraping, using requests and beautiful soup to retrieve text data, and learn why sites like LinkedIn deny access.
Explore scraping a web page with Python using the Wikipedia library to extract text, titles, summaries, and links, offering a cleaner alternative to requests and Beautiful Soup.
Explore neural word2vec models that turn word context into vectors via neural networks, co-occurrence context, and activation functions; train weights with gradient descent to predict center words and capture meaning.
learn to create word vectors with a neural network using the continuous bag of words cbow model, building context windows from co-occurrence matrices and exploring a pre-trained model.
Explore CBOW in Python by building a vocab of distinct words, mapping words to indices, and representing word and context with one-hot vectors to predict the center word from context.
Learn cbow in Python by converting context words into mean one-hot feature vectors and predicting the target word, yielding word embeddings through neural weight learning.
Train a CBOW style neural network with Keras. Build a sequential model with dense layers and softmax activation to learn word vectors through training with Adam and cross entropy.
Build word vectors using a continuous bag of words model trained on Wikipedia data from Europe, America, and Africa, with preprocessing and tokenization to create a vocab and embeddings.
Learn to build word context from tokenized text using a fixed neighbor window, represent words with one-hot vectors, create word-context pairs, and form X and Y arrays for training.
Turn word and context into mathematical vectors using one-hot representations and neural network–learned embeddings, with a context window to optimize weights and measure word similarities.
Train a neural network on Wikipedia word vectors with Keras, using a 40-node hidden layer and softmax output; validate with a 0.2 split and apply argmax for predictions.
Extract word embeddings from neural network weights, combine and average them, then compute cosine similarity to find the most and least similar words, illustrating training data effects and off-the-shelf models.
Explore word2vec embeddings, compute cosine similarity to reveal latent word meaning, and perform analogies like king plus woman minus men yielding queen, or Spain plus England minus London yielding Madrid.
Explore word vectors and embeddings in Python by building a CBOW vocabulary, one-hot representations, and a 50-node neural network in Keras; then use Gensim Word2Vec for similarities and analogies.
Use word vectors to predict missing center words in documents, preprocess data, tokenize, train a word-vector model, and explore similarities among stored vectors in Python.
Welcome aboard your inaugural voyage into the vibrant world of Natural Language Processing (NLP) and Text Mining! This course offers a risk-free foray (backed by a 30-day refund policy) into the fundamental concepts that serve as the bedrock for the text data operations of tech giants like Google, Amazon, and Microsoft.
Text mining has become a cornerstone of modern Data Science and Analytics. The profound leap in technology that allows a machine to understand words and phrases has revolutionized tasks like Information Retrieval, Translation, and Text Classification. I'm here to help you navigate these waters and jump from the foundational aspects of classical NLP into the misterious realms of Generative AI Tools (such as ChatGPT).
Our journey will take us from the classical to the neural, exploring the evolution of language processing techniques. We'll begin with traditional statistical methods and work our way up to the cutting-edge world of deep learning and neural networks. By linking theory with practical exercises, I hope to guide you through the NLP World.
Don't fret if Python isn't your forte yet - included in this course is a crash course in Python that will acquaint you with the language and provide the necessary foundation for the rest of the topics we'll cover.
The course will illuminate a variety of key NLP concepts including:
Manipulating the basic building blocks of NLP - strings - in Python;
Tokenizing Sentences and Documents;
Stemming and Lemmatizing words;
Training machine learning models using text;
Extracting the Part-of-Speech Tag from words in a sentence;
Extracting Text Data from a Web Page;
Training a Neural Network to extract Word Embeddings;
Developing your own sentiment classifier (Sentiment Analysis);
Representing Sentences as Tabular Data;
Upon completing this course, you'll be equipped with the skills to construct your own basic NLP applications, and you'll have a strong understanding of the fundamental concepts underlying most NLP algorithms. This knowledge will open doors to more advanced studies in NLP, while providing an understanding of the strategies and techniques utilized by companies when launching their NLP applications.
Embark on this exhilarating journey through the world of NLP with me. Whether you're a newcomer or an expert seeking to broaden your horizons, there's a place for you here. I'm eagerly looking forward to our adventure together in the course!