어휘 사전의 한계

사전에 없는 단어를 만나면 어떻게 될까요?

해 보면

첫 단어에서 멈춥니다

어휘 사전은 토큰과 번호를 짝지은 표입니다. 앞 편에서 소설 한 편으로 만들었습니다. Hello가 그 표에 없어서 번호를 하나도 내놓지 못합니다.

원인

사전에는 소설에 나온 1,130개뿐입니다

나머지 여섯 토큰은 모두 소설에 있었습니다. 흔한 인사말도 그 소설에 나오지 않았다면 사전에 없습니다.

근본 문제

사전을 키워도 새 단어는 계속 나옵니다

사전을 키우면 Hello 같은 단어는 들어옵니다. 그래도 새 이름과 새로 생긴 말은 계속 나오고, 오타까지 등록할 수는 없습니다. 단어를 통째로 등록하는 방식으로는 끝이 없습니다.

원 아래의 사전 크기 중 10만 개와 100만 개는 예시 값입니다.

첫 번째 대응

모르는 단어를 뜻하는 토큰을 만듭니다

사전에 없는 토큰은 <|unk|>로 바꿔서 번호를 붙입니다. unk는 unknown(모름)을 줄인 말입니다. 이제 멈추지 않습니다.

이렇게 특별한 일을 맡기려고 사전에 따로 넣는 토큰을 특수 토큰이라고 합니다. 바로 앞 1130번은 다음 편에 나올 또 다른 특수 토큰의 자리라서 1131번이 됐습니다.

대가

어떤 단어였는지는 사라집니다

palace도 소설에 없는 단어입니다. Hello와 똑같이 1131번이 되고, 되돌리면 둘 다 <|unk|>입니다. 멈추지 않게 해 줄 뿐 단어를 살리지는 못합니다.

다음 편

특수 토큰이 하나 더 필요합니다

6편글의 끝은 어떻게 알릴까? 2강 목록