Skip to content

cohesion/boundary score 알고리즘 문서화 #228

Description

@lovit

배경

LRGraph 기반 스코어링에서 핵심적으로 사용되는 cohesion score와 boundary score 수식이
코드 어디에도 언어학적 근거나 논문 참조 없이 사용되고 있다.

문제

# 현재 코드 — 수식의 의미 설명 없음
cohesion = freq(L+R) / freq(L) ** (1 / len(L))
  • 수식이 어떤 언어학적 직관에서 도출되었는지 알 수 없음
  • 관련 논문 참조가 코드/docstring 어디에도 없음
  • 사용자가 임계값(cohesion_threshold, boundary_threshold)을 튜닝하려 해도
    수식의 의미를 모르면 적절한 값을 설정할 수 없음

개선 방향

  • cohesion score, boundary score 각각의 수식을 docstring에 수식과 함께 명시
  • 수식이 포착하려는 언어학적 직관 설명
    • cohesion: L이 자립적인 단위일수록 높은 점수 → 명사 후보 판별
    • boundary: R의 경계가 명확할수록 높은 점수 → 조사/어미 경계 판별
  • 원 논문 참조 추가 (lovit 저자 블로그 또는 논문이 있다면 링크)
  • 권장 임계값 범위 및 도메인별 튜닝 가이드 추가

대상 파일

  • soynlp/noun/lr.py — cohesion score 계산 함수
  • soynlp/word/word.py — boundary score 계산 함수
  • soynlp/core/lrgraph.py — score 조회 메서드

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions