더북(TheBook)

각 단어가 1부터 20까지의 숫자로 토큰화되었다는 것을 알 수 있습니다. 그런데 입력된 리뷰 데이터의 토큰 수가 각각 다르네요. 예를 들어 ‘최고예요’는 하나의 토큰([3])이지만 ‘참 잘 만든 영화예요’는 네 개의 토큰([4, 5, 6, 7])을 가지고 있지요. 딥러닝 모델에 입력하려면 학습 데이터의 길이가 동일해야 합니다. 따라서 토큰의 수를 똑같이 맞추어 주어야 합니다.

이처럼 길이를 똑같이 맞추어 주는 작업을 패딩( padding) 과정이라고 합니다. 패딩은 자연어 처리뿐만 아니라 19장에서 소개할 GAN에서도 중요한 역할을 하니 잘 기억하기 바랍니다. 패딩 작업을 위해 케라스는 pad_sequences() 함수를 제공합니다. pad_sequences() 함수를 사용하면 원하는 길이보다 짧은 부분은 숫자 0을 넣어서 채워 주고, 긴 데이터는 잘라서 같은 길이로 맞춥니다. 앞에서 생성한 x 배열을 네 개의 길이로 맞추기 위해 다음과 같이 실행합니다.

padded_x = pad_sequences(x, 4) # 서로 다른 길이의 데이터를 4로 맞추기
print("\n패딩 결과:\n", padded_x)

그러면 다음과 같이 배열의 길이가 맞추어집니다.

 

실행 결과

패딩 결과:
 [[ 0  0  1  2]
  [ 0  0  0  3]
  [ 4  5  6  7]
  [ 0  8  9 10]
  [ 0 11 12 13]
  [ 0  0  0 14]
  [ 0  0  0 15]
  [ 0  0 16 17]
  [ 0  0 18 19]
  [ 0  0  0 20]]
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.