[NLP] NER 측정 방법(Token-level or Entity level)

JAsmine_log·2025년 9월 6일
0

NER

NER 측정 방법

Token-level F1: 각 토큰(단어)별로 라벨이 맞는지 확인
Entity-level F1: 전체 엔티티 단위로 완전히 맞는지 확인

예시

문장: "김철수는 서울에서 삼성전자에 다닌다"

정답 라벨:

김철수는 → B-PER I-PER O
서울에서 → B-LOC O
삼성전자에 → B-ORG I-ORG O
다닌다 → O

모델 예측:

김철수는 → B-PER O O        # "김철수" 중 "철수"를 놓침
서울에서 → B-LOC O         # "서울" 정확히 맞춤
삼성전자에 → B-ORG I-ORG O   # "삼성전자" 정확히 맞춤
다닌다 → O

점수 계산 비교

Token-level F1 계산

  • 전체 토큰: 8개
  • 맞은 토큰: 6개 (김, 서울, 삼성, 전자, 나머지 O들)
  • 정확도가 높게 나옴 (75%)

Entity-level F1 계산

  • 전체 엔티티: 3개 (김철수, 서울, 삼성전자)
  • 완전히 맞은 엔티티: 2개 (서울, 삼성전자만)
  • 정확도가 낮게 나옴 (67%)

설명

Token-level은 부분적으로라도 맞으면 점수를 줌

  • "김철수" 중 "김"만 맞춰도 1점
  • 실제로는 이름을 제대로 인식 못했는데 점수가 나옴

Entity-level은 엔티티 전체가 완벽해야 점수를 줌

  • "김철수" 전체를 다 맞춰야만 1점
  • 실제 사용 시나리오와 더 가까움

지표별 활용

Token-level F1

  • 모델 학습 과정에서 세밀한 성능 분석
  • 토큰 단위 정확도가 중요한 연구

**Entity-level F1

  • 실제 서비스에서 사용할 때 (PII 마스킹, 정보 추출 등)
  • 엔티티를 완전히 찾아야 하는 실용적인 평가

지표별 수식

Token-level F1
각 토큰별로 TP, FP, FN을 계산:

Precision = TP / (TP + FP)
Recall = TP / (TP + FN)
F1 = 2 × (Precision × Recall) / (Precision + Recall)

Entity-level F1
전체 엔티티 span으로 TP, FP, FN 계산:

Precision = 정확히 맞춘 엔티티 수 / 예측한 엔티티 수
Recall = 정확히 맞춘 엔티티 수 / 실제 엔티티 수
F1 = 2 × (Precision × Recall) / (Precision + Recall)

📊 실제 성능 차이

Entity-level이 더 엄격해서 점수가 낮게 나오는 게 일반적
보통 같은 모델이라도:

  • Token-level F1: 85-95%
  • Entity-level F1: 75-85%
profile
Everyday Research & Development

0개의 댓글