지난 글에서는 파이썬에서 패딩을 구현하는 기본적인 방법에 대해서 알아보았는데요, pad_sequences() 함수를 이용하여 패딩을 구현했습니다.
아래 코드처럼 pad_sequenes()를 이용하여 코드를 입력하면 기본적인 패딩이 되는데요,
import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
sentences = [['place', 'tree'], ['tree', 'nice', 'green'], ['nice', 'sky', 'and', 'tree'], ['bird', 'tree']]
tokenizer= Tokenizer()
tokenizer.fit_on_texts(sentences)
encoded = tokenizer.texts_to_sequences(sentences)
#패딩
from keras.preprocessing import sequence
padded = sequence.pad_sequences(encoded)
print(padded)
#output :
[[0 0 3 1]
[0 1 2 4]
[2 5 6 1]
[0 0 7 1]]
위 결과를 보면, 앞에서 0으로 제로 패딩이 된 것을 확인할 수 있습니다.
하지만, 0이 만약 앞이 아닌 뒤에 채워야 하는 경우가 있을 수 있는데요, 이러한 경우엔 pad_sequences() 함수 안에 padding에 대한 설정을 padding = 'post'으로 지정하면 0이 뒤에 채워집니다. 한번 이와 같이 코드를 입력하여 다시 패딩을 해보겠습니다.
from keras.preprocessing import sequence
padded = sequence.pad_sequences(encoded, padding='post')
print(padded)
# output :
[[3 1 0 0]
[1 2 4 0]
[2 5 6 1]
[7 1 0 0]]
padding = 'post' 로 인자를 입력해준 뒤 패딩을 한 결과, 위에 결과처럼 0으로 패딩이 뒤에 된 것을 확인할 수 있습니다.
'BLOG > 머신러닝' 카테고리의 다른 글
[자연어처리] 패딩(Padding) : 다른 숫자로 패딩하는 방법 (파이썬) (0) | 2021.03.23 |
---|---|
[자연어처리] 패딩(Padding) : 길이 지정 방법 - maxlen (파이썬) (0) | 2021.03.23 |
[자연어처리] 파이썬 코드로 패딩(Padding) 구현하기 - pad_sequences (0) | 2021.03.22 |
[자연어처리] 정수 인코딩 하기 - fit_on_texts() (0) | 2021.03.22 |
[머신러닝] 파이썬으로 softmax(소프트맥스) 함수 구현하기 (0) | 2021.03.22 |