NLP

조천룡·2023년 10월 2일

Deep Learning

목록 보기
4/4
post-thumbnail

Embedding Layer

  • 인간의 언어(자연어)는 수치화되어 있지 않은 데이터이기 때문에 머신러닝, 딥러닝 기법을 바로 사용할 수가 없다.그래서 자연어 처리에서 특징 추출을 통해 수치화를 해줘야 하는데 이때 사용하는 것이 "언어의 벡터화"이다.이런 벡터화의 과정을 Word Embedding이라고 한다.
  • Embedding : 어떤 위상(位相) 공간에서 다른 위상 공간으로의 동상 사상(同相寫像).
  • 쉽게 말해서 매핑(mapping)한다는 얘기다. 즉, 임베딩 레이어는 데이터를 1대1 대응이 가능한 다른 형식으로 바꾸는 일을 한다. 주로 자연어처리에서 사용하지만, 꼭 NLP가 아니더라도 의미적 유사성을 구분하기 위한 수단으로 사용되는 경우가 많다.

tokenizer()

  • num_word=       # 단어의 빈도수가 높은 순으로 사용할 단어 개수
  • filters=                # 걸러낼 문자 리스트
  • lower=                # 입력받은 문자열을 소문자로 변환활지 (True, False)
  • split=                  # 단어를 분리하는 기준
  • char_level=        # True인 경우 모든 문자가 토큰으로 처리
  • oov_token=        # text_to_sequences 호출 과정에서 word_index에 추가되어 out-of-vocabulary words를 대처
  • .fit_on_texts(sentences)      # 문자 데이터를 입력받아 리스트 형태로 변환
  • .word_index                            # 단어와 숫자의 키-벨류를 포함하는 딕셔너리 변환
  • .text_to_sequences(sentences)      # 텍스트 안의 단어들을 숫자의 시퀀스의 형태로 변환
  • .pad_sequences(sentences)            # 숫자 0을 이용해서 같은 길이의 시퀀스로 변환
    • maxlen=         # 모든 시퀀스의 최대길이를 설정하여 제한
    • dtype=           # 출력 시퀀스의 자료형, 가변적 길이의 문자열로 패딩하려면 ‘object’
    • padding=       # ‘pre’ : 앞쪽에 0 추가(default), ‘post’ : 뒤쪽에 0 추가
    • truncating=    # ‘pre’ : 길이가 초과됐을 때 앞쪽을 자름, ‘post’ : 뒤쪽을 자름
    • value=             # 부동소수점 및 문자열(패딩할 값)
profile
10√2 Data

0개의 댓글