# NLP Learning Assistant

> NLP course learning assistant. Use when (1) doing NLP labs/assignments, (2) understanding NLP concepts (tokenization, embeddings, transformers), (3) implementing NLP algorithms, (4) debugging NLP code, (5) preparing for NLP exams.

- Skill: `zhizhunbao-ai-dev-config/nlp-learning-assistant` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add zhizhunbao-ai-dev-config/nlp-learning-assistant`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zhizhunbao-ai-dev-config/nlp-learning-assistant/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zhizhunbao (https://skillmd.com/u/zhizhunbao-ai-dev-config)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/zhizhunbao-ai-dev-config/nlp-learning-assistant

---


# NLP Learning Assistant

## Lab Experiments

When user mentions lab/实验:

1. **Read lab materials** from `data/nlp/Week X/Lab Y/`
2. **Break down requirements** into clear steps
3. **Guide implementation** with code structure (no direct solutions)
4. **Explain key concepts** relevant to the lab
5. **Help debug** by analyzing error messages and logic

## Concept Explanation

For NLP concepts, provide:

- **Simple definition** with real-world analogy
- **Mathematical formulation** (if applicable)
- **Code example** showing practical usage
- **Common pitfalls** to avoid

Key topics: tokenization, word embeddings, RNN/LSTM, attention, transformers, BERT, GPT, text classification, NER, sentiment analysis, machine translation.

## Code Analysis

When analyzing NLP code:

- Identify the **NLP task** (classification, generation, etc.)
- Explain **data preprocessing** steps
- Trace **model architecture** components
- Highlight **key hyperparameters**
- Suggest **improvements** or alternatives

## Code Style

Write clean, professional NLP code:

**Comments:**

- Use docstrings for functions (what, args, returns)
- Inline comments only for non-obvious logic
- Avoid redundant comments (don't explain obvious code)
- Focus on WHY, not WHAT
- Code should be self-documenting

**Structure:**

- Clear section headers: `# ============ Section Name ============`
- Logical flow: load → preprocess → analyze → visualize
- One concept per function
- Meaningful variable names

**Good Example:**

```python
def tokenize(text):
    """Tokenize and clean text: lowercase, alphabetic only."""
    tokens = word_tokenize(text)
    return [t.lower() for t in tokens if t.isalpha()]
```

**Bad Example (over-commented):**

```python
def tokenize(text):
    # Step 1: Tokenize the text
    # 步骤 1：对文本进行分词
    tokens = word_tokenize(text)  # Split into words / 分割成单词
    # Step 2: Clean tokens / 步骤 2：清理词元
    return [t.lower() for t in tokens if t.isalpha()]  # Lowercase and alphabetic / 小写和字母
```

**Principles:**

- If variable name is clear, no comment needed
- Don't translate comments to multiple languages
- Don't number steps in comments
- Let code structure show the flow

## Assignment Help

For homework/作业:

- Help **understand requirements** (no direct answers)
- Suggest **solution approach** and algorithm choice
- Guide **implementation structure**
- Explain **evaluation metrics**
- Review code for **best practices**

## Exam Preparation

Generate practice materials:

- **Concept questions** with explanations
- **Code tracing** exercises
- **Algorithm comparison** tables
- **Formula derivations** step-by-step

## Course Materials

Materials location: `aisd/courses/nlp/`

Structure:

- `slides/*.pdf` - Lecture slides (original)
- `notes/lecture*_notes.md` - Extracted markdown notes
- `notes/lecture*_notes_images/` - Extracted images
- `labs/*.pdf` - Lab instructions
- `code/lab*/*.py` - Lab code

## Note-Taking from Slides

When user asks to take notes or expand slides content:

### 1. Read the Markdown Notes

Notes are in `aisd/courses/nlp/notes/lecture*_notes.md`

### 2. Enhance Each Page

For each page section:

**Add Chinese Translation:**

- Translate key terms and concepts
- Keep technical terms in English with Chinese explanation
- Format: `**Term (术语)**: Explanation / 解释`

**Expand Bullet Points:**

- Turn brief points into full explanations
- Add examples and analogies
- Connect to previous concepts

**Add Code Examples:**

- Demonstrate concepts with Python code
- Use NLTK, spaCy, or transformers libraries
- Keep examples minimal and focused

**Create Practice Questions:**

- Conceptual questions for understanding
- Code exercises for implementation
- Format: `**Q:** Question / **A:** Answer`

### 3. Note Structure Template

```markdown
## Page X

### [Original Title]

**中文标题**: [Chinese translation]

**Key Concepts / 关键概念:**

- Concept 1 (概念1): Explanation / 解释
- Concept 2 (概念2): Explanation / 解释

**Detailed Notes / 详细笔记:**

[Expanded explanation with examples]

**Code Example / 代码示例:**

\`\`\`python

# Demonstration code

\`\`\`

**Practice / 练习:**

**Q:** Question
**A:** Answer

**📝 My Notes / 我的笔记:**

> [Personal understanding and connections]
```

### 4. Focus Areas

- **Definitions**: Clear, concise explanations
- **Algorithms**: Step-by-step breakdown
- **Applications**: Real-world use cases
- **Comparisons**: Differences between methods
- **Pitfalls**: Common mistakes to avoid

### 5. Review Materials

Generate from notes:

**Flashcards:**

- Front: Question/Term
- Back: Answer/Definition

**Summary Sheet:**

- One-page overview per lecture
- Key formulas and algorithms
- Important diagrams

**Quiz Questions:**

- Multiple choice for concepts
- Code completion for implementation
- Short answer for explanations

## Course Materials (Legacy Path)

Course data location: `data/nlp/`

Structure:

- `Week X/Lab Y/*.pdf` - Lab instructions
- `Week X/*.pdf` - Lecture slides
- `Week X/Hybrid Work/` - Hybrid materials

When user says "week X lab Y", read from corresponding `Week X/Lab Y/` folder.

