Wer 산출식 오류율에 대한 질문입니다!
안녕하세요. 현재 음성인식 정확도 평가를 위해 WER(Word Error Rate)를 다음 공식으로 산출하고 있습니다.
WER = (S + D + I) / N S: Substitution (치환) D: Deletion (삭제) I: Insertion (삽입) N: 정답 문장(Reference)의 총 단어 수
그런데 아래 예시 문장에서 오류 유형을 어떻게 구분해야 할지 헷갈립니다.
1. 정답 문장 (Reference)
왼쪽 무릎이 계단을 오를 때마다 욱신거려서 걷기가 불편해요
2. 인식 문장 (Hypothesis)
왼쪽 무릎이 계단을 오를때마다 욱신거려서 걷기가 불편해요
이 경우 띄어쓰기 오류로 인해 ‘오를 때마다’가 ‘오를때마다’로 합쳐졌습니다.
여기서 오류를
Substitution (S): ‘때마다 → 오를때마다’ (1건)으로 처리해야 하는지,
Substitution + Deletion (S=1, D=1): ‘오를 → 오를때마다’ (S=1), ‘때마다’는 누락된 단어로 (D=1), 총 2건으로 처리해야 하는지,
궁금합니다. 전문가 여러분의 의견을 듣고 싶습니다. 감사합니다!
안녕하세요.
좋은 질문이에요. 실제 음성인식 평가나 자연어처리 실무에서도 띄어쓰기 오류를 어떻게 반영하느냐는 꽤 중요한 이슈입니다.
1. WER의 기본 원리
가. WER(Word Error Rate)는 단어 단위로 비교합니다. 즉, 기준이 되는 건 “공백(space)”으로 구분된 토큰 단위입니다.
나. 계산 시 Reference 문장의 단어 수(N)를 기준으로, Substitution(S), Deletion(D), Insertion(I)를 합산해 (S+D+I)/N 으로 구합니다.
2. 현재 예시 분석
Reference: 오를 / 때마다
Hypothesis: 오를때마다 (한 단어로 합쳐짐)
→ 즉, Reference엔 2개의 토큰, Hypothesis엔 1개의 토큰이 존재합니다.
3. 처리 방식
실무에서는 이 경우를 Substitution 1건(S=1) 으로 처리합니다.
이유: Hypothesis의 오를때마다는 Reference의 오를 / 때마다 두 단어가 합쳐진 형태로, 의미적으로는 동일하나 토큰 불일치로 인한 단일 대체 오류로 간주하기 때문입니다.
반면, Deletion(단어 누락)으로 보기에는 실제 내용 손실이 없고, Insertion(삽입)도 아니므로 S=1이 가장 합리적입니다.
4. 참고 기준 (실무/논문 관례)
가. Google, NIST 등 대부분의 WER 평가에서는 띄어쓰기 오류를 단일 Substitution으로 처리합니다.
나. 다만, 형태소 단위 평가(MOR, CER 등) 를 쓰는 경우엔 이 부분이 더 세분화되어 다르게 계산되기도 합니다.
정리하자면:
> “오를 때마다” → “오를때마다” 는 Substitution 1건 (S=1) 으로 계산하는 것이 일반적이며, Deletion을 추가로 세지 않습니다.
실제 WER 평가 자동화 스크립트(SCLITE, jiwer 등)에서도 이 케이스는 대부분 S=1로 계산됩니다.