용언 활용과 형태 복원
용언 활용·불규칙 처리와 형태 복원 — 킨데요 예제 따라가기
한국어 용언(동사·형용사)은 어미가 붙으면서 모양이 끊임없이 바뀝니다.
키인데요가 줄어 킨데요가 되는 것처럼 음절이 합쳐지고 자음이 옮겨 붙습니다.
바른은 이렇게 변형된 표면형을 원래 형태소로 되돌리고, 각 형태소가 원문의 어느 위치에서
왔는지까지 정확히 복원합니다. 이 글은 킨데요를 예로 그 과정을 따라가 봅니다.
활용이란 무엇인가
용언은 어간에 여러 어미가 차례로 붙으며 활용합니다. 규칙 활용은 어간이 그대로 유지되지만, 불규칙 활용은 어간·어미가 변형됩니다.
| 종류 | 예시 | 복원 결과 |
|---|---|---|
| 규칙 활용 | 먹었다 |
먹/VV + 었/EP + 다/EF |
| 축약 | 봤어 |
보/VV + 았/EP + 어/EF |
| ㅡ 탈락 | 써서 |
쓰/VV + 어서/EC |
| ㄷ 불규칙 | 들어 |
듣/VV + 어/EC |
활용 종류는 분절 단계에서 가른다
여기서 중요한 점은, 이 불규칙활용·탈락·축약·생략 같은 활용 종류의 구별이 품사 태깅이 아니라 분절(Segmenter) 단계에서 처리된다는 것입니다. 분절 모델의 116개 레이블은 기본·불규칙활용·탈락·축약·생략·활용-지정사·기타·예외의 8가지로 분류되는데, 위 표의 ㄷ 불규칙·ㅡ 탈락·축약은 각각 이 분류에 해당하는 분절 레이블이 음절 단위로 붙으면서 가려집니다. 즉 "어디서 끊고 어떻게 원형으로 되돌릴지"를 분절 단계가 정하고, 품사 태깅은 그렇게 복원된 형태소에 품사 이름표(VV·EP·EC 등)를 붙입니다.
오류도 분절 단계에서 잡힌다
분절 레이블 116개 중 14개는 형태적 오류를 식별하는 오류 탐지용입니다. 잘못된 불규칙 활용이나 축약·모음 순행동화 오류처럼 활용이 규범에 어긋난 어절은 이 단계에서 오류로 표시되어 맞춤법 검사기로 이어집니다. 복원과 오류 탐지가 같은 분절 단계에서 함께 일어나는 셈입니다.
킨데요를 풀어보기
킨데요는 "키인데요" 정도의 의미가 줄어든 구어형입니다.
바른은 이를 다음과 같이 복원합니다.
graph TD
IN[킨데요] --> SEG[분절·복원];
SEG --> A[키 VV];
SEG --> B[이];
SEG --> C[ㄴ데 EC];
SEG --> D[요 EF];
표면형 킨은 어간 키와 그 뒤 요소들이 한 음절로 합쳐진 결과입니다.
복원하면 형태소 수가 늘어나 글자 수가 표면형보다 많아집니다.
여기서 위치 복원 문제가 생깁니다.
ResetOffsets — 원 음절 위치로 되돌린다
복원된 형태소들이 원문 어디에서 왔는지 표시하려면 오프셋을 다시 계산해야 합니다.
이 일을 후처리의 ResetOffsets()가 담당합니다.
같은 음절에서 나온 형태소는 같은 시작 위치
킨데요에서 키·이·ㄴ은 모두 표면형의 첫 글자 킨에서 나왔습니다.
그래서 세 형태소는 같은 시작 위치를 가리키도록 오프셋이 조정됩니다.
이렇게 해야 복원으로 글자 수가 늘어도 원문 음절과 형태소가 정확히 대응됩니다.
오프셋은 요청한 인코딩 타입(UTF8/UTF16/UTF32)에 따라 다르게 계산됩니다. 같은 문장이라도 인코딩에 따라 글자 한 개의 바이트·코드유닛 수가 다르기 때문입니다.
graph LR
SURF["표면형: 킨 / 데 / 요"] --> REST[ResetOffsets];
REST --> MAP["키·이·ㄴ → '킨' 위치<br/>데 → '데' 위치<br/>요 → '요' 위치"];
복원과 위치를 동시에
바른은 형태를 원형으로 되돌리는 것에서 멈추지 않고, 복원된 형태소가 원문의 정확한 음절 위치를 가리키게 합니다. 덕분에 하이라이트·치환·교정 같은 후속 작업에서 "이 형태소가 원문 어디에 해당하는가"를 정확히 알 수 있습니다.
자주 묻는 질문
Q. 킨데요는 어떻게 분석되나요?
키/VV + 이 + ㄴ데/EC + 요/EF로 복원됩니다. 표면형 킨이 어간 키와
뒤따르는 요소들이 한 음절로 합쳐진 형태이기 때문입니다.
Q. 복원으로 글자 수가 늘면 위치는 어떻게 맞추나요?
후처리의 ResetOffsets가 오프셋을 다시 계산합니다. 같은 음절에서 나온 형태소들은 같은 시작 위치를 가리키도록 조정되어, 원문 음절과 형태소가 정확히 대응됩니다.
Q. 불규칙 활용도 처리되나요?
네. ㄷ 불규칙(듣어→들어), ㅡ 탈락(쓰어서→써서), 축약(보았어→봤어) 등
한국어의 활용·축약·탈락을 복원합니다.
Q. 활용·불규칙·탈락·축약은 어느 단계에서 구별되나요?
분절(Segmenter) 단계에서 구별됩니다. 분절 모델의 116개 레이블은 기본·불규칙활용·탈락·축약· 생략·활용-지정사·기타·예외의 8가지로 분류되며, 음절마다 알맞은 레이블이 붙으면서 활용 종류가 가려지고 원형이 복원됩니다. 품사 태깅은 그 뒤에 복원된 형태소에 품사 이름표를 붙입니다.
도움이 되었나요?