자연어 처리를 하다보면 각 문장은 서로 길이가 다를 수 있습니다.
그런데 기계는 길이가 전부 동일한 문서들에 대해서는 하나의 행렬로 보고,
한번에 묶어서 처리할 수 있습니다.
다시말해 병렬 연산을 위해서 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업이 필요할 때가 있습니다.
1. 케라스 전처리 도구로 패딩하기
케라스는 pad_sequences()를 제공하고 있습니다.
from tensorflow.keras.preprocessing.sequence import pad_sequences
기본적으로 문서의 뒤에 0을 채우는 것이 아니라 앞에 0을 채우는데 반대로 하고 싶다면
인자로 padding='post'를 주면 됩니다.
가장 긴 길이의 문서를 기준으로 패딩한다고 가정하기도 하지만,
실제로는 꼭 가장 긴 문서의 길이를 기준으로 해야되는 것이 아닙니다.
이와 같은 경우에는 길이에 제한을 두고 패딩할 수 있습니다.
maxlen의 인자로 정수를 주면, 해당 정수로 모든 문서의 길이를 동일하게 합니다.
데이터가 손실될 경우에 앞의 단어가 아니라 뒤의 단어가 삭제되도록 하고싶다면
truncating이라는 인자를 사용합니다.
pad_sequences의 인자로 value를 사용하면 0이 아닌 다른 숫자로 패딩이 가능합니다.
'[NLP]' 카테고리의 다른 글
[NLP] 한국어 전처리 패키지 (0) | 2023.03.27 |
---|---|
[NLP] 원-핫 인코딩 (0) | 2023.03.27 |
[NLP] 정수 인코딩 (0) | 2023.03.27 |
[NLP] 정규 표현식(Regular Expression) (0) | 2023.03.27 |
[NLP] 표제어 추출 and 어간 추출 (0) | 2023.03.27 |