কম্পিউটার কেন মানুষের ভাষা বোঝে না?
ধরো, তুমি তোমার বন্ধুকে বললে —
তোমার বন্ধু সাথে সাথে বুঝে ফেলল — তুমি ঠান্ডায় কষ্ট পাচ্ছ, হয়তো একটা গরম কাপড় লাগবে, হয়তো চা খেতে ইচ্ছে করছে। এত কিছু সে বুঝে ফেলল মাত্র একটা বাক্য শুনে!
এখন এই একই বাক্যটা যদি একটা Computer-কে বলা হয়, সে কী বুঝবে?
ক্লাসে জিজ্ঞেস করো
- Computer কি বাংলা বুঝতে পারে?
- Computer কি অনুভূতি (Emotion) বুঝতে পারে?
- Computer কি Sarcasm বুঝতে পারে? যেমন — "বাহ, দারুণ হলো তো!" (রাগ করে বলা)
- Computer কি রসিকতা (Joke) বুঝতে পারে?
সত্যি কথা হলো — Computer আসলে কোনো ভাষাই সরাসরি বোঝে না। Computer শুধু একটা জিনিস বোঝে — সংখ্যা (Numbers)। ভেতরে ভেতরে একটা Computer শুধু 0 আর 1 নিয়ে কাজ করে (Electricity On/Off)।
তাহলে ভাষা কীভাবে Computer পর্যন্ত পৌঁছায়?
Neural Network — Quick Revision
NLP বোঝার আগে একটা জিনিস মনে করিয়ে দিই — Neural Network। মানুষের মস্তিষ্কে যেমন অনেক Neuron একসাথে কাজ করে, ঠিক তেমনি Neural Network হলো Computer-এর ভেতরে ছোট ছোট গাণিতিক "Neuron"-এর একটা জাল।
Analogy — রান্না শেখা
ভাষার কাজে Neural Network কেন দরকার?
ভাষা জটিল — একই শব্দের একাধিক মানে, Context অনুযায়ী অর্থ পাল্টায়। সাধারণ Rule দিয়ে ধরা কঠিন। Neural Network Data দেখে জটিল Pattern নিজে শিখে নিতে পারে।
সংযোগ
Deep Learning = অনেক Layer-এর Neural Network। যখন এটা ভাষার কাজে ব্যবহার হয়, তখনই NLP-র শক্তিশালী হাতিয়ার হয়ে ওঠে।
NLP কী?
এখন আমরা তিনটা ছোট শব্দ ভেঙে বুঝি:
Natural
মানুষ যেভাবে স্বাভাবিকভাবে কথা বলে/লেখে — Programming Language না।
Language
শব্দ, বাক্য, ব্যাকরণ দিয়ে তৈরি Communication।
Processing
ধাপে ধাপে বিশ্লেষণ করে ফলাফলে পৌঁছানো।
সহজ সংজ্ঞা
NLP হলো AI-এর একটা শাখা, যা Computer-কে মানুষের স্বাভাবিক ভাষা বুঝতে, বিশ্লেষণ করতে এবং সাড়া দিতে শেখায়।
ভাষা থেকে Action
প্রতিদিনের NLP
| Product | NLP কী করছে |
|---|---|
| Google Translate | এক ভাষা → আরেক ভাষা |
| ChatGPT | প্রশ্ন বুঝে স্বাভাবিক উত্তর |
| Siri / Alexa | কণ্ঠ → Text → Intent → Action |
| Grammarly | ব্যাকরণ ও গঠন সংশোধন |
| Gmail Smart Reply | মেইল পড়ে সংক্ষিপ্ত উত্তর suggest |
NLP কেন দরকার?
একটা E-commerce Company প্রতিদিন ১ লক্ষ Customer Review পায়। একজন মানুষ যদি প্রতিটা Review পড়ে, কতদিন লাগবে?
হিসাব
একটা Review ৩০ সেকেন্ড → ১ লক্ষ Review ≈ ৮৩৩ ঘণ্টা ≈ একজন মানুষের ~৩৫ দিন (ঘুম ছাড়া)!
যেখানে Manual পড়া অসম্ভব
Business Example
NLP দিয়ে Review স্বয়ংক্রিয়ভাবে Positive / Negative / Battery complaint / Price complaint-এ ভাগ — Product Team সরাসরি জানে কোথায় উন্নতি দরকার।
NLP Pipeline — ধাপে ধাপে
Raw Text থেকে একটা Business Decision পর্যন্ত পৌঁছাতে Text-কে অনেকগুলো ধাপ পার হতে হয়। এই পুরো যাত্রাকে বলে NLP Pipeline। নিচের lab-এ প্রতিটা ধাপে live example + Python code দেখো।
প্রতিটা ধাপ — সংক্ষিপ্ত নোট
১–২. Raw Text → Cleaning
কাঁচা review থেকে URL, emoji, extra punctuation সরিয়ে lowercase করা।
৩–৪. Tokenization → Stop Words
শব্দে ভাঙা, তারপর i/the/this-এর মতো কম-অর্থবহ শব্দ বাদ। সতর্কতা: sentiment-এ "not" রাখা জরুরি হতে পারে।
৫–৬. Stemming vs Lemmatization
Stemming দ্রুত কিন্তু rough (purchas); Lemmatization dictionary-aware (love)।
৭–৮. Features → Model → Insight
BoW vector → model prediction (Positive/Negative) → business action।
Natural Language Understanding (NLU)
ধরো তুমি Alexa-কে বললে — "আগামীকালের আবহাওয়া কেমন থাকবে?" এখানে দুইটা কাজ:
- শব্দগুলো Text-এ রূপান্তর ও Process (NLP)
- তুমি কী চাও সেটা বোঝা — আবহাওয়ার তথ্য (NLU)
সহজ সংজ্ঞা
NLU হলো NLP-র উপশাখা, যেটা বাক্যের পেছনের আসল উদ্দেশ্য ও অর্থ বোঝার চেষ্টা করে।
NLP vs NLU
| বিষয় | NLP | NLU |
|---|---|---|
| কাজ | ভাষা Process — Tokenize, Clean | অর্থ ও উদ্দেশ্য বোঝা |
| পরিধি | বড় ছাতা | NLP-র গভীরতর অংশ |
| উদাহরণ | Tokenization, Stemming | Intent, Entity Recognition |
| প্রশ্ন | "বাক্যটার গঠন কী?" | "ব্যবহারকারী কী চাইছে?" |
NLU-র চারটা মূল কাজ
Intent Recognition
"আগামীকাল ঢাকায় বৃষ্টি হবে?" → Intent = আবহাওয়া জানা।
Entity Recognition
Name, Location, Date খুঁজে বের করা — "ঢাকা", "আগামীকাল"।
Context Understanding
"ওটার দাম কত?" — "ওটা" আগের বাক্য থেকে বোঝা।
Sentiment Understanding
খুশি / রাগ / হতাশা বোঝা।
মানুষের ভাষায় Ambiguity (দ্ব্যর্থতা)
একই শব্দ বা বাক্যের একাধিক অর্থ থাকতে পারে — এটাকে বলে Ambiguity। মানুষ Context দিয়ে বোঝে; Computer-এর জন্য এটা ধাঁধা।
Try it — Ambiguity খুঁজে বের করো
একটা বাক্যে ক্লিক করো — কোন ধরনের Ambiguity তা দেখাবে
১. Lexical
শব্দগত দ্ব্যর্থতা — "Bank"।
২. Syntactic
বাক্য-গঠনগত — "I saw the man with a telescope."
৩. Semantic
সামগ্রিক অর্থ অস্পষ্ট — "The chicken is ready to eat."
৪. Pragmatic
আক্ষরিক অর্থ ≠ বাস্তব উদ্দেশ্য — "Can you open the window?"
মজার উদাহরণ
"আমি একটা মাছ ধরলাম যেটা দুই কেজি ওজনের একটা জাল দিয়ে।" — জালটা দুই কেজি, নাকি মাছটা?
NLP-র বাস্তব প্রয়োগ
| Application | Business সমস্যা | NLP সমাধান | উপকার |
|---|---|---|---|
| Google Search | অস্পষ্ট query | Intent match | Better UX |
| ChatGPT | প্রাকৃতিক সাহায্য | উত্তর generate | দ্রুত support |
| Translate | ভাষার বাধা | ভাষা রূপান্তর | বৈশ্বিক যোগাযোগ |
| Grammarly | লেখার ভুল | সংশোধন suggest | Professional লেখা |
| Siri / Alexa | Hands-free | Speech → Intent | সুবিধা |
| Support Chatbot | ২৪×৭ খরচ | Auto FAQ | খরচ কমানো |
| Spam Filter | Inbox ভরা | Pattern classify | নিরাপত্তা |
| Sentiment Analysis | লক্ষ review | Auto sentiment | দ্রুত সিদ্ধান্ত |
| Resume Screening | হাজারো CV | Skill extract | দ্রুত hire |
| Fake News | ভুল তথ্য | Pattern detect | বিশ্বাসযোগ্যতা |
| Medical NLP | Report পড়া | Key info extract | দ্রুত সহায়তা |
| Legal Analysis | দীর্ঘ document | Clause detect | দ্রুত review |
Google Colab Demonstration
উপরে ★ Interactive Pipeline live demo দেয়। নিচে Colab-এ চালানোর reference code:
import re
import nltk
nltk.download('punkt')
nltk.download('stopwords')
nltk.download('wordnet')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer, WordNetLemmatizer
text = "I LOVED this product!!! It's the BEST purchase ever :) Visit www.shop.com"
print("Raw Text:", text)
clean_text = text.lower()
clean_text = re.sub(r'http\S+', '', clean_text)
clean_text = re.sub(r'[^a-z\s]', '', clean_text)
print("Cleaned Text:", clean_text)
Line-by-Line ব্যাখ্যা
text.lower() — "Best" আর "best" এক করে।
re.sub(r'http\S+', '', …) — Link সরায়।
re.sub(r'[^a-z\s]', '', …) — Punctuation/Emoji বাদ।
tokens = word_tokenize(clean_text)
print("Tokens:", tokens)
stop_words = set(stopwords.words('english'))
filtered_tokens = [word for word in tokens if word not in stop_words]
print("After Stop Word Removal:", filtered_tokens)
stemmer = PorterStemmer()
stemmed = [stemmer.stem(word) for word in filtered_tokens]
print("After Stemming:", stemmed)
lemmatizer = WordNetLemmatizer()
lemmatized = [lemmatizer.lemmatize(word) for word in filtered_tokens]
print("After Lemmatization:", lemmatized)
from sklearn.feature_extraction.text import CountVectorizer
sample_reviews = ["loved product best purchase", "worst product ever bad"]
vectorizer = CountVectorizer()
vectors = vectorizer.fit_transform(sample_reviews)
print("Vocabulary:", vectorizer.vocabulary_)
print("Vector Form:\n", vectors.toarray())
Common Beginner Mistakes
- সব Punctuation বাদ — কখনো "!" excitement signal দেয়
- Stop word তালিকা না দেখে "not" বাদ
- Stemming + Lemmatization একসাথে দুটোই — সাধারণত একটাই যথেষ্ট
Best Practices
- Task বুঝে ধাপ বাছাই করো
- Cleaning-এর পর output চোখে যাচাই করো
- ছোট sample দিয়ে pipeline test, তারপর পুরো dataset
সাধারণ ভুলগুলো (Beginner Mistakes)
Industry Best Practices
| Company | NLP ব্যবহার |
|---|---|
| Search, Translate, Smart Compose | |
| OpenAI | ChatGPT / LLM |
| Microsoft | Grammar Check, Copilot |
| Amazon | Alexa, Review analysis |
| Meta | Moderation, Translation |
| Netflix | Review/Description → Recommendation |
Model বাজারে আসার প্রক্রিয়া
Interactive Classroom Activities
Activity 1 — Ambiguity
"She saw the boy with binoculars", "সে বলল সে ব্যাংকে যাচ্ছে", "Flying planes can be dangerous" — কোন ধরনের Ambiguity?
Activity 2 — Pipeline Step
Teacher "Tokenization" বললে Student বলে পরের ধাপ ("Stop Word Removal")।
Activity 3 — Match
Healthcare / Banking / E-commerce / Media ↔ Medical Report / Fraud Alert / Review Analysis / Fake News।
Activity 4 — Entity
Paragraph থেকে Name, Location, Date, Organization আন্ডারলাইন।
Activity 5 — Intent
"আমার Order কোথায়?", "রিফান্ড কীভাবে পাব?" — Intent কী?
Revision, History ও Interview Prep
NLP-র ইতিহাস
NLP Ecosystem
NLP vs NLU vs NLG
| শাখা | পূর্ণরূপ | কাজ | উদাহরণ |
|---|---|---|---|
| NLP | Natural Language Processing | ভাষা Process | Tokenization |
| NLU | Natural Language Understanding | অর্থ বোঝা | Intent Recognition |
| NLG | Natural Language Generation | Text তৈরি | ChatGPT উত্তর |
Case Study — Review Analysis
Modern NLP (Conceptual)
Word Embeddings
কাছাকাছি অর্থের শব্দ সংখ্যায়ও কাছাকাছি।
Transformers
সব শব্দ একে অপরের সাথে সম্পর্ক রেখে process।
BERT
Bidirectional — আগে ও পরে দুই দিক থেকে বোঝে।
GPT ও LLMs
বিশাল text দেখে Generate করতে পারে।
Quick Revision
- Computer শুধু সংখ্যা বোঝে → ভাষাকে সংখ্যায় রূপান্তর।
- NLP = Process; NLU = Understand; NLG = Generate।
- Pipeline: Raw → Clean → Token → Stop → Stem/Lemma → Feature → Model → Insight।
- Ambiguity: Lexical, Syntactic, Semantic, Pragmatic।
- Rule → Statistical → Deep Learning → Transformer → LLM।
Viva Questions
Top ৩০ Interview Questions
MCQ
(ক) National Language Program (খ) Natural Language Processing (গ) Neural Language Processing (ঘ) New Language Protocol
(ক) Tokenization (খ) Intent Recognition (গ) Stemming (ঘ) Text Cleaning
(ক) Syntactic (খ) Lexical (গ) Pragmatic (ঘ) Semantic
(ক) BERT (খ) Attention Is All You Need (গ) GPT (ঘ) Word2Vec
(ক) Tokenization (খ) Cleaning (গ) Feature Extraction (ঘ) Stemming
Homework
- ৫টা App খুঁজে NLP কীভাবে ব্যবহার হয় এক প্যারাগ্রাফে লেখো।
- Colab-এ নিজের বাক্য দিয়ে Pipeline Run করো।
- NLP vs NLU — Chatbot উদাহরণ দিয়ে এক প্যারাগ্রাফ।
NLP Intro — Language First, Technology Later
পরবর্তী ধাপ: Sentiment Analysis / Transformers deeper dive