어휘 사전의 한계
사전에 없는 단어를 만나면 어떻게 될까요?
해 보면
첫 단어에서 멈춥니다
어휘 사전은 토큰과 번호를 짝지은 표입니다. 앞 편에서 소설 한 편으로 만들었습니다. Hello가 그 표에 없어서 번호를 하나도 내놓지 못합니다.
원인
사전에는 소설에 나온 1,130개뿐입니다
나머지 여섯 토큰은 모두 소설에 있었습니다. 흔한 인사말도 그 소설에 나오지 않았다면 사전에 없습니다.
근본 문제
사전을 키워도 새 단어는 계속 나옵니다
사전을 키우면 Hello 같은 단어는 들어옵니다. 그래도 새 이름과 새로 생긴 말은 계속 나오고, 오타까지 등록할 수는 없습니다. 단어를 통째로 등록하는 방식으로는 끝이 없습니다.
원 아래의 사전 크기 중 10만 개와 100만 개는 예시 값입니다.
첫 번째 대응
모르는 단어를 뜻하는 토큰을 만듭니다
사전에 없는 토큰은 <|unk|>로 바꿔서 번호를 붙입니다. unk는 unknown(모름)을 줄인 말입니다. 이제 멈추지 않습니다.
이렇게 특별한 일을 맡기려고 사전에 따로 넣는 토큰을 특수 토큰이라고 합니다. 바로 앞 1130번은 다음 편에 나올 또 다른 특수 토큰의 자리라서 1131번이 됐습니다.
대가
어떤 단어였는지는 사라집니다
palace도 소설에 없는 단어입니다. Hello와 똑같이 1131번이 되고, 되돌리면 둘 다 <|unk|>입니다. 멈추지 않게 해 줄 뿐 단어를 살리지는 못합니다.
다음 편