딥러닝

딥러닝 : 비지도학습 토크나이저 _ 25.06.16

Song EH. 2025. 6. 18. 18:23

비지도 학습 기반 토크나이저와 한국어 처리의 어려움

이번 학습에서는 비지도 학습 방식으로 동작하는 형태소 분석기인 soynlp와 그 사용법을 배웠다. 일반적으로 한국어는 띄어쓰기로 분리하는 방식이 제대로 작동하지 않는다. 예를 들어 ‘사과를’, ‘사과가’, ‘사과의’와 같이 조사나 어미가 붙으면 '사과'라는 동일한 단어가 기계적으로는 다른 단어로 인식된다. 이를 해결하기 위해 형태소 분석기가 필요하며, 한국어의 교착어적 특성으로 인해 단순한 토큰 분리로는 한계가 있다. 이를 보완하기 위해 Okt 같은 형태소 분석기가 널리 쓰이지만, Okt는 사전에 등록된 단어 중심으로 처리하기 때문에 신조어나 사용자 정의 단어에 취약하다.

 

이러한 한계를 극복하기 위한 도구가 soynlp이다. soynlp는 기존의 사전 기반 분석 방식이 아니라 말뭉치에 기반한 통계적 방식, 즉 비지도 학습 방식으로 단어를 분석한다. 말 그대로 형태소 분석기이지만 내부적으로는 자주 같이 등장하는 문자 시퀀스를 찾아내고, 이것이 하나의 단어일 가능성을 점수화하는 방식으로 동작한다. 이를 통해 기존 형태소 분석기가 분리하지 못했던 복합어도 식별할 수 있고, 특히 신조어나 오탈자에도 강한 모습을 보인다. 학습 과정에서는 soynlp 깃허브에서 제공하는 뉴스 말뭉치를 다운로드하여 DoublespaceLineCorpus를 통해 학습 데이터를 구성하고 WordExtractor를 통해 단어 점수표를 생성하는 과정을 거쳤다.

 

여기서 핵심은 두 가지 개념이다. 바로 응집 확률과 브랜칭 엔트로피이다.

 

응집 확률은 특정 문자 시퀀스가 내부적으로 얼마나 결합된 상태로 자주 등장하는지를 판단하는 지표였다. 예를 들어 '반포한강공원에'라는 문자열이 있다면, 이 안에서 가장 응집도가 높은 시퀀스를 찾는 것이 목적이다. 실습 결과에서는 '반포한강공원'까지가 응집도가 가장 높은 단어로 판별되었다. 이는 문맥이나 사전 정보가 없어도 통계적으로 해당 문자열이 하나의 단어로 쓰이는 경향이 강하다는 의미다.

 

반면, 브랜칭 엔트로피는 주어진 시퀀스 다음에 어떤 문자가 나올 수 있는지를 판단하는 혼란도를 뜻한다. 예를 들어 ‘디스플’까지는 다음 문자가 ‘레’로 거의 고정되어 있기 때문에 브랜칭 엔트로피가 낮지만, ‘디스플레이’ 이후는 다양한 조사가 올 수 있어서 브랜칭 엔트로피가 높아진다. 이 값이 급증하는 구간이 바로 하나의 단어가 끝나는 지점이라고 볼 수 있다. 이를 활용하면 통계적으로 한 단어의 경계를 추론할 수 있게 된다.

 

이런 점수들을 기반으로 soynlp는 두 가지 토크나이저를 제공한다. 하나는 LTokenizer로, 띄어쓰기가 된 문장에서 L/R 토큰 구조에 기반하여 가장 응집력이 높은 분할 기준을 찾아내는 방식이다. 예를 들어 ‘공부하는’이라는 단어는 ‘공부 + 하는’으로 나누는 것이 자연스러운데, 이 경우 왼쪽 토큰인 ‘공부’의 응집 확률을 기준으로 분리하는 것이다. 두 번째는 MaxScoreTokenizer이다. 이 토크나이저는 띄어쓰기가 되어 있지 않은 문장을 처리할 때 유용하다. 전체 문자 시퀀스에서 점수가 가장 높은 조합을 순차적으로 토큰으로 잘라내는 방식이다. ‘국제사회와우리의노력들로범죄를척결하자’라는 문장에서 유의미한 단어들을 추출하는 데 효과적이었다.

 

실습에서는 말뭉치 데이터를 내려받고 WordExtractor로 점수를 학습하고 나서 직접 단어들의 cohesion score나 branching entropy 값을 확인해 보았다. 이를 통해 어떤 단어가 실제로 자주 함께 등장하는지를 통계적으로 확인할 수 있었고, 기존 형태소 분석기로는 놓치기 쉬운 단어 경계나 미등록 단어도 통계적 방법으로 처리할 수 있다는 장점이 분명히 느껴졌다.

 

마지막으로 이 학습의 핵심은, 한국어 자연어 처리를 할 때 반드시 사전 기반 분석기만 고집할 필요는 없으며, 통계 기반의 비지도 학습 방식도 충분히 강력하다는 점이었다. 특히 데이터 내에서 직접 패턴을 추출할 수 있다는 점은 모델을 구축할 때 더 넓은 범용성을 제공한다. soynlp는 다양한 실제 문제에서 유용하게 활용될 수 있으며, 특히 사용자 정의 사전이 어려운 경우 매우 강력한 대안이 될 수 있다는 것을 확인했다.