Lesson 25 — Beginner

Classic NLP Tasks: Classification, NER & Sentiment

Spam filter, ticket routing, sentiment, entity extraction — ye sab wo kaam hain jo LLM se pehle se chal rahe hain aur aaj bhi saste, tez aur auditable rehte hain. Is lesson mein tum ek poora mental model chaloge — Task → labels → features → model → error analysis — jahan ek LLM bas ek (mehnga) row hai features column mein. Har task ke saath uska failure mode bhi milega: threshold traps, sarcasm, domain shift, aur wo decision table jo decide karti hai kahan chhota model aur kahan LLM.

⏱ 20 min• Beginner• Classical NLP: Cleaning, Tokenization & TF-IDF

Classic tasks — saste, tez, auditable

Kya hai?

Transformer-era se pehle se chale aa rahe NLP tasks: text classification (spam/topic routing), sentiment analysis, NER (naam/organisation/location pehchanna), POS tagging (shabd ka grammatical kaam), aur extractive summarization (source se hi lines chunna). Feature engineering + chhota model wala approach.

Kab kaam aata hai?

Bulk kaam ke liye — hazaar documents routing, har ticket ka sentiment, har invoice se entity nikaalna — jahan latency, cost aur audit trail matter karta hai, aur labels already maujood hain.

Kahan milta hai?

Spam filters, inbox routing, support triage, invoice/contract parsing, search results ke tags — aur hybrid systems jahan chhota model bulk karta hai, LLM sirf mushkil cases.

Poora loop ye hai: task → labels → features → model → error analysis. Model banana sabse aasaan hissa hai; asli kaam error analysis hai — har miss ka reason likhna (label galat? domain shift? threshold?). Aur LLM ka role isi loop mein hai: wo bas features column ka ek mehnga row hai — usse pehle chhota model try karo, jab wo ruke tab use karo.

Error analysis hi progress hai: Model 10 minute mein ban jaata hai, behtar miss-categories hafte bhar mein banti hain. Har run pe 10 misses uthao, unhe bucket karo (label/domain/threshold/format) — agli improvement isi list se aayegi, kisi leaderboard se nahi.

Text classification — labels, thresholds, multi-label

# classifier output: probability, jawab nahi
p_spam = 0.62
print(p_spam >= 0.50)   # True  -> default threshold
print(p_spam >= 0.80)   # False -> high-precision setting

# threshold ko error cost se chuno:
#   wrong block (FP) mehnga  -> threshold upar, precision upar
#   spam chhoot gaya (FN) mehnga -> threshold neeche, recall upar

# multi-class : ek hi row, ek category  (billing / tech / other)
# multi-label : ek hi row, kayi categories saath (finance + regulation)
Label set chhota rakho: 15 categories jo kisi ne spreadsheet mein sochi hain, usmein se aadhi overlap wali hongi. Pehle 5-7 alag-alag categories banao, aur "ye dono kyun hain?" ka jawab likho — label taxonomy hi model ki ceiling hai.

Sentiment — lexicon, model, aur asli traps

LEX = {"great": +2, "awesome": +2, "slow": -1, "down": -1}
def lex_score(text):
    return sum(LEX.get(w, 0) for w in text.lower().split())

print(lex_score("great product"))              # +2 -> positive (sahi)
print(lex_score("great, the server is down"))  # +1 -> "positive"?! galat!

# traps: sarcasm, negation ("not good" ko bhi positive maanega)
# aspect-level: "camera awesome, battery average" -> do verdict chahiye
Sarcasm ka sasta fix (jaadoo nahi): Sarcasm rokna mushkil hai — isliye production mein 3-class (pos/neg/neutral) rakho, confidence kam ho toh neutral do, aur aspect-level pe focus karo jahan "kis cheez ka" clear hota hai. Ek global "positive/negative" number har cheez pe mat lagao.

NER — BIO tags, domain shift, fallback

# "Ravi joined Infosys in Pune" -> BIO tagging
tokens = ["Ravi", "joined", "Infosys", "in", "Pune"]
tags   = ["B-PER", "O", "B-ORG",  "O",  "B-LOC"]
# B- = entity ki shuruaat (Beginning), I- = andar (Inside), O = bahar
# multi-word: "New Delhi" -> B-LOC, I-LOC  (do token, ek entity)

# fixed formats ke liye dependable fallback: regex / gazetteer
import re
print(re.findall("[0-9]{6}", "pincode 560001"))   # ["560001"] — har jagah chalega
10 sentences, haath se tag karo: Pipeline chalane se pehle 10-20 apne domain wale sentences khud PERSON/ORG/LOC se tag karo, phir pipeline output se side-by-side diff karo. Har miss ka reason likho — domain shift pehle yahin pakda jaata hai, dashboard mein nahi.

POS tagging aur extractive summarization

POS tagging (shabd ka grammatical kaam):
  "bank" -> NOUN (river bank) vs VERB (bank the money)
  the/DET  cat/NOUN  sat/VERB ... -> rules, gazetteers, chunking ke features
  legacy pipelines mein aaj bhi: pre-neural NER/parse isi pe bane the

extractive summarization (source SE hi lines chuno):
  doc -> sentences -> score (TF-IDF weight / TextRank style graph) -> top-k lines
  output: quotes hi quotes -> har line source mein milti hai

abstractive (LLM style): nayi line banati hai -> flow behtar, par faithfulness check chahiye
Quote karne wala output sasta padta hai: Production mein faithfulness check ek extra layer hai. Extractive summary ko seedha dikha do — har line source ke saath link. Abstractive chahiye toh judge/human se faithfulness verify karwao, bina nahi.

Classic vs LLM — decision table, hybrid setups

TASK                         CHHOTA MODEL          LLM
---------------------------- --------------------- ---------------------
bulk routing (bahut rows)     sasta + tez + audit   mehnga + dheere
hard 5% cases                 accuracy adhuri       judgement behtar
explainability                features + weights    mushkil defend
labels available              supervised se chalta  few-shot bhi
log/audit trail               feature + score       prompt + response

default flow (cascade):
  bulk -> chhota model -> confident? -> ship
                              nahi -> LLM / insaan -> judgement
LLM default nahi, exception: Har ticket, har mail, har row pe LLM call karna sabse mehnga sabse dheera raasta hai. Pehle chhota model banao, uske misses LLM ko do — kaunsa kaunsa miss hua, ye data hi agla deciding factor hai.

Exercise

Question: BIO tagging mein B ka full form kya hai? (ek shabd)

Question: Spam classifier ka threshold 0.50 se 0.25 kar diya — recall kya hota hai, badhta hai ya ghatta hai?

Question: Ek hi document mein do topics ek saath lag rahe hain — wo multi-class hai ya multi-label?

Question: "great, the server is down" wale sentence pe lexicon sentiment kis famous trap mein fas jaati hai? (ek shabd)

Question: Pincode, order ID jaise fixed formats pehchanne ka sabse dependable classical fallback kya hai — trained model ya regex?

Common mistakes

Desi example: Thane ka workflow — constable filter, DSP mushkil cases

Agar har complaint seedhe DSP ke paas jaaye toh dheere aur mehnga hoga. Thane mein kaam chalta hai: pehle clerical filter (chhota model — bulk, sasta), jo serious/confusing wo upar (LLM ya insaan — judgement), aur har decision register mein likha jaata hai (audit). Wahi cascade tumhari pipeline bhi hai:

text
inbox (bulk)    -> chhota classifier -> confident? -> seedha decision
                               nahi -> LLM / insaan (mushkil ghadi)
har row pe log  -> features + score -> audit trail
rare miss dekho -> bucket karo      -> agli improvement isi se
Interview angle — yahan se sawaal aate hain
  • Q: Multi-class aur multi-label mein farq? — Ek row ek category (ek hi score se competition) vs ek row mein kayi categories (har label ka independent score + threshold).
  • Q: Threshold kaise chunoge? — Error cost se: FP mehnga ho toh upar (precision), FN mehnga ho toh neeche (recall). Curve dekh kar, 0.5 koi rule nahi.
  • Q: BIO tagging kya hai? — B/I/O prefixes se entity spans: B-ORG shuru, I-ORG andar, O bahar; multi-word entities do token (B + I).
  • Q: Domain shift NER ko kaise todta hai? — Production ke entity patterns training se alag. Fix: haath se tagged sample se test + regex fallback fixed formats pe.
  • Q: LLM kab use karoge vs chhota model? — Labels/throughput/audit → chhota; ambiguity + kam volume → LLM; default cascade — bulk chhota, mushkil LLM.
Lesson complete?

Classic tasks aur unke failure modes ready — ab agla lesson Classical Metrics: BLEU, ROUGE & Perplexity mein dekhenge generation ke output ko naapne wale purane metrics kaise kaam karte hain aur kahan fail hote hain.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course