Skip to content

refactor(normalizer): 모듈 수준 deprecated 함수 래퍼 추가 (#232) - #247

Merged
lovit merged 1 commit into
refactor-2026-normalizerfrom
feature/232
Mar 9, 2026
Merged

refactor(normalizer): 모듈 수준 deprecated 함수 래퍼 추가 (#232)#247
lovit merged 1 commit into
refactor-2026-normalizerfrom
feature/232

Conversation

@lovit

@lovit lovit commented Mar 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • normalize(), remove_doublespace(), repeat_normalize(), only_hangle(), only_hangle_number(), only_text()DeprecationWarning 추가
  • emoticon_normalize()repeat_normalize()를 호출하여 이중 경고가 발생하는 문제 수정 → RepeatCharacterNormalizer 직접 호출로 변경
  • __init__.pyEmojiNormalizer export 추가
  • 6개 deprecated 함수에 대한 경고 발생 테스트 추가 (총 15 tests 통과)

Test plan

  • uv run pytest tests/unit/test_normalizer.py — 15 passed
  • uv run pre-commit run --all-files — all passed

Closes #232

🤖 Generated with Claude Code

- normalize(), remove_doublespace(), repeat_normalize(): DeprecationWarning 추가 (이전 커밋)
- only_hangle(), only_hangle_number(), only_text(): DeprecationWarning 추가
- emoticon_normalize(): repeat_normalize() 대신 RepeatCharacterNormalizer 직접 호출로 이중 경고 방지
- __init__.py: EmojiNormalizer export 추가
- test_normalizer.py: 6개 deprecated 함수 경고 발생 테스트 추가 (15 tests all pass)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lovit
lovit merged commit 104187b into refactor-2026-normalizer Mar 9, 2026
2 checks passed
@lovit
lovit deleted the feature/232 branch March 9, 2026 19:37
lovit added a commit that referenced this pull request Mar 9, 2026
* fix(normalizer): RemoveLongspaceNormalizer 공백 정규화 버그 수정 (#242)

- 기존: 2개 이상 공백을 두 공백으로 치환 (정규화 효과 없음)
- 수정: \s+ 패턴으로 탭·개행 포함 모든 연속 공백을 단일 공백으로 치환
- 영향 받는 테스트(test_normalizer_builder) 기대값 갱신

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(normalizer): emoticon_normalize deprecated 처리 및 HangleEmojiNormalizer로 통합 (#243)

- emoticon_normalize(): DeprecationWarning 발생 후 HangleEmojiNormalizer로 위임
- 기존 구현의 버그 문서화: 완성형 음절 뒤 자음에서 종성 불일치 시 음절 묵소 삭제
  (예: 'ㅋ크ㅋ' → 'ㅋㅋ', HangleEmojiNormalizer는 'ㅋ크ㅋ'로 올바르게 유지)
- soynlp.hangle.compose/decompose import 제거 (normalizer 모듈에서 미사용)
- test_emoticon_normalize_deprecated 테스트 추가

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(normalizer): EmojiNormalizer 추가 — Unicode 이모지 처리 (#245)

- EmojiNormalizer(Normalizer) 신규 추가
  - emoji 패키지 기반으로 단일·복합(ZWJ/Skin tone/Regional indicator) 이모지 처리
  - replace="" (기본, 제거) / replace="[EMOJI]" (토큰 치환) 지원
  - emoji 미설치 시 명확한 ImportError 메시지 반환
- pyproject.toml: optional-dependencies [emoji] 섹션 추가
- dev 의존성에 emoji>=2.0 추가 (lint/test 환경용)
- test_emoji_normalizer 테스트 추가
  (단일 이모지, ZWJ 시퀀스, Skin tone, Regional indicator, 치환 옵션 검증)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(normalizer): 모듈 수준 deprecated 함수 래퍼 추가 (#247)

- normalize(), remove_doublespace(), repeat_normalize(): DeprecationWarning 추가 (이전 커밋)
- only_hangle(), only_hangle_number(), only_text(): DeprecationWarning 추가
- emoticon_normalize(): repeat_normalize() 대신 RepeatCharacterNormalizer 직접 호출로 이중 경고 방지
- __init__.py: EmojiNormalizer export 추가
- test_normalizer.py: 6개 deprecated 함수 경고 발생 테스트 추가 (15 tests all pass)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(pipeline): task_normalize() deprecated 처리 및 normalize pipeline 예시 추가 (#248)

- task_normalize(): DeprecationWarning 추가 (ReadTextTask + NormalizeTask + WriteTextTask 조합 안내)
- examples/normalize/pipeline.yaml: NormalizeTask를 사용하는 예시 파이프라인 추가

NormalizeTask는 이미 soynlp/pipeline/tasks/normalize.py에 구현되어 있으며
pipeline/__init__.py 및 TASK_REGISTRY에도 등록되어 있음

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(pipeline): 개별 XxxNormalizer pipeline Task 6종 추가 (#249)

- PassCharacterNormalizeTask, HangleEmojiNormalizeTask, EmojiNormalizeTask
- RepeatCharacterNormalizeTask, RemoveLongspaceNormalizeTask, PaddingSpaceNormalizeTask
- TASK_REGISTRY에 6종 등록: PassCharacterNormalize, HangleEmojiNormalize 등
- 공통 헬퍼 _apply_normalizer()로 코드 중복 제거
- 각 Task별 단위 테스트 추가 (총 13 tests 통과)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant