
479
12
밑바닥부터 구현하는 언어 모델
>>> vocab = L(*tokens).unique()
>>> vocab
(#30) [‘one’,’.’,’two’,’three’,’four’,’five’,’six’,’seven’,’eight’,’nine’...]
그다음
vocab
의 각 요소를 조회하여 토큰에 대응하는 숫자로 변환합니다.
>>> word2idx = {w:i for i,w in enumerate(vocab)}
>>> nums = L(word2idx[i] for i in tokens)
>>> nums
(#63095) [0,1,2,1,3,1,4,1,5,1...]
이제 언어 모델링을 수월하게 해줄 작은 데이터셋을 만들었으므로, 첫 번째 모델을 구축해
봅시다.
12.2
이 데이터셋을 신경망에서 사용할 수 있는 형태로 바꾸는 간단한 방법을 하나 알아보죠. 이전
세 단어를 기반으로 다음 단어를 예측하도록 지정하는 방법입니다. 연속적인 세 단어로 이루어
진 리스트를 독립변수로, 그 뒤에 등장하는 단어를 종속변수로 구성한 연속적인 리스트를 만듭
니다.
기본 파이썬 문법으로도 할 수 있는 작업입니다. 형태를 쉽게 파악하기 위해 먼저 토큰화를 진
행해보겠습니다.
>>> L((tokens[i:i+3], tokens[i+3]) for i in range(0,len