Part 6: Natural Language Processing (NLP) with Python
๐ง What Is Natural Language Processing (NLP)?
NLP is a branch of AI that helps computers understand, interpret, and generate human language. It powers:
-
Search engines
-
Translation apps
-
Chatbots
-
Voice assistants
๐งฐ Tools We'll Use
-
NLTK – Natural Language Toolkit
-
TextBlob – Simple text analysis
-
spaCy – Fast and industrial-strength NLP
Install them with:
pip install nltk textblob spacy
python -m textblob.download_corpora
python -m nltk.downloader punkt
✍️ Step-by-Step: Basic Text Analysis with TextBlob
✅ Step 1: Create a Simple Analyzer
from textblob import TextBlob
text = "Python is a powerful language for machine learning."
blob = TextBlob(text)
print("Words:", blob.words)
print("Sentences:", blob.sentences)
๐ฌ Step 2: Sentiment Analysis
text = "I love working with Python, but debugging can be frustrating."
blob = TextBlob(text)
print(blob.sentiment)
Output:
Sentiment(polarity=0.25, subjectivity=0.6)
-
Polarity ranges from -1 (negative) to +1 (positive)
-
Subjectivity ranges from 0 (objective) to 1 (subjective)
๐ Tokenization and Lemmatization with NLTK
import nltk
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
nltk.download('punkt')
nltk.download('wordnet')
text = "Cats are running faster than the dogs."
tokens = word_tokenize(text)
lemmatizer = WordNetLemmatizer()
lemmas = [lemmatizer.lemmatize(token.lower()) for token in tokens]
print("Lemmatized Tokens:", lemmas)
๐ง Named Entity Recognition with spaCy
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying a startup in the UK for $1 billion.")
for entity in doc.ents:
print(entity.text, "-", entity.label_)
๐ค Mini Project: Simple Sentiment Classifier
def get_sentiment(text):
blob = TextBlob(text)
polarity = blob.sentiment.polarity
if polarity > 0:
return "Positive"
elif polarity < 0:
return "Negative"
else:
return "Neutral"
print(get_sentiment("I love AI and machine learning!")) # Positive
print(get_sentiment("I hate bugs in my code.")) # Negative
๐งช Practice Challenge
-
Ask the user for input and return sentiment
-
Try building a chatbot that responds based on detected sentiment
-
Use spaCy to extract named entities from a paragraph
๐ What You’ve Learned:
-
How to tokenize and lemmatize text
-
Perform sentiment analysis
-
Use NLP libraries like NLTK, TextBlob, and spaCy
-
Build a simple sentiment classifier
๐งญ What’s Next?
In Part 7, we’ll tackle Computer Vision using OpenCV and Deep Learning. You’ll learn how to analyze and classify images using Convolutional Neural Networks (CNNs).
No comments:
Post a Comment