1A
Python program to perform tokenization by word and sentence using NLTK
import nltk
nltk.download('punkt_tab')
from nltk.tokenize import sent_tokenize, word_tokenize
text = "NLTK is used for NLP. It is easy to learn. Python is popular."
sentences = sent_tokenize(text)
words = word_tokenize(text)
print("Sentences:")
for i, s in enumerate(sentences, 1):
print(i, s)
print("\nWords:")
for i, w in enumerate(words, 1):
print(i, w)
1B
Python program to remove stop words using NLTK
import nltk
nltk.download('punkt_tab')
nltk.download('stopwords')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
text = "This is a simple example of natural language processing."
words = word_tokenize(text)
stop_words = set(stopwords.words('english'))
filtered = [w for w in words if w.lower() not in stop_words]
print("Before:", words)
print("After:", filtered)
print("Removed:", len(words) - len(filtered))
1C
Python program to perform stemming using Porter Stemmer
import nltk
nltk.download('punkt_tab')
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer
text = "The students are studying and building programs."
ps = PorterStemmer()
words = word_tokenize(text)
stemmed = [ps.stem(w) for w in words]
print("Original:", text)
print("Stemmed:", " ".join(stemmed))
2A
Python program to perform Part-of-Speech (POS) tagging using NLTK
import nltk
nltk.download('punkt_tab')
nltk.download('averaged_perceptron_tagger_eng')
from nltk.tokenize import word_tokenize
from nltk import pos_tag
text = "The smart boy is playing football."
words = word_tokenize(text)
tags = pos_tag(words)
print(tags)
2B
Python program to perform lemmatization using NLTK
import nltk
nltk.download('punkt_tab')
nltk.download('wordnet')
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
text = "The cats are chasing mice."
lm = WordNetLemmatizer()
words = word_tokenize(text)
lemmas = [lm.lemmatize(w) for w in words]
print("Original:", text)
print("Lemmatized:", " ".join(lemmas))
3A
Python program to perform chunking using NLTK
import nltk
nltk.download('punkt_tab')
nltk.download('averaged_perceptron_tagger_eng')
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk.chunk import RegexpParser
text = "The smart boy is playing football in the park."
words = word_tokenize(text)
tagged = pos_tag(words)
grammar = r"""
NP: {<DT>?<JJ>*<NN.*>+}
PP: {<IN><NP>}
VP: {<VB.*><NP|PP>*}
CLAUSE: {<NP><VP>}
"""
parser = RegexpParser(grammar)
tree = parser.parse(tagged)
print(tree)
3B
Python program to perform Named Entity Recognition (NER) using NLTK
import nltk
nltk.download('punkt_tab')
nltk.download('averaged_perceptron_tagger_eng')
nltk.download('maxent_ne_chunker_tab')
nltk.download('words')
from nltk.tokenize import word_tokenize
from nltk import pos_tag, ne_chunk
text = "Narendra Modi visited Bengaluru and met Microsoft employees."
words = word_tokenize(text)
tagged = pos_tag(words)
tree = ne_chunk(tagged)
print(tree)
4A
Python program to calculate TF-IDF using NLTK and scikit-learn
import nltk
nltk.download('punkt_tab')
nltk.download('stopwords')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from sklearn.feature_extraction.text import TfidfVectorizer
import string
docs = [
"Python is easy to learn.",
"Python is used for machine learning.",
"Machine learning is interesting."
]
stop = set(stopwords.words('english'))
def preprocess(text):
words = word_tokenize(text.lower())
words = [w for w in words if w not in string.punctuation]
words = [w for w in words if w not in stop]
return " ".join(words)
cleaned = [preprocess(d) for d in docs]
vectorizer = TfidfVectorizer()
matrix = vectorizer.fit_transform(cleaned)
print("Words:", vectorizer.get_feature_names_out())
print("TF-IDF:\n", matrix.toarray())
4B
Python program to perform sentence parsing using Context-Free Grammar (CFG)
import nltk
grammar = nltk.CFG.fromstring("""
S -> NP VP
NP -> 'your' 'friend'
VP -> 'describe' 'your' 'work'
""")
parser = nltk.ChartParser(grammar)
sentence = "your friend describe your work"
tokens = sentence.split()
trees = list(parser.parse(tokens))
if trees:
print("Sentence is valid")
for tree in trees:
print(tree)
else:
print("Sentence is not valid")