과기부 AI 수업15[Python](NPL2자연어처리<패딩, 패딩-Keras>)

욱이·2024년 5월 2일
0

과기부 AI 수업 정리

목록 보기
15/20
post-thumbnail

패딩(padding)

  • 입력 데이터의 길이를 동일하게 만들기 위해 사용하는 기법
  • 패딩은 입력 데이터의 길이를 일정한 길이로 맞추기 위해, 빈 공간을 특정한 값으로 채우는 작업을 의미한다.
  • 대표적으로 0으로 채우는 제로패딩(zero padding)이 사용
  • 입력데이터의 최대 길이가 50인 경우, 30 길이의 문장은 나머지 20개의 공간을 0으로 채워 50길이로 맞춤
  • 머신러닝 혹은 딥러닝시 학습 및 예측이 용이해지고 연산 속도를 높일 수 있음

padding 실습 해보기

데이터에 문장을 가져와 정수 인코딩후 패딩을 이용해 행열 만들기

  • 추출할 데이터
  • 데이터의 문장을 하나씩 가져와서 사용해보기
  • 각각의 데이터문장들의 정수 인코딩 해보기
  • 패딩을 하기 위해 각각의 리스트에서 가장 길이가 긴 리스트의 길이 구하기
  • max 길이를 구한뒤 max의 길이보다 작다면 뒤부분에 전부 0으로 채워보기
  • shape을 통해 몇행 몇열이 만들어졌는지 확인

padding - keras를 사용해 다양한 방법으로 패딩 해보기(앞,뒤,최대길이변경, 지정)

  • 추출할 데이터

keras로 import

정수인코딩 하는 과정은 padding의 과정과 동일하다.

  • okt객체 만들어 명사추출
  • tokenizer 사용해 명사사전
  • 문장단위로 인코딩

padding하는 다양한 방법

1. 앞에서부터 0을 채우는 방법

2. 0을 뒤로 채우는 방법('post')[일반적인 방법]

3. max길이 변경해서 패딩하는 방법 ('maxlen = 원하는길이')

4. 제로패딩을 하지 않고 단어의 마지막 인덱스번호로 패딩하는 방법

  • tokenizer.word_index로 마지막 번호 확인
  • 채워넣을 마지막 인덱스 번호를 만들어보기
  • 0이 아닌 구한 마지막 인덱스번호로 채워진것 확인

※ 해보며 느낀 한줄 요약

정수인코딩으로 구성된 데이터에서 최대길이나 어떠한 정해진 길이를 기준으로 해서 부족한 전체리스트를 가지고 최대 길이를 가진 리스트보다 작을 경우 똑같은 사이즈로 맞춰준다.
전체 정수인코딩의 사이즈를 동일하게 맞춰주는데 동일하게 맞출때 그 안을 특정한 숫자나 정수로 채워넣는 방법이 패딩이라고 기억하면 될 것 같다.

profile
개발자 기록 끄적

0개의 댓글