더북(TheBook)

코드 10-51 문장 길이 통일

import random
reviews_with_len = [[review, y[i], len(review)]
                 for i, review in enumerate(tokenized_reviews)] ------ 토큰화된 리뷰, 리뷰 레이블, 리뷰 길이가 포함된 리스트(list)를 생성
random.shuffle(reviews_with_len) ------ ①
reviews_with_len.sort(key=lambda x: x[2]) ------ sort( ) 메서드를 사용하여 리뷰를 기준으로 데이터를 정렬
sorted_reviews_labels = [(review_lab[0], review_lab[1])
                         for review_lab in reviews_with_len]
processed_dataset = tf.data.Dataset.from_generator(lambda: sorted_reviews_labels,
                                                   output_types=(tf.int32, tf.int32)) ------ sorted_reviews_labels, output_types에 대한 결과를 int32 형식으로 출력
BATCH_SIZE = 32 ------ 배치 크기를 32로 설정, 즉 리뷰 32건을 처리한 후 신경망의 가중치를 업데이트
batched_dataset = processed_dataset.padded_batch(BATCH_SIZE, padded_shapes=((None,), ())) ------ 데이터셋에 패딩을 적용

next(iter(batched_dataset)) ------ 첫 번째 배치를 출력하고 패딩이 어떻게 적용되었는지 확인

① CSV 파일에서 전반부는 긍정(positive) 리뷰, 후반부는 부정(negative) 리뷰가 포함되어 있기 때문에 훈련 배치에서 긍정과 부정 리뷰가 골고루 사용되도록 무작위로 데이터를 섞습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.