Spaces:
Sleeping
Sleeping
File size: 7,549 Bytes
c71b90b | 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | # QuestionDatabase 高品質化ガイドライン
> 国語・数学の高品質化経験に基づく標準手順
---
## 1. 概要
### 1.1 目的
- 問題データの品質向上(重複削除、フォーマット統一、難易度調整)
- 各ジャンルの高品質な問題セットを作成
- LLMを活用した効率的な編集作業
- Gemini APIによる学術的整合性チェック
### 1.2 対象ファイル
```
knowledge/v1.8.1/
├── jp/JP01-JP06.json (国語: 6ファイル)
├── math/MA01-MA10.json (数学: 10ファイル)
├── sci/SC01-SC10.json (理科: 10ファイル)
└── soc/SO01-SO10.json (社会: 10ファイル)
```
---
## 2. 品質基準
### 2.1 問題数
- **目標**: 各ファイル100問
- 不足分は対応する教材(`knowledge/*.md`)から新規作成
### 2.2 難易度分布(3:5:2)
| 難易度 | 割合 | 問題数 | 基準 |
|--------|------|--------|------|
| 基本 | 30% | 30問 | 小学校レベル、日常的な内容 |
| 標準 | 50% | 50問 | 中学校レベル、応用的な理解が必要 |
| 応用 | 20% | 20問 | 高校レベル以上、発展的な内容 |
### 2.3 フォーマット統一
```json
{
"answer_id": "xx_001",
"answer": "解答(ふりがな)",
"question_hint": "「〇〇___」の漢字",
"difficulty": "基本|標準|応用",
"source_context": "完全な文(マークダウンなし)"
}
```
#### フィールド規則
| フィールド | 規則 |
|-----------|------|
| answer_id | `{category}_{3桁連番}` (例: jp_001, ma_001) |
| answer | 解答文字列(ふりがなは括弧内に) |
| question_hint | 穴埋め形式「〇〇___」、末尾に「の漢字」等の指示 |
| difficulty | 基本/標準/応用 の3択 |
| source_context | 完全な文、マークダウン記号なし |
---
## 3. 高品質化手順
### Phase 1: 現状分析
```python
# 1. 問題数確認
len(questions)
# 2. 重複確認(解答の正規化)
def normalize(answer):
# ふりがな除去して比較
return re.sub(r'[((][^))]+[))]', '', answer)
# 3. フォーマット不整合確認
# - question_hint形式
# - マークダウン残存
# - source_context切れ
```
### Phase 2: 重複統合
1. 同一解答の問題をグループ化
2. 最良のquestion_hintを選定
3. 1問に統合、残りを削除
**選定基準**:
- 文脈が明確
- 穴埋め位置が適切
- source_contextが完全
### Phase 3: 新規問題作成
1. 対応する教材(`knowledge/*.md`)を参照
2. 教材から問題素材を抽出
3. フォーマットに従って問題化
**優先素材**:
- 同訓異字・同音異義語(国語)
- 公式・定理の応用(数学)
- 実験・観察の考察(理科)
- 年号・人物・地理(社会)
### Phase 4: 難易度調整
```python
# 現状カウント
counts = {"基本": 0, "標準": 0, "応用": 0}
# 目標: 30:50:20
target = {"基本": 30, "標準": 50, "応用": 20}
# 差分を計算し調整
```
### Phase 5: ID再割り当て・保存
```python
# 連番割り当て
for i, q in enumerate(questions, 1):
q["answer_id"] = f"{prefix}_{i:03d}"
# JSON保存
with open(path, 'w', encoding='utf-8') as f:
json.dump(questions, f, ensure_ascii=False, indent=2)
```
---
## 4. 品質チェックリスト
### 必須チェック
- [ ] 問題数 = 100問
- [ ] 重複なし(100ユニーク解答)
- [ ] answer_id連番(xx_001〜xx_100)
- [ ] 難易度分布: 30:50:20
- [ ] JSON構文正常
### フォーマットチェック
- [ ] question_hint: 「〇〇___」形式
- [ ] answer: 適切な形式
- [ ] source_context: マークダウンなし
- [ ] 全フィールド存在
### 内容チェック
- [ ] 問題として成立している
- [ ] 解答が一意に定まる
- [ ] 難易度が適切
---
## 5. カテゴリ別注意点
### 国語(JP01-JP06)
| カテゴリ | 内容 | 教材 |
|---------|------|------|
| JP01 | 漢字の読み書き | japanese.md |
| JP02 | 語彙・慣用句 | japanese.md |
| JP03 | 文法 | japanese.md |
| JP04 | 敬語 | japanese.md |
| JP05 | 文学史 | japanese.md |
| JP06 | 作文・表現 | japanese.md |
**注意**: 同訓異字・同音異義語は文脈で区別できるようにする
### 数学(MA01-MA10)
| カテゴリ | 内容 | 問題数 |
|---------|------|--------|
| MA01 | 四則演算・計算の基礎 | 40問 |
| MA02 | 単位換算・速さ | 40問 |
| MA03 | 円周率・面積 | 40問 |
| MA04 | 比例・割合 | 40問 |
| MA05 | 濃度・食塩水 | 40問 |
| MA06 | 方程式 | 40問 |
| MA07 | 図形・体積 | 40問 |
| MA08 | 時間計算 | 40問 |
| MA09 | 旅人算・追いかけ算 | 40問 |
| MA10 | 応用問題・複合問題 | 40問 |
**重要(中学受験向け)**:
- ★ 方程式(xを使った式)は絶対に使わない ★
- 特殊算による解法(つるかめ算、旅人算、仕事算、ニュートン算など)
- 計算の工夫(分配法則、逆算、比の利用)
- 線分図、面積図、ダイヤグラムによる解法
- 和差算、消去算、比と割合の考え方
### 理科(SC01-SC10)
**注意**: 単位は正確に記述
### 社会(SO01-SO10)
**注意**: 年号・人名の表記を統一
---
## 6. JP01高品質化の実績
### Before
- 問題数: 103問
- ユニーク解答: 39種類(重複率62%)
- フォーマット: 3パターン混在
- マークダウン残存あり
### After
- 問題数: 100問
- ユニーク解答: 100種類(重複0%)
- フォーマット: 統一済み
- 難易度: 30:50:20
### 作業内容
1. 103問 → 29問に統合(重複削除)
2. japanese.mdから71問新規作成
3. 難易度を3:5:2に調整
4. フォーマット統一・マークダウン除去
---
## 7. Gemini API添削
### 7.1 目的
- SUBAGENT高品質化後の学術的整合性チェック
- source_context、answer、question_hintの整合性確保
- 教科固有のルール適用(数学の方程式排除など)
### 7.2 使用方法
```bash
# スクリプト実行
GEMINI_API_KEY=xxxxx python scripts/review_math_with_gemini.py knowledge/v1.8.1/math/MA01.json
```
### 7.3 添削スクリプト
| ファイル | 説明 |
|---------|------|
| `scripts/review_math_with_gemini.py` | 数学用Gemini添削スクリプト |
### 7.4 添削基準
**共通基準**:
- answerが学術的に正確か
- question_hintが問題として適切か
- source_contextが解法・背景として正しいか
**数学固有基準**:
- 方程式(x=〜)を使わない
- 特殊算・計算の工夫で解法を説明
- 中学受験向けの難易度設定
### 7.5 使用モデル
| モデル | 用途 |
|--------|------|
| gemini-3-pro-preview | 高精度な添削(推奨) |
### 7.6 注意事項
- APIレート制限に注意(30秒間隔推奨)
- 1ファイル(40問)= 1回のAPI呼び出し
- レスポンスがemptyの場合は再試行
---
## 8. 参照ファイル
| ファイル | 用途 |
|---------|------|
| `knowledge/japanese.md` | 国語問題の素材 |
| `knowledge/science.md` | 理科問題の素材 |
| `knowledge/social.md` | 社会問題の素材 |
| `knowledge/v1.8.1/**/*.json` | 編集対象ファイル |
---
**最終更新**: 2025-12-23
|