forked from rohitg00/ai-engineering-from-scratch
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquiz.json
More file actions
102 lines (102 loc) · 3.72 KB
/
Copy pathquiz.json
File metadata and controls
102 lines (102 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
"lesson": "07-pos-tagging-parsing",
"title": "POS Tagging and Syntactic Parsing",
"questions": [
{
"stage": "pre",
"question": "What is the goal of POS tagging?",
"options": [
"Detect sentiment",
"Translate the sentence",
"Extract named entities",
"Assign a grammatical category (noun, verb, etc.) to each token"
],
"correct": 3,
"explanation": "POS tagging labels each token with its part of speech."
},
{
"stage": "pre",
"question": "Which tagset is the default for cross-lingual work?",
"options": [
"Penn Treebank",
"Stanford Dependencies",
"Universal Dependencies",
"CoNLL-2003"
],
"correct": 2,
"explanation": "Universal Dependencies provides a coarser, language-agnostic 17-tag set."
},
{
"stage": "check",
"question": "What does a bigram HMM POS tagger model?",
"options": [
"P(tags) only",
"Dependency parses",
"Embedding similarities",
"P(tag | previous tag) transitions plus P(word | tag) emissions, decoded with Viterbi"
],
"correct": 3,
"explanation": "Bigram HMM uses tag transitions and word emissions; Viterbi finds the highest-probability sequence."
},
{
"stage": "check",
"question": "What does the Viterbi algorithm compute for an HMM tagger?",
"options": [
"The single highest-probability tag sequence via dynamic programming over the tag lattice",
"The transition matrix",
"The marginal probability of each tag",
"The forward probabilities only"
],
"correct": 0,
"explanation": "Viterbi finds the argmax sequence with O(n * |T|^2) dynamic programming."
},
{
"stage": "check",
"question": "What does dependency parsing produce?",
"options": [
"A tree where each word has one head word and a labeled grammatical relation",
"A flat BIO sequence",
"A constituency tree of NP/VP/PP labels",
"A coreference chain"
],
"correct": 0,
"explanation": "Dependency parses give per-word (head, relation) edges; constituency parses give nested phrase structures."
},
{
"stage": "post",
"question": "Why is the accuracy ceiling on PTB POS tagging around 97-98%?",
"options": [
"Models cannot exceed 98% in any task",
"Universal Dependencies caps at 98%",
"Human annotators only agree about 97% of the time, so models above ~98% may be overfitting test data",
"Hardware limitations"
],
"correct": 2,
"explanation": "Annotator disagreement bounds the achievable accuracy; very high numbers often signal overfitting."
},
{
"stage": "post",
"question": "Why does POS tagging still matter in 2026 LLM pipelines?",
"options": [
"LLMs cannot run without it",
"Lemmatization, aspect-based sentiment, query decomposition, structured-output validation, and cross-lingual transfer all still consume POS or dependency parses",
"Required for tokenization",
"Replaces transformers"
],
"correct": 1,
"explanation": "POS and dependency parses feed many structured downstream tasks even when LLMs generate the prose."
},
{
"stage": "post",
"question": "Which library should you reach for in most production POS / parse tasks?",
"options": [
"scikit-learn",
"NumPy",
"spaCy (or stanza/trankit for top accuracy or wider language coverage)",
"Roll your own parser"
],
"correct": 2,
"explanation": "spaCy ships fast production-grade POS + dependency parsers; stanza/trankit cover broader languages."
}
]
}