docs(hotfixes): large-scale KnowledgeBase dogfood evidence (N-gram supplement)
사용자 실제 /home/altair823/KnowledgeBase/ (1781 markdown / 9050 chunk) 를 v0.20.1+N-gram supplement 포함 binary 로 backfill 재실행: - Backfill duration: 26.6초 (9050 chunk, OnceLock 캐시 + 1000-row batch transaction). ~3 ms/chunk amortized. - '한국' query: V007 의 0 hit → V009 + N-gram 의 10 hit (Bug #8 functional closure 실측 검증). - '한국어' query: 5 → 10 hit (morpheme + N-gram 동시 매칭). - 영어 whole-token: 'token'/'pipeline'/'config' = 10 hit each (V009 회귀 측면 정상). Snippet evidence: KB 의 testdata/coding-md-corpus/*/...md 의 "문서를 한국어로 다시 정리하기" 패턴이 ko-dic 분해 + N-gram window 로 '한국' query 매칭 demonstrate. 기타 한국어 (서울, 지하철, 대한민국 등) 0 hit 는 KB corpus 의 단어 자체 부재 — data limitation, V009 implementation limitation X. Test data 위치: - /home/altair823/KnowledgeBase/ (사용자 실제 KB, 1781 markdown) - /build/cache/tmp/v0.20.1-dogfood/kb/ (ingested SQLite + LanceDB) - /build/cache/tmp/v0.20.1-dogfood2/corpus/ (한국어 wiki fixture) - /build/cache/tmp/v0.20.1-v007strict/corpus/no-space.md (whitespace-less) - /build/cache/tmp/v0.20.1-ngram/corpus/extra.md (대한민국, 한국정부, 주민등록번호) Spec: docs/superpowers/specs/2026-05-28-v0.20.x-korean-morphological-tokenizer-spec.md §9 + Appendix B Plan: docs/superpowers/plans/2026-05-28-v0.20.x-korean-morphological-tokenizer-plan.md (dogfood evidence final)
This commit is contained in:
@@ -106,6 +106,35 @@ spec §6.2 의 Option β (sub-token 추가 emit) 가 follow-up 으로 deferred
|
||||
- False positive risk: 일부 (예: `'한민'` query 가 `'대한민국'` 도 hit). 작은 risk, user 가 raw FTS5 mode 또는 longer query 로 우회 가능.
|
||||
|
||||
**Released as part of v0.20.1**. spec Appendix B 의 prior-knowledge limitation 이 supplement 으로 해소. spec §6.2 의 Option β 결정을 v0.21.x 에서 v0.20.1 implementation 으로 promote (HOTFIXES → spec 갱신 cascade — design §5.5 변경 외에 §6.2 본문은 보존, supplement 동작 만 implementation detail 로 추가).
|
||||
|
||||
**Large-scale dogfood verification (2026-05-28, KnowledgeBase + N-gram)** — 사용자 실제 `/home/altair823/KnowledgeBase/` (1781 markdown, 9050 chunk) 를 N-gram supplement 포함 binary 로 backfill 재실행:
|
||||
|
||||
- **Backfill duration**: 9050 chunk × lindera tokenize + N-gram + UPDATE + chunks_au trigger = **26.6 초** (real-time wall clock, OnceLock 캐시 + 1000-row batch transaction). ~3 ms/chunk amortized.
|
||||
- **Storage delta**: `kebab.sqlite` 크기 변화는 영어/code 위주 corpus 라 minimal (N-gram supplement 가 한글 morpheme 만 emit).
|
||||
- **Query evidence (KnowledgeBase, post-backfill)**:
|
||||
|
||||
| Query | Pre-backfill hits | Post-backfill hits | Mechanism |
|
||||
|---|---|---|---|
|
||||
| `'한국'` | 0 | **10** ✅ | N-gram supplement 의 `'한국어'` → `[한국, 국어]` window. KB 의 `testdata/coding-md-corpus/*/...md` 의 "문서를 한국어로 다시 정리하기" pattern 에서 hit. |
|
||||
| `'한국어'` | 5 | 10 | morpheme + N-gram 양쪽 매칭으로 hit count 증가 (raw `한국어` token + N-gram supplement) |
|
||||
| `'서울'` | 0 | 0 | KB corpus 에 단어 자체 부재 (data limitation, V009 limitation X) |
|
||||
| `'지하철'` | 0 | 0 | 동일 |
|
||||
| `'token'` (영어) | 10 | 10 | KB 의 OAuth/JWT docs — whole-token 매칭. supplement 미적용. |
|
||||
| `'tokenizer'` | 0 | 0 | KB 에 부재 |
|
||||
| `'pipeline'` | 10 | 10 | data ingest pipeline docs |
|
||||
| `'config'` | 10 | 10 | config-related docs |
|
||||
|
||||
**핵심 결론**: Bug #8 의 **functional closure 검증** — V007 trigram 의 `'한국'` 0 hit limitation 이 V009 + N-gram supplement 로 **10 hit** 으로 개선. 다른 한국어 query 의 0-hit 는 corpus 의 단어 자체 부재 (KB 가 React/Cargo/MD docs 위주). 실제 한국어 content 가 더 많은 KB (예: 한국 정부 docs, K-wiki) 에서는 더 큰 benefit 기대.
|
||||
|
||||
**Snippet evidence (ko-dic 분해 + N-gram window)**:
|
||||
```
|
||||
testdata/coding-md-corpus/security/security-310-item.md
|
||||
→ "¶ 문서 를 한국어 한국 국어 로 다시 정리 하 기"
|
||||
testdata/coding-md-corpus/rust/rust-020-functions.md
|
||||
→ "Functions 문서 를 한국어 한국 국어 로 다시 정리 하 기"
|
||||
```
|
||||
|
||||
`한국어` morpheme + sliding window `한국` + `국어` 가 동시에 chunks_fts 에 indexed — `'한국'` query 가 morpheme 분해 결과의 부분 token 으로 hit.
|
||||
- README + SKILL.md + HANDOFF.md 세 문서 반영.
|
||||
|
||||
Cross-link: `migrations/V009__fts_korean_morphological.sql`, `crates/kebab-search/src/lexical.rs`, design §5.5 / §9, `docs/superpowers/specs/2026-05-28-v0.20.x-korean-morphological-tokenizer-spec.md`.
|
||||
|
||||
Reference in New Issue
Block a user