nori 품사 필터를 넣을지 — 조사·어미가 검색 순위를 정하는 문제
정성윤이 09-22 오늘 진행 기록·미결 항목을 보고 만든 티켓이다. 담당은 «제안»이다 — 본인이 확인하고 맞으면 착수, 아니면 옮긴다.
무엇을
GS-205 가 틀린 원인은 분석기에 nori_part_of_speech 가 없어 조사·어미(해지 의 해, 발생 시 의 시)가 순위를 정하는 것이었다(류준 09-22 02번 기록).
품사 필터를 넣을지 정한다 — 넣으면 인덱스 매핑이 바뀌어 재적재가 따라온다.
완료 조건
- 결정 기록 — 넣는다 / 안 넣는다 + 근거. 넣으면 제외 품사 목록
- 넣으면 로컬 재적재 → 하네스 BM25·dense 값 전후 비교(표본 수 같이) · 운영 재적재는 정성윤(모델 벡터 재적재와 같은 절차)
2026-09-22 — 채택 · 코드 반영 · 로컬 전후 실측 (류준)
- 결정: 넣는다(류준) —
_project/decisions/214. 제외 품사는 nori 기본값 그대로(stoptags를 주지 않는다 — 골든셋을 보며 목록을 고르지 않는다). 분석기korean필터 =nori_part_of_speech→nori_readingform→lowercase. 테스트가 순서와 「사용자 정의 필터 없음」을 고정한다. -
전후 실측 — 커밋
f7a2dd1+ 이 변경 · 로컬 ES · 골든셋v1-150.1· 임시 인덱스qa-nori-base/qa-nori-pos(같은 청크 100 · 같은 KoE5 벡터, 측정 뒤 삭제) ·scripts/compare_retrievers.py --index <임시> --only bm25,dense:구성 이전 품사 필터 n BM25 Recall@5 / MRR 0.812 / 0.635 0.844 / 0.682 96 dense Recall@5 / MRR 0.969 / 0.868 0.969 / 0.868 (상위 5 순서까지 전부 같음) 96 BM25 얻음 GS-205·219·225·226·290 · 잃음 GS-206·241. B-6(n 24) BM25 1순위 점수 중앙 7.62→6.36, 정답 있음과 겹침은 그대로(문턱 하나로 못 가름). GS-723 은 필터 뒤 BM25 0건.
- ⚠ 같은 골든셋으로 채택을 정했다 — 수치는 독립 검증이 아니라 부작용 확인이다. 운영은
124로 dense 가 주 경로라 이 필터는 BM25 대체 경로(dense 0건일 때 · 임베딩을 끌 때)를 단단하게 한다. - 남은 것 →
in-progress로 둔 이유: 운영 재적재(정성윤). ① 이 변경이 든 서버 이미지 배포(분석기는 이미지 안es_index.py에서 읽는다 · 태그 올림은 중앙) ② 런북 「② 벡터 재적재」와 같은index_knowledge_base.py --to-es --recreate --embed-model /models/koe5—--embed-model을 빼면 dense 가 전부 0건이 된다 ③_analyze로에서·는이 사라졌는지 확인. 끝나면done.
2026-09-22 — 운영 재적재 완료 (정성윤) → done
- 서버
0.1.34(PR #131 머지 · 이 필터가 든es_index.py포함)가 뜬 뒤 파드 안에서 런북 11장 「② 벡터 재적재」 그대로index_knowledge_base.py --to-es --recreate --embed-model /models/koe5— 청크 100 · KoE5 1024차원 ·callguard-kb-single100건. - 확인: 인덱스
korean분석기 필터['nori_part_of_speech', 'nori_readingform', 'lowercase']·_analyze("여권에서는 신분증을 가져가야 합니다")→여권 · 신분증 · 신분 · 증 · 가져가 · 합니다 · 하(「에서는」·「을」 사라짐) ·embedding벡터 있는 문서 100/100 ·/healthspokes 에retrieval_dense그대로.
2026-09-22 (저녁) — 운영 재적재 완료, 닫는다 (류준)
정성윤 님이 새 이미지 배포 뒤 운영 인덱스를 재적재했다(16:05 전후로 전달받음 — 16:05 확인은 재적재 전 인덱스였다). 재적재 뒤 16:21 에 다시 흘렸다(syn-prod-syn-010-20260922-v3).
분석기는 밖에서 볼 수 없어 위 정성윤 님의 파드 안 _analyze 확인을 따른다. 밖에서 본 것:
- 벡터는 살아 있다 — dense 1순위·순서가 재적재 전(16:05)과 완전히 같다(
2.12 → 2.8 → 2.10 → 2.1 → 2.9, 둘째 추천MANUAL-1.4 …도 동일).--embed-model이 빠졌다면 dense 가 0건 → BM25 로 내려가 순서가 달라졌을 것 - 품사 필터가 영향을 주는 BM25 경로는 이 통화에서 타지 않았다(dense 가 결과를 냈다) — 필터 효과는 운영에서 보이지 않는 것이 정상이다
- 저장 5/5 · 필요서류 판정 0 ·
retrieval_ms603 · 542 ·/healthok