18 KiB
18 KiB
個人化詞彙庫功能規格
🎯 功能概述
個人化詞彙庫是一個用戶專屬的詞彙管理系統,允許用戶收集、組織和追蹤自己的學習詞彙,並根據學習表現提供個人化的學習建議。
📋 核心功能需求
1. 詞彙收集功能
1.1 手動添加詞彙
- 功能描述:用戶可以手動輸入新詞彙到個人詞彙庫
- 輸入欄位:
- 英文詞彙(必填)
- 詞性(可選,下拉選單)
- 發音(可選,自動生成或手動輸入)
- 定義(可選,自動生成或手動輸入)
- 中文翻譯(可選,自動生成或手動輸入)
- 個人筆記(可選,用戶自訂)
- 自動補全:系統自動查詢並填入詞彙資訊
- 重複檢查:避免添加重複詞彙
1.2 學習中收集
- 學習頁面收藏:在任何測驗模式中點擊「收藏」按鈕
- 困難詞彙標記:答錯的詞彙自動標記為需要加強
- 快速收集:一鍵添加當前學習的詞彙到個人庫
1.3 批量導入
- 文字檔導入:支援 .txt 格式的詞彙列表
- CSV 導入:支援結構化的詞彙資料
- 從學習記錄導入:將過往答錯的詞彙批量加入
2. 詞彙組織功能
2.1 分類管理
- 預設分類:
- 新學詞彙(New)
- 學習中(Learning)
- 熟悉(Familiar)
- 精通(Mastered)
- 困難詞彙(Difficult)
- 自訂分類:用戶可創建自己的分類標籤
- 多重分類:單一詞彙可屬於多個分類
2.2 標籤系統
- 難度標籤:A1, A2, B1, B2, C1, C2
- 主題標籤:商業、旅遊、學術、日常等
- 來源標籤:書籍、電影、新聞、會話等
- 自訂標籤:用戶可創建個人標籤
2.3 優先級管理
- 高優先級:急需掌握的詞彙
- 中優先級:重要但不緊急的詞彙
- 低優先級:選擇性學習的詞彙
3. 學習追蹤功能
3.1 熟悉度評分
- 評分機制:0-100 分的熟悉度評分
- 多維度評估:
- 認識度(Recognition):看到詞彙能理解
- 回想度(Recall):能主動想起詞彙
- 應用度(Application):能在語境中正確使用
- 動態調整:根據測驗表現自動調整評分
3.2 學習歷史
- 學習次數:詞彙被學習的總次數
- 正確率:各種測驗模式的正確率統計
- 最後學習時間:記錄最近一次學習時間
- 學習軌跡:詳細的學習歷程記錄
3.3 遺忘曲線追蹤
- 複習提醒:基於遺忘曲線的智能提醒
- 複習間隔:動態調整複習時間間隔
- 記憶強度:評估詞彙在記憶中的鞏固程度
4. 個人化學習功能
4.1 智能推薦
- 弱點分析:識別用戶的學習弱點
- 相似詞彙:推薦語義相關的詞彙
- 同根詞擴展:推薦同詞根的相關詞彙
- 搭配詞推薦:推薦常見的詞彙搭配
4.2 個人化測驗
- 客製化題組:根據個人詞彙庫生成測驗
- 弱點加強:針對困難詞彙的專門訓練
- 複習模式:基於遺忘曲線的複習測驗
- 混合練習:結合不同來源詞彙的綜合測驗
4.3 學習計劃
- 每日目標:設定每日學習詞彙數量
- 週期計劃:制定短期和長期學習目標
- 進度追蹤:視覺化顯示學習進度
- 成就系統:學習里程碑和獎勵機制
🗃️ 資料結構設計
個人詞彙資料模型
interface PersonalVocabulary {
id: string;
userId: string;
word: string;
partOfSpeech?: string;
pronunciation?: string;
definition?: string;
translation?: string;
personalNotes?: string;
// 分類和標籤
categories: string[];
tags: string[];
priority: 'high' | 'medium' | 'low';
// 學習追蹤
familiarityScore: number; // 0-100
recognitionScore: number; // 0-100
recallScore: number; // 0-100
applicationScore: number; // 0-100
// 學習統計
totalPractices: number;
correctAnswers: number;
incorrectAnswers: number;
lastPracticed: Date;
nextReview: Date;
// 測驗模式統計
flipMemoryStats: TestModeStats;
vocabChoiceStats: TestModeStats;
sentenceFillStats: TestModeStats;
// ... 其他測驗模式
// 元資料
createdAt: Date;
updatedAt: Date;
source?: string; // 詞彙來源
}
interface TestModeStats {
attempts: number;
correct: number;
averageTime: number; // 平均回答時間(秒)
lastAttempt: Date;
}
學習會話記錄
interface LearningSession {
id: string;
userId: string;
startTime: Date;
endTime: Date;
mode: string;
vocabulariesPracticed: string[]; // 詞彙 IDs
totalQuestions: number;
correctAnswers: number;
timeSpent: number; // 秒
performance: SessionPerformance;
}
interface SessionPerformance {
accuracy: number; // 正確率
speed: number; // 平均回答速度
improvement: number; // 相對上次的進步
weakWords: string[]; // 表現較差的詞彙
strongWords: string[]; // 表現較好的詞彙
}
🔧 技術實現方案
前端實現
1. 狀態管理
// 使用 Context API 或 Zustand
interface PersonalVocabStore {
vocabularies: PersonalVocabulary[];
currentSession: LearningSession | null;
filters: VocabFilters;
// Actions
addVocabulary: (vocab: Partial<PersonalVocabulary>) => void;
updateVocabulary: (id: string, updates: Partial<PersonalVocabulary>) => void;
deleteVocabulary: (id: string) => void;
updateFamiliarity: (id: string, testResult: TestResult) => void;
// ...
}
2. 本地儲存策略
- IndexedDB:大量詞彙資料的本地儲存
- localStorage:用戶偏好和設定
- 同步機制:與伺服器的雙向同步
3. UI 組件結構
/components/PersonalVocab/
├── VocabLibrary.tsx # 詞彙庫主頁面
├── VocabCard.tsx # 單一詞彙卡片
├── VocabForm.tsx # 新增/編輯詞彙表單
├── VocabFilters.tsx # 篩選和搜尋
├── VocabStats.tsx # 學習統計
├── CategoryManager.tsx # 分類管理
├── TagManager.tsx # 標籤管理
└── ReviewScheduler.tsx # 複習排程
後端實現
1. API 端點設計
GET /api/personal-vocab # 獲取用戶詞彙庫
POST /api/personal-vocab # 新增詞彙
PUT /api/personal-vocab/:id # 更新詞彙
DELETE /api/personal-vocab/:id # 刪除詞彙
POST /api/personal-vocab/batch # 批量操作
GET /api/personal-vocab/stats # 獲取學習統計
POST /api/personal-vocab/practice # 記錄練習結果
GET /api/personal-vocab/review # 獲取需要複習的詞彙
GET /api/learning-sessions # 獲取學習會話記錄
POST /api/learning-sessions # 記錄學習會話
2. 資料庫設計
-- 個人詞彙表
CREATE TABLE personal_vocabularies (
id UUID PRIMARY KEY,
user_id UUID REFERENCES users(id),
word VARCHAR(100) NOT NULL,
part_of_speech VARCHAR(20),
pronunciation VARCHAR(200),
definition TEXT,
translation TEXT,
personal_notes TEXT,
familiarity_score INTEGER DEFAULT 0,
recognition_score INTEGER DEFAULT 0,
recall_score INTEGER DEFAULT 0,
application_score INTEGER DEFAULT 0,
total_practices INTEGER DEFAULT 0,
correct_answers INTEGER DEFAULT 0,
incorrect_answers INTEGER DEFAULT 0,
last_practiced TIMESTAMP,
next_review TIMESTAMP,
priority VARCHAR(10) DEFAULT 'medium',
source VARCHAR(100),
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- 詞彙分類表
CREATE TABLE vocab_categories (
id UUID PRIMARY KEY,
user_id UUID REFERENCES users(id),
name VARCHAR(50) NOT NULL,
color VARCHAR(7), -- HEX color
description TEXT,
created_at TIMESTAMP DEFAULT NOW()
);
-- 詞彙-分類關聯表
CREATE TABLE vocab_category_relations (
vocab_id UUID REFERENCES personal_vocabularies(id),
category_id UUID REFERENCES vocab_categories(id),
PRIMARY KEY (vocab_id, category_id)
);
-- 學習會話表
CREATE TABLE learning_sessions (
id UUID PRIMARY KEY,
user_id UUID REFERENCES users(id),
mode VARCHAR(50) NOT NULL,
start_time TIMESTAMP NOT NULL,
end_time TIMESTAMP,
total_questions INTEGER DEFAULT 0,
correct_answers INTEGER DEFAULT 0,
time_spent INTEGER DEFAULT 0, -- 秒
created_at TIMESTAMP DEFAULT NOW()
);
-- 詞彙練習記錄表
CREATE TABLE vocab_practice_records (
id UUID PRIMARY KEY,
session_id UUID REFERENCES learning_sessions(id),
vocab_id UUID REFERENCES personal_vocabularies(id),
test_mode VARCHAR(50) NOT NULL,
is_correct BOOLEAN NOT NULL,
response_time INTEGER, -- 毫秒
user_answer TEXT,
created_at TIMESTAMP DEFAULT NOW()
);
🎨 使用者介面設計
主要頁面結構
1. 詞彙庫總覽頁面 (/personal-vocab)
┌─────────────────────────────────────┐
│ 🏠 個人詞彙庫 (1,247 個詞彙) │
├─────────────────────────────────────┤
│ [搜尋框] [篩選] [排序] [新增詞彙] │
├─────────────────────────────────────┤
│ 📊 學習統計 │
│ • 今日學習:12 個詞彙 │
│ • 本週進度:85% 完成 │
│ • 平均正確率:78% │
├─────────────────────────────────────┤
│ 📚 詞彙分類 │
│ [新學詞彙 124] [學習中 89] [熟悉 856] │
│ [困難詞彙 45] [我的收藏 67] │
├─────────────────────────────────────┤
│ 📝 詞彙列表 │
│ ┌─────────────────────────────────┐ │
│ │ brought (動詞) ⭐⭐⭐⭐☆ │ │
│ │ 發音: /brɔːt/ | 熟悉度: 80% │ │
│ │ 定義: Past tense of bring... │ │
│ │ [編輯] [練習] [刪除] │ │
│ └─────────────────────────────────┘ │
│ (更多詞彙卡片...) │
└─────────────────────────────────────┘
2. 詞彙詳情頁面 (/personal-vocab/:id)
┌─────────────────────────────────────┐
│ ← 返回詞彙庫 │
├─────────────────────────────────────┤
│ 📝 brought │
│ 動詞 | 難度: B1 | 優先級: 高 │
├─────────────────────────────────────┤
│ 🔊 發音: /brɔːt/ [播放] │
│ 📖 定義: Past tense of bring... │
│ 🈲 翻譯: 提出、帶來 │
│ 📝 個人筆記: [編輯區域] │
├─────────────────────────────────────┤
│ 📊 學習統計 │
│ • 熟悉度: ████████░░ 80% │
│ • 總練習: 25 次 │
│ • 正確率: 85% │
│ • 上次練習: 2 小時前 │
│ • 下次複習: 明天 14:00 │
├─────────────────────────────────────┤
│ 🎯 各模式表現 │
│ • 翻卡記憶: 90% (15/15) │
│ • 詞彙選擇: 75% (12/16) │
│ • 例句填空: 80% (8/10) │
├─────────────────────────────────────┤
│ 🏷️ 分類標籤 │
│ [學習中] [商業英語] [重要詞彙] │
│ [+ 添加標籤] │
├─────────────────────────────────────┤
│ 🎮 快速練習 │
│ [翻卡記憶] [詞彙選擇] [例句填空] │
└─────────────────────────────────────┘
3. 新增詞彙頁面 (/personal-vocab/add)
┌─────────────────────────────────────┐
│ ➕ 新增詞彙到個人庫 │
├─────────────────────────────────────┤
│ 📝 英文詞彙: [輸入框] *必填 │
│ 🔍 [智能查詢] - 自動填入詞彙資訊 │
├─────────────────────────────────────┤
│ 📖 詞彙資訊 │
│ • 詞性: [下拉選單] │
│ • 發音: [輸入框] [生成] │
│ • 定義: [文字區域] [自動生成] │
│ • 翻譯: [輸入框] [自動翻譯] │
├─────────────────────────────────────┤
│ 🏷️ 分類設定 │
│ • 分類: [多選下拉] [新增分類] │
│ • 標籤: [標籤選擇器] [新增標籤] │
│ • 優先級: ⚫ 高 ⚪ 中 ⚪ 低 │
├─────────────────────────────────────┤
│ 📝 個人筆記 │
│ [多行文字輸入區域] │
├─────────────────────────────────────┤
│ [取消] [儲存詞彙] │
└─────────────────────────────────────┘
🔄 學習流程整合
1. 學習中的詞彙收集
- 收藏按鈕:每個測驗頁面都有收藏功能
- 自動收集:答錯的詞彙自動標記為需要加強
- 學習後提醒:學習會話結束後推薦收藏的詞彙
2. 個人化測驗生成
- 我的詞彙測驗:從個人庫選取詞彙生成測驗
- 弱點強化:針對低熟悉度詞彙的專門練習
- 混合模式:結合系統詞彙和個人詞彙的測驗
3. 複習提醒系統
- 智能排程:基於遺忘曲線安排複習時間
- 推送通知:瀏覽器通知提醒複習時間
- 複習優化:根據表現調整複習頻率
📱 響應式設計考量
桌面版 (>= 1024px)
- 三欄布局:側邊欄(分類)+ 詞彙列表 + 詳情面板
- 拖拉操作:支援拖拉詞彙到不同分類
- 快速鍵:鍵盤快速鍵支援
平板版 (768px - 1023px)
- 兩欄布局:詞彙列表 + 詳情面板
- 觸控優化:適合觸控操作的按鈕尺寸
手機版 (< 768px)
- 單欄布局:全螢幕顯示當前頁面
- 底部導航:快速切換功能
- 手勢支援:滑動操作和長按功能
🚀 實施階段規劃
階段 1:基礎詞彙管理 (第 1-2 週)
- 資料庫設計和建立
- 基本 CRUD API 開發
- 詞彙列表頁面
- 新增/編輯詞彙功能
- 基本搜尋和篩選
階段 2:學習追蹤系統 (第 3-4 週)
- 熟悉度評分系統
- 學習歷史記錄
- 測驗結果整合
- 學習統計儀表板
階段 3:智能化功能 (第 5-6 週)
- 遺忘曲線算法
- 複習提醒系統
- 個人化推薦
- 弱點分析
階段 4:高級功能 (第 7-8 週)
- 批量導入/導出
- 學習計劃制定
- 成就系統
- 社交分享功能
📊 成功指標
用戶行為指標
- 詞彙庫使用率:> 80% 用戶建立個人詞彙庫
- 收藏率:> 60% 學習中的詞彙被收藏
- 複習完成率:> 70% 的複習提醒被完成
- 熟悉度提升:平均熟悉度每週提升 5%
學習效果指標
- 記憶保持率:複習詞彙的正確率 > 85%
- 學習效率:個人詞彙的學習時間縮短 30%
- 長期記憶:30 天後的詞彙記憶率 > 70%
系統性能指標
- 回應時間:詞彙庫載入時間 < 2 秒
- 同步效率:資料同步成功率 > 99%
- 儲存效率:本地儲存空間使用 < 50MB
🔐 隱私和安全考量
資料隱私
- 用戶授權:明確的隱私政策和使用條款
- 資料加密:敏感資料的端到端加密
- 匿名化:學習統計資料的匿名化處理
資料安全
- 備份機制:定期備份用戶資料
- 版本控制:資料變更的版本記錄
- 災難恢復:資料遺失的恢復機制
🔮 未來擴展功能
社交學習功能
- 詞彙分享:分享個人詞彙庫給其他用戶
- 學習小組:創建詞彙學習小組
- 競賽模式:與朋友的詞彙學習競賽
AI 智能功能
- 智能生成:AI 生成個人化例句
- 發音評估:AI 評估發音準確度
- 學習建議:AI 提供個人化學習建議
多媒體功能
- 語音筆記:錄音形式的個人筆記
- 圖片聯想:為詞彙添加個人化圖片
- 影片連結:連結相關的學習影片
📝 附註
本規格文件為個人化詞彙庫功能的完整設計,包含前後端實現細節和用戶體驗考量。實際開發時可根據優先級和資源情況分階段實施。
建議優先實施階段 1 和階段 2,建立穩固的基礎功能,再逐步添加智能化和高級功能。
最後更新:2025-09-20 版本:v1.0